Stratégie de renversement de croisement à double ligne


Date de création: 2023-11-24 17:03:47 Dernière modification: 2023-11-24 17:03:47
Copier: 0 Nombre de clics: 622
1
Suivre
1617
Abonnés

Stratégie de renversement de croisement à double ligne

Aperçu

La stratégie de retour croisé bi-ligne est une stratégie de suivi de tendance qui combine la stratégie de retour 123 et la stratégie d’oscillateur de tendance DiNapoli pour générer des signaux de transaction par croisement bi-ligne, permettant de suivre les tendances du marché.

Principe de stratégie

La stratégie est composée de deux volets:

  1. Stratégie de revers: Cette stratégie utilise un indicateur stochastique pour générer un signal de vente lorsque le cours de clôture est supérieur au cours lent et que le cours rapide est inférieur à 50, et génère un signal de vente lorsque le cours de clôture est supérieur au cours lent et que le cours rapide est supérieur à 50.

  2. Stratégie d’oscillateur de tendance DiNapoli: cette stratégie utilise les moyennes mobiles des prix pour générer un signal de transaction lorsque les prix sont supérieurs ou inférieurs à la moyenne mobile d’une certaine amplitude. Plus précisément, elle génère un signal d’achat lorsque les prix dépassent la valeur de la Trigger positive de la moyenne mobile et un signal de vente lorsque les prix sont inférieurs à la valeur de la Trigger négative de la moyenne mobile.

Après que les deux stratégies ci-dessus ont produit des signaux de négociation indépendants, cette stratégie les intègre. La stratégie ne génère une instruction de négociation réelle que lorsque les signaux de négociation des deux sont conformes, c’est-à-dire que le croisement des deux lignes forme un signal homogène, sinon aucune opération n’est effectuée.

Analyse des avantages

Cette stratégie, combinée à des signaux binaires, permet de suivre efficacement les tendances du marché et présente les avantages suivants:

  1. Utilisez pleinement les avantages du jugement et de la tendance des indicateurs stochastiques pour éviter les pertes causées par une erreur de signal d’un seul indicateur.

  2. L’indicateur DiNapoli permet d’identifier efficacement les tendances et d’éviter de prendre des positions inutiles en raison de fluctuations aléatoires.

  3. Le croisement des deux lignes permet de réduire efficacement les fausses signaux, d’améliorer la qualité des signaux et de fournir une base solide pour juger de la direction des événements.

  4. Les paramètres de la stratégie sont réglables, l’utilisateur peut choisir une combinaison de paramètres en fonction de ses préférences personnelles et s’adapter de manière flexible à différents environnements de marché.

Analyse des risques

La stratégie présente également les risques suivants:

  1. Dans un marché haussier, la stratégie peut être trop prudente avec les paramètres de l’indicateur, ce qui entraîne une perte d’occasions d’achat. Les paramètres peuvent être ajustés de manière appropriée pour rendre la stratégie plus positive.

  2. Dans un marché baissier, les signaux de croisement de deux lignes peuvent être retardés, entraînant un phénomène de survente et de surachat. Le cycle moyen devrait être raccourci de manière appropriée, afin de rendre la stratégie plus sensible.

  3. En cas d’une action unilatérale importante, les signaux de croisement biligéral peuvent être retardés et un stop-loss doit être mis en place pour contrôler les pertes.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Test et optimisation des paramètres de l’indicateur stochastique et de l’indicateur DiNapoli afin de trouver la meilleure combinaison de paramètres.

  2. Ajout d’autres indicateurs de jugement auxiliaires tels que l’indicateur de volume, pour enrichir la logique interne de la stratégie et améliorer l’exactitude du signal.

  3. L’utilisation de méthodes d’apprentissage automatique pour la formation et l’optimisation des paramètres stratégiques et des règles de génération de signaux, afin de mieux s’adapter aux changements du marché.

  4. Combiné à des indicateurs techniques avancés pour juger de la structure locale, la distinction entre les signaux de ligne courte et moyenne et longue, la stratégie fonctionne sur plusieurs périodes.

Résumer

La stratégie de rétrogradation en double ligne est une stratégie de suivi de tendance fiable qui permet de suivre efficacement les tendances du marché et d’obtenir de meilleurs rendements en maîtrisant les risques. La stratégie peut être améliorée et mise à niveau en permanence par l’optimisation des paramètres et l’ajout d’indicateurs auxiliaires, avec de vastes perspectives d’application.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/02/2020
// 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
// DiNapoli Detrended Oscillator Strategy
//
// 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

DiNapoli(Length, Trigger) =>
    pos = 0.0
    xSMA = sma(close, Length)
    nRes = close - xSMA
    pos := iff(nRes > Trigger, 1,
    	     iff(nRes <= Trigger, -1, nz(pos[1], 0)))    
    pos

strategy(title="Combo Backtest 123 Reversal & DiNapoli Detrended Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDiN = input(14, minval=1)
TriggerDiN = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDiN = DiNapoli(LengthDiN, TriggerDiN)
pos = iff(posReversal123 == 1 and posDiN == 1 , 1,
	   iff(posReversal123 == -1 and posDiN == -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 )