移動平均転換ダイバージェンス指標取引戦略


作成日: 2023-09-19 21:16:26 最終変更日: 2023-09-19 21:16:26
コピー: 0 クリック数: 657
1
フォロー
1617
フォロワー

概要

この戦略は平均線変換-散布指標 ((CMO)) による取引判断を行う.CMO絶対値は価格散布の程度を表し,戦略はCMOの3周期絶対値の平均値で超買超売を判断し,典型的な震動指標取引戦略に属している.

戦略原則

この戦略は主に以下の論理を適用します.

  1. CMO指数の3つの異なる周期の絶対値を計算する
  2. 3周期CMO指数の絶対値の平均を取ると
  3. 平均値が上限値より高いとき,空券を空券にする
  4. 平均値が下限値より低いとき,もっと見る,もっとやる
  5. CMO指数が正常に戻ると平衡

CMO指数は,価格変化の動力を反映する.その絶対値の大きさは,価格の散乱度を表し,一定の幅を超えると,超買超売領域に入る.この戦略は,CMOのこの特性を利用し,多周期平均値を曲線を平らにするために使用し,超買超売状況を判断し,典型的な震動取引戦略に属している.

戦略的優位性

  • CMO指数を使って 過剰買いと過剰販売を判断する
  • 三周期平均値は平らな曲線を作り,誤信号を回避する
  • CMOの理論では,過剰購入や過剰販売の判断に強い根拠があります.
  • 市場変化に対応するカスタマイズ可能なパラメータの値
  • 簡単に実行できる逆転策

戦略的リスクと対応

  • CMO指数は誤った信号を発している
  • パラメータの値は,継続的にテストし,最適化する必要があります.
  • トレンドの状況下での継続的な過剰買いと過剰販売は損失を招く可能性がある.

どう対処するか?

  1. トレンド指数で逆トレンドを避ける
  2. パラメータの最適化,指標の感度向上
  3. モバイル・ストップを導入し,単一損失を制御する

戦略最適化の方向性

この戦略は以下の側面から拡張できます.

  1. 取引量指標の確認を増やし,トレンドの逆転における偽の突破を避ける
  2. モバイル・ストップ戦略を統合し,リスク管理を最適化
  3. 機械学習などの方法によるパラメータの自動最適化
  4. 波動率指数とポジション規模調整
  5. 他の戦略を組み合わせ,リスクを分散し,全体的なリターン率を向上させる

要約する

この戦略は,CMOが超買超売を判断して反転取引を行うために利用し,多周期平均を採用したため,曲線を効果的に平らげ,誤信号を避けることができる.CMO指数は,その理論的基盤が安定し,価格の分散状態を信頼して判断することができる.パラメータ最適化,止損戦略などの拡張により,より安定した震動指数取引戦略に最適化することができる.

ストラテジーソースコード
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-14 07:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////7////////////
//  Copyright by HPotter v1.0 21/02/2017
//    This indicator plots the absolute value of CMO averaged over three 
//    different lengths. This indicator plots a classical-looking oscillator, 
//    which is really an averaged value based on three different periods.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="CMOabsav", shorttitle="CMOabsav")
Length1 = input(5, minval=1)
Length2 = input(10, minval=1)
Length3 = input(20, minval=1)
TopBand = input(58, minval=1)
LowBand = input(5, minval=0)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=hline.style_dashed)
hline(TopBand, color=purple, linestyle=hline.style_solid)
hline(LowBand, color=red, linestyle=hline.style_solid)
xMom = close - close[1]
xMomabs = abs(close - close[1])
nSum1 = sum(xMom, Length1)
nSumAbs1 = sum(xMomabs, Length1)
nSum2 = sum(xMom, Length2)
nSumAbs2 = sum(xMomabs, Length2)
nSum3 = sum(xMom, Length3)
nSumAbs3 = sum(xMomabs, Length3)
nRes = abs(100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3)
pos = iff(nRes > TopBand, 1,
	     iff(nRes < LowBand, -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="CMOabsav")