Stratégie combinée de volatilité de renversement de tendance

Auteur:ChaoZhang est là., Date: 2023-10-24 14h23 et 58 min
Les étiquettes:

img

Résumé

Cette stratégie combine une stratégie d'inversion de tendance avec une stratégie de volatilité statistique pour générer des signaux de trading plus forts.

Comment fonctionne- t- il?

La stratégie se compose de deux parties:

  1. Stratégie d'inversion de tendance

    • Identifiez les points d'inversion de tendance en utilisant le modèle 123. En particulier, allez long si la ligne de fermeture a augmenté pendant 2 jours consécutifs et que la ligne lente stochastique de 9 jours est inférieure à 50; allez court si la ligne fermée a diminué pendant 2 jours consécutifs et la ligne rapide stochastique de 9 jours est supérieure à 50.
  2. Stratégie statistique de volatilité

    • Calculer la volatilité statistique sur 30 jours à l'aide de la méthode de la valeur extrême.

La stratégie ne génère un signal commercial que lorsque les deux stratégies s'accordent sur la direction (les deux longues ou les deux courtes).

Analyse des avantages

La stratégie combinée améliore la fiabilité du signal en combinant deux types de stratégies:

  1. Le modèle 123 capture avec précision les points d'inversion de tendance et évite d'être induit en erreur par des pics ponctuels de prix.

  2. La volatilité statistique se concentre sur les périodes à forte volatilité et à forte opportunité basées sur les mouvements du marché au cours du dernier mois.

En se vérifiant mutuellement, les deux stratégies combinées captent plus précisément les points de basculement clés du marché et génèrent des signaux de trading plus précis.

Analyse des risques

  1. 123 les modèles ne peuvent pas éviter complètement le risque de fausses fuites.

  2. La volatilité statistique ne prend en compte que les données historiques et ne peut pas prédire les changements de volatilité futurs.

  3. Les deux stratégies reposent fortement sur le réglage des paramètres.

  4. Bien que plus fiable dans l'ensemble, l'approche combinée peut manquer certains signaux forts des stratégies individuelles.

Les domaines d'amélioration

  1. Incorporer plus d'indicateurs comme les bandes de Bollinger, KDJ pour former un mécanisme de vote.

  2. Ajoutez des algorithmes d'apprentissage automatique pour déterminer les probabilités d'inversion de tendance en utilisant plus de données historiques.

  3. Définissez les seuils de puissance du signal pour filtrer le bruit.

  4. Optimiser les paramètres pour différents produits et délais.

  5. Ajouter des mécanismes de stop loss pour contrôler le risque de la stratégie combinée.

Conclusion

La stratégie améliore la qualité du signal en combinant des stratégies d'inversion de tendance et de volatilité statistique, fournissant des signaux de trading plus précis autour des points tournants du marché.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/07/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
// This indicator used to calculate the statistical volatility, sometime 
// called historical volatility, based on the Extreme Value Method.
// Please use this link to get more information about Volatility.
//
// 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


SV(Length,TopBand,LowBand) =>
    pos = 0.0
    xMaxC = highest(close, Length)
    xMaxH = highest(high, Length)
    xMinC = lowest(close, Length)
    xMinL = lowest(low, Length)
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    nRes = iff(Vol < 0,  0, iff(Vol > 2.99, 2.99, Vol))
    pos := iff(nRes > TopBand, 1,
    	     iff(nRes < LowBand, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Statistical Volatility", 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, "---- Statistical Volatility ----")
LengthSV = input(30, minval=1)
TopBand = input(0.005, step=0.001)
LowBand = input(0.0016, step=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSV = SV(LengthSV,TopBand,LowBand)
pos = iff(posReversal123 == 1 and posSV == 1 , 1,
	   iff(posReversal123 == -1 and posSV == -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