Cette stratégie est basée sur un seul indicateur, la ligne de fond lisse, pour réaliser des opérations de suivi de tendance simples. La stratégie utilise l’indicateur de la ligne de fond lisse pour identifier la direction de la tendance, combinée à la forme historique de la ligne K pour juger du moment d’entrée et de sortie pour un profit.
Cette stratégie consiste à construire une ligne de fond lisse en calculant des moyennes mobiles. Plus précisément, il s’agit de calculer une moyenne mobile des prix d’ouverture, des prix les plus élevés, des prix les plus bas et des prix de clôture, puis de calculer les prix d’ouverture, des prix les plus élevés, des prix les plus bas et des prix de clôture de la ligne de fond lisse.
Conditions d’achat: le prix de clôture actuel de la ligne K est supérieur au prix de clôture de la ligne K précédente, le prix de clôture de la ligne K précédente est supérieur au prix de clôture des lignes K précédentes, près de trois lignes K sont des lignes de couleur.
Conditions de vente: le prix de clôture actuel de la ligne K est inférieur au prix de clôture de la ligne K précédente, le prix de clôture de la ligne K précédente est inférieur au prix de clôture des lignes K précédentes, et près de trois lignes K sont des lignes négatives.
Les conditions d’achat et de vente doivent satisfaire au signal le plus récent de 0 ou le signal inverse, afin d’éviter la répétition d’une transaction.
Il est possible d’améliorer la situation en combinant d’autres indicateurs pour déterminer les tendances à long terme, optimiser les stratégies de stop loss, surveiller les environnements de marché, etc.
Cette stratégie utilise la fonction de suivi de la tendance de l’indicateur de la ligne de fer de la mer, en conjonction avec la forme de la ligne K pour juger du moment d’entrée en bourse et contrôler la fréquence de négociation par le filtrage des signaux répétés. La logique de la stratégie est simple et claire et facile à mettre en œuvre.
/*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)