
この戦略は,CMOとWMAに基づく動量取引戦略と呼ばれる.この戦略は,Chande Momentum Oscillator (CMO) とその加重移動平均 (WMA) を使って取引信号を構築する.その核心思想は,CMOがWMAを上ると多し,下ると空にするというものである.同時に,逆転取引の選択肢も考慮する.
この戦略の核心指標はCMOである。CMOはRSIなどの他の動向指標と密接に関係しているが,独特なところもある。CMOは価格変化のモメンタムを直接測定する。その計算は,原始の平ら化されていないデータに基づいているので,短期間の極端な価格変化を反映することができる。CMOの数値範囲は+100から-100の間を固定しているので,異なる株の絶対的なモメンタムの大きさを比較することが便利である。
この戦略は,まず,1日の close 価格の変化 abs ((close - close) を計算します.[1]) は原始momentum xMom。 そして,xMomのLength日SMAを計算し,xSMA_mom。 そして,Length日価格変化 xMomLengthを計算し,close - close[Length]。最終CMO値はxMomLengthをxSMA_momで割って100倍する。そのCMOはWMA ((パラメータLengthWMA) によって平らなされる後にCMO xWMACMO。戦略信号は:CMOが上を穿 (下を穿) するとき,そのWMAは多を (空) する。
この戦略の最大の利点は,価格トレンドにおける動量特性を捉えることである.CMOの有界設計により,動量変化をより直接に反映できる.SMAと比べて,WMAは短期的なノイズをより平滑にすることができる.したがって,この戦略は,中長期トレンドのエントリーポイントを効果的に識別することができる.また,単一の指標と比較して,CMOとWMAを組み合わせて使用することは,安定性を高める.
この戦略の最大のリスクは,頻繁な取引がもたらす滑り込みコストである.CMOとWMAは,短期的なパラメータであり,過度に敏感で,無意味な反転を繰り返し発生する可能性がある.これは,品種の変動が大きい場合に特に深刻である.さらに,固定パラメータは,市場環境の変化に適応できない.
CMOとWMAのパラメータを自己適応のパラメータに最適化して動的に調整できるように導入することも考えられます.また,無意味な取引を減らすためにフィルタリング条件を追加することも考えられます.もちろん,組み合わせによる品種変動の減少も選択肢です.
この戦略は以下の点で最適化できます.
CMOパラメータの自適化メカニズムを追加する.
WMAパラメータの自己適応メカニズムの追加. 波動性の変化に合わせて平滑効果;
フィルタリング条件の追加,例えばボラティリティ・インデックスの導入などで,制御は反転しない.
安定性を高めるために,他のインディクタとの組み合わせを検討する.
損失停止メカニズムを最適化 ダイナミックな損失停止ラインを設定し,単輪損失を積極的に制御する
この戦略は,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")