この戦略は,ダイナミックなリスクマネジメントメカニズムを組み込む,WaveTrend指標に基づく定量的な取引システムである.この戦略は,価格変動を通じてトレンド強さを計算し,過買い・過売り地域におけるシグナルをフィルタリングし,ストップ・ロスト,テイク・プロフィート,トライリング・ストップメカニズムを含むリスク管理措置を適用する.
この戦略の核心は,HLC3価格を使用してWaveTrend指標を計算することにある.まず,n1期指数移動平均 (EMA) をベースラインとして計算し,その後,このベースラインからの価格偏差を計算し,0.015係数で正規化する.結果として,2つの波線, wt1と wt2がそれぞれ高速線と遅い線を表す.多層リスク制御システムと組み合わせて,過剰購入および過剰販売レベルを横断するこれらのラインに基づいて取引信号が生成される.
この戦略は,WaveTrend指標と堅牢なリスク管理システムを組み合わせて包括的な定量的な取引アプローチを達成する.この戦略の核心強みは適応性と制御されたリスク露出にあります.しかし,トレーダーは実際の市場状況に基づいてパラメータを最適化し,戦略を改善する必要があります.継続的な最適化と精製を通じて,この戦略は実際の取引環境で安定した収益を達成する約束を示しています.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="WaveTrend [LazyBear] with Risk Management", shorttitle="WT_LB_RM", overlay=true) // Input Parameters n1 = input.int(10, "Channel Length") n2 = input.int(21, "Average Length") obLevel1 = input.int(60, "Over Bought Level 1") obLevel2 = input.int(53, "Over Bought Level 2") osLevel1 = input.int(-60, "Over Sold Level 1") osLevel2 = input.int(-53, "Over Sold Level 2") // Risk Management Inputs stopLossPercent = input.float(50.0, "Stop Loss (%)", minval=0.1, maxval=100) takeProfitPercent = input.float(5.0, "Take Profit (%)", minval=0.1, maxval=100) trailingStopPercent = input.float(3.0, "Trailing Stop (%)", minval=0.1, maxval=100) trailingStepPercent = input.float(2.0, "Trailing Stop Step (%)", minval=0.1, maxval=100) // WaveTrend Calculation ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) wt1 = tci wt2 = ta.sma(wt1, 4) // Plotting Original Indicators plot(0, color=color.gray) plot(obLevel1, color=color.red) plot(osLevel1, color=color.green) plot(obLevel2, color=color.red, style=plot.style_line) plot(osLevel2, color=color.green, style=plot.style_line) plot(wt1, color=color.green) plot(wt2, color=color.red, style=plot.style_line) plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80) // Buy and Sell Signals with Risk Management longCondition = ta.crossover(wt1, osLevel1) or ta.crossover(wt1, osLevel2) shortCondition = ta.crossunder(wt1, obLevel1) or ta.crossunder(wt1, obLevel2) // Strategy Entry with Risk Management if (longCondition) entryPrice = close stopLossPrice = entryPrice * (1 - stopLossPercent/100) takeProfitPrice = entryPrice * (1 + takeProfitPercent/100) strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop=stopLossPrice, limit=takeProfitPrice, trail_price=close * (1 + trailingStopPercent/100), trail_offset=close * (trailingStepPercent/100)) if (shortCondition) entryPrice = close stopLossPrice = entryPrice * (1 + stopLossPercent/100) takeProfitPrice = entryPrice * (1 - takeProfitPercent/100) strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop=stopLossPrice, limit=takeProfitPrice, trail_price=close * (1 - trailingStopPercent/100), trail_offset=close * (trailingStepPercent/100))