Search
Duplicate
📝

Impulse System

#공통 전략
알랙산더 앨더의 책 'come into my trading room)'에 소개된 내용입니다. impuls시스템은 두 가지 지표를 활용하는데, 하나는 지수이동평균선(13)과 Macd(12,26,9) 오실레이터 입니다. 지수이평으로는 추세를 판단하고 Macd오실레이터로는 모멘텀을 판단합니다. impuls시스템을 이용할 때 두 개 이상의 시간 스케일에서 분석하라고 합니다. 일봉차트이면 주봉과 함께 분석하고 5분봉이면 25분이나 30분의 추세를 분석합니다. 아래는 일봉에 적용하는 시스템입니다.
[시스템 전략]
매수진입 주봉 지수이평(13)과 MACD오실레이터(12,26,9)가 모두 전주보다 상승 일봉 지수이평(13)과 MACD오실레이터(12,26,9)가 모두 전일보다 하락 매수청산 일봉 지수이평(13)이나 MACD오실레이터(12,26,9)가 전일보다 하락
매도진입 주봉 지수이평(13)과 MACD오실레이터(12,26,9)가 모두 전주보다 하락 일봉 지수이평(13)과 MACD오실레이터(12,26,9)가 모두 전일보다 하락
매도청산
일봉 지수이평(13)이나 MACD오실레이터(12,26,9)가 전일보다 상승
//일봉차트에서 주봉의 지수이평과 MACD오실레이터를 계산해서 신호가 발생합니다. //지수이평계열은 과거봉수에 따라 현재값이 영향을 받으므로 //차트에 최대한 많은 봉을 조회하고 적용하셔야 합니다. Input : Period(13),short(12),long(26),sig(9); Var : Didx(0); Var : wEP(0),wEP1(0),wEP2(0),wEP3(0); var : weekema(0),preweekema(0); Var : wJISU1(0),wJISU2(0),PrewJISU1(0),PrewJISU2(0); Var : wMACDV(0),wMACDS(0),wMACDo(0); Var : PrewMACDV(0),PrewMACDS(0),PrewMACDo(0); var : Emav(0),MACDO(0); var : Bcond(False),Scond(False); //지수이평 평활계수 wEP = 2/(Period+1); // MACD에 사용할 지수이평 평활계수 wEP1 = 2/(short+1); wEP2 = 2/(long+1); wEP3 = 2/(sig+1); //새로운주시작 if DayOfWeek(Bdate) <= DayOfWeek(Bdate[1]) and Bdate != Bdate[1] Then { Didx = Didx + 1; Preweekema = weekema[1]; PrewJISU1 = wJISU1[1]; PrewJISU2 = wJISU2[1]; PrewMACDV = wMACDV[1]; PrewMACDS = wMACDS[1]; PrewMACDO = wMACDO[1]; } if Didx <= 1 then { weekema = c; wJISU1 = C; wJISU2 = C; wMACDV = wJISU1-wJISU2; wMACDS = wMACDV; wMACDO = wMACDV-wMACDS; } else { weekema = C * wEP + Preweekema * (1-wEP); ; wJISU1 = C * wEP1 + PrewJISU1 * (1-wEP1); wJISU2 = C * wEP2 + PrewJISU2 * (1-wEP2); wMACDV = wJISU1-wJISU2; wMACDS = wMACDV * wEP3 + PrewMACDS * (1-wEP3); wMACDO = wMACDV-wMACDS; } Emav = Ema(C,Period); MACDO = MACD_OSC(short,long,sig); # 매수진입 //주봉과 일봉 지수이평과 MACD오실레이터가 동시상승이면 Bcond는 true 아니면 false Bcond = weekema > Preweekema and wMACDO > PrewMACDO and emav > emav[1] and MACDO > MACDO[1]; //주봉과 일봉 지수이평과 MACD오실레이터가 동시하락이면 Scond는 true 아니면 false Scond = weekema < Preweekema and wMACDO < PrewMACDO and emav < emav[1] and MACDO < MACDO[1]; //Bcond가 False에서 true로 변경되면 매수진입 If Bcond == true and Bcond[1] == False Then buy(); //Scond가 False에서 true로 변경되면 매도진입 If Scond == true and Scond[1] == False Then Sell(); If weekema < Preweekema and wMACDO < PrewMACDO and emav < emav[1] and MACDO < MACDO[1] Then Sell();
JavaScript
복사