Stratégie composée d'inversion de l'élan

Auteur:ChaoZhang est là., Date: 2024-01-05 14:06:21 Les résultats de l'enquête
Les étiquettes:

img

Résumé

La stratégie de l'inversion de l'élan combinée combine une stratégie d'inversion et une stratégie d'élan. En utilisant à la fois des signaux d'inversion de prix et des signaux d'indicateur d'élan, elle capture les points tournants du marché plus précisément et entre sur le marché en temps opportun lorsque le prix commence à s'inverser.

La logique de la stratégie

La stratégie se compose de deux parties:

  1. 123 Stratégie d'inversion: Optez pour une position longue lorsque la clôture est supérieure à la clôture précédente pendant 2 jours consécutifs après 2 jours de clôture inférieure et que la ligne K lente de 9 jours est inférieure à 50; Optez pour une position courte lorsque la clôture est inférieure à la clôture précédente pendant 2 jours consécutifs après 2 jours de clôture supérieure et que la ligne K rapide de 9 jours est supérieure à 50.

  2. Stratégie de rupture de l'élan du DAPD: le DAPD est la différence moyenne entre le sommet de 21 jours et le plus bas de 21 jours.

Un signal d'entrée est généré lorsque deux stratégies donnent des signaux alignés.

Les avantages

La stratégie combine les avantages des stratégies d'inversion et de dynamique, capturant plus précisément les points de basculement.

  1. Le double filtre augmente la fiabilité du signal et le taux de réussite est plus élevé.

  2. Le modèle 123 réduit le risque de fouets.

  3. DAPD dynamique adaptée aux produits tendance.

Les risques

  1. Les signaux de deux stratégies peuvent ne pas s'aligner parfaitement.

  2. Difficulté à optimiser deux ensembles de paramètres ensemble.

  3. Risque de doublement des coûts de transaction: les commissions s'appliquent aux deux stratégies.

Optimisation

  1. Optimiser l'alignement des signaux de deux stratégies.

  2. Efficacité des essais de différents ensembles de paramètres sur différents produits.

  3. Ne prenez que des signaux puissants pour filtrer les faibles.

Conclusion

La stratégie de l'inversion de l'élan composé capture l'inversion du prix en temps opportun en combinant les mérites des stratégies d'inversion et de l'élan. Les doubles filtres augmentent le taux de succès. Une amélioration supplémentaire des performances peut être obtenue en optimisant l'alignement du signal. La stratégie convient aux investisseurs disposant de suffisamment de capital et d'expertise en trading.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/12/2019
// 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 is similar to Bollinger Bands. It based on DAPD - Daily
// Average Price Delta. DAPD is based upon a summation for each of the
// highs (hod) for the 21 days prior to today minus the summation for
// each of the lows (lod) for the last 21 days prior to today. The result
// of this calculation would then be divided by 21.
// It will be buy when high above previos DAPD high and sell if low below previos DAPD low
//
// 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

DAPD(Length) =>
    pos = 0.0
    xHighSMA = sma(high, Length)
    xLowSMA = sma(low, Length)        
    nDAPD = xHighSMA - xLowSMA
    nTop = high + nDAPD
    nBottom = low - nDAPD
    pos :=  iff(high > nTop[1], 1,
    	     iff(low < nBottom[1], -1, nz(pos[1], 0)))    
    pos

strategy(title="Combo Backtest 123 Reversal & DAPD", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDAPD = input(21, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDAPD = DAPD(LengthDAPD)
pos = iff(posReversal123 == 1 and posDAPD == 1 , 1,
	   iff(posReversal123 == -1 and posDAPD == -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