커뮤니티

시스템매매횟수 오류수정

프로필 이미지
조민철
2017-06-15 03:57:03
154
글번호 110432
답변완료
항상 감사드립니다 아래 시스템식을 적용해보면 b1,s1 신호는 발생치않고 b2_stok80.s2_stok80 신호만 발생합니다 그리고 신호발생도 전체화면에서 3번만 발생하고 종료 B1,S1 신호는 당일 첫신호로 발생하여야 하고,b2_stok80.s2_stok80 신호는 당일 2번째,3번째 신호에서 발생하여야 하는데 오류가 있는것 같습니다 수정부탁드립니다 감사합니다 ################################################## input : 시작시간(170000), 종료시간(150000),당일최대진입횟수(3); # 현지시간_뉴욕 17:00 장시작/ 15시 장종료 # var : entrycnt(0),S1(0),T1(0),count1(0),Tcond(false); # 전일 마지막신호연계하여 동일방향 재진입금지# if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { Tcond = true; S1 = TotalTrades; T1 = 0; count1 = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; ExitLong("당일매수청산"); ExitShort("당일매도청산"); } if MarketPosition != 0 Then Entrycnt = TotalTrades-T1; Else Entrycnt = TotalTrades-T1+1; ##################################################### if Tcond == true Then{ if entrycnt == 0 Then{ #당일 첫번째 신호 # if uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 and MarketPosition == 0 and MarketPosition(1) != 1 Then buy("b1"); if uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 and MarketPosition == 0 and MarketPosition(1) != -1 Then sell("s1"); } #매수조건이면 T1는 1, 카운트 1증가 if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then { T1 = 1; count1 = count1+1; #카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입 if count1 <= 3 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != 1) or MarketPosition == -1) Then #동일방향 재진입금지# BUY("B2_stok80"); } #매도조건이면 T1는 -1, 카운트 1증가 if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{ T1 = -1; count1 = count1+1; #카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입 if count1 <= 3 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != -1) or MarketPosition == 1) then #동일방향 재진입금지# sell("S2_stok80"); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-06-15 09:13:09

안녕하세요 예스스탁입니다. 당일진입카운트 수식에 문제가 있어 수정했습니다. input : 시작시간(170000), 종료시간(150000),당일최대진입횟수(3); # 현지시간_뉴욕 17:00 장시작/ 15시 장종료 # var : entrycnt(0),S1(0),T1(0),count1(0),Tcond(false); # 전일 마지막신호연계하여 동일방향 재진입금지# if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { Tcond = true; S1 = TotalTrades; T1 = 0; count1 = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; ExitLong("당일매수청산"); ExitShort("당일매도청산"); } if MarketPosition == 0 Then Entrycnt = TotalTrades-S1; Else Entrycnt = TotalTrades-S1+1; ##################################################### if Tcond == true Then{ if entrycnt == 0 Then{ #당일 첫번째 신호 # if uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 and MarketPosition == 0 and MarketPosition(1) != 1 Then buy("b1"); if uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 and MarketPosition == 0 and MarketPosition(1) != -1 Then sell("s1"); } #매수조건이면 T1는 1, 카운트 1증가 if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then { T1 = 1; count1 = count1+1; #카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입 if count1 <= 3 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != 1) or MarketPosition == -1) Then #동일방향 재진입금지# BUY("B2_stok80"); } #매도조건이면 T1는 -1, 카운트 1증가 if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{ T1 = -1; count1 = count1+1; #카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입 if count1 <= 3 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != -1) or MarketPosition == 1) then #동일방향 재진입금지# sell("S2_stok80"); } } 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 시스템매매횟수 오류수정 > 항상 감사드립니다 아래 시스템식을 적용해보면 b1,s1 신호는 발생치않고 b2_stok80.s2_stok80 신호만 발생합니다 그리고 신호발생도 전체화면에서 3번만 발생하고 종료 B1,S1 신호는 당일 첫신호로 발생하여야 하고,b2_stok80.s2_stok80 신호는 당일 2번째,3번째 신호에서 발생하여야 하는데 오류가 있는것 같습니다 수정부탁드립니다 감사합니다 ################################################## input : 시작시간(170000), 종료시간(150000),당일최대진입횟수(3); # 현지시간_뉴욕 17:00 장시작/ 15시 장종료 # var : entrycnt(0),S1(0),T1(0),count1(0),Tcond(false); # 전일 마지막신호연계하여 동일방향 재진입금지# if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { Tcond = true; S1 = TotalTrades; T1 = 0; count1 = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; ExitLong("당일매수청산"); ExitShort("당일매도청산"); } if MarketPosition != 0 Then Entrycnt = TotalTrades-T1; Else Entrycnt = TotalTrades-T1+1; ##################################################### if Tcond == true Then{ if entrycnt == 0 Then{ #당일 첫번째 신호 # if uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 and MarketPosition == 0 and MarketPosition(1) != 1 Then buy("b1"); if uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 and MarketPosition == 0 and MarketPosition(1) != -1 Then sell("s1"); } #매수조건이면 T1는 1, 카운트 1증가 if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then { T1 = 1; count1 = count1+1; #카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입 if count1 <= 3 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != 1) or MarketPosition == -1) Then #동일방향 재진입금지# BUY("B2_stok80"); } #매도조건이면 T1는 -1, 카운트 1증가 if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{ T1 = -1; count1 = count1+1; #카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입 if count1 <= 3 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != -1) or MarketPosition == 1) then #동일방향 재진입금지# sell("S2_stok80"); } }