커뮤니티

수식 수정 부탁드립니다.

프로필 이미지
샐리짱
2017-02-20 14:01:57
91
글번호 107007
답변완료
안녕하세요. 항상 수고가 많으십니다. ---- 질문입니다 ------------------------------------------ data1은 옵션이고, data2 는 선물입니다. 참조 데이타 - data2가 갭상승한 경우와 갭하락 한 경우를 나누어서 전략식을 만들었는데, 매수1과 매도1만 신호가 나옵니다. 어찌된 영문인지 아무리 보고 또 보아도 모르겠습니다. 잘못된 부분이 있다면 수정 부탁드립니다. input : exittime1(153000); // 거래 종료시간 input : stopper1(20); // 손절 틱 수 ////////////////////////////////////////// var10 = data2(ma(c, 5)); var20 = data2(ma(c, 10)); /////////////////////////////////////////////// // 전략식 시작 /////////////////////////////////////////////// if dayindex == 0 then { var1 = data2(o) - data2(DayClose(1)); // 당일 시가와 전일 종가와의 차이 } if DayIndex >= 1 then { if var1 >= 0.3 Then // 선물이 0.3 이상 갭상승한 경우 { if var10 > var10[1] then { buy("매수1"); } if var10 < var10[1] then { sell("매도1"); } } if var1 <= -0.3 Then // 선물이 -0.3 이상 갭하락한 경우 { if var20 > var20[1] then { buy("매수2"); } if var20 < var20[1] then { sell("매도2"); } } } SetStopLoss(stopper1*PriceScale, PointStop); if stime == exittime1 or CrossUp(stime, exittime1) Then { exitlong("매수청산"); exitshort("매도청산"); } -------------------------------- 감사합니다. 항상 하시는 일에 좋은 결실 거두시기를 ~~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-02-21 11:27:59

안녕하세요 예스스탁입니다. 1 dayclose,dayhigh,daylow,dayopen함수는 주종목의 일간데이타만 리턴합니다. 참조데이터에서는 closed,highd,lowd,opend함수를 이용하셔야 합니다. 2 참조데이터를 이용한 수식에서는 변수의 이전값 참조를 할때 어떤 데이터의 주기로 이전값을 가져올지 정해야 하므로 가급적 내장변수가 아닌 직접 변수를 만들고 선언시에 데이터번호를 지정해서 사용하셔야 합니다. 3 아래는 수정한 식입니다. input : exittime1(153000); // 거래 종료시간 input : stopper1(20); // 손절 틱 수 var : mav21(0,data2),mav22(0,data2),diff(0,data2); ////////////////////////////////////////// mav21 = data2(ma(c, 5)); mav22 = data2(ma(c, 10)); /////////////////////////////////////////////// // 전략식 시작 /////////////////////////////////////////////// if data2(dayindex == 0) then { diff = data2(o) - data2(CloseD(1)); // 당일 시가와 전일 종가와의 차이 } if data2(DayIndex >= 1) then { if diff >= 0.3 Then // 선물이 0.3 이상 갭상승한 경우 { if mav21 > mav21[1] then { buy("매수1"); } if mav21 < mav21[1] then { sell("매도1"); } } if diff <= -0.3 Then // 선물이 -0.3 이상 갭하락한 경우 { if mav22 > mav22[1] then { buy("매수2"); } if mav22 < mav22[1] then { sell("매도2"); } } } SetStopLoss(stopper1*PriceScale, PointStop); if stime == exittime1 or CrossUp(stime, exittime1) Then { exitlong("매수청산"); exitshort("매도청산"); } 즐거운 하루되세요 > 샐리짱 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드립니다. > 안녕하세요. 항상 수고가 많으십니다. ---- 질문입니다 ------------------------------------------ data1은 옵션이고, data2 는 선물입니다. 참조 데이타 - data2가 갭상승한 경우와 갭하락 한 경우를 나누어서 전략식을 만들었는데, 매수1과 매도1만 신호가 나옵니다. 어찌된 영문인지 아무리 보고 또 보아도 모르겠습니다. 잘못된 부분이 있다면 수정 부탁드립니다. input : exittime1(153000); // 거래 종료시간 input : stopper1(20); // 손절 틱 수 ////////////////////////////////////////// var10 = data2(ma(c, 5)); var20 = data2(ma(c, 10)); /////////////////////////////////////////////// // 전략식 시작 /////////////////////////////////////////////// if dayindex == 0 then { var1 = data2(o) - data2(DayClose(1)); // 당일 시가와 전일 종가와의 차이 } if DayIndex >= 1 then { if var1 >= 0.3 Then // 선물이 0.3 이상 갭상승한 경우 { if var10 > var10[1] then { buy("매수1"); } if var10 < var10[1] then { sell("매도1"); } } if var1 <= -0.3 Then // 선물이 -0.3 이상 갭하락한 경우 { if var20 > var20[1] then { buy("매수2"); } if var20 < var20[1] then { sell("매도2"); } } } SetStopLoss(stopper1*PriceScale, PointStop); if stime == exittime1 or CrossUp(stime, exittime1) Then { exitlong("매수청산"); exitshort("매도청산"); } -------------------------------- 감사합니다. 항상 하시는 일에 좋은 결실 거두시기를 ~~