커뮤니티

문의합니다

프로필 이미지
하늘만큼11
2025-02-24 09:13:18
354
글번호 188456
답변완료
다중 조건을 이용하여 시스템트레이딩수식을 제작중입니다. 키움증권의 시그널메이커로는 문제없이 작동하는 수식이 예스랭귀지로 제작시 이상하게 매매타점이 형성되지 않습니다. var : yMACD(0), signal(0); yMACD = MACD(12, 26); //MACD signal = EMA(yMACD, 9); var : ySlowK(0), ySlowD(0); ySlowK = StochasticsK(12,5); // 스토캐스틱 K ySlowD = StochasticsD(12,5,5); // 스토캐스틱 D var : cond1(false), cond2(false); cond1 = crossup(yMACD, signal); cond2 = crossup(ySlowK, ySlowD); if cond1==true then begin buy("b1"); end; if cond2==true then begin buy("b2"); end; var : cond200(false); cond200 = (O-C)/C*100>=0.1 And C<O ; // 급락 캔들이 발생할 경우 청산 if cond200==true Then ExitLong("b1", Atlimit,close +- 0.0005, "b1"); end; if cond200==true Then ExitLong("b2", Atlimit,close +- 0.0005, "b2"); end; 기본프레임이 이런식으로 구성되어 있다고 할때 문제되는 문법이 있는지 알려주세요
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-02-24 13:38:30

안녕하세요 예스스탁입니다. 1 if 조건 then Begin 실행문 endl; end;는 begin으로 처리된 if문에만 사용하셔야 합니다. 2 청산명이 진입명과 같습니다. 신호의 명칭은 모두 다르게 지정하셔야 합니다. 3 var : yMACD(0), signal(0); yMACD = MACD(12, 26); //MACD signal = EMA(yMACD, 9); var : ySlowK(0), ySlowD(0); ySlowK = StochasticsK(12,5); // 스토캐스틱 K ySlowD = StochasticsD(12,5,5); // 스토캐스틱 D var : cond1(false), cond2(false); cond1 = crossup(yMACD, signal); cond2 = crossup(ySlowK, ySlowD); if cond1==true then begin buy("b1"); End; if cond2==true then begin buy("b2"); End; var : cond200(false); cond200 = (O-C)/C*100>=0.1 And C<O ; // 급락 캔들이 발생할 경우 청산 if cond200==true Then ExitLong("bx1", Atlimit,close + 0.0005, "b1"); if cond200==true Then ExitLong("bx2", Atlimit,close + 0.0005, "b2"); 즐거운 하루되세요 > 하늘만큼11 님이 쓴 글입니다. > 제목 : 문의합니다 > 다중 조건을 이용하여 시스템트레이딩수식을 제작중입니다. 키움증권의 시그널메이커로는 문제없이 작동하는 수식이 예스랭귀지로 제작시 이상하게 매매타점이 형성되지 않습니다. var : yMACD(0), signal(0); yMACD = MACD(12, 26); //MACD signal = EMA(yMACD, 9); var : ySlowK(0), ySlowD(0); ySlowK = StochasticsK(12,5); // 스토캐스틱 K ySlowD = StochasticsD(12,5,5); // 스토캐스틱 D var : cond1(false), cond2(false); cond1 = crossup(yMACD, signal); cond2 = crossup(ySlowK, ySlowD); if cond1==true then begin buy("b1"); end; if cond2==true then begin buy("b2"); end; var : cond200(false); cond200 = (O-C)/C*100>=0.1 And C<O ; // 급락 캔들이 발생할 경우 청산 if cond200==true Then ExitLong("b1", Atlimit,close +- 0.0005, "b1"); end; if cond200==true Then ExitLong("b2", Atlimit,close +- 0.0005, "b2"); end; 기본프레임이 이런식으로 구성되어 있다고 할때 문제되는 문법이 있는지 알려주세요