커뮤니티

수식문의

프로필 이미지
아이스탁
2011-08-18 17:19:51
724
글번호 42033
답변완료
[일]봉에 이런 명령문을 실행하려 하나 조건을 하나 더 달고자 합니다. Input : Period(9) ; Var : value(0); value = CCI(Period); # 매수/매도청산 If CrossUp(value, 0) Then { Buy(); } '[주]봉상 MACD 오실레이터 값이 직전봉보다 절대값이 작을경우' (예 : 직전봉 200, 현재봉 100 => True 직전봉 200, 현재봉 300 => False 직전봉 200, 현재봉 -300 => False 직전봉 -200, 현재봉 -100 => True 직전봉 -200, 현재봉 -300 => False 직전봉 -200, 현재봉 100 => True ) -------------------------------------------------------- 위 예제는 [일]봉에 시스템 적용시 [주]봉 MACD osc 적용인데 [5분]봉일때 [30분]봉에 적용시 [30분]봉일때 [일] 봉에 적용시 도 함께 부탁드립니다. 감사합니다. ^^
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2011-08-19 10:26:27

안녕하세요 예스스탁입니다. 1. 주봉 MACD오실레이터 추가 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); 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; Input : CCIPeriod(9) ; Var : value(0); value = CCI(CCIPeriod); # 매수/매도청산 If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then { Buy(); } 2, 5분봉에서 30분봉 MACD오실레이터 Input : Atime(30),Period1(12),Period2(26),Period3(9); Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreJISU3(0); var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMACDOsc = MACDOsc[1]; if Dindex1 >= 2 Then PreJISU3 = MACDVal[1]; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); } MACDVal = JiSu1-Jisu2; if DINDEX1 <= 2 then { JISU3 = Jisu1-jisu2; } else{ JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3); } MACDsig = Jisu3; MACDOsc = MACDVal-MACDsig; Input : CCIPeriod(9) ; Var : value(0); value = CCI(CCIPeriod); # 매수/매도청산 If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then { Buy(); } 3.30분에서 일봉의 MACD오실레이터 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); if date != date[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; Input : CCIPeriod(9) ; Var : value(0); value = CCI(CCIPeriod); # 매수/매도청산 If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then { Buy(); } 즐거운 하루되세요 > 도전목표달성 님이 쓴 글입니다. > 제목 : 수식문의 > [일]봉에 이런 명령문을 실행하려 하나 조건을 하나 더 달고자 합니다. Input : Period(9) ; Var : value(0); value = CCI(Period); # 매수/매도청산 If CrossUp(value, 0) Then { Buy(); } '[주]봉상 MACD 오실레이터 값이 직전봉보다 절대값이 작을경우' (예 : 직전봉 200, 현재봉 100 => True 직전봉 200, 현재봉 300 => False 직전봉 200, 현재봉 -300 => False 직전봉 -200, 현재봉 -100 => True 직전봉 -200, 현재봉 -300 => False 직전봉 -200, 현재봉 100 => True ) -------------------------------------------------------- 위 예제는 [일]봉에 시스템 적용시 [주]봉 MACD osc 적용인데 [5분]봉일때 [30분]봉에 적용시 [30분]봉일때 [일] 봉에 적용시 도 함께 부탁드립니다. 감사합니다. ^^
프로필 이미지

아이스탁

2011-08-19 12:03:39

대단히 감사합니다 ^^ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 > 안녕하세요 예스스탁입니다. 1. 주봉 MACD오실레이터 추가 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); 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; Input : CCIPeriod(9) ; Var : value(0); value = CCI(CCIPeriod); # 매수/매도청산 If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then { Buy(); } 2, 5분봉에서 30분봉 MACD오실레이터 Input : Atime(30),Period1(12),Period2(26),Period3(9); Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreJISU3(0); var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMACDOsc = MACDOsc[1]; if Dindex1 >= 2 Then PreJISU3 = MACDVal[1]; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); } MACDVal = JiSu1-Jisu2; if DINDEX1 <= 2 then { JISU3 = Jisu1-jisu2; } else{ JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3); } MACDsig = Jisu3; MACDOsc = MACDVal-MACDsig; Input : CCIPeriod(9) ; Var : value(0); value = CCI(CCIPeriod); # 매수/매도청산 If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then { Buy(); } 3.30분에서 일봉의 MACD오실레이터 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); if date != date[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; Input : CCIPeriod(9) ; Var : value(0); value = CCI(CCIPeriod); # 매수/매도청산 If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then { Buy(); } 즐거운 하루되세요 > 도전목표달성 님이 쓴 글입니다. > 제목 : 수식문의 > [일]봉에 이런 명령문을 실행하려 하나 조건을 하나 더 달고자 합니다. Input : Period(9) ; Var : value(0); value = CCI(Period); # 매수/매도청산 If CrossUp(value, 0) Then { Buy(); } '[주]봉상 MACD 오실레이터 값이 직전봉보다 절대값이 작을경우' (예 : 직전봉 200, 현재봉 100 => True 직전봉 200, 현재봉 300 => False 직전봉 200, 현재봉 -300 => False 직전봉 -200, 현재봉 -100 => True 직전봉 -200, 현재봉 -300 => False 직전봉 -200, 현재봉 100 => True ) -------------------------------------------------------- 위 예제는 [일]봉에 시스템 적용시 [주]봉 MACD osc 적용인데 [5분]봉일때 [30분]봉에 적용시 [30분]봉일때 [일] 봉에 적용시 도 함께 부탁드립니다. 감사합니다. ^^