Heikin-Ashi a simplifié la stratégie d'achat et de vente

Auteur:ChaoZhang est là., Date: 2023-10-07 15:01:06 Je suis désolé
Les étiquettes:

Résumé

Cette stratégie est basée sur un seul indicateur - Heikin-Ashi lissé, pour mettre en œuvre une tendance simple à la suite d'opérations d'achat et de vente.

La logique de la stratégie

La stratégie calcule la moyenne mobile des prix d'ouverture, de hausse, de baisse et de clôture pour construire une Heikin-Ashi lissée.

Condition d'achat: les barres actuelles sont fermées > les barres précédentes sont fermées, les barres précédentes sont fermées > 2 barres précédentes sont fermées, les 3 dernières barres sont haussières.

Condition de vente: les barres actuelles sont fermées < les barres précédentes sont fermées, les barres précédentes sont fermées < 2 barres auparavant sont fermées, les 3 dernières sont baissières.

Les conditions d'achat et de vente exigent que le dernier signal soit nul ou contraire, afin d'éviter des transactions consécutives dans le même sens.

Analyse des avantages

  • Logique simple avec un seul indicateur
  • Utilisez la tendance de Heikin-Ashi à suivre la capacité
  • Évitez de manquer des tendances ou de négocier à l' inverse via des modèles de chandeliers
  • Réduire les transactions inutiles en filtrant les signaux en double

Analyse des risques

  • Heikin-Ashi a un effet de retard, peut manquer les points tournants de la tendance
  • Seules les 3 dernières barres sont prises en considération, manque de jugement sur la tendance à long terme
  • Aucun stop loss défini, risque d'accroissement des pertes
  • Ignorer les conditions générales du marché, vulnérables aux risques systématiques

Des améliorations peuvent être apportées en combinant d'autres indicateurs de tendance à long terme, en optimisant la stratégie de stop loss, en accordant une attention particulière au marché global, etc.

Directions d'optimisation

  • Ajouter d'autres indicateurs pour déterminer la tendance à long terme
  • Optimiser le stop loss tel que le stop trailing ou le stop loss basé sur le pourcentage
  • Considérer l'indice global du marché pour éviter de négocier sur un marché à plage
  • Optimiser les paramètres tels que la période moyenne mobile
  • Ajout d'indicateurs de volume pour assurer le soutien du volume de négociation

Résumé

Cette stratégie utilise la capacité de suivi de tendance de Heikin-Ashi et combine des modèles de bougies pour déterminer le moment d'entrée, tout en contrôlant la fréquence des transactions en filtrant les signaux en double.


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Masoud Abdoli
//Heikin Ashi Smoothed Buy & Sell Strategy Rev.4
//Date: 01-Oct-2021
//@version=4

strategy(title="Abdoli's Heikin Ashi Smoothed Buy & Sell Strategy Rev.4", shorttitle="Heikin-Ashi Smoothed Rev.4", overlay=true,
 initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

MaPeriod = input (title="Moving Average Period?", type=input.integer, defval=65, minval=5, maxval=100, step=5)

maOpen  = ema(open , MaPeriod)
maHigh  = ema(high , MaPeriod)
maLow   = ema(low  , MaPeriod)
maClose = ema(close, MaPeriod)

haClose = (maOpen+maHigh+maLow+maClose)/4
haOpen = 0.0
haOpen:= na(haOpen[1]) ? (maOpen[1]+maClose[1])/2 : (haOpen[1]+haClose[1])/2
haHigh = max(maHigh, max(haClose, haOpen))
haLow  = min(maLow , max(haClose, haOpen))

plotcandle(haOpen, haHigh, haLow, haClose, title="heikin-Ashi smoothed", color=haOpen>haClose ? color.orange : color.blue)

B0 = haClose    - haOpen
B1 = haClose[1] - haOpen[1]
B2 = haClose[2] - haOpen[2]
BuyCondition = B0 > 0.0 and B1 > 0.0 and B2 > 0.0 and haClose > haClose[1] and haClose[1] > haClose[2]
SellCondition= B0 < 0.0 and B1 < 0.0 and B2 < 0.0 and haClose < haClose[1] and haClose[1] < haClose[2]

last_signal = 0
Buy_final  = BuyCondition  and (nz(last_signal[1]) == 0 or nz(last_signal[1]) ==-1)
Sell_final = SellCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1)
last_signal := Buy_final ? 1 : Sell_final ? -1 : last_signal[1]

plotshape(Buy_final , style=shape.labelup  , location=location.belowbar, color=color.blue, title="Buy label" , text="BUY" , textcolor=color.white)
plotshape(Sell_final, style=shape.labeldown, location=location.abovebar, color=color.red , title="Sell label", text="SELL", textcolor=color.white)

strategy.entry("Buy", strategy.long, when=Buy_final)
strategy.close("Buy", when=Sell_final)

Plus de