커뮤니티

부탁드립니다

프로필 이미지
noriter
2013-04-17 14:05:53
153
글번호 62158
답변완료
Inputs: Length(10), ATRs(1.5), Pval(0.05); Variables: KUpper(0), BuySetup(False), BuyBase(0); Variables: KLower(0), SellSetup(False), SellBase(0); KUpper = KeltnerChannel(Close, Length, ATRs); KLower = KeltnerChannel(Close, Length, -ATRs); Condition1 = Crossup(Close, KUpper); Condition2 = CrossDown(Close, KLower); If MarketPosition() == 1 OR Close < MA(close, Length) Then BuySetup = False; Else If Condition1 Then Begin BuySetup = True; BuyBase = High; End; If MarketPosition() == -1 OR Close > MA(Close, Length) Then SellSetup = False; Else If Condition2 Then Begin SellSetup = True; SellBase = Low; End; //Description : Keltner Channel Long Entry If BuySetup Then Buy ("KC_LE", AtStop, BuyBase + Pval); //Description : Keltner Channel Short Entry If SellSetup Then Sell ("KC_SE", AtStop, SellBase - Pval); 위에 시스템식은 YL에서 제공하는 식인데 위에 식을 아래 예> 처럼 참조데이터에 데이터값을 가져와서 매매신호를 발생시키고 싶은데 어느부분을 고쳐야할지를 전혀 모르겠습니다. 예> Var : d2c(0,data2); d2c = data2(C); If CrossUp(d2c,1) Then { Buy("참조데이터신호"); } 어떻게 고쳐야 참조데이터에 위 로직으로 신호를 발생시킬수 있나요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-04-17 18:34:56

안녕하세요 예스스탁입니다. atstop이나 atlimit은 주종목의 현재가와만 비교하므로 참조데이터를 사용하는 식으로 변경하시면 해당 내용은 모두 봉완성시로만 작성가능합니다. Inputs: Length(10), ATRs(1.5), Pval(0.05); Variables: KUpper(0,data2), BuySetup(False,data2), BuyBase(0,data2); Variables: KLower(0,data2), SellSetup(False,data2), SellBase(0,data2); var : cond1(false,data2),cond2(false,data2); KUpper = data2(KeltnerChannel(Close, Length, ATRs)); KLower = data2(KeltnerChannel(Close, Length, -ATRs)); Cond1 = data2(Crossup(Close, KUpper)); Cond2 = data2( CrossDown(Close, KLower)); If MarketPosition() == 1 OR data2(Close < MA(close, Length)) Then BuySetup = False; Else If Cond1 Then Begin BuySetup = True; BuyBase = High; End; If MarketPosition() == -1 OR data2(Close > MA(Close, Length)) Then SellSetup = False; Else If Cond2 Then Begin SellSetup = True; SellBase = Low; End; //Description : Keltner Channel Long Entry If BuySetup and data2(H > BuyBase[1] + Pval[1]) Then Buy ("KC_LE" ); //Description : Keltner Channel Short Entry If SellSetup and data2(L < SellBase[1] - Pval[1]) Then Sell ("KC_SE"); 즐거운 하루되세요 > noriter 님이 쓴 글입니다. > 제목 : 부탁드립니다 > Inputs: Length(10), ATRs(1.5), Pval(0.05); Variables: KUpper(0), BuySetup(False), BuyBase(0); Variables: KLower(0), SellSetup(False), SellBase(0); KUpper = KeltnerChannel(Close, Length, ATRs); KLower = KeltnerChannel(Close, Length, -ATRs); Condition1 = Crossup(Close, KUpper); Condition2 = CrossDown(Close, KLower); If MarketPosition() == 1 OR Close < MA(close, Length) Then BuySetup = False; Else If Condition1 Then Begin BuySetup = True; BuyBase = High; End; If MarketPosition() == -1 OR Close > MA(Close, Length) Then SellSetup = False; Else If Condition2 Then Begin SellSetup = True; SellBase = Low; End; //Description : Keltner Channel Long Entry If BuySetup Then Buy ("KC_LE", AtStop, BuyBase + Pval); //Description : Keltner Channel Short Entry If SellSetup Then Sell ("KC_SE", AtStop, SellBase - Pval); 위에 시스템식은 YL에서 제공하는 식인데 위에 식을 아래 예> 처럼 참조데이터에 데이터값을 가져와서 매매신호를 발생시키고 싶은데 어느부분을 고쳐야할지를 전혀 모르겠습니다. 예> Var : d2c(0,data2); d2c = data2(C); If CrossUp(d2c,1) Then { Buy("참조데이터신호"); } 어떻게 고쳐야 참조데이터에 위 로직으로 신호를 발생시킬수 있나요?