커뮤니티

확인좀 부탁합니다

프로필 이미지
상영중
2019-09-25 10:51:04
153
글번호 132208
답변완료
아래 식을 사용합니다 그런데 적용이 될때가 있고 없고 합니다 항셍장에 이용중 입니다 var : Tcond(false); if (sdate != sdate[1] and stime >= 101600) or (sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then Tcond = true; if (sdate != sdate[1] and stime >= 180000) or (sdate == sdate[1] and stime >= 180000and stime[1] < 180000) Then{ Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-09-25 15:57:02

안녕하세요 예스스탁입니다. 안녕하세요 예스스탁입니다. 아래 수식을 적용하시면 됩니다. 단순히 2개의 수식을 합치시게 되면 18시 봉에 청산이 발생해야 하는데 같은봉에 진입수식이 동시 만족하게 되므로 스위칭이 되버립니다. 시스템은 청산식과 진입이 동시 충족되면 진입함수가 발동하게 됩니다. 진입은 Tcond가 true일때만 동작하게 하고 해당시간에 청산이 정상적으로 발생하게 수정했습니다. input : P(20),N(20); var : mav(0),Direction(0),HH(0),LL(0); var : tX(0),BH(0),SH(0);//틱수 Var : TL1(0),TL2(0),TX1(0),TX2(0); var : Tcond(false); if (sdate != sdate[1] and stime >= 101600) or (sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then Tcond = true; if (sdate != sdate[1] and stime >= 180000) or (sdate == sdate[1] and stime >= 180000 and stime[1] < 180000) Then{ Tcond = false; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } mav = ma(c,P); HH = highest(H,N); LL = lowest(L,N); if mav > mav[1] Then { Direction = 1; } if mav < mav[1] Then Direction = -1; if Direction == -1 and Direction[1] != -1 Then { value1 = mav[1]; var1 = HH[1]; var2 = 1; } if Direction == 1 and Direction[1] != 1 Then{ value1 = mav[1]; var1 = LL[1]; var2 = -1; } if Tcond == true and Countif(var2 == -1 and C>O and C>value1,2) == 2 and mav > mav[1] Then { buy("매수"); if MarketPosition <= 0 Then { var3 = sdate[1]; var4 = sTime[1]; var5 = H; TL1 = TL_New(var3,var4,var5,sdate,stime,var5); TL_SetStyle(TL1,3); TL_SetColor(TL1,RED); tx1 = Text_New(sdate,stime,var5,NumToStr(var5,2)); Text_SetColor(TX2,red); } } if Tcond == true and Countif(var2 == 1 and C<O and C<value1,2) == 2 and mav < mav[1] Then { sell("매도"); if MarketPosition >= 0 then { var6 = sdate[1]; var7 = sTime[1]; var8 = L; TL2 = TL_New(var6,var7,var8,sdate,stime,var8); TL_SetStyle(TL2,3); TL_SetColor(TL2,blue); tx2 = Text_New(sdate,stime,var8,NumToStr(var8,2)); Text_SetColor(TX2,BLUE); } } if MarketPosition == 1 Then { if H > var5 Then { var5 = h; Text_SetString(TX1,NumToStr(var5,2)); } TL_SetBegin(TL1,var3,var4,var5); TL_SetEnd(TL1,sdate,stime,var5); Text_SetLocation(TX1,sdate,stime,var5); } if MarketPosition == -1 Then { if L < var8 Then { var8 = L; Text_SetString(TX2,NumToStr(var8,2)); } TL_SetBegin(TL2,var6,var7,var8); TL_SetEnd(TL2,sdate,stime,var8); Text_SetLocation(TX2,sdate,stime,var8); } 즐거운 하루되세요 즐거운 하루되세요 > 상영중 님이 쓴 글입니다. > 제목 : 확인좀 부탁합니다 > 아래 식을 사용합니다 그런데 적용이 될때가 있고 없고 합니다 항셍장에 이용중 입니다 var : Tcond(false); if (sdate != sdate[1] and stime >= 101600) or (sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then Tcond = true; if (sdate != sdate[1] and stime >= 180000) or (sdate == sdate[1] and stime >= 180000and stime[1] < 180000) Then{ Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); }