
La estrategia calcula los máximos y mínimos de los volúmenes de transacciones en el último período determinado, formando un rango de fluctuación adaptado que genera una señal de negociación cuando el volumen de transacciones del ciclo actual supera este rango. La dirección de la señal, según el juicio de los cielos y las nubes, es una estrategia simple y efectiva para rastrear las ganancias inesperadas del mercado.
La lógica central es calcular el máximo y mínimo valor de transacciones positivas y negativas en los últimos N ciclos, formando un rango de fluctuación adaptativo. Basado en este rango, se determina si se ha producido una ruptura en ese período. Al mismo tiempo, se integra la señal de los rayos X y Y para completar el juicio.
El proceso de cálculo es el siguiente:
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Se puede optimizar ajustando el ciclo de los parámetros, en combinación con otros indicadores filtrados.
La estrategia puede ser optimizada en las siguientes direcciones:
La estrategia es sencilla y práctica en general, y puede capturar de manera efectiva las situaciones unilaterales repentinas mediante la combinación de la escala de adaptación y el valor cuantitativo. Sin embargo, también existe un cierto riesgo de errores, que requieren un ajuste adecuado de los parámetros y el uso de otras herramientas para obtener la máxima eficacia.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
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/
// © EvoCrypto
//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)
// INPUTS {
Range_Length = input(5, title="Range Length", minval=1)
Heikin_Ashi = input(true, title="Heikin Ashi Colors")
Display_Bars = input(true, title="Show Bar Colors")
Display_Break = input(true, title="Show Break-Out")
Display_Range = input(true, title="Show Range")
// }
// SETTINGS {
Close = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
Open = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
Positive = volume
Negative = -volume
Highest = highest(volume, Range_Length)
Lowest = lowest(-volume, Range_Length)
Up = Highest > Highest[1] and Close > Open
Dn = Highest > Highest[1] and Close < Open
Volume_Color =
Display_Break and Up ? color.new(#ffeb3b, 0) :
Display_Break and Dn ? color.new(#f44336, 0) :
Close > Open ? color.new(#00c0ff, 60) :
Close < Open ? color.new(#000000, 60) : na
// }
//PLOTS {
plot(Positive, title="Positive Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Negative, title="Negative Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Display_Range ? Highest : na, title="Highest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
plot(Display_Range ? Lowest : na, title="Lowest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
barcolor(Display_Bars ? Volume_Color : na)
// }
if (Up)
strategy.entry("Long Entry", strategy.long)
if (Dn)
strategy.entry("Short Entry", strategy.short)