戦略をフォローする二重移動平均傾向

作者: リン・ハーンチャオチャン開催日:2023年8月10日14時25分40秒
タグ:

概要

ダブル・ムービング・平均トレンドフォロー戦略 (Dual Moving Average Trend Following strategy) は,価格トレンドを決定するために2つのムービング・平均値を使用するトレンドフォロー戦略である.短期間と長期間のムービング・平均値が同じ方向に並ぶとき,長期と短期のシグナルを生成する.短期間と長期間のトレンドが一致するときに入力すると,信頼性が向上する.

原則

この戦略は,トレンド方向を決定するために2つの移動平均を使用します.論理は以下のとおりです.

  1. 短期間p1と長期間p2の中間線を計算する.

  2. 価格が中間線以上または下にあるかを判定し,上下ボール値を生成します.

  3. SMA を使って上下値を平ら化し,トレンド方向のトレンドとトレンド_2 を決定する.

  4. トレンドとトレンド_2が一致すると,ロングまたはショート信号を生成します.

  5. 色彩に満ちたバーが 視的に傾向を示しています

  6. 短期と長期のトレンドが一致するときに取引をします

二重移動平均の比較はコアロジックを作り出します. 2つのタイムフレームでトレンド合意で取引することで,偽ブレイクが減少します.一致するトレンドは高い確信の動きを示し,エントリーリスクを下げます.

利点

この戦略の主な利点は以下の通りです.

  1. 二重移動平均は 誤ったブレイクアウトを減らし 信頼性の高いエントリー信号を提供します

  2. 2つのタイムフレームを使用すると,傾向決定の精度が向上します.

  3. 長期的トレンドを把握し,短期的な引き下げを利用します.

  4. すべてのトレーダーに適したシンプルで理解しやすい論理です.

  5. 調整可能な移動平均期間の利用により,あらゆる市場での最適化が可能になります.

  6. ビジュアルバーカラーリングは 直感的なトレンド方向性を提供します

リスク

考慮すべきいくつかのリスク:

  1. 誤った周期設定は,過度の位置変更によりコストが増加する可能性があります.パラメータを最適化するかフィルターを追加します.

  2. Whipsaws は,市場が移動平均値に振動するときに発生します.フィルターやポジションサイズルールを追加します.

  3. 短期的な引き下げは見逃すことができます.より短い期間や追加の戦略を検討してください.

  4. 誤ったストップロスの配置は,トレンドが突然逆転すると大きな損失をもたらす可能性があります. ストップを積極的に管理してください.

  5. 基本的な分析は考慮されません 信号を適用する際には慎重に

改良

戦略を改善する方法:

  1. ボリュームやモメントなどの追加フィルターを追加します

  2. 市場情勢に合わせて 調整する 適応期間を 使う.

  3. ガイドとしてトレンド強度に基づくポジションサイズルールを追加する.

  4. ストップ・ロスト・モジュールを実装します.

  5. マシン学習を考慮して トレンド精度をスコアし,エントリー/エグジットロジックを改善します.

  6. 大規模なトレンドに逆らわないように 基本的要因を考慮してください

結論

二重移動平均トレンドフォローする戦略は,トレンド識別にシンプルで実践的なアプローチを提供します.短期と長期の視点を組み合わせることで,ほとんどのトレンドトレーダーに適した高い信頼性のエントリー信号を生成します.リスクは存在し,最適化,リスク管理,裁量によって軽減できます.全体として,二重移動平均戦略は,堅牢でクラシックなトレンドフォローするアプローチです.


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

//@version=2
// My Tradingview Scripts : https://bit.ly/2HKtr7k 
strategy("UniDir Strategy", overlay=true, initial_capital=50000, default_qty_value=50000, default_qty_type=strategy.cash, slippage=3, commission_type=strategy.commission.percent, commission_value=0.075, pyramiding=0)

p1=input(14)
p2=input(21)


Price = close
mid = (highest(high, p1)+lowest(low, p1)) / 2
mid_2 = (highest(high, p2)+lowest(low, p2)) / 2

//Trend
up = Price > mid ? 1 : 0
up_2 = Price > mid_2 ? 1 : 0
down = Price < mid ? 1 : 0
down_2 = Price < mid_2 ? 1 : 0
trend = sma(up, 2) == 1 ? 1 : sma(down, 2) == 1 ? -1 : nz(trend[1])
trend_2 = sma(up_2, 2) == 1 ? 1 : sma(down_2, 2) == 1 ? -1 : nz(trend_2[1])

dir1=trend==1 ? lime : red
dir2=trend_2==1 ? lime : red
dir_all=trend==1 and trend_2==1 ? lime : red

top_p=plot(1)
hi_p=plot(0.4)
mid_p=plot(0.2)
lo_p=plot(0)

fill(hi_p,mid_p,color=dir1,transp=80)
fill(lo_p,mid_p,color=dir2,transp=80)
fill(top_p,hi_p,color=dir_all,transp=0)

// Entry
long_cond = trend==1 and trend_2==1
short_cond = trend==-1 and trend_2==-1

if long_cond
    strategy.entry("Long",strategy.long)
if short_cond
    strategy.entry("Short",strategy.short)

もっと