Esta estrategia calcula el volumen de transacciones más alto y más bajo durante un cierto período reciente para formar un rango de fluctuación adaptativo. Cuando el volumen de transacciones del ciclo actual rompe este rango, se generan señales comerciales. La dirección de la señal está determinada por el candelero Yin Yang, que es una estrategia simple y efectiva para rastrear grandes transacciones individuales repentinas en el mercado.
La lógica básica es calcular los valores más altos y más bajos de los volúmenes de transacciones positivos y negativos en los ciclos N más recientes para formar un rango de fluctuación adaptativo. Determinar si ocurre un avance en el período actual basado en este rango mientras se toma en cuenta la señal de la línea Yin Yang para completar el juicio.
El proceso de cálculo específico es el siguiente:
Las principales ventajas de esta estrategia son las siguientes:
La estrategia también tiene algunos riesgos:
El ajuste de los parámetros del ciclo y la incorporación de otros indicadores para el filtrado pueden optimizar.
La estrategia puede optimizarse de varias maneras:
La estrategia es en general simple y práctica. Al combinar el rango adaptativo y el análisis de precios de volumen, puede capturar eficazmente mercados explosivos unilaterales. Sin embargo, también hay cierto riesgo de señales falsas, lo que requiere ajustes de parámetros apropiados y herramientas complementarias antes de que pueda lograr el máximo impacto.
/*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)