この戦略は,価格変動と移動平均クロスオーバーに基づいたモメントトラッキング取引システムである.価格変動が1.91%を超える (ブラック・スワンイベント) をモニタリングすることによって信号を誘発し,トレンド方向と出口タイミングを確認するためにEMA144とEMA169クロスオーバーを組み合わせます.この戦略は,特に短期取引に適しています.
基本的な論理は2つの主要要素で構成されています.
この戦略は,上向き波動が1.91%以上だとロングポジションと,下向き波動だとショートポジションを入れます.リスク管理のため,移動平均が反対方向に交差すると,ポジションは自動的に閉鎖されます.
この戦略は,変動モニタリングと移動平均クロスオーバーを組み合わせて,市場の異常およびトレンドフォローに迅速な対応を達成する. 戦略設計は良好なリスク制御メカニズムで健全であるが,トレーダーは実際の市場状況に応じてパラメータを最適化し,リスクを管理する必要がある. ライブ取引で小さなポジションから始め,さまざまな市場環境で戦略パフォーマンスを徐々に検証することが推奨される.
/*backtest start: 2024-12-05 00:00:00 end: 2024-12-12 00:00:00 period: 45m basePeriod: 45m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //黑天鹅警报器,作者():道格拉斯机器人 //适合1分钟-3分钟的k线,发生波动超过百分之二时,自动报警 strategy('黑天鹅警报', overlay=true, initial_capital=10000, currency='USD', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, pyramiding=3) //------------------------------------------- //------------------------------------------- timecondition = timeframe.period == '480' or timeframe.period == '240' or timeframe.period == 'D' or timeframe.period == '720' // Make input options that configure backtest date range startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31) startMonth = input.int(title='Start Month', defval=11, minval=1, maxval=12) startYear = input.int(title='Start Year', defval=2018, minval=1800, maxval=2100) endDate = input.int(title='End Date', defval=1, minval=1, maxval=31) endMonth = input.int(title='End Month', defval=11, minval=1, maxval=12) endYear = input.int(title='End Year', defval=2031, minval=1800, maxval=2100) // Look if the close time of the current bar // falls inside the date range inDateRange = time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) // Inputs a = input(1, title='Key Vaule. \'This changes the sensitivity\'') c = input(10, title='ATR Period') h = input(false, title='Signals from Heikin Ashi Candles') ma60 = ta.sma(close, 60) ema144 = ta.ema(close, 144) ema169 = ta.ema(close, 169) ma20 = ta.sma(close, 20) plot(ema144, color=color.new(color.yellow, 0), title='144') plot(ema169, color=color.new(color.orange, 0), title='169') heitiane = close - open heitiane := math.abs(heitiane) heitiane /= close if inDateRange and heitiane > 0.0191 and close < open // and close>f3 strategy.entry('botsell20', strategy.short, comment='黑天鹅追空' + str.tostring(heitiane)) if ta.crossover(ema144, ema169) strategy.close('botsell20', comment='平空') if inDateRange and heitiane > 0.0191 and close > open // and close>f3 strategy.entry('botbuy20', strategy.long, comment='白天鹅追多' + str.tostring(heitiane)) if ta.crossunder(ema144, ema169) strategy.close('botbuy20', comment='平多')