커뮤니티

문의 드립니다.~~~~

프로필 이미지
예스요
2021-11-24 21:25:44
1146
글번호 153907
답변완료
많은 도움 항상 감사합니다~~~ 아래의 수식을 모든 시간에 조건이 맞으면 전부 진입이 되게 하려면 어떻게 바꾸어야 하나요? 여러가지 해보다가 안되어 도움 요청합니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2021-11-25 11:49:39

안녕하세요 예스스탁입니다. 문의하신 내용을 정확히 이해하지 못했습니다. 해당수식의 진입 자체에 시간에 대한 제한은 없습니다. 최고가나 최저가 계산의 기준시간만 10시입니다. 10이후 최고가와 최저가가 일정틱수 반대방향 조정이 없이 상승/하락 하면 진입을 하게 되는 내용입니다. 만약 청산이후에 새로 진입을 또 하고자 하시면 청산후 첫봉에서 각 값을 초기화하고 다시 체크하게 하시면 됩니다. 혹은 의도하시는 다른 초기화시점이 있으시면 자세한 내용을 올려주셔야 수정해 드릴수 있습니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { #거래횟수 증가(청산이 되서서 거래완료) if TotalTrades > TotalTrades[1] Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 많은 도움 항상 감사합니다~~~ 아래의 수식을 모든 시간에 조건이 맞으면 전부 진입이 되게 하려면 어떻게 바꾸어야 하나요? 여러가지 해보다가 안되어 도움 요청합니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } }
프로필 이미지

예스요

2021-11-25 12:36:17

진입후 익절 10틱(변수) 손절 10틱(변수) 청산후 청산지점에서 다시 재진입 조건이 충족되면 다시 진입하여 매매가 반복되는 식이었으면 합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다.~~~~ > 안녕하세요 예스스탁입니다. 문의하신 내용을 정확히 이해하지 못했습니다. 해당수식의 진입 자체에 시간에 대한 제한은 없습니다. 최고가나 최저가 계산의 기준시간만 10시입니다. 10이후 최고가와 최저가가 일정틱수 반대방향 조정이 없이 상승/하락 하면 진입을 하게 되는 내용입니다. 만약 청산이후에 새로 진입을 또 하고자 하시면 청산후 첫봉에서 각 값을 초기화하고 다시 체크하게 하시면 됩니다. 혹은 의도하시는 다른 초기화시점이 있으시면 자세한 내용을 올려주셔야 수정해 드릴수 있습니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { #거래횟수 증가(청산이 되서서 거래완료) if TotalTrades > TotalTrades[1] Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 많은 도움 항상 감사합니다~~~ 아래의 수식을 모든 시간에 조건이 맞으면 전부 진입이 되게 하려면 어떻게 바꾸어야 하나요? 여러가지 해보다가 안되어 도움 요청합니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } }
프로필 이미지

예스스탁 예스스탁 답변

2021-11-25 14:56:50

안녕하세요 예스스탁입니다. 청산이후에 최고가와 최저가를 다시 산정하고 및 각 조건을 초기화해서 다시 체크하게 한다면 1번식을 이용하시면 됩니다. 만약 초기화 없이 매수청산 후 기존조건이 유지되서 최저가+m틱이상이면 다시 매수 매도청산 후 기존조건이 유지되서 최고가-b틱이하이면 다시 매도하길 원하시면 2번식과 같이 익절과 손절 추하하신 후에 각 진입식의 HH < LL+PriceScale*mm LL < HH-PriceScale*bb 와 같은 조건은 제거해 주시면 됩니다. 해당 조건이 처음으로 해당지점을 넘을때만 신호를 발생하게 하는 내용입니다. 1 input : ntime(100000),nn(10),mm(50),aa(10),bb(50); input : 익절틱수(10),손절틱수(10); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { #거래횟수 증가(청산이 되서서 거래완료) if TotalTrades > TotalTrades[1] Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 2 input : ntime(100000),nn(10),mm(50),aa(10),bb(50); input : 익절틱수(10),손절틱수(10); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False Then Buy("b",AtLimit,HH-PriceScale*bb); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다.~~~~ > 진입후 익절 10틱(변수) 손절 10틱(변수) 청산후 청산지점에서 다시 재진입 조건이 충족되면 다시 진입하여 매매가 반복되는 식이었으면 합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다.~~~~ > 안녕하세요 예스스탁입니다. 문의하신 내용을 정확히 이해하지 못했습니다. 해당수식의 진입 자체에 시간에 대한 제한은 없습니다. 최고가나 최저가 계산의 기준시간만 10시입니다. 10이후 최고가와 최저가가 일정틱수 반대방향 조정이 없이 상승/하락 하면 진입을 하게 되는 내용입니다. 만약 청산이후에 새로 진입을 또 하고자 하시면 청산후 첫봉에서 각 값을 초기화하고 다시 체크하게 하시면 됩니다. 혹은 의도하시는 다른 초기화시점이 있으시면 자세한 내용을 올려주셔야 수정해 드릴수 있습니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { #거래횟수 증가(청산이 되서서 거래완료) if TotalTrades > TotalTrades[1] Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 많은 도움 항상 감사합니다~~~ 아래의 수식을 모든 시간에 조건이 맞으면 전부 진입이 되게 하려면 어떻게 바꾸어야 하나요? 여러가지 해보다가 안되어 도움 요청합니다. input : ntime(100000),nn(10),mm(50),aa(10),bb(50); var : OO(0),HH(0),LL(0),HL(0),LH(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { OO = O; HH = H; HL = HH; LL = L; LH = LL; Condition1 = False; Condition1 = False; } Else { if HH > 0 and LL > 0 Then { if H > HH Then { HH = H; HL = HH; } Else { if L < HL Then HL = L; } if L < LL Then { LL = L; LH = LL; } Else { if H > LH Then LH = H; } if HL < HH-PriceScale*nn Then Condition1 = true; if LH > LL+PriceScale*aa Then Condition2 = true; if Condition1 == False and HH < LL+PriceScale*mm Then Sell("s",AtLimit,LL+PriceScale*mm); if Condition2 == False and LL < HH-PriceScale*bb Then Buy("b",AtLimit,HH-PriceScale*bb); } }