커뮤니티

시스템식 문의

프로필 이미지
노인
2020-01-11 03:42:11
185
글번호 135073
답변완료
1. 시스템 신호 필터링 조건으로 지나치게 원웨이로 진행했을때 해당방향으로 진입하지 않게 하려고 합니다. 진입전 n봉 동안 최대하락폭이 m틱 이하이면서 k틱 이상 올랐을경우 매수진입신호 무효화 진입전 n봉 동안 최대상승폭이 m틱 이하이면서 k틱 이하 내렸을경우 매도진입신호 무효화 라는 조건을 추가하기 위해서는 시스템식에 어떤식으로 수식을 추가해야 할까요? 2. 시스템식 오류 수정요청. Data1을 상위차트(60분봉) Data2을 하위차트(3분봉) 으로 설정하고 input : 상위ma위연속n개봉(10), ma봉수(200), rsi봉수(10), 손절틱(100), 익절틱(100); Var1 = ma(C,ma봉수); Var2 = rsi(rsi봉수); if Data1(countif(L>Var1,상위ma위연속n개봉) == 상위ma위연속n개봉) and //상위차트에서 ma위에 연속으로 n개봉 존재 Data2(Var2[0] < 50) and //하위차트에서 rsi 30이하 MarketPosition == 0 Then buy("롱진입",AtStop,Data1(C[0])); SetStopLoss(PriceScale*손절틱,PointStop); SetStopProfittarget(PriceScale*익절틱,PointStop); 위와같이 시스템식을 구성했을때, 오류검증에는 이상없으나 if다음의 첫번째 수식인 Data1(countif(L>Var1,상위ma위연속n개봉) == 상위ma위연속n개봉) and //상위차트에서 ma위에 연속으로 n개봉 존재 부분이 의도한대로 나오지 않습니다. 제가 의도한 조건은 이동평균선 위에 연속한 n개의 봉이 있을 경우 인데, 실제로 시뮬레이션을 돌려보면 수식의 결과가 그렇게 나오지 않습니다. 어떤식으로 해야 오류가 수정될까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-01-13 10:23:34

안녕하세요 예스스탁입니다. 1 input : nn(20),mm(10),kk(5); var : hh(0),hb(0),ll(0),lb(0); var : BuyEntry(false),SellEntry(false); #nn봉 최고가와 인덱스 hh = highest(H,nn); hb = NthHighestBar(1,h,nn); #nn봉 최저가와 인덱스 ll = lowest(L,nn); lb = NthLowest(1,L,nn); #최고가 이후 최저가가 발생했고 #최저가가 최고가의 차이가 mm틱 이하이고 #종가가 최저가대비 kk틱 이상 상승이면 #BuyEntry는 false 그외에는 true if hb > lb and ll >= hh-PriceScale*mm and C > ll+PriceScale*kk Then BuyEntry = false; Else BuyEntry = true; #최저가 이후 최고가가 발생했고 #최고가와 최저가의 차이가 mm틱 이하이고 #종가가 최고가대비 kk틱 이상 하락이면 #SellEntry는 false 그외에는 true if hb > lb and ll >= hh-PriceScale*mm and C > ll+PriceScale*kk Then SellEntry = false; Else SellEntry = true; if BuyEntry == true and 조건 Then buy(); if SellEntry == true and 조건 Then Sell(); 2 input : 상위ma위연속n개봉(10), ma봉수(200), rsi봉수(10), 손절틱(100), 익절틱(100); var : V1(0,data1),V2(0,data2); V1 = data1(ma(C,ma봉수)); V2 = data2(rsi(rsi봉수)); if Data1(countif(L>V1,상위ma위연속n개봉) == 상위ma위연속n개봉) and //상위차트에서 ma위에 연속으로 n개봉 존재 Data2(V2 < 50) and //하위차트에서 rsi 30이하 MarketPosition == 0 Then buy("롱진입",AtStop,Data1(C[0])); SetStopLoss(PriceScale*손절틱,PointStop); SetStopProfittarget(PriceScale*익절틱,PointStop); 즐거운 하루되세요 > 노인 님이 쓴 글입니다. > 제목 : 시스템식 문의 > 1. 시스템 신호 필터링 조건으로 지나치게 원웨이로 진행했을때 해당방향으로 진입하지 않게 하려고 합니다. 진입전 n봉 동안 최대하락폭이 m틱 이하이면서 k틱 이상 올랐을경우 매수진입신호 무효화 진입전 n봉 동안 최대상승폭이 m틱 이하이면서 k틱 이하 내렸을경우 매도진입신호 무효화 라는 조건을 추가하기 위해서는 시스템식에 어떤식으로 수식을 추가해야 할까요? 2. 시스템식 오류 수정요청. Data1을 상위차트(60분봉) Data2을 하위차트(3분봉) 으로 설정하고 input : 상위ma위연속n개봉(10), ma봉수(200), rsi봉수(10), 손절틱(100), 익절틱(100); Var1 = ma(C,ma봉수); Var2 = rsi(rsi봉수); if Data1(countif(L>Var1,상위ma위연속n개봉) == 상위ma위연속n개봉) and //상위차트에서 ma위에 연속으로 n개봉 존재 Data2(Var2[0] < 50) and //하위차트에서 rsi 30이하 MarketPosition == 0 Then buy("롱진입",AtStop,Data1(C[0])); SetStopLoss(PriceScale*손절틱,PointStop); SetStopProfittarget(PriceScale*익절틱,PointStop); 위와같이 시스템식을 구성했을때, 오류검증에는 이상없으나 if다음의 첫번째 수식인 Data1(countif(L>Var1,상위ma위연속n개봉) == 상위ma위연속n개봉) and //상위차트에서 ma위에 연속으로 n개봉 존재 부분이 의도한대로 나오지 않습니다. 제가 의도한 조건은 이동평균선 위에 연속한 n개의 봉이 있을 경우 인데, 실제로 시뮬레이션을 돌려보면 수식의 결과가 그렇게 나오지 않습니다. 어떤식으로 해야 오류가 수정될까요?