移動平均方向逆転の取引戦略

作者: リン・ハーンチャオチャン開催日:2023年9月28日15時50分01秒
タグ:

概要

移動平均方向逆転取引戦略は,移動平均が数本のキャンドルで連続して上下を表示するときにトレンド逆転を判断する戦略である.この戦略は,移動平均の方向を判断することによって,長または短を保持する取引機会を決定する.

戦略の論理

移動平均回転方向の取引戦略の基本的な論理は,

  1. 選択した移動平均を計算します. 単純な移動平均 (SMA),指数的な移動平均 (EMA),重度の移動平均 (WMA),または線形回帰平均ができます.

  2. 現在の期間の移動平均値と前の期間の移動平均値の間のサイズ関係判断します.現在の移動平均値が前期値よりも高い場合は1,そうでなければ0を代入します.

  3. 連続した上昇期と減少期の数を記録する.当期移動平均が前期よりも高い場合,連続した上昇期 + 1 と連続した減少期がゼロにクリアされる.当期移動平均が前期より低い場合,連続した減少期 + 1 と連続した上昇期がゼロにクリアされる.

  4. 連続した上昇または減少周期の数がユーザーによって定義された値を超えると,対応する長または短い操作を行う.

  5. 同時に,キャンドルスタイクバーと背景の色を色付けることで 傾向の方向の変化を視覚的に表示できます

  6. 移動平均の変化曲線を選択的に描画して,折りたたみの点をマークします.

この戦略は,複数の連続したキャンドルスタイルの移動平均の方向を数え,単一のキャンドルスタイルの代わりに,連続したロングまたはショートホールディングの期間によって取引を行うことで,トレンドを判断する.これは取引へのショックの影響を効果的にフィルタリングすることができます.

利点

移動平均の逆方向の取引戦略には以下の利点があります.

  1. 動向平均値を使って 傾向の方向性を決定すれば 市場の騒音を効果的にフィルターできます

  2. 傾向の逆転のタイミングを決定し,取引リスクを軽減するために,一定の期間における移動平均の方向の変化を統計的に表す.

  3. 異なる品種と市場状況に適応するために,調整可能な移動平均パラメータと統計期間のパラメータ.

  4. カラーリングは視覚的支援として 傾向の方向の変化を直感的に表示します

  5. 異なる種類の移動平均値を選択する柔軟性.

  6. 移動平均変化曲線を描くと,逆転が起こるかどうかを明確に観察できます.

  7. シンプルで明快なルール 分かりやすく実行し 初心者にも適しています

リスク

移動平均の逆方向の取引戦略には,いくつかのリスクもあります.

  1. 移動平均値の遅延そのものが 曲線点のタイミングを左右します

  2. 統計期間のため 長期・短期間の決定が遅れている場合 早く取り戻す機会を逃す可能性があります

  3. 継続的なサイクル設定が長すぎると 傾向を見逃し,短すぎると 罠にかかったりします.

  4. 振動する市場では多くのショート・トレード・シグナルが発生する可能性があります.

  5. 移動平均の方向だけに頼るだけでは,実際のトレンド逆転を完全に決定することはできません.

  6. 市場が劇的に変化すると 移動平均指標自体も急速に変化し 誤った信号を生む可能性が高くなります

  7. 移動平均のパラメータの選択の合理性は考慮されなければならない.そうでなければ失敗する.

解決策:

  1. 適正に移動平均周期を短縮して感受性を向上させる.

  2. 他の指標を使ってシグナルをフィルタリングし,トレンド逆転を確認します.

  3. 反応速度と安定性のバランスを見つけるために統計サイクルのパラメータを最適化する.

  4. 損失を制御するためのヘッジのストップ損失範囲を拡大する.

  5. 移動平均の複数の組み合わせを使用して精度を向上させる.

オプティマイゼーションの方向性

移動平均の逆方向の取引戦略は,次の側面で最適化することができます:

  1. 移動平均のパラメータを最適化し,異なる長さの期間における移動平均をテストし,最良のパラメータを見つけます.SMA,EMA,WMAの組み合わせを試すことができます.

  2. 信号の信頼性を向上させるため,RSIやKDなどの他の補助指標を組み込む.

  3. 統計的連続期間のパラメータを最適化して,可能な限り誤った信号をフィルタリングしながら,傾向の逆転を反映することを確保する.

  4. 単一の取引損失を制御するためにストップ・ロスのメカニズムを追加します.

  5. パラメータ最適化の結果を異なる品種でテストし,異なる取引品種に応じてパラメータを調整します.

  6. 戦略をより柔軟にするため,固定統計期間を適応統計期間に変更することを検討する.

  7. 移動平均が実際に突破したときに 突破口を開設するポジションを試してください.

  8. トレンドに反する取引を避けるために,全体的なトレンド方向の判断を加える.

  9. 移動平均曲線のグラフ化方法を改善し,曲線の滑らかさを高める.

概要

移動平均指数の逆転トレード戦略は,移動平均指数の連続した上昇または減少期間を数えることによって,継続的なトレンド追跡のタイミングを決定する. 動向指数の逆転が起きたとき,市場のノイズを効果的にフィルタリングし,機会を掴むことができる. この戦略は,カスタマイズ可能な移動平均パラメータと統計サイクルのカウントを通じて,異なる取引品種と市場環境に柔軟に適応することができる. しかし,移動平均指数の遅延自体は,急速な逆転の識別遅延を容易に引き起こします. したがって,パラメータを最適化し調整し,他の技術指標がシグナル精度を向上させるのに役立ちます. 一般的に,移動平均指数の逆転トレード戦略は,理解しやすいという利点があり,実践的で推奨される取引戦略です.


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

//@version=2
strategy("Moving Average Consecutive Up/Down Strategy (by ChartArt)", overlay=true)

// ChartArt's Moving Average Consecutive Up/Down Strategy
//
// Version 1.0
// Idea by ChartArt on December 30, 2015.
//
// This strategy goes long (or short) if there are several
// consecutive increasing (or decreasing) moving average
// values in a row in the same direction.
//
// The bars can be colored using the raw moving average trend.
// And the background can be colored using the consecutive
// moving average trend setting. In addition a experimental
// line of the moving average change can be drawn.
//
// The strategy is based upon the "Consecutive Up/Down Strategy"
// created by Tradingview.


// Input
Switch1 = input(true, title="Enable Bar Color?")
Switch2 = input(true, title="Enable Background Color?")
Switch3 = input(false, title="Enable Moving Average Trend Line?")

ConsecutiveBars = input(4,title="Consecutive Trend in Bars",minval=1)

// MA Calculation
MAlen = input(1,title="Moving Average Length: (1 = off)",minval=1)
SelectMA = input(2, minval=1, maxval=4, title='Moving Average: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')
Price = input(close, title="Price Source")
Current =
 SelectMA == 1 ? sma(Price, MAlen) :
 SelectMA == 2 ? ema(Price, MAlen) :
 SelectMA == 3 ? wma(Price, MAlen) :
 SelectMA == 4 ? linreg(Price, MAlen,0) :
 na
Last =
 SelectMA == 1 ? sma(Price[1], MAlen) :
 SelectMA == 2 ? ema(Price[1], MAlen) :
 SelectMA == 3 ? wma(Price[1], MAlen) :
 SelectMA == 4 ? linreg(Price[1], MAlen,0) :
 na

// Calculation
MovingAverageTrend = if Current > Last
    1
else
    0

ConsecutiveBarsUp = MovingAverageTrend > 0.5 ? nz(ConsecutiveBarsUp[1]) + 1 : 0
ConsecutiveBarsDown = MovingAverageTrend < 0.5 ? nz(ConsecutiveBarsDown[1]) + 1 : 0
BarColor = MovingAverageTrend > 0.5 ? green : MovingAverageTrend < 0.5 ? red : blue
BackgroundColor = ConsecutiveBarsUp >= ConsecutiveBars ? green : ConsecutiveBarsDown >= ConsecutiveBars ? red : gray
MovingAverageLine = change(MovingAverageTrend) != 0 ? close : na

// Strategy
if (ConsecutiveBarsUp >= ConsecutiveBars)
    strategy.entry("ConsUpLE", strategy.long, comment="Bullish")
    
if (ConsecutiveBarsDown >= ConsecutiveBars)
    strategy.entry("ConsDnSE", strategy.short, comment="Bearish")

// output
barcolor(Switch1?BarColor:na)
bgcolor(Switch2?BackgroundColor:na)
plot(Switch3?MovingAverageLine:na, color=change(MovingAverageTrend)<0?green:red, linewidth=4)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

もっと