Heikin Ashi ROC Estrategia de negociación en porcentaje

El autor:¿ Qué pasa?, Fecha: 2023-10-23 15:41:40
Las etiquetas:

img

Resumen general

Esta estrategia se llama Heikin Ashi ROC Percentile Trading Strategy. Su objetivo es proporcionar un marco de negociación fácil de usar basado en el Heikin Ashi ROC y sus percentiles.

Estrategia lógica

La estrategia calcula los precios de cierre de ROC de Heikin Ashi en los últimos períodos de rocLength. Luego calcula los valores más altos de rocHigh y más bajos de rocLow de ROC en los últimos 50 períodos. La línea KillLine superior y la línea KillLine inferior se generan en función de ciertos percentiles de rocHigh y rocLow. Cuando ROC cruza por encima de la línea KillLine inferior, se abre una posición larga. Cuando ROC cruza por debajo de la línea KillLine superior, la posición larga se cierra. Por el contrario, cuando ROC cruza por debajo de la línea KillLine superior, se abre una posición corta. Cuando ROC cruza por encima de la línea KillLine inferior, la posición corta se cierra.

Análisis de ventajas

La mayor ventaja de esta estrategia es la utilización de la fuerte capacidad de seguimiento de tendencias del indicador ROC, combinada con la característica de Heikin Ashi de suavizar la información de precios. Esto permite a la estrategia identificar eficazmente los cambios de tendencia y entrar en operaciones de manera oportuna. En comparación con los promedios móviles simples, ROC responde más sensiblemente a los cambios de precios. Además, los rieles superiores e inferiores generados a partir de percentiles pueden filtrar eficazmente las consolidaciones y evitar operaciones innecesarias de rupturas falsas. En general, esta estrategia combina tanto el seguimiento de tendencias como el filtrado de oscilaciones para lograr buenas relaciones riesgo-recompensa en las principales tendencias.

Análisis de riesgos

El principal riesgo de esta estrategia es que la configuración inadecuada de parámetros puede conducir a una sobreventa o una sensibilidad insuficiente. Los períodos de retroceso de rocLength y percentil deben establecerse con prudencia, de lo contrario los rieles pueden volverse demasiado opacos o rígidos, causando operaciones perdidas o pérdidas innecesarias. Además, las configuraciones de percentil deben ser repetidamente revisadas y ajustadas para diferentes mercados para encontrar combinaciones óptimas. La estrategia también está sujeta a ciertas pérdidas cuando las tendencias se invierten, debido a su dependencia de indicadores de tendencia. Las posiciones deben cerrarse a tiempo o detener las pérdidas establecidas para controlar los riesgos.

Direcciones de optimización

La estrategia se puede optimizar de las siguientes maneras: 1) Añadir filtros con otros indicadores como el RSI; 2) Optimizar dinámicamente los parámetros con aprendizaje automático; 3) Establecer stop loss y take profit para la gestión automática del riesgo; 4) Combinar con estrategias no de tendencia para equilibrar los riesgos.

Resumen de las actividades

En resumen, esta estrategia utiliza la poderosa capacidad de seguimiento de tendencias del indicador ROC, combinada con Heikin Ashi para la identificación y seguimiento de tendencias. Los rieles superiores e inferiores generados a partir de los percentiles ROC permiten un filtrado de pérdidas efectivo. Esto logra un buen rendimiento de seguimiento de tendencias. Las ventajas se encuentran en su identificación oportuna de los cambios de tendencia y el seguimiento de las tendencias principales, al tiempo que filtra las consolidaciones con los rieles. Sin embargo, la configuración inadecuada de parámetros puede afectar el rendimiento y persisten los riesgos de reversión de tendencias.


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jensenvilhelm

//@version=5
strategy("Heikin Ashi ROC Percentile Strategy", shorttitle="ROC ON" , overlay=false)

// User Inputs
zerohLine = input(0, title="Midline")  // Zero line, baseline for ROC (customer can modify this to adjust midline)
rocLength = input(100, title="roc Length")  // Lookback period for SMA and ROC (customer can modify this to adjust lookback period)

stopLossLevel = input(2, title="Stop Loss (%)")  // Level at which the strategy stops the loss (customer can modify this to adjust stop loss level)
startDate = timestamp("2015 03 03")  // Start date for the strategy (customer can modify this to adjust start date)

// Heikin Ashi values
var float haClose = na  // Define Heikin Ashi close price
var float haOpen = na  // Define Heikin Ashi open price
haClose := ohlc4  // Calculate Heikin Ashi close price as average of OHLC4 (no customer modification needed here)
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2  // Calculate Heikin Ashi open price (no customer modification needed here)

// ROC Calculation
roc = ta.roc(ta.sma(haClose, rocLength), rocLength)  // Calculate Rate of Change (ROC) (customer can modify rocLength in the inputs)
rocHigh = ta.highest(roc, 50)  // Get the highest ROC of the last 50 periods (customer can modify this to adjust lookback period)
rocLow = ta.lowest(roc, 50)  // Get the lowest ROC of the last 50 periods (customer can modify this to adjust lookback period)
upperKillLine = ta.percentile_linear_interpolation(rocHigh, 10, 75)  // Calculate upper kill line (customer can modify parameters to adjust this line)
lowerKillLine = ta.percentile_linear_interpolation(rocLow, 10, 25)  // Calculate lower kill line (customer can modify parameters to adjust this line)

// Trade conditions
enterLong = ta.crossover(roc, lowerKillLine)  // Define when to enter long positions (customer can modify conditions to adjust entry points)
exitLong = ta.crossunder(roc, upperKillLine)  // Define when to exit long positions (customer can modify conditions to adjust exit points)
enterShort = ta.crossunder(roc, upperKillLine)  // Define when to enter short positions (customer can modify conditions to adjust entry points)
exitShort = ta.crossover(roc, lowerKillLine )  // Define when to exit short positions (customer can modify conditions to adjust exit points)

// Strategy execution
if(time >= startDate)  // Start strategy from specified start date
    if (enterLong)
        strategy.entry("Long", strategy.long)  // Execute long trades
    if (exitLong)
        strategy.close("Long")  // Close long trades
    if (enterShort)
        strategy.entry("Short", strategy.short)  // Execute short trades
    if (exitShort)
        strategy.close("Short")  // Close short trades

// Plotting
plot(zerohLine,title="Zeroline")  // Plot zero line
plot(roc, "RSI", color=color.rgb(248, 248, 248))  // Plot ROC
plot(rocHigh, "Roc High", color = color.rgb(175, 78, 76))  // Plot highest ROC
plot(rocLow, "Roc Low", color = color.rgb(175, 78, 76))  // Plot lowest ROC
plot(upperKillLine, "Upper Kill Line", color = color.aqua)  // Plot upper kill line
plot(lowerKillLine, "Lower Kill Line", color = color.aqua)  // Plot lower kill line


Más.