Stratégie de trading quantitative basée sur un indicateur turbo amélioré


Date de création: 2023-11-14 14:40:54 Dernière modification: 2023-11-14 14:40:54
Copier: 0 Nombre de clics: 825
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur un indicateur turbo amélioré

Aperçu

Cette stratégie est une version améliorée de la stratégie de l’indicateur de tourbillon. Elle s’appuie sur l’indicateur de tourbillon d’origine et ajoute de nombreuses nouvelles fonctionnalités, notamment le déclenchement de signaux d’achat et de vente basés sur le seuil, l’utilisation d’un linéaire de tourbillon d’alignement EMA, l’ajout d’un stop loss, la réalisation de transactions en plus, en moins ou en deux sens.

Le principe

L’indicateur central de la stratégie est l’indicateur de tour de force amélioré. L’indicateur de tour de force traditionnel forme une ligne de tour de force positive et négative en calculant la somme des valeurs absolues des fluctuations de prix. Il est un signal d’achat lorsque la ligne de tour de force positive traverse la ligne de tour de force négative.

Cette stratégie est une mise à niveau des indicateurs traditionnels:

  1. Au lieu de juger les ventes et les achats uniquement en fonction de la croisée des lignes de commutation, le concept de marge a été introduit. Les ventes et les achats ne sont déclenchés que lorsque la différence entre les lignes de commutation positives et négatives dépasse la marge définie. Cela permet de filtrer certains signaux de croisement de faible intensité inefficaces.

  2. L’EMA est appliquée sur la ligne de transmission pour réduire le frottement de la courbe.

  3. Ajout d’un paramètre Stop Loss Stop, permettant de régler le taux de profit/perte et de mieux contrôler le risque.

  4. Il est possible de choisir de faire du plus, du moins ou des transactions bidirectionnelles pour répondre à des besoins différents.

Grâce à ces améliorations, la stratégie capte les tendances de manière plus fiable et se démarque dans les retours.

Analyse des avantages

  1. L’amélioration de l’indicateur de tourneau élimine les signaux inefficaces, ce qui permet d’éviter efficacement les fausses percées. Le traitement de l’EMA aide également à éliminer le bruit.

  2. Les signaux d’achat et de vente sont plus fiables pour déterminer le point de basculement de la tendance que les signaux de croisement simples.

  3. La fonction Stop Loss Stop est ajoutée, permettant de régler les marges de gain et de perte pour contrôler le risque d’une seule transaction, conformément au principe de trading raisonnable.

  4. Il est possible de choisir entre le forex, le forex ou le binary, et de s’adapter de manière flexible aux différentes phases du marché pour répondre aux besoins des différents traders.

  5. Les paramètres de la stratégie sont conçus de manière rationnelle, fonctionnent bien avec des retours d’expérience et ont une valeur pratique.

Analyse des risques

  1. Cette stratégie s’applique principalement aux tendances qui peuvent affecter la performance des marchés à la clôture.

  2. La géométrie elle-même est sensible aux fluctuations des actions, et une mauvaise configuration des paramètres peut entraîner des transactions trop fréquentes.

  3. Un seuil trop élevé peut entraîner une perte de points d’achat et de vente, un seuil trop bas peut augmenter le nombre de faux signaux et nécessite un test minutieux pour trouver les meilleurs paramètres.

  4. Le risque de rupture du stop loss est à surveiller en cas de comportement anormal du marché.

Direction d’optimisation

  1. Il est possible d’envisager des combinaisons avec d’autres indicateurs pour introduire plus de facteurs de jugement lors de la détermination du signal.

  2. Il est possible de tester la sensibilité des différentes actions aux paramètres et d’optimiser les paramètres.

  3. Il est possible d’étudier les techniques d’adaptation des arrêts de perte et d’ajuster les arrêts de perte avec les prix dans les grandes tendances.

  4. Des techniques telles que l’apprentissage automatique peuvent être introduites pour former des modèles qui optimisent automatiquement les paramètres.

  5. Les méthodes d’indexation basées sur cette stratégie peuvent être explorées pour augmenter la capacité de la stratégie.

Résumer

Cette stratégie a été améliorée par de nombreuses améliorations sur la base des indicateurs de tourbillon traditionnels, formant un programme de trading quantitatif plus mature et fiable. Elle combine les avantages du jugement de la tendance et du contrôle du risque, permettant d’éviter les risques de suradaptation des transactions dispersées et de tirer parti de la capacité de capture de la tendance de l’indicateur lui-même.

Code source de la stratégie
/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// [Guz] Custom Vortex
// Custom version of the Vortex indicators that adds many features:
// -Triggers trades after a threshold is reached instead of the normal vortex lines cross (once the difference between the 2 lines is important enough)
// -Smooths the Vortex lines with an EMA
// -Adds Take Profit and Stop Loss selection
// -Adds the possibility to go Long only, Short only or both of them
// ! notice that it uses 10% position size and 0.04% trade fee, found on some crypto exchanges futures contracts
// Allows testing leverage with position size moddification (values above 100%, to be done with caution)
// Not an investment advice 

//@version=4
strategy(title="%-[Guz] Vortex Indicator Custom", shorttitle="%-[Guz] Vortex Indicator Custom", overlay=true)

period_ = input(300, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
ema_len = input(title="EMA Length", defval=7)
tresh= input(title="Threshold", defval=16.2, step=0.1)
VIP = ema(VMP / STR,ema_len)
VIM = ema(VMM / STR,ema_len)
//plot(VIP, title="VI +", color=#2962FF)
//plot(VIM, title="VI -", color=#E91E63)

condition_long = crossover(VIP-VIM, tresh/100)
condition_close = cross(VIP-VIM,0)
condition_short = crossunder(VIP-VIM, -tresh/100)

is_short=input(true,title="Do Short?")
is_long=input(true,title="Do Long?")


if (condition_long and is_long)
    strategy.entry("VortexLE", strategy.long, comment="Long Algo")
if (condition_short and is_short)
	strategy.entry("VortexSE", strategy.short, comment="Short Algo")
if (condition_close)
    strategy.close_all()

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


stop_loss_long_percent = input(2.5, title="Stop Loss Long", minval=0.1, step=0.1)
stop_loss_long = (1-stop_loss_long_percent/100)*strategy.position_avg_price

take_profit_long_percent = input(1.5, title="Take Profit Long", minval=0.1, step=0.1)
take_profit_long = (1+take_profit_long_percent/100)*strategy.position_avg_price


stop_loss_short_percent = input(2.5,title="Stop Loss Short", minval=0.1, step=0.1) 
stop_loss_short = (1+stop_loss_short_percent/100)*strategy.position_avg_price

take_profit_short_percent = input(1.7,title="Take Profit Short", minval=0.1, step=0.1)
take_profit_short = (1-take_profit_short_percent/100)*strategy.position_avg_price

strategy.exit("TP-SL Long", "VortexLE",  limit = take_profit_long , stop = stop_loss_long) //, trail_price = trail_price_long , trail_offset = trail_offset_long) //, trail_offset=tsl_offset_tick, trail_price=tsl_offset_tick) 
strategy.exit("TP-SL Short", "VortexSE",  limit = take_profit_short , stop = stop_loss_short)