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

多指標動的取引最適化戦略

作者: リン・ハーンチャオチャン開催日:2024年12月20日 16:31:21
タグ:CCIRSIMFIWMAIFT

img

概要

この戦略は,複数の技術指標に基づいた取引システムであり,CCI,RSI,ストカスティック,MFI指標を指数的なスムージングで統合し,包括的な市場分析フレームワークを構築する.この戦略は,IFT (逆フィッシャー変換) を使用して指標出力を正規化し,信号合成を通じて取引決定を生成する.

戦略原則

戦略の核は,マルチインジケーター融合を通じてより信頼性の高い取引信号を提供することです.プロセスには以下が含まれます:

  1. CCI,RSI,ストカスティック,MFIの指標を計算し,標準化する
  2. 指標値に WMA の滑らかな値を適用する
  3. IFT を使って値を統一区間に変換する
  4. 最終信号として変換された4つの指標の平均を計算する
  5. -0.5を横切るときに長い信号と 0.5を横切るときに短い信号を生成します
  6. リスク管理のために0.5%のストップ・ロースと1%のテイク・プロフィートを設定する.

戦略 の 利点

  1. 複数の指標の融合は市場全体的な見通しを提供します
  2. IFT トランスフォーメーションは指標出力の一貫性を確保します
  3. WMA の 滑らめ は 誤った 信号 を 効果的に 減らす
  4. 合理的なストップ・ロストとテイク・プロフィートの設定
  5. デバッグと最適化のための明確な信号生成メカニズム

戦略リスク

  1. 多数の指標が不安定な市場で遅れている可能性があります
  2. 固定ストップ・ロースとテイク・プロフィートのパラメータは,すべての市場条件に適合しない可能性があります.
  3. WMAの滑らかな信号が信号の遅延を引き起こす可能性があります.
  4. 指標パラメータは,異なる市場のために最適化する必要があります 提案: ダイナミックなリスク管理を実施し,変動指標を導入し,平滑パラメータを最適化

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

  1. 適応性のあるストップ・ロスト・メカニズムと 利益を引き出すメカニズムを導入する
  2. 市場環境フィルタリングを追加する
  3. 体重平均で信号合成を最適化する
  4. 容量重量化と変動率調整メカニズムを導入する
  5. 自動パラメータ最適化システムを開発

概要

この戦略は,マルチインジケータ融合と信号最適化によって比較的完全な取引システムを構築する.その強みは信号の信頼性と包括的なリスク管理にありますが,パラメータは依然として市場の特徴に基づいて最適化する必要があります.提案された最適化方向性を通じて,戦略はさまざまな市場環境でより良いパフォーマンスを発揮する可能性があります.


/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('wombocombo', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// IFTCOMBO Hesaplamaları
ccilength = input.int(5, 'CCI Length')
wmalength = input.int(9, 'Smoothing Length')
rsilength = input.int(5, 'RSI Length')
stochlength = input.int(5, 'STOCH Length')
mfilength = input.int(5, 'MFI Length')

// CCI
v11 = 0.1 * (ta.cci(close, ccilength) / 4)
v21 = ta.wma(v11, wmalength)
INV1 = (math.exp(2 * v21) - 1) / (math.exp(2 * v21) + 1)

// RSI
v12 = 0.1 * (ta.rsi(close, rsilength) - 50)
v22 = ta.wma(v12, wmalength)
INV2 = (math.exp(2 * v22) - 1) / (math.exp(2 * v22) + 1)

// Stochastic
v1 = 0.1 * (ta.stoch(close, high, low, stochlength) - 50)
v2 = ta.wma(v1, wmalength)
INVLine = (math.exp(2 * v2) - 1) / (math.exp(2 * v2) + 1)

// MFI
source = hlc3
up = math.sum(volume * (ta.change(source) <= 0 ? 0 : source), mfilength)
lo = math.sum(volume * (ta.change(source) >= 0 ? 0 : source), mfilength)
mfi = 100.0 - 100.0 / (1.0 + up / lo)
v13 = 0.1 * (mfi - 50)
v23 = ta.wma(v13, wmalength)
INV3 = (math.exp(2 * v23) - 1) / (math.exp(2 * v23) + 1)

// Ortalama IFTCOMBO değeri
AVINV = (INV1 + INV2 + INVLine + INV3) / 4

// Sinyal çizgileri
hline(0.5, color=color.red, linestyle=hline.style_dashed)
hline(-0.5, color=color.green, linestyle=hline.style_dashed)

// IFTCOMBO çizgisi
plot(AVINV, color=color.red, linewidth=2, title='IFTCOMBO')

// Long Trading Sinyalleri
longCondition = ta.crossover(AVINV, -0.5) 
longCloseCondition = ta.crossunder(AVINV, 0.5) 

// Short Trading Sinyalleri
shortCondition = ta.crossunder(AVINV, 0.5) 
shortCloseCondition = ta.crossover(AVINV, -0.5) 

// Stop-loss seviyesi (%0.5 kayıp)
stopLoss = strategy.position_avg_price * (1 - 0.005) // Long için
takeProfit = strategy.position_avg_price * (1 + 0.01) // Long için


// Long Strateji Kuralları
if longCondition
    strategy.entry('Long', strategy.long)
    strategy.exit('Long Exit', 'Long', stop=stopLoss, limit=takeProfit) // Stop-loss eklendi


if longCloseCondition
    strategy.close('Long')

// Stop-loss seviyesi (%0.5 kayıp)
stopLossShort = strategy.position_avg_price * (1 + 0.005) // Short için
takeProfitShort = strategy.position_avg_price * (1 - 0.01) // Short için

// Short Strateji Kuralları
if shortCondition
    strategy.entry('Short', strategy.short)
    strategy.exit('Short Exit', 'Short', stop=stopLossShort, limit=takeProfitShort) // Stop-loss eklendi


if shortCloseCondition
    strategy.close('Short')

// Sinyal noktalarını plotlama
plotshape(longCondition, title='Long Signal', location=location.belowbar, color=color.purple, size=size.small)
plotshape(shortCondition, title='Short Signal', location=location.abovebar, color=color.yellow, size=size.small)

関連性

もっと