Stratégie d'inversion de collision à plusieurs indicateurs

Auteur:ChaoZhang est là., Date: 2024-01-04 18h02 et 12h
Les étiquettes:

img

Résumé

Cette stratégie est conçue comme une stratégie d'inversion efficace en combinant des signaux à double indicateur. Elle intègre un signal d'inversion basé sur des indicateurs stochastiques et un système qui suit le nombre de jours de hausse consécutifs. La stratégie ne passera des ordres que lorsque les deux signaux déclenchent l'achat ou la vente simultanément. Ce mécanisme de collision multi-indicateur peut filtrer efficacement certains signaux invalides et améliorer le taux de gain.

Principe

La stratégie se compose de deux parties. La première partie est le système d'inversion 123, qui observe l'évolution des prix de clôture au cours des deux derniers jours, ainsi que la valeur d'un indicateur stochastique lent de 3 périodes. Plus précisément, lorsque la clôture d'hier est inférieure aux 2 jours précédents et que la clôture d'aujourd'hui est supérieure à celle d'hier, et que le stochastique lent de 9 périodes est inférieur à 50, passez à long; inversement, lorsque la clôture d'aujourd'hui est inférieure à celle d'hier et que le stochastique rapide est supérieur à 50, passez à court.

Le deuxième indicateur suit le nombre de jours ascendants consécutifs récemment sur n jours. Si les derniers n jours sont tous en hausse, il donne 1, sinon 0, cet indicateur est utilisé pour identifier la formation de tendance.

Enfin, la stratégie n'exécutera les transactions que lorsque le signal d'inversion 123 et le nombre de jours de hausse consécutifs affichent simultanément l'état d'achat ou de vente.

Analyse des avantages

Le plus grand avantage de cette stratégie combinée de plusieurs indicateurs est qu'elle peut améliorer la fiabilité des signaux en filtrant certains invalides.

  1. L'inversion 123 elle-même a une certaine capacité de dépistage pour éviter les interférences sonores.

  2. Les paramètres stochastiques de la comparaison des lignes rapides et lentes de 9 jours et de 3 jours peuvent faciliter les changements de paramètres et éviter les fluctuations à court terme et améliorer la stabilité.

  3. Les paramètres personnalisables, y compris le stock, le nombre de jours de hausse, permettent une adaptation aux différents marchés.

  4. Échangeable dans les deux sens, offrant plus d'opportunités de raccourcis.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. La combinaison de plusieurs indicateurs, tout en améliorant la précision du signal, peut également manquer certaines opportunités et limiter les profits.

  2. Les signaux d'inversion présentent des risques inhérents d'être piégés, ce qui nécessite des arrêts de perte pour contrôler le risque.

  3. Des paramètres mal réglés peuvent affecter les performances, ce qui nécessite un ajustement entre les marchés.

  4. La détention de positions à long terme sans stop loss en temps opportun ou la poursuite d'inversions d'actions comporte également des risques.

En conséquence, les mesures suivantes peuvent être prises pour atténuer les risques:

  1. Réduisez les conditions de paramètre de manière appropriée pour conserver plus d'opportunités de négociation.

  2. Définir les points de stop loss pour limiter les pertes par transaction.

  3. Optimiser les paramètres et définir des règles de paramètres pour différents marchés.

  4. Évitez de détenir des stocks à long terme et maintenez la liquidité.

Directions d'optimisation

Il existe encore un grand potentiel pour optimiser cette stratégie de renversement multi-indicateurs, principalement dans les aspects suivants:

  1. Testez plus de combinaisons d'indicateurs pour trouver de meilleures correspondances.

  2. Utilisez des algorithmes d'apprentissage automatique pour optimiser les paramètres.

  3. Ajoutez des conditions de stop loss et de profit pour plus de robustesse.

  4. Testez différents délais dans la partie des indicateurs de tendance.

  5. Évaluer l'applicabilité à tous les indices boursiers, aux devises, aux matières premières et aux crypto-monnaies.

  6. Concevoir des stratégies de composition qui ajustent dynamiquement les allocations sur plusieurs marchés simultanément.

Résumé

Cette stratégie combine habilement plusieurs indicateurs pour concevoir une stratégie de trading d'inversion efficace mais stable. Par rapport aux indicateurs uniques, le mécanisme de collision multi-indicateur filtre efficacement les faux signaux. Pendant ce temps, cette stratégie met également à jour les méthodes d'inversion traditionnelles en ajoutant de nouveaux indicateurs de tendance pour la confirmation du signal.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 26/03/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Evaluates for n number of consecutive higher closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


NBU(nLength) =>
    pos = 0.0
    nCounter = 0
    nCounter :=  iff(close[1] >= open[1], nz(nCounter[1],0)+1,
                  iff(close[1] < open[1], 0, nCounter))
    C1 = iff(nCounter >= nLength, 1, 0)
    posprice = 0.0
    posprice := iff(C1== 1, close, nz(posprice[1], 0)) 
    pos := iff(posprice > 0, 1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & N Bars Up", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- N Bars Up ----")
nLength = input(4, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNBU = NBU(nLength)
pos = iff(posReversal123 == 1 and posNBU == 1 , 1,
	   iff(posReversal123 == -1 and posNBU == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Plus de