資源の読み込みに... 荷物...

多波動トレンド交差リスク管理量的な戦略

作者: リン・ハーンチャオチャン,日付: 2024年12月13日 10:51:31
タグ:エイマSMA

img

概要

この戦略は,ダイナミックなリスクマネジメントメカニズムを組み込む,WaveTrend指標に基づく定量的な取引システムである.この戦略は,価格変動を通じてトレンド強さを計算し,過買い・過売り地域におけるシグナルをフィルタリングし,ストップ・ロスト,テイク・プロフィート,トライリング・ストップメカニズムを含むリスク管理措置を適用する.

戦略の原則

この戦略の核心は,HLC3価格を使用してWaveTrend指標を計算することにある.まず,n1期指数移動平均 (EMA) をベースラインとして計算し,その後,このベースラインからの価格偏差を計算し,0.015係数で正規化する.結果として,2つの波線, wt1と wt2がそれぞれ高速線と遅い線を表す.多層リスク制御システムと組み合わせて,過剰購入および過剰販売レベルを横断するこれらのラインに基づいて取引信号が生成される.

戦略 の 利点

  1. シグナルシステムは,二重の過剰購入/過剰販売レベルにより,信頼性が向上した優れたトレンドフォロー能力を示しています
  2. 固定ストップ・ロース,テイク・プロフィート,ダイナミック・トライリング・ストップを含む包括的なリスク管理システム
  3. 異なる市場条件における最適化のために高度に調整可能なパラメータ
  4. 変動に適応するメカニズムを組み込み,適応性を向上させる
  5. 層状の信号システムの設計は,誤った信号の影響を効果的に軽減します

戦略リスク

  1. 高波動性のある市場では,頻繁にストップ・ロスが起こる可能性があります.
  2. パラメータの設定が正しくない場合,過剰な取引コストが発生します.
  3. 市場の範囲で過剰な誤った信号を生む可能性があります.
  4. リスク・報酬のバランスを保つために,ストップ・ロストとテイク・プロフィートの比率を注意深く調整する必要があります.
  5. トレーリングストップは,急速な市場の逆転時に,大きな引き下げをもたらす可能性があります.

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

  1. 取引の信頼性を高めるため,シグナル確認のためのボリューム指標を組み込む
  2. トレーリングストップパラメータを最適化し,さまざまな市場条件により適性
  3. トレンド強度フィルターを追加して,変動市場での取引頻度を減らす
  4. 市場変動に基づいて自動的に調整するダイナミックストップ・ロスのメカニズムを導入することを検討する
  5. 不利な取引期間中にポジションに入るのを避けるために時間フィルターを導入する.

概要

この戦略は,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))

関連性

もっと