最高/最低センター・ルーックバック戦略は,トレンドフォロー戦略である.その主なアイデアは,過去の一定期間の最高値と最低値の中間価格をベンチマーク価格として計算し,このベンチマーク価格と変動を組み合わせてエントリーゾーンと出口ゾーンを計算することです.価格がエントリーゾーンに入ると,ロング;価格がエントリーゾーンに入ると,ポジションを閉じる.
この戦略は主に次のステップを通じて実施されます.
価格がトレンド状態に入るときに 傾向を追跡できます 同時にリスクは 変動によって制御できます
この戦略には以下の利点があります.
この戦略にはいくつかのリスクもあります:
これらのリスクを制御するために,最適化は次の側面で行うことができます.
戦略にはさらに最適化できる余地があります.
これらの最適化により,戦略の安定性と収益性のさらなる改善が期待できる.
最高/最低センター・ルーックバック戦略は,トレンドフォロー戦略のシンプルで実用的な方法です. 価格の変化を時間とともに把握し,トレンドを追跡し,波動性を通じてリスクを制御することができます. 戦略は実行が簡単で,定量的な取引の初心者が学び,実践するのに適しています. パラメータとルールを最適化することで,戦略のパフォーマンスをさらに改善することができます. 一般的には,これは推奨される定量的な戦略です.
/*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)