커뮤니티

수식 문의합니다.

프로필 이미지
으쌰
2012-05-28 18:58:46
378
글번호 51379
답변완료

첨부 이미지

[일]봉주기 매매를 하려 합니다. 조건1. 매수 매도 시점에 [주]봉주기 MACD오실레이터의 abs[절대값]이 직전값보다 작아야 한다. { 예 : 직전값 현재값 20 10 (True) 20 30 (False) -20 -10 (True) -20 -30 (False) } 주중에 주봉상 MACD값이 미완성이라도 주봉차트에서 보여지는 현재값을 이용하고 싶습니다. 조건2. 손익곡선에 채널을 그려 넣는데, 이 채널은 직전 30번의 매매 기간 동안 손익곡선의 최저점을 추적한다. (첨부그림 참조) 누적손익곡선이 최저점을 추적한 값 이상에서만 매매한다. (시스템상 Plot명령을 실행할 수 없는건 알고있습니다. 시스템상 구현여부가 중요합니다.) 시스템식 : if 조건1 and 조건2 then { if crossup(ma(c,5),ma(c,20)) then buy(); if crossdown(ma(c,5),ma(c,20)) then sell(); } 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-05-29 12:05:21

안녕하세요 예스스탁입니다. Input : Period1(12), Period2(26), Period3(9); Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0); Var : macdVal(0), preMacdVal(0), macdSig(0),macdOsc(0),PreMacdOsc(0); var : cnt(0); if (dayofweek(date) <= DayOfWeek(date[1]) and sdate > sdate[1]) then { PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMacdVal = macdSig[1]; PreMacdOsc = macdOsc[1]; } Ep1 = 2/(Period1+1); EP2 = 2/(Period2+1); EP3 = 2/(Period3+1); JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균 JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균 macdVal = JISU1 - JISU2; //macd macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal macdOsc = macdval-macdsig; var1 = abs(macdOsc); var2 = BarsSinceExit(1); var3 = BarsSinceEntry(30); value1 = NetProfit; for cnt = var2 to var3{ if NetProfit[cnt] < value1 Then value1 = NetProfit[cnt]; } if var1 < var1[1] and NetProfit > value1 then { if crossup(ma(c,5),ma(c,20)) then buy(); if crossdown(ma(c,5),ma(c,20)) then sell(); } 즐거운 하루되세요 > 으&#49968; 님이 쓴 글입니다. > 제목 : 수식 문의합니다. > [일]봉주기 매매를 하려 합니다. 조건1. 매수 매도 시점에 [주]봉주기 MACD오실레이터의 abs[절대값]이 직전값보다 작아야 한다. { 예 : 직전값 현재값 20 10 (True) 20 30 (False) -20 -10 (True) -20 -30 (False) } 주중에 주봉상 MACD값이 미완성이라도 주봉차트에서 보여지는 현재값을 이용하고 싶습니다. 조건2. 손익곡선에 채널을 그려 넣는데, 이 채널은 직전 30번의 매매 기간 동안 손익곡선의 최저점을 추적한다. (첨부그림 참조) 누적손익곡선이 최저점을 추적한 값 이상에서만 매매한다. (시스템상 Plot명령을 실행할 수 없는건 알고있습니다. 시스템상 구현여부가 중요합니다.) 시스템식 : if 조건1 and 조건2 then { if crossup(ma(c,5),ma(c,20)) then buy(); if crossdown(ma(c,5),ma(c,20)) then sell(); } 감사합니다.