커뮤니티

시스템오류 문의

프로필 이미지
조민철
2016-07-20 12:25:27
158
글번호 100223
답변완료
항상 감사드립니다 아래식을 시스템에 적용해보면 타주기식을 적용할때와 안할때가 신호가 다르게나옵니다 타주기식은 크루드 5분봉입니다 주챠트는 크루드 20틱이고 제가 구현하고자 하는 식은 타주기5분선의 v50을 주챠트20틱의 현재가가 상향,하향돌파시 청산식입니다 위청산식을 적용하면 매매신호가 다르게 나옵니다 (청산식 적용전과 적용후의 신호가 다름) 제가 어느부분을 잘못했는지 수정부탁드립니다 ############################## ### 거래선_240_120_10 ######## ############################## var : upv1(0),upv2(0),upv3(0); var : dnv1(0),dnv2(0),dnv3(0); If V== highest(V,10) then{ Var71 = C; var72 = var71[1]; if var71 > var72 Then{ upv1 = var71; upv2 = upv1[1]; upv3 = upv2[1]; if upv1 > upv2 and upv2 > upv3 Then var70 = 1; } if var71 < var72 Then{ dnv1 = var71; dnv2 = dnv1[1]; dnv3 = dnv2[1]; if dnv1 < dnv2 and dnv2 < dnv3 Then var70 = -1; } } if var70 != var70[1] Then{ var50 = c; } #++++++++++++++++++++++++++++++++++++++++++++++++++++# var : upv11(0,data2),upv12(0,data2),upv13(0,data2); var : dnv11(0,data2),dnv12(0,data2),dnv13(0,data2); var : V11(0,data2),V12(0,data2),V20(0,data2),V50(0,data2); If data2(V== highest(V,10)) then{ v11 = data2(C); v12 = v11[1]; if v11 > v12 Then{ upv11 = v11; upv12 = upv11[1]; upv13 = upv12[1]; if upv11 > upv12 and upv12 > upv13 Then v20 = 1; } if v11 < v12 Then{ dnv11 = v11; dnv12 = dnv11[1]; dnv13 = dnv12[1]; if dnv11 < dnv12 and dnv12 < dnv13 Then v20 = -1; } } if v20 != v20[1] Then{ v50 = data2(c); } if MarketPosition == 1 and CrossDown(c,v50) Then exitlong("eB_타10"); if MarketPosition == -1 and crossup(c,v50) Then ExitShort("eS_타10");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-07-20 17:15:23

안녕하세요 예스스탁입니다. 문의하신 내용은 다른 수식부분의 문제인거 같습니다. 첨부한 그림은 1번 var50과, 2번의 v50을 차트에 그린 지표입니다. 그림과 같이 값이 같습니다. 수식에 참조데이터가 사용되면 전반적인 수식을 모두 수정해 주셔야 합니다. 예를 들어 참조데이터를 사용하는 수식에서 종목의 값을 계산하는 이평의 경우에도 아래와 같이 변수 선언시 데이터번호를 지정하고 값계산도 데이터함수로 씌워주셔야 합니다. var : mav(0,data1); mav = data1(ma(C,20)); 만약 아래와 같이 작성해서 사용하시면 참조데이터가 있기 때문 20이라는 봉수가 주데이터와 참조데이터(data2)를 포함한 글로벌 봉수를 카운트 하게 됩니다. mav[1]과 같이 이전값을 참조하는 경우에도 같습니다. var : mav(0); mav = ma(C,20); 예스랭귀지 도움말의 활용부분의 타종목/타주기 참조 부분 참고하시기 바랍니다. 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 시스템오류 문의 > 항상 감사드립니다 아래식을 시스템에 적용해보면 타주기식을 적용할때와 안할때가 신호가 다르게나옵니다 타주기식은 크루드 5분봉입니다 주챠트는 크루드 20틱이고 제가 구현하고자 하는 식은 타주기5분선의 v50을 주챠트20틱의 현재가가 상향,하향돌파시 청산식입니다 위청산식을 적용하면 매매신호가 다르게 나옵니다 (청산식 적용전과 적용후의 신호가 다름) 제가 어느부분을 잘못했는지 수정부탁드립니다 ############################## ### 거래선_240_120_10 ######## ############################## var : upv1(0),upv2(0),upv3(0); var : dnv1(0),dnv2(0),dnv3(0); If V== highest(V,10) then{ Var71 = C; var72 = var71[1]; if var71 > var72 Then{ upv1 = var71; upv2 = upv1[1]; upv3 = upv2[1]; if upv1 > upv2 and upv2 > upv3 Then var70 = 1; } if var71 < var72 Then{ dnv1 = var71; dnv2 = dnv1[1]; dnv3 = dnv2[1]; if dnv1 < dnv2 and dnv2 < dnv3 Then var70 = -1; } } if var70 != var70[1] Then{ var50 = c; } #++++++++++++++++++++++++++++++++++++++++++++++++++++# var : upv11(0,data2),upv12(0,data2),upv13(0,data2); var : dnv11(0,data2),dnv12(0,data2),dnv13(0,data2); var : V11(0,data2),V12(0,data2),V20(0,data2),V50(0,data2); If data2(V== highest(V,10)) then{ v11 = data2(C); v12 = v11[1]; if v11 > v12 Then{ upv11 = v11; upv12 = upv11[1]; upv13 = upv12[1]; if upv11 > upv12 and upv12 > upv13 Then v20 = 1; } if v11 < v12 Then{ dnv11 = v11; dnv12 = dnv11[1]; dnv13 = dnv12[1]; if dnv11 < dnv12 and dnv12 < dnv13 Then v20 = -1; } } if v20 != v20[1] Then{ v50 = data2(c); } if MarketPosition == 1 and CrossDown(c,v50) Then exitlong("eB_타10"); if MarketPosition == -1 and crossup(c,v50) Then ExitShort("eS_타10");