Stratégie d'optimisation de trading dynamique avec combinaison multi-indicateurs

CCI RSI MFI WMA IFT
Date de création: 2024-12-20 16:31:21 Dernière modification: 2024-12-20 16:31:21
Copier: 1 Nombre de clics: 397
1
Suivre
1617
Abonnés

Stratégie d’optimisation de trading dynamique avec combinaison multi-indicateurs

Aperçu

La stratégie est un système de négociation basé sur une combinaison de plusieurs indicateurs techniques, qui construit un cadre d’analyse de marché complet en intégrant quatre indicateurs principaux tels que le CCI, le RSI, l’indicateur aléatoire (Stochastic) et le MFI, et en combinant le traitement de l’indicateur en douceur. La stratégie utilise la transformation inverse de Fisher (IFT) pour normaliser les résultats des indicateurs et finalement générer des décisions de négociation par synthèse de signaux.

Principe de stratégie

Le cœur de la stratégie est de fournir des signaux de trading plus fiables grâce à la fusion de plusieurs indicateurs. Tout d’abord, le traitement standardisé et le lissage WMA de chaque indicateur sont effectués, puis la valeur de l’indicateur est cartographiée via la conversion IFT.[-1,1], notamment:

  1. Les quatre indicateurs CCI, RSI, Stochastic et MFI sont calculés et regroupés séparément
  2. Traitement des valeurs de l’indicateur avec WMA
  3. Conversion des valeurs de l’indicateur en intervalles uniformes par conversion IFT
  4. Calculer la moyenne des quatre indicateurs de conversion comme signal final
  5. Lorsque la ligne de signal dépasse -0.5, un signal de multiplication est généré, et un signal de vide est généré lorsque la ligne de signal dépasse 0.5.
  6. Régler le risque avec un stop loss de 0,5% et un stop loss de 1%

Avantages stratégiques

  1. L’intégration de plusieurs indicateurs offre une vision plus globale du marché et réduit les contraintes d’un seul indicateur
  2. La conversion IFT assure la cohérence de la sortie de l’indicateur et facilite la synthèse du signal
  3. Le traitement en douceur du WMA réduit efficacement le faux signal
  4. Un arrêt de perte raisonnable est mis en place pour contrôler les risques tout en garantissant la marge bénéficiaire.
  5. Le mécanisme de génération de signaux est clair et facile à démarrer et à optimiser

Risque stratégique

  1. Les indicateurs peuvent être en retard sur des marchés très volatils
  2. Les paramètres fixes de stop-loss peuvent ne pas s’appliquer à tous les environnements de marché
  3. Le ralentissement de la WMA peut entraîner des retards de signal
  4. Les paramètres de l’indicateur doivent être optimisés pour différents marchés Recommandation: modification dynamique des paramètres d’arrêt et de freinage, introduction d’un indicateur de volatilité et optimisation des paramètres de lissage

Orientation de l’optimisation de la stratégie

  1. Introduction d’un mécanisme d’arrêt-stop adaptatif qui s’adapte à la dynamique des fluctuations du marché
  2. Ajout d’un mécanisme de filtrage de l’environnement du marché, utilisant différents paramètres selon l’intensité de la tendance
  3. Optimisation de la synthèse des signaux en considérant une moyenne simple au lieu d’une moyenne pondérée
  4. Mise en place d’un mécanisme de pondération et d’ajustement des taux de fluctuation
  5. Système d’optimisation automatique pour le développement des paramètres de l’indicateur

Résumer

La stratégie a pour avantage la fiabilité des signaux et l’intégrité des contrôles de risque, mais nécessite toujours une optimisation des paramètres en fonction des caractéristiques du marché dans les applications réelles. Grâce à l’orientation de l’optimisation proposée, la stratégie est susceptible de mieux fonctionner dans différents environnements de marché.

Code source de la stratégie
/*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)