移動平均リボントレンド戦略は,移動平均値に基づいたトレンドフォロー戦略である. 単一の移動平均値を使用して価格チャネルを構築し,チャネルとの関係価格に基づいてトレンド方向を決定し,それに応じて取引を行う. この戦略はトレンド市場でうまく機能し,長期的な価格トレンドを把握することができます.
ストラテジーは,指定された期間の長さ (デフォルト20期) の単純な移動平均を計算し,MA値を使用して価格チャネルを構築する.チャネルの上部および下部帯は,それぞれMAの最高値と最低値である.閉じる価格が上部帯以上であれば,上昇傾向が決定される.閉じる価格が下部帯以下であれば,ダウントレンドが識別される.
トレンドの変化が検出されると,戦略は取引を行う. トレンドがダウンからアップに変化した場合,ロングポジションが開かれる. トレンドがアップからダウンに変化した場合,ショートポジションが開かれる. トレンドがダウンした場合,既存のロングポジションが閉鎖され,トレンドがアップした場合,既存のショートポジションが閉鎖される.
具体的には,取引の論理は,
この戦略は,価格チャネルを構築し,価格ブレイクによってトレンド変化を特定するために単一のMAを使用します. シンプルで直感的で実行が簡単で,トレンドフォロー戦略として適しています.
動向平均リボントレンド戦略には以下の利点があります.
要約すると,この戦略は単純な論理に基づい,傾向の変化を識別するために価格チャネルを使用し,長期間の価格傾向を効果的に追跡することができる.傾向を追跡する戦略として適しています.
この戦略にはいくつかのリスクもあります:
リスクは以下で対処できます.
戦略は以下の側面で強化できる:
MA インジケーターを最適化: WMA のような異なるMAsをテストしてパフォーマンスを向上させる.
フィルターを追加するフィルタを入れます 音量や気温を フィルタに入れます
複数の時間枠: 異なる時間枠でMAsを使用して,より多くの傾向を特定します.
ダイナミックパラメータ: 市場状況に基づいて MA 期間とチャネル幅を動的に調整することができます.
位置サイズ: 損失を制限するために市場状況に基づいてポジションサイズを調整します. サイズを減らすために利益目標を設定できます.
機械学習: 最適なパラメータの組み合わせを見つけるためにMLを使用します.
集合方法: より堅牢な戦略を他の傾向に沿った戦略と組み合わせる.
要するに,戦略は指標選択,フィルター,タイムフレーム,ダイナミックパラメーター,ポジションサイズなどで全面的に強化できます. これにより,戦略は異なる市場環境でより堅牢で柔軟になります.
移動平均リボントレンド戦略は,シンプルなトレンドフォロー戦略である. 価格チャネルを構築するために単一のMAを使用し,チャネルブレイクアウトによってトレンド方向を特定し,中長期のトレンドを把握することを目的としている. 戦略にはシンプルな論理,パラメータの数,実装の容易さなどの利点がある. しかし,トレンド識別に遅れ,ウィップセーブされるなどのリスクもあります. ライブパフォーマンスを向上させるためにMAを最適化し,フィルター,ダイナミックパラメーターなどを追加することでさらなる改善が可能である. 全体的に,戦略はトレンド識別のための価格フォローチャネルを使用するための直感的なアプローチを提供し,基本的なトレンド戦略として機能します.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © noro //@version=4 strategy(title = "Noro's Trend Ribbon Strategy", shorttitle = "Trend Ribbon str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1) len = input(20, minval = 5, title = "MA Length") src = input(ohlc4, title = "MA Source") //MA ma = sma(src, len) plot(ma, color = color.black) //Channel h = highest(ma, len) l = lowest(ma, len) ph = plot(h) pl = plot(l) //Trend trend = 0 trend := close > h[1] ? 1 : close < l[1] ? -1 : trend[1] //BG col = trend == 1 ? color.blue : color.red fill(ph, pl, color = col, transp = 50) //Trading if close > h[1] strategy.entry("Long", strategy.long) if close < l[1] strategy.entry("Short", strategy.short)