La estrategia se llama
La estrategia consta de dos partes. La primera parte utiliza el Stoch de 9 días para generar señales de reversión a corto plazo. Específicamente, se va largo cuando el cierre es más alto que el cierre anterior y la línea rápida de Stoch de 9 días está por debajo de 50 mientras que la línea lenta está por encima de 50; se va corto cuando el cierre es más bajo que el cierre anterior y la línea rápida de Stoch de 9 días está por encima de 50 mientras que la línea lenta está por debajo de 50.
La segunda parte utiliza el Índice de Volumen Negativo (NVI) para formar señales de tendencia a largo plazo. La fórmula de cálculo de NVI es que si el volumen del día es menor que el día anterior, se acumula la tasa de cambio del precio de cierre del día; si el volumen del día es mayor o igual al día anterior, el valor del día anterior permanece sin cambios. Las señales de tendencia a largo plazo se forman a través del promedio móvil del indicador NVI.
Finalmente, la estrategia combina los dos tipos de señales. Sólo cuando la señal de reversión a corto plazo y la señal de tendencia a largo plazo están en la misma dirección se formará una señal de entrada. Esto ayuda a filtrar las señales falsas y mejora la estabilidad.
La mayor ventaja de esta estrategia es la estabilidad de las señales. La señal de reversión a corto plazo captura los ajustes de mercado a corto plazo, mientras que la señal de tendencia a largo plazo asegura que la gran tendencia permanezca sin cambios. La combinación de los dos mejora enormemente la estabilidad de las señales y puede filtrar eficazmente las señales falsas que tienen una tasa más alta de las de corto plazo.
Además, la estrategia tiene pocos parámetros y es fácil de optimizar: los usuarios solo necesitan ajustar los parámetros de la NVI para adaptarse a las características de los diferentes mercados.
El mayor riesgo de esta estrategia es que puede haber un retraso de tiempo entre los dos tipos de señales. Puede haber algún retraso entre la señal de reversión a corto plazo y la señal de tendencia a largo plazo, lo que dará lugar a señales inconsistentes durante un período de tiempo, incapaces de formar una señal de entrada estable.
Además, el indicador NVI también es sensible a los aumentos anormales en el volumen de operaciones, lo que puede conducir a juicios erróneos de las tendencias a largo plazo.
Para mitigar estos riesgos, los parámetros del indicador NVI se pueden ajustar en consecuencia o se puede añadir un stop loss para controlar la pérdida por operación.
Los principales aspectos para optimizar esta estrategia incluyen:
Optimizar los parámetros del indicador de Stoch para mejorar la capacidad de captura de la inversión.
Optimizar la duración del ciclo del indicador NVI para mejorar la capacidad de identificación de tendencias a largo plazo.
Añadir filtros de volumen de negociación para eliminar las señales falsas de volúmenes de negociación anormales.
Añadir estrategias de stop loss para controlar la pérdida por operación.
La estrategia está diseñada con un mecanismo de entrada estable basado en la idea de la reversión a corto plazo y la tendencia a largo plazo para controlar efectivamente la tasa de falsos positivos y mejorar la estabilidad de la señal.
/*backtest start: 2023-12-18 00:00:00 end: 2023-12-21 05:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 29/03/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The theory behind the indexes is as follows: On days of increasing // volume, you can expect prices to increase, and on days of decreasing // volume, you can expect prices to decrease. This goes with the idea of // the market being in-gear and out-of-gear. Both PVI and NVI work in similar // fashions: Both are a running cumulative of values, which means you either // keep adding or subtracting price rate of change each day to the previous day`s // sum. In the case of PVI, if today`s volume is less than yesterday`s, don`t add // anything; if today`s volume is greater, then add today`s price rate of change. // For NVI, add today`s price rate of change only if today`s volume is less than // yesterday`s. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos NVI(EMA_Len) => pos = 0.0 nRes = 0.0 xROC = roc(close, EMA_Len) nRes := iff(volume < volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0)) nResEMA = ema(nRes, EMA_Len) pos := iff(nRes > nResEMA, 1, iff(nRes < nResEMA, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Negative Volume Index", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Negative Volume Index ----") EMA_Len = input(50, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posNVI = NVI(EMA_Len) pos = iff(posReversal123 == 1 and posNVI == 1 , 1, iff(posReversal123 == -1 and posNVI == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )