커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2020-02-20 12:14:02
390
글번호 136149
답변완료
안녕하세요? 아래의 스크립트의 전략을 수정하고 합니다. 항셍선물 1분봉으로 거래를 하고자 합니다. T장에만 거래하고 싶습니다. 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 고점 돌파완성 익봉에 매수 진입 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 저점 이탈완성 익봉에 매도 진입 매수와 매도 리버스로 된 전략이며 10시 16분 완성봉부터 1개를 카운팅하여 최근 5개 봉 고점과 저점을 돌파시 계속 진입하되 17시 강제청산하며 진입기준으로 10회만 하고자 합니다. 스크립트 작성 요청드립니다. Vars : SP(0,data1), TickSize(0,data1); Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2); var : v1(0,data2),v2(0,data2); SP = MarketPosition; TickSize = PriceScale; v1 = data2(H); v2 = data2(L); IF v1[10] > 0 Then Begin fstHH = data1(Highest(H, 5)); fstLL = data1(Lowest(L, 5)); sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]); sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]); End; IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize); IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL + TickSize);
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2020-02-20 14:15:19

안녕하세요 예스스탁입니다. input : N(5),X(10); var : idx(0),entry(0); if (sdate != sdate[1] and stime >= 101500) or (sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then { entry = 0; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; if stime >= 101500 and stime < 170000 then { idx = idx+1; if idx >= 5 and entry < X then { if MarketPosition <= 0 Then buy("b",AtStop,highest(H,N)+PriceScale); if MarketPosition >= 0 Then sell("s",AtStop,lowest(L,N)-PriceScale); } } SetStopEndofday(170000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래의 스크립트의 전략을 수정하고 합니다. 항셍선물 1분봉으로 거래를 하고자 합니다. T장에만 거래하고 싶습니다. 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 고점 돌파완성 익봉에 매수 진입 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 저점 이탈완성 익봉에 매도 진입 매수와 매도 리버스로 된 전략이며 10시 16분 완성봉부터 1개를 카운팅하여 최근 5개 봉 고점과 저점을 돌파시 계속 진입하되 17시 강제청산하며 진입기준으로 10회만 하고자 합니다. 스크립트 작성 요청드립니다. Vars : SP(0,data1), TickSize(0,data1); Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2); var : v1(0,data2),v2(0,data2); SP = MarketPosition; TickSize = PriceScale; v1 = data2(H); v2 = data2(L); IF v1[10] > 0 Then Begin fstHH = data1(Highest(H, 5)); fstLL = data1(Lowest(L, 5)); sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]); sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]); End; IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize); IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL + TickSize);
프로필 이미지

흰둥이아빠

2020-02-20 16:56:07

답변 감사드립니다. 그런데 작성주신 스크립트에는 data2에 대한 함수가 없네요. 기본 스크립트를 유지하되 T장에서만 봉을 카운팅하고 진입횟수를 제어하여 거래하고자 하는게 큰 컨셉입니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 함수요청 > 안녕하세요 예스스탁입니다. input : N(5),X(10); var : idx(0),entry(0); if (sdate != sdate[1] and stime >= 101500) or (sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then { entry = 0; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; if stime >= 101500 and stime < 170000 then { idx = idx+1; if idx >= 5 and entry < X then { if MarketPosition <= 0 Then buy("b",AtStop,highest(H,N)+PriceScale); if MarketPosition >= 0 Then sell("s",AtStop,lowest(L,N)-PriceScale); } } SetStopEndofday(170000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래의 스크립트의 전략을 수정하고 합니다. 항셍선물 1분봉으로 거래를 하고자 합니다. T장에만 거래하고 싶습니다. 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 고점 돌파완성 익봉에 매수 진입 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 저점 이탈완성 익봉에 매도 진입 매수와 매도 리버스로 된 전략이며 10시 16분 완성봉부터 1개를 카운팅하여 최근 5개 봉 고점과 저점을 돌파시 계속 진입하되 17시 강제청산하며 진입기준으로 10회만 하고자 합니다. 스크립트 작성 요청드립니다. Vars : SP(0,data1), TickSize(0,data1); Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2); var : v1(0,data2),v2(0,data2); SP = MarketPosition; TickSize = PriceScale; v1 = data2(H); v2 = data2(L); IF v1[10] > 0 Then Begin fstHH = data1(Highest(H, 5)); fstLL = data1(Lowest(L, 5)); sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]); sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]); End; IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize); IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL + TickSize);
프로필 이미지

예스스탁 예스스탁 답변

2020-02-21 10:18:55

안녕하세요 예스스탁입니다. input : N1(5),N2(10),X(10); var : entry(0,data1); var : H1(0,data1),L1(0,data1),H2(0,data2),L2(0,data2); H1 = data1(highest(H,N1)); L1 = data1(Lowest(L,N1)); H2 = data2(highest(H,N2)); L2 = data2(Lowest(L,N2)); if (sdate != sdate[1] and stime >= 101500) or (sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then { entry = 0; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; if stime >= 101500 and stime < 170000 then { if entry < X then { if MarketPosition <= 0 and data2(C > H2[1]) Then buy("b",AtStop,H1+PriceScale); if MarketPosition >= 0 and data2(C < L2[1]) Then sell("s",AtStop,L1-PriceScale); } } SetStopEndofday(170000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : Re : Re : 함수요청 > 답변 감사드립니다. 그런데 작성주신 스크립트에는 data2에 대한 함수가 없네요. 기본 스크립트를 유지하되 T장에서만 봉을 카운팅하고 진입횟수를 제어하여 거래하고자 하는게 큰 컨셉입니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 함수요청 > 안녕하세요 예스스탁입니다. input : N(5),X(10); var : idx(0),entry(0); if (sdate != sdate[1] and stime >= 101500) or (sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then { entry = 0; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; if stime >= 101500 and stime < 170000 then { idx = idx+1; if idx >= 5 and entry < X then { if MarketPosition <= 0 Then buy("b",AtStop,highest(H,N)+PriceScale); if MarketPosition >= 0 Then sell("s",AtStop,lowest(L,N)-PriceScale); } } SetStopEndofday(170000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래의 스크립트의 전략을 수정하고 합니다. 항셍선물 1분봉으로 거래를 하고자 합니다. T장에만 거래하고 싶습니다. 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 고점 돌파완성 익봉에 매수 진입 10시 15분에 시가가 들어오면 그 이후부터 최근 5개봉 저점 이탈완성 익봉에 매도 진입 매수와 매도 리버스로 된 전략이며 10시 16분 완성봉부터 1개를 카운팅하여 최근 5개 봉 고점과 저점을 돌파시 계속 진입하되 17시 강제청산하며 진입기준으로 10회만 하고자 합니다. 스크립트 작성 요청드립니다. Vars : SP(0,data1), TickSize(0,data1); Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2); var : v1(0,data2),v2(0,data2); SP = MarketPosition; TickSize = PriceScale; v1 = data2(H); v2 = data2(L); IF v1[10] > 0 Then Begin fstHH = data1(Highest(H, 5)); fstLL = data1(Lowest(L, 5)); sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]); sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]); End; IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize); IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL + TickSize);