CMOとWMAをベースにしたモメンタム・トレード戦略

作者: リン・ハーンチャオチャン, 日付: 2023-11-28 16:42:54
タグ:

img

概要

この戦略は,CMOとWMAをベースとしたモメンタム・トレーディング・ストラテジー (Momentum Trading Strategy) と呼ばれる.この戦略は,チャンド・モメンタム・オシレーター (CMO) とその重量移動平均 (WMA) を利用して取引信号を構築する.コアアイデアは,CMOがWMAを超えるとロング,下を横切るとショートである.また,逆取引のオプションも考慮する.

戦略の論理

この戦略の核心指標はCMOである.CMOは,RSIのような他のモメンタム指標と密接に関連しているが,独自の特性もある.CMOは直接価格変化のモメンタムを測定する.その計算は,原始の未滑らなデータに基づいているため,極端な短期価格変化を反映している.CMO値は+100から-100まで,証券の絶対的なモメンタム強さを比較するのが便利である.

戦略は,まず1日間の価格変動 abs ((close - close[1]) を元のモメンタム xMomとして計算する.その後,xSMA_momとして表記される長日間のxMomのSMAを計算する.その後,長日間のxMomLength,すなわち近 - 近[長さ]における価格変化を計算する.最後に,CMOはxMomLengthをxSMA_momで割って100で掛けると計算される.このCMOは,WMA (パラメータ LengthWMA) によって滑らかにしてxWMACMOを導きます.CMOがWMAを超えたとき,取引信号は長 (短) になる.

利点

この戦略の最大の利点は,価格動向内のモメンタム特性を把握することである.CMOの境界設計はモメンタム変化をより直接的に反映している.SMAと比較して,WMAは短期的なノイズをよりよく滑らかにする.したがって,この戦略は,中長期のトレンド内のエントリーポイントを効果的に特定することができる.さらに,CMOとWMAの組み合わせは,単一の指標よりもより良い安定性を提供します.

リスク

この戦略の最大のリスクは,スリッパージコストの増加につながる高い取引頻度である.CMOとWMAの両方には短期的なパラメータがあり,過剰な無意味なウィップソーを引き起こす可能性があります.これは,取引車両が大きな変動がある場合に特に深刻です.また,固定パラメータは変化する市場環境に適応することができません.

CMOとWMAパラメータの適応最適化を導入することを検討し,動的に調整できるようにすることができます.不要な取引を減らすためにフィルター条件を追加することはもう1つのオプションです.ポートフォリオの多様化による波動性を低下させることも役立ちます.

改善の方向性

戦略は次の側面から強化される:

  1. CMO パラメータメカニズムを追加し,異なる変動レジムの最適なパラメータを見つけます.

  2. 調整可能なWMAパラメータメカニズムを追加し,その順に滑らかな効果が変化します.

  3. 波動指数のようなフィルター条件を追加して 意味のないウィップソウを制御します

  4. 安定性を高めるため,他の指標と組み合わせることを検討する.

  5. ストップ損失メカニズムを最適化する. ダイナミックストップ損失ラインを設定して,単回戦損失を積極的に制御する.

結論

この戦略は,CMOとWMAに基づいてシンプルで効果的なトレンドフォローを実現する.その利点は価格の勢力の特徴を明確に把握することにある.しかし,ポジションを開設した後,利益保持能力にもいくつかの弱点がある.パラメータチューニングとコンボの両方が安定性を大幅に改善することができます.全体的に,この戦略には改善の余地と価値が豊富です.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/02/2017
//    This indicator plots Chandre Momentum Oscillator and its WMA on the 
//    same chart. This indicator plots the absolute value of CMO.
//    The CMO is closely related to, yet unique from, other momentum oriented 
//    indicators such as Relative Strength Index, Stochastic, Rate-of-Change, 
//    etc. It is most closely related to Welles Wilder?s RSI, yet it differs 
//    in several ways:
//    - It uses data for both up days and down days in the numerator, thereby 
//        directly measuring momentum;
//    - The calculations are applied on unsmoothed data. Therefore, short-term 
//        extreme movements in price are not hidden. Once calculated, smoothing 
//        can be applied to the CMO, if desired;
//    - The scale is bounded between +100 and -100, thereby allowing you to clearly 
//        see changes in net momentum using the 0 level. The bounded scale also allows 
//        you to conveniently compare values across different securities.
////////////////////////////////////////////////////////////
strategy(title="CMO & WMA", shorttitle="CMO & WMA")
Length = input(9, minval=1)
LengthWMA = input(9, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
xWMACMO = wma(nRes, LengthWMA)
pos = iff(nRes > xWMACMO, 1,
	   iff(nRes <= xWMACMO, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
         iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue)
plot(nRes, color=blue, title="CMO")
plot(xWMACMO, color=red, title="WMA")

もっと