La estrategia de comercio de clonación de la cantidad de ciano y cinano es una estrategia de comercio de la línea corta basada en el precio de la relación de la cantidad en el día. La estrategia utiliza la información de la dirección de ciano y cinano de la negociación de acciones en el día, combinada con la señal de confirmación de la cantidad, para lograr operaciones de línea corta de bajo riesgo.
La estrategia genera bloques de Renko calculando el precio de apertura, cierre, máximo y mínimo de las acciones diarias, en combinación con el indicador ATR. Cuando se produce una inversión de los bloques de yin y yang, se genera una señal de negociación.
Concretamente, la estrategia primero calcula el precio de apertura o2 y el precio de cierre c2 de la pieza de Renko. Si o2c2, indica la línea negativa. Se genera una señal de venta cuando la línea negativa se convierte en la línea negativa y una señal de compra cuando la línea negativa se convierte en la línea positiva.
Para filtrar las brechas falsas, la estrategia también calcula el número de ciclos de los hilos positivos y negativos anteriores, y la señal es más confiable si el número de ciclos de los hilos positivos es mayor. Además, la estrategia también configura la lógica de stop loss después de comprar y vender.
El uso de bloques de Renko filtra el ruido del mercado y hace que las señales sean más claras.
La combinación de la relación de energía y el riesgo de una falsa ruptura.
El modelo DAPM es simple, eficaz y adecuado para operaciones de línea corta diarias.
Los parámetros ATR personalizados ajustan la frecuencia de las transacciones.
Optimización de la gestión de riesgos mediante estrategias de detención de pérdidas personalizadas.
El riesgo de una brecha falsa con una tendencia no clara sigue existiendo.
El ajuste incorrecto de los parámetros de Renko puede perder la tendencia o aumentar la frecuencia de las operaciones.
Un punto de parada demasiado pequeño puede causar pérdidas leves que se repiten en el punto de parada.
Se puede considerar la posibilidad de combinar el filtro de señales con otros indicadores técnicos.
Se puede considerar la adición de la función de detención de pérdidas móviles o seguimiento de las pérdidas.
Se pueden realizar pruebas de optimización para diferentes parámetros de variedades.
Se puede considerar la combinación de diferentes períodos de tiempo para realizar transacciones en varios marcos de tiempo.
La estrategia en general es una estrategia de comercio de corta línea muy práctica. Utiliza las relaciones de precio y cantidad para filtrar de manera eficiente y puede capturar los puntos clave de los precios de la línea corta hacia arriba y hacia abajo. También se debe tener en cuenta la configuración de parámetros razonables, la gestión adecuada del riesgo y las estrategias de stop loss, que aumentan considerablemente la estabilidad y la rentabilidad de la estrategia.
/*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')