커뮤니티

어제 문의한 수식에 추가하고 싶습니다

프로필 이미지
산이보리
2021-04-16 10:29:13
498
글번호 148096
답변완료
안녕하세요 어제 문의한 수식에서 IF문을 의도에 맞춰 수정했습니다 지표였던 수식을 매매신호로 변경했지만 신호에 따라 매매가 안 됩니다 SUM값이 +2이면 매수, 0이면 청산 SUM값이 -2이면 매도, 0이면 청산 입니다 그리고 올바른 카운팅이지만 연속으로 카운팅하는 경우가 있습니다 예를 들어 '+1' 다음봉에 '+1'이 연속으로 카운팅을 하곤 합니다 카운팅이 되었으면 다음봉에는 계산을 안 되게 해 주세요 감사합니다 ---------------------- input : N(4); var : LL(0),HH(0),tx1(0),tx2(0),cnt(0),Tx3(0),sum(0),CL(0),CS(0); Array : VV[20](0); if ( ( var2 == 0 and C > CS and vv[0] == -1 ) or LL == 0 or C > CL ) and L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2] Then { var1 = var1+1; LL = L[2]; CL = C; VV[0] = 1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } if sum == 2 Then buy(); if marketposition == 1 and sum == 0 then { exitlong(); } } } else { if L < LL Then { var1 = 0; } } if (( var1 == 0 and C < CL and vv[0] ==1) or hh == 0 or C < CS) and H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2] Then { var2 = var2+1; HH = H[2]; CS = C; VV[0] = -1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } if sum == -2 Then sell(); if marketposition == -1 and sum ==0 then { exitshort(); } } } Else { if H > HH Then { var2 = 0; } }
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2021-04-16 12:58:12

안녕하세요 예스스탁입니다. if ( ( var2 == 0 and C > CS and vv[0] == -1 ) or LL == 0 or C > CL ) and L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2] Then if (( var1 == 0 and C < CL and vv[0] ==1) or hh == 0 or C < CS) and H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2] Then 수정하신 조건이 연속적 몇개봉 만족하는 경우가 있습니다. 합산값은 조건만족봉에서 1아니면 -1을 4개 모아서 합산하므로 해당 부분은 위 조건식을 수정해 보아야 하는데 해당 부분은 조건자체를 저희가 수정을 해드리기 어렵습니다. 처리를 해드린다면 아래와 같이연속적으로 만족하면 첫봉만 유효하게 처리를 해드릴수 있습니다. 나머지 내용들은 조건만족시 값을 합산하는 부분들이나 진입청산수식은 별도로 수정할 부분이 없습니다. input : N(4); var : LL(0),HH(0),tx1(0),tx2(0),cnt(0),Tx3(0),sum(0),CL(0),CS(0); Array : VV[20](0); Condition1 = L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2]; Condition2 = H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2]; if ( ( var2 == 0 and C > CS and vv[0] == -1 ) or LL == 0 or C > CL ) and condition1 == true and Condition1[1] == False Then { var1 = var1+1; LL = L[2]; CL = C; TL_new(sDate,sTime,0,sDate,sTime,99999999); VV[0] = 1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } if sum == 2 Then buy(); if marketposition == 1 and sum == 0 then { exitlong(); } } } else { if L < LL Then { var1 = 0; } } if (( var1 == 0 and C < CL and vv[0] ==1) or hh == 0 or C < CS) and condition2 == true and Condition2[1] == False Then { var2 = var2+1; HH = H[2]; CS = C; VV[0] = -1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } if sum == -2 Then sell(); if marketposition == -1 and sum ==0 then { exitshort(); } } } Else { if H > HH Then { var2 = 0; } } 즐거운 하루되세요 > 산이보리 님이 쓴 글입니다. > 제목 : 어제 문의한 수식에 추가하고 싶습니다 > 안녕하세요 어제 문의한 수식에서 IF문을 의도에 맞춰 수정했습니다 지표였던 수식을 매매신호로 변경했지만 신호에 따라 매매가 안 됩니다 SUM값이 +2이면 매수, 0이면 청산 SUM값이 -2이면 매도, 0이면 청산 입니다 그리고 올바른 카운팅이지만 연속으로 카운팅하는 경우가 있습니다 예를 들어 '+1' 다음봉에 '+1'이 연속으로 카운팅을 하곤 합니다 카운팅이 되었으면 다음봉에는 계산을 안 되게 해 주세요 감사합니다 ---------------------- input : N(4); var : LL(0),HH(0),tx1(0),tx2(0),cnt(0),Tx3(0),sum(0),CL(0),CS(0); Array : VV[20](0); if ( ( var2 == 0 and C > CS and vv[0] == -1 ) or LL == 0 or C > CL ) and L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2] Then { var1 = var1+1; LL = L[2]; CL = C; VV[0] = 1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } if sum == 2 Then buy(); if marketposition == 1 and sum == 0 then { exitlong(); } } } else { if L < LL Then { var1 = 0; } } if (( var1 == 0 and C < CL and vv[0] ==1) or hh == 0 or C < CS) and H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2] Then { var2 = var2+1; HH = H[2]; CS = C; VV[0] = -1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } if sum == -2 Then sell(); if marketposition == -1 and sum ==0 then { exitshort(); } } } Else { if H > HH Then { var2 = 0; } }
프로필 이미지

산이보리

2021-04-16 13:32:25

산이보리 님에 의해 삭제된 답변입니다.