커뮤니티

문의드립니다.

프로필 이미지
라떼처럼
2017-09-21 23:44:17
137
글번호 112990
답변완료

첨부 이미지

아래식에서 진입회수(2)시 매도 진입 & 청산 후 다시 매도 진입 조건이면 재진입됩니다.(그림참조) 진입회수(2)일때 crossup(mav2,mav3)조건에서 한번, Crossdown(mav2,mav3) 조건에서 한번, 총 2번 진입이 될수 있게 수정 부탁드립니다. input : short(12),long(26),sig(9),P1(3),P2(50), P3(160); input : 시작시간(215000), 종료시간(05000); input : 진입회수(2); var : mav1(0,data1),mav2(0,data1),mav3(0,data1); var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1); var : MACDO2(0,data2); var : BH(0),SL(0); MACDO2 = data2(MACD_OSC(short,long,sig)); mav1 = data1(ma(c,P1)); mav2 = data1(ma(c,P2)); mav3 = data1(ma(c,P3)); if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{ Tcond = true; Bcount = 0; Scount = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; } //진입회수 if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then Bcount = Bcount+1; if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then Scount = Scount+1; //진입 if Tcond == true Then{ if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy"); if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell"); } if 종료시간 <= sTime and sTime < 시작시간 then { if MarketPosition == 1 then{ ExitLong("B장종료"); } if MarketPosition == -1 then{ ExitShort("S장종료"); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-09-22 13:32:38

안녕하세요 예스스탁입니다. 작성하신 수식에서는 매수나 매도 각각 지정한 진입횟수만큼 가능하게 되어 있습니다. 그러므로 진입회수를 1로 하시면 매수1번, 매도1번 진입하게 됩니다. 즐거운 하루되세요 > 라떼처럼 님이 쓴 글입니다. > 제목 : 문의드립니다. > 아래식에서 진입회수(2)시 매도 진입 & 청산 후 다시 매도 진입 조건이면 재진입됩니다.(그림참조) 진입회수(2)일때 crossup(mav2,mav3)조건에서 한번, Crossdown(mav2,mav3) 조건에서 한번, 총 2번 진입이 될수 있게 수정 부탁드립니다. input : short(12),long(26),sig(9),P1(3),P2(50), P3(160); input : 시작시간(215000), 종료시간(05000); input : 진입회수(2); var : mav1(0,data1),mav2(0,data1),mav3(0,data1); var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1); var : MACDO2(0,data2); var : BH(0),SL(0); MACDO2 = data2(MACD_OSC(short,long,sig)); mav1 = data1(ma(c,P1)); mav2 = data1(ma(c,P2)); mav3 = data1(ma(c,P3)); if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{ Tcond = true; Bcount = 0; Scount = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; } //진입회수 if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then Bcount = Bcount+1; if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then Scount = Scount+1; //진입 if Tcond == true Then{ if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy"); if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell"); } if 종료시간 <= sTime and sTime < 시작시간 then { if MarketPosition == 1 then{ ExitLong("B장종료"); } if MarketPosition == -1 then{ ExitShort("S장종료"); } }