黄金比率を持つ平均的な真の範囲のブレイクストラテジー

作者: リン・ハーンチャオチャン開催日:2024-02-26 15:02:26
タグ:

img

概要

これは,ATRインジケーターを利用して取引信号を生成するブレイクアウト戦略である.この戦略は,エントリー信号を生成するために移動平均システムと,ロングとショートポジションを構築するためにゴールデン比率に基づいた増幅ATRチャネルを使用する.トレンドに大幅に利益を得ることができ,レンジ・バインド市場では小さく安定した利益を得ることができる.

原則

このコードは,閉盤価格の期間中にATRを計算し,上帯として1.618と下帯として2.618で増幅する. EMAと組み合わせると,ボリンジャーチャネルブレイクアウトシステムを形成する.価格が下帯を上向きに突破するとロングで,上帯を下向きに突破するとショートでトレンドに従う.

利点

  1. ATRインジケーターは,市場の変動を効果的に把握し,静的パラメータによる過剰調整を回避し,適応可能な取引帯を構築します.
  2. 黄金比率によって増幅されたATR帯は,取引頻度を増やすことなく利益の可能性を拡大します.
  3. 移動平均系は短期間のノイズをフィルタリングし,ATRチャンネルと協力して中期から長期間の傾向を特定します.

リスク

  1. 極端な市場状況では ATR インディケーターが遅れる可能性があります.
  2. 不適切な拡大倍数は 取引頻度が過剰に高くなる
  3. 長期移動平均値からの信号の切り替えには遅延がある.

最適化

  1. ATRはVIXを組み込むか拡大を調整することができます.
  2. アダプティブ・システムを構築するために複数のタイムフレーム・EMAを使用する.
  3. ストップ損失を設定し,取引ごとに最大損失を制限します.

概要

この戦略は,移動平均フィルタリング,ATRチャネルトラッキングおよびゴールデン比率方法論を統合し,良好な安定性をもって中長期間のトレンドを効果的に追跡することができる.パラメータを調整することによって,さまざまな周波数で異なる製品に適応することができ,優れた市場適応性のために探求に値する.


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

//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)

もっと