最低/最高のセンターの見直し戦略

作者: リン・ハーンチャオチャン開催日:2023年12月28日 15:42:10
タグ:

img

概要

最高/最低センター・ルーックバック戦略は,トレンドフォロー戦略である.その主なアイデアは,過去の一定期間の最高値と最低値の中間価格をベンチマーク価格として計算し,このベンチマーク価格と変動を組み合わせてエントリーゾーンと出口ゾーンを計算することです.価格がエントリーゾーンに入ると,ロング;価格がエントリーゾーンに入ると,ポジションを閉じる.

戦略の論理

この戦略は主に次のステップを通じて実施されます.

  1. 過去 lookback_length 期間の最高価格 h と最低価格 l を計算し,EMA で均等化します.
  2. 中央価格として h と l の中間価格を計算する
  3. ATRとATR倍数に基づいて波動性ボラを計算する
  4. 中央とボラに基づいて上部エントリーゾーンと下部出口ゾーンを計算
  5. 価格が上位を突破すると,ロング;価格が下位を突破すると,閉じる

価格がトレンド状態に入るときに 傾向を追跡できます 同時にリスクは 変動によって制御できます

利点分析

この戦略には以下の利点があります.

  1. 効率的にトレンドを追跡し,価格の変化を時間内に把握できる
  2. 最低値と最高値の中間値を使用すると,誤ったブレイクの可能性を減らすことができます.
  3. 変動はリスク制御に自動的に調整できます
  4. ポジション保持時間は短く,より頻繁に取引する機会を可能にします
  5. 実行し,理解し,最適化しやすい

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 範囲限定市場では,不必要な取引が増える可能性があります.
  2. ATR サイズと倍数の設定は戦略のパフォーマンスに影響を与え,注意深くテストと最適化が必要です
  3. 中央価格を突破した後の引き下げは,ストップ損失を引き起こす可能性があります.
  4. トレンド逆転速度が速すぎると 損失が増える

これらのリスクを制御するために,最適化は次の側面で行うことができます.

  1. ATR パラメータを調節して波動性を減らし,フィルターウィップソウを調整する
  2. 必要のない取引を避けるためにフィルターを追加します
  3. 移動ストップロスを使って利益を固定する
  4. 実際のトレンドの始まりと終わりを判断するためにトレンド指標を組み合わせる

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

戦略にはさらに最適化できる余地があります.

  1. 試験パラメータの有効性
  2. 機械学習アルゴリズムでパラメータを自動的に最適化します
  3. 傾向の始まりと終わりを判断するためにより多くの指標を組み込む
  4. ポジションサイズを動的に調整することを検討
  5. 極端な感情による偏見を避けるために感情指標を組み込む

これらの最適化により,戦略の安定性と収益性のさらなる改善が期待できる.

結論

最高/最低センター・ルーックバック戦略は,トレンドフォロー戦略のシンプルで実用的な方法です. 価格の変化を時間とともに把握し,トレンドを追跡し,波動性を通じてリスクを制御することができます. 戦略は実行が簡単で,定量的な取引の初心者が学び,実践するのに適しています. パラメータとルールを最適化することで,戦略のパフォーマンスをさらに改善することができます. 一般的には,これは推奨される定量的な戦略です.


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

//@version=4
strategy("Highest/Lowest Center Lookback Strategy", overlay=true)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(1.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = price > upper ? true : (price < lower ? false : na)

bull_cross = crossover(price, upper)
bear_cross = crossunder(price, lower)

strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross)

plot(h, title="High", color=color.red, transp=75, linewidth=2)
plot(l, title="Low", color=color.green, transp=75, linewidth=2)

pc = plot(center, title="Center", color=color.black, transp=25, linewidth=2)
pu = plot(upper, title="Upper", color=color.green, transp=75, linewidth=2)
pl = plot(lower, title="Lower", color=color.red, transp=75, linewidth=2)

fill(pu, pc, color=color.green, transp=85)
fill(pl, pc, color=color.red, transp=85)

bgcolor(trend == true ? color.green : (trend == false ? color.red : color.gray), transp=85)

もっと