커뮤니티

문의 드립니다.

프로필 이미지
푸른
2022-10-17 06:45:59
1333
글번호 162994
답변완료

첨부 이미지

input : 익절틱수(300),손절틱수(100); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if sDate != sDate[1] Then { DD = DayOfWeek(Sdate); Year = Floor(Sdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { if ET < ST Then SetStopEndofday(0); if NextBarOpen != c Then { Buy("b",AtStop,NextBarOpen+PriceScale*10); Sell("s",AtStop,NextBarOpen-PriceScale*10); } } Else { if h < DayOpen+PriceScale*10 Then Buy("b1",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s1",AtStop,DayOpen-PriceScale*10); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ---------------------- 위 첨부파일은 위 수식어에 매수,매도의 진입신호를 캡처한 것입니다. 여기에 조건 수식어를 첨부하고자 합니다. 그 내용은 진입신호후 체결을 바로 하는것이 아니라 신호후 그 다음 6개의 캔들중 하나라도 처음 캔들신호폭을 이탈하면 7번재 캔들싯점에서 체결이 없고 이탈이 아니면 7번재 캔들싯점에서 체결하는 수식어 입니다. 체결후 손절은 15틱으로 별도의 조건부 수식어가 가능한지도 문의 합니다. ------------------------------- 첨부파일 2번의 피보나치 수식어를 부탁드립니다. ------------------------------- input : N(5),금액(10000000); var : cnt(0),hh(0),ll(0); hh = 0; ll = 0; For cnt = 1 to N { if (hh == 0 or (hh > 0 and DayHigh(cnt) > hh)) Then hh = DayHigh(cnt); if (ll == 0 or (ll > 0 and DayLow(cnt) < ll)) Then ll = DayLow(cnt); } var1 = hh-(hh-ll)*0; var2 = hh-(hh-ll)*0.236; var3 = hh-(hh-ll)*0.382; var4 = hh-(hh-ll)*0.500; var5 = hh-(hh-ll)*0.618; var6 = hh-(hh-ll)*0.786; var7 = hh-(hh-ll)*1.000; if CrossDown(C,var2) Then Buy("b1",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var3) Then Buy("b2",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var4) Then Buy("b3",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var5) Then Buy("b4",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var6) Then Buy("b5",OnClose,DEF,Floor((금액*0.2)/C)); if MarketPosition == 1 Then { if CrossUp(c,var1) Then ExitLong("bx1",OnClose,DEF,"b1"); if CrossUp(c,Var2) Then ExitLong("bx2",OnClose,DEF,"b2"); if CrossUp(c,Var3) Then ExitLong("bx3",OnClose,DEF,"b3"); if CrossUp(c,Var4) Then ExitLong("bx4",OnClose,DEF,"b4"); if CrossUp(c,var5) Then ExitLong("bx5",OnClose,DEF,"b5"); } 위 수식어는 첨부파일3 입니다. 일봉의 10일선 위, 아래에 따라 수식어를 추가하고자 합니다. 10일선 위는 Buy로 10일선 아래는 sell 입니다. 미리 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-10-17 13:57:27

안녕하세요 예스스탁입니다. 1 input : 익절틱수(300),손절틱수(100); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0),idx(0),t(0),s(0),HH(0),LL(0); if sDate != sDate[1] Then { DD = DayOfWeek(Sdate); Year = Floor(Sdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if ((Sdate != sDate[1] and Stime >= ST) or (Sdate == sDate[1] and Stime >= ST and sTime[1] < ST)) Then { if ET < ST Then SetStopEndofday(0); T = 0; idx = 0; } idx = idx+1; if DayOpen(0) != DayClose(1) Then { if (idx == 1 and H >= DayOpen(0)+PriceScale*10) or (idx > 1 and H >= DayOpen(0)+PriceScale*10 and H[1] < DayOpen(0)+PriceScale*10) Then { T = 1; S = Index; HH = H; LL = L; } if (idx == 1 and L <= DayOpen(0)-PriceScale*10) or (idx > 1 and L <= DayOpen(0)-PriceScale*10 and L[1] > DayOpen(0)-PriceScale*10) Then { T = -1; S = Index; HH = H; LL = L; } if T == 1 Then { if L < LL Then T = 0; if Index == S+6 Then Buy("b",AtMarket); } if T == -1 Then { if h > HH Then T = 0; if Index == S+6 Then SelL("S",AtMarket); } } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 2 var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0); if sDate != sDate[1] Then { DD = DayOfWeek(Sdate); Year = Floor(Sdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if ((Sdate != sDate[1] and Stime >= ST) or (Sdate == sDate[1] and Stime >= ST and sTime[1] < ST)) Then { if ET < ST Then SetStopEndofday(0); } if MarketPosition == 0 and L > DayLow(1)-(DayHigh(1)-DayLow(1))*0.2 Then Buy("b",AtLimit,DayLow(1)-(DayHigh(1)-DayLow(1))*0.2); if MarketPosition == 1 and L > DayLow(1)-(DayHigh(1)-DayLow(1))*0.2 Then Sell("s",AtLimit,DayHigh(1)+(DayHigh(1)-EntryPrice)*0.618); if MarketPosition == -1 Then ExitShort("sx",AtLimit,DayLow(1)-(DayHigh(1)-DayLow(1))*0.2); } 3 input : N(5),금액(10000000),P(10); var : cnt(0),hh(0),ll(0),sum(0),mav(0); hh = 0; ll = 0; For cnt = 1 to N { if (hh == 0 or (hh > 0 and DayHigh(cnt) > hh)) Then hh = DayHigh(cnt); if (ll == 0 or (ll > 0 and DayLow(cnt) < ll)) Then ll = DayLow(cnt); } sum = 0; For cnt = 0 to P-1 { sum = sum + DayClose(cnt); } mav = sum/P; var1 = hh-(hh-ll)*0; var2 = hh-(hh-ll)*0.236; var3 = hh-(hh-ll)*0.382; var4 = hh-(hh-ll)*0.500; var5 = hh-(hh-ll)*0.618; var6 = hh-(hh-ll)*0.786; var7 = hh-(hh-ll)*1.000; if CrossDown(C,var2) and C > mav Then Buy("b1",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var3) and C > mav Then Buy("b2",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var4) and C > mav Then Buy("b3",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var5) and C > mav Then Buy("b4",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var6) and C > mav Then Buy("b5",OnClose,DEF,Floor((금액*0.2)/C)); if MarketPosition == 1 and C < mav Then { if CrossUp(c,var1) Then ExitLong("bx1",OnClose,DEF,"b1"); if CrossUp(c,Var2) Then ExitLong("bx2",OnClose,DEF,"b2"); if CrossUp(c,Var3) Then ExitLong("bx3",OnClose,DEF,"b3"); if CrossUp(c,Var4) Then ExitLong("bx4",OnClose,DEF,"b4"); if CrossUp(c,var5) Then ExitLong("bx5",OnClose,DEF,"b5"); } 즐거운 하루되세요 > 푸른 님이 쓴 글입니다. > 제목 : 문의 드립니다. > input : 익절틱수(300),손절틱수(100); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if sDate != sDate[1] Then { DD = DayOfWeek(Sdate); Year = Floor(Sdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { if ET < ST Then SetStopEndofday(0); if NextBarOpen != c Then { Buy("b",AtStop,NextBarOpen+PriceScale*10); Sell("s",AtStop,NextBarOpen-PriceScale*10); } } Else { if h < DayOpen+PriceScale*10 Then Buy("b1",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s1",AtStop,DayOpen-PriceScale*10); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ---------------------- 위 첨부파일은 위 수식어에 매수,매도의 진입신호를 캡처한 것입니다. 여기에 조건 수식어를 첨부하고자 합니다. 그 내용은 진입신호후 체결을 바로 하는것이 아니라 신호후 그 다음 6개의 캔들중 하나라도 처음 캔들신호폭을 이탈하면 7번재 캔들싯점에서 체결이 없고 이탈이 아니면 7번재 캔들싯점에서 체결하는 수식어 입니다. 체결후 손절은 15틱으로 별도의 조건부 수식어가 가능한지도 문의 합니다. ------------------------------- 첨부파일 2번의 피보나치 수식어를 부탁드립니다. ------------------------------- input : N(5),금액(10000000); var : cnt(0),hh(0),ll(0); hh = 0; ll = 0; For cnt = 1 to N { if (hh == 0 or (hh > 0 and DayHigh(cnt) > hh)) Then hh = DayHigh(cnt); if (ll == 0 or (ll > 0 and DayLow(cnt) < ll)) Then ll = DayLow(cnt); } var1 = hh-(hh-ll)*0; var2 = hh-(hh-ll)*0.236; var3 = hh-(hh-ll)*0.382; var4 = hh-(hh-ll)*0.500; var5 = hh-(hh-ll)*0.618; var6 = hh-(hh-ll)*0.786; var7 = hh-(hh-ll)*1.000; if CrossDown(C,var2) Then Buy("b1",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var3) Then Buy("b2",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var4) Then Buy("b3",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var5) Then Buy("b4",OnClose,DEF,Floor((금액*0.2)/C)); if CrossDown(C,var6) Then Buy("b5",OnClose,DEF,Floor((금액*0.2)/C)); if MarketPosition == 1 Then { if CrossUp(c,var1) Then ExitLong("bx1",OnClose,DEF,"b1"); if CrossUp(c,Var2) Then ExitLong("bx2",OnClose,DEF,"b2"); if CrossUp(c,Var3) Then ExitLong("bx3",OnClose,DEF,"b3"); if CrossUp(c,Var4) Then ExitLong("bx4",OnClose,DEF,"b4"); if CrossUp(c,var5) Then ExitLong("bx5",OnClose,DEF,"b5"); } 위 수식어는 첨부파일3 입니다. 일봉의 10일선 위, 아래에 따라 수식어를 추가하고자 합니다. 10일선 위는 Buy로 10일선 아래는 sell 입니다. 미리 감사드립니다.