커뮤니티

수식 작성 문의드립니다.

프로필 이미지
저임요
2014-09-22 12:46:56
151
글번호 78719
답변완료
안녕하세요! 예전에 38058에서 문의드렸던 수식 관련해서 전략이 나빠 수정 중인데 잘 안 되서 문의드립니다. 전략은 이평 돌파 후에 MACD 0선 아래에서 골든크로스시 매수하려는 전략입니다. 그런데 이평 돌파 값(True)이 수식을 한 번(한 봉) 실행한 후에는 False값으로 변환되어 MACD 0선 아래에서 골든크로스 시에도 매수를 하지 못합니다. 이 이평 돌파 값을 유지하는 방법이 있는지 궁금합니다.(즉 아래에서 jogeon3값이 유지되지 못함) 또는 유지가 안 된다면, 이러한 전략을 수식으로 표현하기 위해서 어떤 방법이 있을까요? 아래는 제가 수정한 수식입니다. 그럼 좋은 하루 되십시요. 감사합니다. 추가 : 카페에서 '한 권으로 끝내는 시스템 트레이딩'이라는 책자가 발간되었다고 나오는데요, 교보문고 yes24에 없습니다. ㅠㅠ 그 책은 어디서 살 수 있을까요? --------------- 수식 -------------------------------------------------------- input : P1(12),P2(26),P3(9),n(2); input : Period1(20); var : jogeon1(False), jogeon2(False); input : Period11(5), Period12(27); var : jogeon3(False); // ////////////////////////////////////////////////////////// var1 = MACD(p1,p2); var2 = ema(var1,P3); var3 = var1-var2; // /* value1 = MA(Close,Period1); value2 = MA(Close,Period1); Condition1 = value1[2] > value1[1] and value1[1] < value1; // 반전 jogeon1 = Condition1; Condition2 = value2 > Value2[1]; // 추세 jogeon2 = Condition2; */ Value3 = MA(Close, Period11); Value4 = MA(Close, Period12); Condition3 = CrossUp(value3, Value4); // 상향돌파 jogeon3 = Condition3; if jogeon3 == True Then MessageLog("위에서 조건 3 : %s", jogeon3); // if var1 < 0 and crossup(var1,var2) Then { MessageLog("아래에서 조건 3 : %s", jogeon3); if jogeon3 == True Then { buy(); jogeon3 = false; // MessageLog("2봉전 : %f, 1봉전 : %f, 0봉전 : %f", value1[2], value1[1], value1[0]); } } if var1 > 0 and CrossDown(var1,var2) Then sell();
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-09-22 15:06:49

안녕하세요 예스스탁입니다. 1. Condition3 = CrossUp(value3, Value4); 작성하신 내용 중에 위내용은 골든크로스가 발생&#46125; 봉만 true입니다. 위 내용을 골든크로스가 발생되어 있는 구간의 의미로 아래와 같이 수정하시면 됩니다. Condition3 = value3 > Value4; 수정하시면 MACD가 0 이하에서 골든크로스가 나고 이평도 골든크로스 구간이면 매수하는 식이 됩니다. input : P1(12),P2(26),P3(9),n(2); input : Period1(20); var : jogeon1(False), jogeon2(False); input : Period11(5), Period12(27); var : jogeon3(False); // ////////////////////////////////////////////////////////// var1 = MACD(p1,p2); var2 = ema(var1,P3); var3 = var1-var2; // /* value1 = MA(Close,Period1); value2 = MA(Close,Period1); Condition1 = value1[2] > value1[1] and value1[1] < value1; // 반전 jogeon1 = Condition1; Condition2 = value2 > Value2[1]; // 추세 jogeon2 = Condition2; */ Value3 = MA(Close, Period11); Value4 = MA(Close, Period12); Condition3 = value3 > Value4; // 상향돌파 jogeon3 = Condition3; if jogeon3 == True Then MessageLog("위에서 조건 3 : %s", jogeon3); // if var1 < 0 and crossup(var1,var2) Then { MessageLog("아래에서 조건 3 : %s", jogeon3); if jogeon3 == True Then { buy(); jogeon3 = false; // MessageLog("2봉전 : %f, 1봉전 : %f, 0봉전 : %f", value1[2], value1[1], value1[0]); } } if var1 > 0 and CrossDown(var1,var2) Then sell(); 2. 해당 책은 시중에서 파는 책은 아닙니다. 증권사 지점에 요청하시면 받으실수 있습니다. 시스메틱 카페 회원이시면 하이투자증권 교대역 지점으로 연락하시면 됩니다. 즐거운 하루되세요 > 저임요 님이 쓴 글입니다. > 제목 : 수식 작성 문의드립니다. > 안녕하세요! 예전에 38058에서 문의드렸던 수식 관련해서 전략이 나빠 수정 중인데 잘 안 되서 문의드립니다. 전략은 이평 돌파 후에 MACD 0선 아래에서 골든크로스시 매수하려는 전략입니다. 그런데 이평 돌파 값(True)이 수식을 한 번(한 봉) 실행한 후에는 False값으로 변환되어 MACD 0선 아래에서 골든크로스 시에도 매수를 하지 못합니다. 이 이평 돌파 값을 유지하는 방법이 있는지 궁금합니다.(즉 아래에서 jogeon3값이 유지되지 못함) 또는 유지가 안 된다면, 이러한 전략을 수식으로 표현하기 위해서 어떤 방법이 있을까요? 아래는 제가 수정한 수식입니다. 그럼 좋은 하루 되십시요. 감사합니다. 추가 : 카페에서 '한 권으로 끝내는 시스템 트레이딩'이라는 책자가 발간되었다고 나오는데요, 교보문고 yes24에 없습니다. ㅠㅠ 그 책은 어디서 살 수 있을까요? --------------- 수식 -------------------------------------------------------- input : P1(12),P2(26),P3(9),n(2); input : Period1(20); var : jogeon1(False), jogeon2(False); input : Period11(5), Period12(27); var : jogeon3(False); // ////////////////////////////////////////////////////////// var1 = MACD(p1,p2); var2 = ema(var1,P3); var3 = var1-var2; // /* value1 = MA(Close,Period1); value2 = MA(Close,Period1); Condition1 = value1[2] > value1[1] and value1[1] < value1; // 반전 jogeon1 = Condition1; Condition2 = value2 > Value2[1]; // 추세 jogeon2 = Condition2; */ Value3 = MA(Close, Period11); Value4 = MA(Close, Period12); Condition3 = CrossUp(value3, Value4); // 상향돌파 jogeon3 = Condition3; if jogeon3 == True Then MessageLog("위에서 조건 3 : %s", jogeon3); // if var1 < 0 and crossup(var1,var2) Then { MessageLog("아래에서 조건 3 : %s", jogeon3); if jogeon3 == True Then { buy(); jogeon3 = false; // MessageLog("2봉전 : %f, 1봉전 : %f, 0봉전 : %f", value1[2], value1[1], value1[0]); } } if var1 > 0 and CrossDown(var1,var2) Then sell();