資源の読み込みに... 荷物...

移動平均範囲に基づく逆転取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-25 14:16:28
タグ:

img

概要

この戦略は"移動平均レンジ逆転"と呼ばれる.異なる時間枠の移動平均値間のクロスオーバーを計算し,適切なロング/ショートポジションをとることで市場逆転の機会を特定する.

戦略の論理

戦略は3つの移動平均を同時に計算します.

  1. 速度のMA (長さ): 最新の価格変動を反映する
  2. スローMA (長さ): 中期価格動向を反映する
  3. 最低のMA (sslength): 長期的な価格傾向を反映する

低速MAが低速MAを超えると,短期的なトレンド逆転が上昇し,低速MAが低速MAを超えると,短期的な逆転が下落する.

誤った信号を避けるため,第4のMAは長期フィルター (長さ) として導入される.このフィルター上でのみ長い信号が考慮される.このフィルター下でのみ短い信号が考慮される.

特別取引規則は次のとおりです.

  1. 低速MAが低速MAを超越し,低速MAが最低速MA (短期上昇) を超越し,価格が長期フィルターを超越すると,ロングする.

  2. 低速MAが低速MAを下回り,低速MAが低速MAを下回り,価格が長期フィルターを下回っているとき,ショートします.低速MAが低速MAを下回り,低速MAが低速MAを下回り,低速MAが低速MAを下回り,低速MAが低速MAを下回ると,ショートポジションを閉じる.

利点分析

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

  1. 複数のタイムフレームを使用して 傾向の変化をより正確に特定し 誤った信号を減らす
  2. 長期フィルターは,大きなトレンド逆転の前に間違った位置付けを回避します.
  3. シンプルで明快なルールで 簡単に理解し 自動化できます
  4. 逆転戦略は 収益と利益のポジティブバイアスから利益を得ます
  5. 良質なバックテストの結果は 収益と利益因子に関して ライブ取引をシミュレートします

リスク分析

戦略のリスクは以下のとおりです.

  1. MA戦略はパラメータに敏感で 異なるパラメータは異なる結果をもたらす.
  2. 逆転信号の誤った突破は損失を引き起こす可能性があります.
  3. 長期にわたる横向は 繰り返し逆転した利益を無効にします
  4. 価格が逆転し,強くなって加速し,時宜のストップ・ロスは失敗します.

解決策:

  1. パラメータを最適化して 最高の組み合わせを見つけます
  2. 誤った信号を避けるため 信号確認時間を増やす
  3. ストップ損失範囲を拡大して損失量を制御する

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

戦略は以下の点で改善できる:

  1. 最適値を見つけるためにより多くのパラメータセットをテストします
  2. 低音量条件では偽信号を避けるために音量フィルターを追加します.
  3. 入力信号の確認のために他の指標を組み込む.
  4. ストップ・ロスの動的調整を導入し,よりよい出口制御を行う.
  5. リスク管理を最適化して リスク管理を強化する.

結論

この戦略は,MAクロスオーバーによって識別された市場逆転を,長期フィルターからの方向ガイドで取引する.転換点での機会を効果的に捉える.ポジティブなバックテスト結果は,ライブアプリケーションのための良い収益性を示している.パラメータ,信号フィルタリング,ストップ損失などのさらなる最適化により,戦略は実用的な使用のためにより堅牢になる.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("Moving Average Trap", overlay=true)

flenght = input.int(title="Fast MA Period", minval=1, maxval=2000, defval=3)
llenght = input.int(title="Slower MA Period", minval=1, maxval=2000, defval=5)
sslenght = input.int(title="Slowest MA Period", minval=1, maxval=2000, defval=8)
tlenght = input.int(title="Trend Filter MA Period", minval=1, maxval=2000, defval=200)

ssma = ta.sma(close, sslenght)
fma = ta.sma(close, flenght)
sma = ta.sma(close, llenght)
tma = ta.sma(close, tlenght)

plot(fma, color=color.red)
plot(sma, color=color.white)
plot(ssma, color=color.green)
plot(tma, color=color.maroon, linewidth=2)

short =  (fma > sma and sma > ssma) and close < tma
long = (fma < sma and sma < ssma) and close > tma
closeshort = fma < sma and sma < ssma
closelong = fma > sma and sma > ssma

if long
	strategy.entry("long", strategy.long)
if closelong
	strategy.close("long")
if short
	strategy.entry("short", strategy.short)
if closeshort
	strategy.close("short")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

もっと