Stratégie d' inversion de la baisse Harami

Auteur:ChaoZhang est là., Date: 2023-11-23 à 11h47
Les étiquettes:

img

Résumé

La stratégie de contre-test de l'inversion de Harami baissier identifie les modèles d'inversion de Harami baissiers dans les graphiques de chandeliers et les négocie automatiquement.

La logique de la stratégie

L'indicateur de reconnaissance de modèle principal de cette stratégie est: la fermeture de la première bougie est une bougie haussière longue et la fermeture de la deuxième bougie est à l'intérieur du corps de la première bougie, formant une bougie baissière.

La logique spécifique est la suivante:

  1. Calculer si la taille du corps de la première bougie ABS ((Close1 - Open1) est supérieure à la taille du corps minimum définie
  2. Vérifiez si la première bougie est haussière Fermer1 > Ouvrir1
  3. Vérifiez si la bougie actuelle est baissière Ouvrir > Fermer
  4. Vérifiez si la bougie actuelle est ouverte est inférieure ou égale à la fermeture précédente ouverte <= fermé1
  5. Vérifiez si la bougie précédente ouverte est inférieure ou égale à la bougie actuelle fermée ouverte1 <= fermée
  6. Vérifiez si le corps de la bougie actuelle est inférieur à celui du corps précédent
  7. Si toutes les conditions sont remplies, un Harami baissier s'est formé et la stratégie échoue.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Utilise le fort signal d'inversion baissière de Harami pour une probabilité de profit plus élevée
  2. Les résultats des tests antérieurs sont positifs
  3. Une logique simple et claire qui est facile à comprendre et à optimiser
  4. L'exposition au risque de défaillance est calculée sur la base de l'exposition au risque de défaillance.

Analyse des risques

Il y a aussi des risques:

  1. Le marché peut avoir de fausses ruptures conduisant à des positions perdantes.
  2. La volatilité élevée peut déclencher un stop loss prématuré.
  3. Les données de backtest insuffisantes peuvent ne pas refléter les conditions réelles du marché.

Directions d'optimisation

La stratégie peut être encore optimisée dans les domaines suivants:

  1. Ajouter des filtres de volume, MACD et autres pour améliorer la qualité du signal
  2. Optimiser les stratégies stop loss et take profit, ajuster les niveaux de manière dynamique
  3. Augmenter l'efficacité de la détention de positions, combiner avec la tendance et d'autres facteurs pour réduire les transactions inefficaces
  4. Tester différents produits de négociation pour trouver des alternatives à volatilité moindre

Conclusion

La stratégie de contre-test de l'inversion de Harami baissier a une logique claire et facile à comprendre, de bons résultats de contre-test et des risques contrôlables.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-19 23:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/01/2019 
//    This is a bearish reversal pattern formed by two candlesticks in which a short 
//    real body is contained within the prior session's long real body. Usually the 
//    second real body is the opposite color of the first real body. The Harami pattern 
//    is the reverse of the Engulfing pattern. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bearish Harami Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip")
input_stoploss = input(10, title="Stop Loss pip")
input_minsizebody = input(3, title="Min. Size Body pip")
barcolor(abs(close- open) >= input_minsizebody ? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue )
posprice = 0.0
posprice := abs( close - open) >= input_minsizebody? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))


Plus de