Esta estrategia se basa en un solo indicador para el seguimiento de la tendencia de compra y venta. La estrategia utiliza el indicador de la línea de fondo para identificar la dirección de la tendencia, combinada con la forma histórica de la línea K para determinar el momento de entrada y salida para obtener ganancias.
Esta estrategia construye una línea de fondo plana mediante el cálculo de las medias móviles. En concreto, se calcula una media móvil de los precios de apertura, máximo, mínimo y cierre, y luego se calcula el precio de apertura, máximo, mínimo y cierre de la línea de fondo plana.
Para determinar las condiciones de compra: el precio de cierre de la línea K actual es mayor que el precio de cierre de la línea K anterior, el precio de cierre de la línea K anterior es mayor que el precio de cierre de las líneas K anteriores, y casi las tres líneas K son líneas de sol.
Para determinar las condiciones de venta: el precio de cierre de la línea K actual es menor que el precio de cierre de la línea K anterior, el precio de cierre de la línea K anterior es menor que el precio de cierre de las líneas K anteriores, y casi las tres líneas K son negativas.
Las condiciones de compra y venta deben cumplirse con la última señal de 0 o la señal opuesta, para evitar la repetición consecutiva de la operación.
Se pueden mejorar las tendencias a largo plazo en combinación con otros indicadores, optimizando las estrategias de stop loss, prestando atención al entorno de las grandes apuestas, etc.
Esta estrategia utiliza la función de seguimiento de tendencias de los indicadores de la línea K, en combinación con la forma de la línea K para determinar el momento de entrada, y controla la frecuencia de las operaciones mediante el filtrado de señales repetidas. La lógica de la estrategia es simple, clara y fácil de implementar.
/*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)