▒ 목표 : 사용자정의 true/fasle 변수와 MRO 함수 사용하기
▒ 내용 : 이 전략은 최근 4개의 Bar내에서 0 이하인 때가 없이 모멘텀이 0을 상향 돌파하면 신규 매수,
최근 4개의 Bar내에서 0 이상인 때가 없이 모멘텀이 0을 하향돌파하면 신규 매도,
2개 Bar 연속 모멘텀이 감소하면 매수 청산,
2개 Bar 연속 모멘텀이 증가하면 매도 청산합니다.
▶ #25 Momentum Cross란 이름으로 새로운 전략을 생성합니다.
▶ 우선 상기에서 설명한대로 청산전략을 작성합니다.
If Mom < Mom[1] and Mom[1] < Mom[2] then
Sell next bar at market;
If Mom >Mom[1] and Mom[1] > Mpm[2] then
BuyToCover next bar at market;
첫번째 문장은 현재 bar의 모멘텀이 1bar 전의 모멘텀보다 작고, 1bar 전의 모멘텀이 2bar 전의 모멘텀보다 작으면
매수포지션을 청산한다는 의미입니다.
다른 말로, 두 개 bar 연속해서 모멘텀이 감소할 때 매수청산이 발생합니다.
두번째 문장은 현재 bar의 모멘텀이 1bar 전의 모멘텀보다 크고, 1bar 전의 모멘텀이 2bar 전의 모멘텀보다 크면
매도포지션을 청산한다는 의미입니다.
다른 말로, 두 개 bar 연속해서 모멘텀이 증가할 때 매도청산이 발생합니다.
▶ 이제 진입 명령어를 작성합니다. 상기 설명에 따라 두 개의 가능성이 생깁니다. 한쪽은 신규매수, 한쪽은 신규매도입니다.
신규 매수 (이하 BullCx) 하려면 모멘텀이 0을 상향돌파 해야 하고 최근 4개 bar내에 0 이하인 적이 없어야 합니다.
신규 매도 (이하 BearCx) 하려면 모멘텀이 0을 하향돌파 해야 하고 최근 4개 bar 내에 0 이상인 적이 없어야 합니다.
BullCx, BearCx, Mom에 대해 선언하고 배정한 변수와 함께
두 개의 진입문장을 아래와 같이 작성하고 이미 작성한 청산문장에 추가합니다.
또한, Mom변수레 배정된 Momentun 함수의 Length 파라미터를 input으로 선언하는 것이 유용할 것 같습니다.
Input : Length(10);
Vars : Mom(0), BullCx(false), BearCx(false);
Mom = Momentum (Close, Length);
BullCx = Mom crosses over 0;
BearCx = Mom crosses under 0;
If BullCx and MRO(BearCx, 4,1) = -1 then
Buy next bar at Close of this bar limit;
If BearCx and MRO(BullCx, 4,1) = -1 then
SellShort next bar at Close of this bar limit;
▶ 다시 한번 두 개의 진입문장과 MRO 함수에 대해 살펴보도록 하겠습니다.
첫번째 문장 :
If BullCx and MRO(BearCx, 4,1) = -1 then
Buy next bar at Close of this bar limit;
- BullCx가 true라는 것은 모멘텀이 0보다 크다는 것을 의미합니다.
- MRO가 -1이라는 것은 최근 4개 bar에서 BearCx가 발생하지 않았다는 것을 의미합니다.
두번쨰 문장 :
If BearCx and MRO(BullCx, 4,1) = -1 then
SellShort next bar at Close of this bar limit;
- BearCx가 true라는 것은 모멘텀이 0보다 작다는 것을 의미합니다.
- MRO가 -1이라는 것은 최근 4개 bar에서 BullCx가 발생하지 않았다는 것을 의미합니다.
▒ 내용 : 이 전략은 최근 4개의 Bar내에서 0 이하인 때가 없이 모멘텀이 0을 상향 돌파하면 신규 매수,
최근 4개의 Bar내에서 0 이상인 때가 없이 모멘텀이 0을 하향돌파하면 신규 매도,
2개 Bar 연속 모멘텀이 감소하면 매수 청산,
2개 Bar 연속 모멘텀이 증가하면 매도 청산합니다.
▶ #25 Momentum Cross란 이름으로 새로운 전략을 생성합니다.
▶ 우선 상기에서 설명한대로 청산전략을 작성합니다.
If Mom < Mom[1] and Mom[1] < Mom[2] then
Sell next bar at market;
If Mom >Mom[1] and Mom[1] > Mpm[2] then
BuyToCover next bar at market;
첫번째 문장은 현재 bar의 모멘텀이 1bar 전의 모멘텀보다 작고, 1bar 전의 모멘텀이 2bar 전의 모멘텀보다 작으면
매수포지션을 청산한다는 의미입니다.
다른 말로, 두 개 bar 연속해서 모멘텀이 감소할 때 매수청산이 발생합니다.
두번째 문장은 현재 bar의 모멘텀이 1bar 전의 모멘텀보다 크고, 1bar 전의 모멘텀이 2bar 전의 모멘텀보다 크면
매도포지션을 청산한다는 의미입니다.
다른 말로, 두 개 bar 연속해서 모멘텀이 증가할 때 매도청산이 발생합니다.
▶ 이제 진입 명령어를 작성합니다. 상기 설명에 따라 두 개의 가능성이 생깁니다. 한쪽은 신규매수, 한쪽은 신규매도입니다.
신규 매수 (이하 BullCx) 하려면 모멘텀이 0을 상향돌파 해야 하고 최근 4개 bar내에 0 이하인 적이 없어야 합니다.
신규 매도 (이하 BearCx) 하려면 모멘텀이 0을 하향돌파 해야 하고 최근 4개 bar 내에 0 이상인 적이 없어야 합니다.
BullCx, BearCx, Mom에 대해 선언하고 배정한 변수와 함께
두 개의 진입문장을 아래와 같이 작성하고 이미 작성한 청산문장에 추가합니다.
또한, Mom변수레 배정된 Momentun 함수의 Length 파라미터를 input으로 선언하는 것이 유용할 것 같습니다.
Input : Length(10);
Vars : Mom(0), BullCx(false), BearCx(false);
Mom = Momentum (Close, Length);
BullCx = Mom crosses over 0;
BearCx = Mom crosses under 0;
If BullCx and MRO(BearCx, 4,1) = -1 then
Buy next bar at Close of this bar limit;
If BearCx and MRO(BullCx, 4,1) = -1 then
SellShort next bar at Close of this bar limit;
▶ 다시 한번 두 개의 진입문장과 MRO 함수에 대해 살펴보도록 하겠습니다.
첫번째 문장 :
If BullCx and MRO(BearCx, 4,1) = -1 then
Buy next bar at Close of this bar limit;
- BullCx가 true라는 것은 모멘텀이 0보다 크다는 것을 의미합니다.
- MRO가 -1이라는 것은 최근 4개 bar에서 BearCx가 발생하지 않았다는 것을 의미합니다.
두번쨰 문장 :
If BearCx and MRO(BullCx, 4,1) = -1 then
SellShort next bar at Close of this bar limit;
- BearCx가 true라는 것은 모멘텀이 0보다 작다는 것을 의미합니다.
- MRO가 -1이라는 것은 최근 4개 bar에서 BullCx가 발생하지 않았다는 것을 의미합니다.