커뮤니티

제 생각대로 수식이 적용되지 않네요.. 좀 도와주세요(추종매매관련)

프로필 이미지
이형지
2018-10-01 09:26:17
173
글번호 122311
답변완료
제 생각대로 수식이 적용되지 않네요.. 좀 도와주세요(추종매매관련) 컨셉 적용상품: 해외선물 1. 20일간 일봉중(최고가-최저가)의 평균이 = value1 2. P3(300) 일봉이 우상향일때 3. 분봉에서 c > 당일시가 + value1 * 일정변수2(p1) 일때 매수 4. 분봉에서 c < 당일시가 - value1 * 일정변수3(p2) 일때 매도 5. P3(300) 일봉이 우하향일때 6. 분봉에서 c > 당일시가 + value1 * 일정변수4(p4) 일때 매수 7. 분봉에서 c < 당일시가 - value1 * 일정변수5(p5) 일때 매도 (매수, 매도) 청산은 설정에서 설정함. 그런 컨셉으로 수식을 만들었는데.. 우상향/우하향이 적용이 안되는것 같아요.. 수식좀 체크 부탁드리겠습니다. 그리고 치명적인 문제: 해외선물은 7시부터 시작해서 다음날 새벽 6시까지가 1일봉일땐데 이수식은 그렇게 되지 않고 새벽 0시가 일봉의 시작으로 인식하게 되는것 같네요... 모든 매수가 5분봉으로 설정시 00:05에 매수가되는 현상이 발생함.... 제가 원하는 매수타이밍은 아침 7시의 시가에 20일평균값(최고-최저값을 평균값) +알파로 돌파시 매수하는 컨셉으로 ... 매수되는 시점이 다를텐데... 뭔가 수식이 잘못 인식되고 있는것 같습니다. 제 수식이 해외선물의 특성(아침7시-다음날 새벽 6시 종료)을 반영이 되지 않는것 같아요... ------------------------------------------------------------------------------- input : P1(-0.1),P2(1.3),P3(300),P4(-0.1),P5(0.1); var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),T(0),mav2(0),mav3(0); sum = 0; sum1 = 0; for cnt = 0 to P3-1 { sum = sum + DayClose(cnt); sum1 = sum1 + DayClose(cnt+1); } mav = sum/P3; mav1 = sum1/P3; if DayClose(P3) > 0 and mav > mav1 Then T = 1; Else if DayClose(P3) < 0 and mav < mav1 Then T = -1; if T = 1 Then mav2=p2 ; Else if T = -1 Then mav2=p5 ; if T = 1 Then mav3=p1 ; Else if T = -1 Then mav3=p4 ; value1 = (DayHigh(1)-daylow(1)+DayHigh(2)-daylow(2)+DayHigh(3)-daylow(3)+DayHigh(4)-daylow(4)+DayHigh(5)-daylow(5)+DayHigh(6)-daylow(6)+DayHigh(7)-daylow(7) +DayHigh(8)-daylow(8)+DayHigh(9)-daylow(9)+DayHigh(10)-daylow(10)+DayHigh(11)-daylow(11)+DayHigh(12)-daylow(12) +DayHigh(13)-daylow(13)+DayHigh(14)-daylow(14)+DayHigh(15)-daylow(15)+DayHigh(16)-daylow(16)+DayHigh(17)-daylow(17) +DayHigh(18)-daylow(18)+DayHigh(19)-daylow(19)+DayHigh(20)-daylow(20))/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수"); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-10-01 14:18:17

안녕하세요 예스스탁입니다. 1 if T = 1 Then --> X if T == 1 Then -- O 예스랭귀지에서 값의 저장은 = 이고 2개의 값을 비교해 같다라는 표현은 == 입니다. 2 value1이 값이 나열되어 있어 for문으로 짧게 수정했습니다. 3 시스템 트레이딩 설정창의 강제청산에 당일청산이 설정되어 있는지 확인하시기 바랍니다. 당일청산이 설정되면 해당 시간이후로 당일 진입을 막으므로 0시 이후에서 설정된 시간까지만 신호가 발생합니다. 해외선물은 새벽에 장종료이므로 당일청산을 특별하게 처리해야 합니다. 아래수식 하단에 내용 참고하시기 바랍니다. 3 input : P1(-0.1),P2(1.3),P3(300),P4(-0.1),P5(0.1); var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),T(0),mav2(0),mav3(0); var : sum3(0); if DayClose(P3) > 0 Then { sum = 0; sum1 = 0; for cnt = 0 to P3-1 { sum = sum + DayClose(cnt); sum1 = sum1 + DayClose(cnt+1); } mav = sum/P3; mav1 = sum1/P3; T = 0; if mav > mav1 Then T = 1; if mav < mav1 Then T = -1; if T == 1 Then mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수"); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도"); } } #날짜가 변경되면 5시50분으로 셋팅 if sdate != sdate[1] Then SetStopEndofday(055000); #새로운 영업일이 시작되면 해제 if bdate != bdate[1] Then SetStopEndofday(0); 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 제 생각대로 수식이 적용되지 않네요.. 좀 도와주세요(추종매매관련) > 제 생각대로 수식이 적용되지 않네요.. 좀 도와주세요(추종매매관련) 컨셉 적용상품: 해외선물 1. 20일간 일봉중(최고가-최저가)의 평균이 = value1 2. P3(300) 일봉이 우상향일때 3. 분봉에서 c > 당일시가 + value1 * 일정변수2(p1) 일때 매수 4. 분봉에서 c < 당일시가 - value1 * 일정변수3(p2) 일때 매도 5. P3(300) 일봉이 우하향일때 6. 분봉에서 c > 당일시가 + value1 * 일정변수4(p4) 일때 매수 7. 분봉에서 c < 당일시가 - value1 * 일정변수5(p5) 일때 매도 (매수, 매도) 청산은 설정에서 설정함. 그런 컨셉으로 수식을 만들었는데.. 우상향/우하향이 적용이 안되는것 같아요.. 수식좀 체크 부탁드리겠습니다. 그리고 치명적인 문제: 해외선물은 7시부터 시작해서 다음날 새벽 6시까지가 1일봉일땐데 이수식은 그렇게 되지 않고 새벽 0시가 일봉의 시작으로 인식하게 되는것 같네요... 모든 매수가 5분봉으로 설정시 00:05에 매수가되는 현상이 발생함.... 제가 원하는 매수타이밍은 아침 7시의 시가에 20일평균값(최고-최저값을 평균값) +알파로 돌파시 매수하는 컨셉으로 ... 매수되는 시점이 다를텐데... 뭔가 수식이 잘못 인식되고 있는것 같습니다. 제 수식이 해외선물의 특성(아침7시-다음날 새벽 6시 종료)을 반영이 되지 않는것 같아요... ------------------------------------------------------------------------------- input : P1(-0.1),P2(1.3),P3(300),P4(-0.1),P5(0.1); var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),T(0),mav2(0),mav3(0); sum = 0; sum1 = 0; for cnt = 0 to P3-1 { sum = sum + DayClose(cnt); sum1 = sum1 + DayClose(cnt+1); } mav = sum/P3; mav1 = sum1/P3; if DayClose(P3) > 0 and mav > mav1 Then T = 1; Else if DayClose(P3) < 0 and mav < mav1 Then T = -1; if T = 1 Then mav2=p2 ; Else if T = -1 Then mav2=p5 ; if T = 1 Then mav3=p1 ; Else if T = -1 Then mav3=p4 ; value1 = (DayHigh(1)-daylow(1)+DayHigh(2)-daylow(2)+DayHigh(3)-daylow(3)+DayHigh(4)-daylow(4)+DayHigh(5)-daylow(5)+DayHigh(6)-daylow(6)+DayHigh(7)-daylow(7) +DayHigh(8)-daylow(8)+DayHigh(9)-daylow(9)+DayHigh(10)-daylow(10)+DayHigh(11)-daylow(11)+DayHigh(12)-daylow(12) +DayHigh(13)-daylow(13)+DayHigh(14)-daylow(14)+DayHigh(15)-daylow(15)+DayHigh(16)-daylow(16)+DayHigh(17)-daylow(17) +DayHigh(18)-daylow(18)+DayHigh(19)-daylow(19)+DayHigh(20)-daylow(20))/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수"); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도"); }