커뮤니티

조건식 문의드립니다.

프로필 이미지
bin
2020-04-14 14:32:22
519
글번호 137920
답변완료
해외선물을 진행하고 있습니다. 제가 원하는 조건식은 당일 오전 7시 장 시작 후 오전 9시까지의 차트에서 최고점과 최저점을 구하고, 오전 9시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 3시에 청산. 당일 오후 3시부터 5시까지의 차트에서 최고점과 최저점을 구하고, 오후 5시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 10시 20분에 청산. 당일 오후 10시30분 부터 익일 00시 30분까지의 차트에서 최고점과 최저점을 구하고, 00시 30분 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오전 5시에 청산. 공통사항 : 매수 or 매도 포지션 유지 중 반대 지점 (매수일 경우 최저점, 매도일 경우 최고점)을 돌파하면 손절하는 조건 식. 손절을 안하면 위에 해당하는 청산시간에 청산하는 조건식입니다. 요약하자면, 23시간 중 3번의 거래만 진행하는 조건이며, 각 거래당 한번씩만 진입하는 조건입니다. 수식 작성에 도움 부탁드립니다. 감사합니다.
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2020-04-14 15:46:09

안녕하세요 예스스탁입니다. input : StartTime1(70000),EndTime1(090000),Xtime1(150000); input : StartTime2(150000),EndTime2(170000),Xtime2(222000); input : StartTime3(223000),EndTime3(03000),Xtime3(050000); var : hh(0),ll(0),T(0),entry(0); if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1)) Then { T = 2; SetStopEndofday(Xtime1); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2)) Then { T = 2; SetStopEndofday(Xtime2); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3)) Then { T = 2; SetStopEndofday(Xtime3); } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if T == 1 then { if h > hh Then hh = h; if l < ll Then ll = l; } if T == 2 and entry < 1 then { if crossup(C,hh) Then buy(); if CrossDown(C,ll) Then sell(); } 즐거운 하루되세요 > bin 님이 쓴 글입니다. > 제목 : 조건식 문의드립니다. > 해외선물을 진행하고 있습니다. 제가 원하는 조건식은 당일 오전 7시 장 시작 후 오전 9시까지의 차트에서 최고점과 최저점을 구하고, 오전 9시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 3시에 청산. 당일 오후 3시부터 5시까지의 차트에서 최고점과 최저점을 구하고, 오후 5시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 10시 20분에 청산. 당일 오후 10시30분 부터 익일 00시 30분까지의 차트에서 최고점과 최저점을 구하고, 00시 30분 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오전 5시에 청산. 공통사항 : 매수 or 매도 포지션 유지 중 반대 지점 (매수일 경우 최저점, 매도일 경우 최고점)을 돌파하면 손절하는 조건 식. 손절을 안하면 위에 해당하는 청산시간에 청산하는 조건식입니다. 요약하자면, 23시간 중 3번의 거래만 진행하는 조건이며, 각 거래당 한번씩만 진입하는 조건입니다. 수식 작성에 도움 부탁드립니다. 감사합니다.
프로필 이미지

bin

2020-04-14 17:49:34

답변 주셔서 감사드립니다. 만들어 주신 수식에서, Hv = (hh + ll)*0.75; Lv = (hh + ll)*0.25; 라는 수식을 추가하여 매수 및 매도조건에 if T == 2 and entry < 1 then { if crossup(C,hh) or crossup(C,hv) or crossup(C,lv) Then buy(); if CrossDown(C,ll) or CrossDown(C,hv) or CrossDown(C,lv) Then sell(); } 이렇게 작성해서 고점, 저점 외에 hv점, lv 점을 추가로 생성하고 싶은데 제가 아무리 넣어도 되지가 않네요. 바쁘시더라도 도움 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 조건식 문의드립니다. > 안녕하세요 예스스탁입니다. input : StartTime1(70000),EndTime1(090000),Xtime1(150000); input : StartTime2(150000),EndTime2(170000),Xtime2(222000); input : StartTime3(223000),EndTime3(03000),Xtime3(050000); var : hh(0),ll(0),T(0),entry(0); if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1)) Then { T = 2; SetStopEndofday(Xtime1); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2)) Then { T = 2; SetStopEndofday(Xtime2); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3)) Then { T = 2; SetStopEndofday(Xtime3); } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if T == 1 then { if h > hh Then hh = h; if l < ll Then ll = l; } if T == 2 and entry < 1 then { if crossup(C,hh) Then buy(); if CrossDown(C,ll) Then sell(); } 즐거운 하루되세요 > bin 님이 쓴 글입니다. > 제목 : 조건식 문의드립니다. > 해외선물을 진행하고 있습니다. 제가 원하는 조건식은 당일 오전 7시 장 시작 후 오전 9시까지의 차트에서 최고점과 최저점을 구하고, 오전 9시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 3시에 청산. 당일 오후 3시부터 5시까지의 차트에서 최고점과 최저점을 구하고, 오후 5시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 10시 20분에 청산. 당일 오후 10시30분 부터 익일 00시 30분까지의 차트에서 최고점과 최저점을 구하고, 00시 30분 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오전 5시에 청산. 공통사항 : 매수 or 매도 포지션 유지 중 반대 지점 (매수일 경우 최저점, 매도일 경우 최고점)을 돌파하면 손절하는 조건 식. 손절을 안하면 위에 해당하는 청산시간에 청산하는 조건식입니다. 요약하자면, 23시간 중 3번의 거래만 진행하는 조건이며, 각 거래당 한번씩만 진입하는 조건입니다. 수식 작성에 도움 부탁드립니다. 감사합니다.
프로필 이미지

예스스탁 예스스탁 답변

2020-04-14 18:50:02

input : StartTime1(70000),EndTime1(090000),Xtime1(150000); input : StartTime2(150000),EndTime2(170000),Xtime2(222000); input : StartTime3(223000),EndTime3(03000),Xtime3(050000); var : hh(0),ll(0),T(0),entry(0),Hv(0),Lv(0); if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1)) Then { T = 2; SetStopEndofday(Xtime1); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2)) Then { T = 2; SetStopEndofday(Xtime2); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3)) Then { T = 2; SetStopEndofday(Xtime3); } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if T == 1 then { if h > hh Then hh = h; if l < ll Then ll = l; Hv = LL+(HH-LL)*0.75; Lv = LL+(HH-LL)*0.25; } if T == 2 and entry < 1 then { if crossup(C,hh) or crossup(c,hv) or crossup(c,lv) Then buy(); if CrossDown(C,ll) or CrossDown(c,hv) or CrossDown(c,lv) Then sell(); } > bin 님이 쓴 글입니다. > 제목 : Re : Re : 조건식 문의드립니다. > 답변 주셔서 감사드립니다. 만들어 주신 수식에서, Hv = (hh + ll)*0.75; Lv = (hh + ll)*0.25; 라는 수식을 추가하여 매수 및 매도조건에 if T == 2 and entry < 1 then { if crossup(C,hh) or crossup(C,hv) or crossup(C,lv) Then buy(); if CrossDown(C,ll) or CrossDown(C,hv) or CrossDown(C,lv) Then sell(); } 이렇게 작성해서 고점, 저점 외에 hv점, lv 점을 추가로 생성하고 싶은데 제가 아무리 넣어도 되지가 않네요. 바쁘시더라도 도움 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 조건식 문의드립니다. > 안녕하세요 예스스탁입니다. input : StartTime1(70000),EndTime1(090000),Xtime1(150000); input : StartTime2(150000),EndTime2(170000),Xtime2(222000); input : StartTime3(223000),EndTime3(03000),Xtime3(050000); var : hh(0),ll(0),T(0),entry(0); if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1)) Then { T = 2; SetStopEndofday(Xtime1); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2)) Then { T = 2; SetStopEndofday(Xtime2); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { SetStopEndofday(0); T = 1; hh = h; ll = l; entry = 0; } if T == 1 and ((sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3)) Then { T = 2; SetStopEndofday(Xtime3); } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if T == 1 then { if h > hh Then hh = h; if l < ll Then ll = l; } if T == 2 and entry < 1 then { if crossup(C,hh) Then buy(); if CrossDown(C,ll) Then sell(); } 즐거운 하루되세요 > bin 님이 쓴 글입니다. > 제목 : 조건식 문의드립니다. > 해외선물을 진행하고 있습니다. 제가 원하는 조건식은 당일 오전 7시 장 시작 후 오전 9시까지의 차트에서 최고점과 최저점을 구하고, 오전 9시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 3시에 청산. 당일 오후 3시부터 5시까지의 차트에서 최고점과 최저점을 구하고, 오후 5시 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오후 10시 20분에 청산. 당일 오후 10시30분 부터 익일 00시 30분까지의 차트에서 최고점과 최저점을 구하고, 00시 30분 이후에 최고점을 돌파하면 매수, 최저점을 돌파하면 매도하는 조건이며, 오전 5시에 청산. 공통사항 : 매수 or 매도 포지션 유지 중 반대 지점 (매수일 경우 최저점, 매도일 경우 최고점)을 돌파하면 손절하는 조건 식. 손절을 안하면 위에 해당하는 청산시간에 청산하는 조건식입니다. 요약하자면, 23시간 중 3번의 거래만 진행하는 조건이며, 각 거래당 한번씩만 진입하는 조건입니다. 수식 작성에 도움 부탁드립니다. 감사합니다.