La estrategia de negociación de Renko Yin Yang Quant es una estrategia de negociación a corto plazo basada en la relación precio-volumen intradiario. Utiliza la información de dirección yin yang dentro de un día y combina señales de confirmación de volumen para implementar operaciones a corto plazo de bajo riesgo.
La estrategia calcula los precios de apertura, cierre, alto y bajo de cada día de negociación, y genera ladrillos Renko junto con el indicador ATR.
Específicamente, la estrategia primero calcula el precio de apertura o2 y el precio de cierre c2 de los ladrillos Renko. Si o2
Para filtrar las falsas rupturas, la estrategia también cuenta el número de períodos de la última línea yang y yin. Si la línea yang tiene más períodos, la señal es más confiable.
Los ladrillos Renko filtran el ruido del mercado y hacen que las señales comerciales sean más claras.
La combinación de la relación precio-volumen evita el riesgo de una falsa ruptura.
El modelo DAPM es simple y eficaz para el comercio intradiario.
Los parámetros ATR personalizables ajustan la frecuencia de las operaciones.
El stop loss personalizable mejora la gestión del riesgo.
Todavía existe el riesgo de una fuga falsa no clara.
La configuración incorrecta del parámetro Renko puede perder tendencias o aumentar la frecuencia de negociación.
Un stop loss demasiado apretado puede ser detenido por un retroceso menor.
Considere la posibilidad de combinar otros indicadores técnicos para filtrar las señales.
Considere la posibilidad de añadir una función de stop loss.
Optimizar los parámetros para diferentes activos.
Considere la posibilidad de combinar diferentes marcos de tiempo para el comercio de marcos de tiempo múltiples.
En conclusión, esta es una estrategia de negociación a corto plazo muy práctica. Utiliza la relación precio-volumen para filtrar de manera eficiente y capturar puntos de inflexión clave. El ajuste adecuado de parámetros, la gestión de riesgos y la estrategia de stop loss pueden mejorar en gran medida su estabilidad y rentabilidad. Con optimización y pruebas continuas, esta estrategia puede convertirse en una poderosa herramienta para los operadores intradiarios.
/*backtest start: 2022-09-26 00:00:00 end: 2023-09-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License https://creativecommons.org/licenses/by-sa/4.0/ // © dman103 strategy(title="Renko Strategy V2", shorttitle="Renko Strategy V2", overlay=true,precision=3, commission_value=0.025, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000) // Version 2.0 of my previous renko strategy using Renko calculations, this time without Tilson T3 and without using security with Renko to remove repaints! // Seems to work nicely on cryptocurrencies on higher time frames. //== Description == // Strategy gets Renko values and uses renko close and open to trigger signals. // Base on these results the strategy triggers a long and short orders, where green is uptrending and red is downtrending. // This Renko version is based on ATR, you can Set ATR (in settings) to adjust it. // == Notes == // Supports alerts. // Supports backtesting time ranges. // Shorts are disabled by default (can be enabled in settings). // Link to previous Renko strategy V1: https://www.tradingview.com/script/KeWBWLGT-Renko-Strategy-T3-V1/ // // Stay tuned for version V3 in the future as i have an in progress prototype, Follow to get updated: https://www.tradingview.com/u/dman103/#published-scripts // === INPUT BACKTEST RANGE === useDate = input(true, title='---------------- Trade Range ----------------', type=input.bool) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2017, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2099, title = "To Year", minval = 2010) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create settings = input(true, title='---------------- Settings ----------------', type=input.bool) allow_short = input(false,title="Allow Short") atr_len = input(10,"ATR Length") atr = atr(atr_len) // Thanks to renko snippet calculations from @RafaelZioni https://www.tradingview.com/script/2vKhpfVH-Renko-XZ/ Renko1() => p1 = 0.0 p1 := close > nz(p1[1]) + atr ? nz(p1[1]) + atr : close < nz(p1[1]) - atr ? nz(p1[1]) - atr : nz(p1[1]) p1 Renko2() => p2 = 0.0 Br_1 = Renko1() p2 := Renko1() != Renko1()[1] ? Br_1[1] : nz(p2[1]) p2 Renko3() => p3 = 0.0 p3 := open > nz(p3[1]) + atr ? nz(p3[1]) + atr : open < nz(p3[1]) - atr ? nz(p3[1]) - atr : nz(p3[1]) p3 Renko4() => open_v = 0.0 Br_2 = Renko3() open_v := Renko3() != Renko3()[1] ? Br_2[1] : nz(open_v[1]) open_v o2 = Renko4() c2 = Renko1() l2 =low h2 = high //=== Plotting === crossPlot= 0.0 if (o2 < c2) crossPlot :=o2 else crossPlot := o2 // Used to make sure that even if o2 and c2 are equal, the result (short or long) will be based on previous trend. bars_since_up=barssince(o2 < c2) bars_since_down=barssince(o2 > c2) go_long= (bars_since_up<bars_since_down) and o2<c2 go_short = (bars_since_up>bars_since_down) and o2>c2 plotColor = go_long and o2<c2 ? color.green : go_short and o2>c2? color.red : color.white plot(crossPlot, color = plotColor, style = plot.style_circles, linewidth = 2,join=true) changeCond = plotColor != plotColor[1] //=== Buy/Sell === closeStatus = strategy.openprofit > 0 ? "win" : "lose" long_entry = plotColor == color.green and window() and changeCond long_exit_entry = plotColor == color.red //or (allow_alternative_sl and close < low_result ) short_entry = plotColor == color.red and window() and changeCond short_exit_entry = plotColor == color.green // or (allow_alternative_sl and close > high_result ) strategy.entry("long", true, when = long_entry) strategy.close("long",when=long_exit_entry,comment=closeStatus) if (allow_short) strategy.entry("short",false, when = short_entry) strategy.close("short",when=short_exit_entry,comment=closeStatus) //=== Alerts === alertcondition(go_long and changeCond , title='Renko Buy Signal', message='Renko Revered to Buy Signal') alertcondition(go_short and changeCond , title='Renko Sell Signal', message='Renko Revered to Sell Signal')