
最高最低中央回転戦略は,トレンドを追跡する戦略である.その主な考えは,過去一定期間の最高価格と最低価格の中間価格を基準価格として計算し,この基準価格と波動率を組み合わせて,建仓区と平仓区を計算することである.価格が建仓区に入るとき,多めにすること;価格が平仓区に入るとき,平仓することである.
この戦略は主に以下のステップを踏まえて実行されます.
この方法によって,価格がトレンド状態に入るときにトレンドをタイムリーに追跡することができる.同時に,波動率によってリスクを制御することもできる.
この戦略には以下の利点があります.
この戦略にはいくつかのリスクがあります.
これらのリスクを制御するために,以下の方法で最適化できます.
この戦略は,さらに最適化できる余地があります.
これらの最適化により,戦略の安定性や収益性がさらに向上すると期待できます.
最高最低中央回転戦略は,シンプルで実用的なトレンド追跡戦略である.価格の変化をタイムリーに捉え,トレンドを追跡し,また,波動率を介してリスクを制御することができる.この戦略は,簡単に実行し,量子取引の初心者の学習と実践に適しています.パラメータの最適化とルール最適化により,戦略の効果をさらに向上させることができます.全体的に,これは推奨される量化戦略です.
/*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)