Esta estrategia utiliza primero señales de inversión de precios para la negociación, luego combina indicadores de filtrado de tendencia para la detección, implementando un sistema impulsado por dos factores.
La parte de inversión de precios utiliza el sistema de inversión 123. Este sistema es del libro
Cuando se cumplen las condiciones anteriores, se genera una señal de compra.
Se genera una señal de venta.
El objetivo de este sistema de reversión es capturar las reversiones a corto plazo cuando los precios forman una reversión temporal.
El sistema ETT juzga la dirección de la tendencia a través de una combinación de filtro y promedio móvil. En esta estrategia, su función principal es verificar las señales de inversión de precios, evitando la operación de inversión cuando no hay una tendencia clara.
Esta estrategia combina las señales de negociación de ambas subestrategias, logrando finalmente un sistema de negociación de inversión impulsado por dos factores.
La estrategia de negociación de inversión de dos factores integra las ventajas de cada subestrategia mediante la combinación de:
Por lo tanto, esta estrategia puede filtrar eficazmente las señales de reversión inválidas.
La estrategia de negociación de inversión de dos factores presenta los siguientes riesgos principales:
Para reducir los riesgos anteriores, las consideraciones incluyen ajustar los parámetros del compilador, optimizar las estrategias de inversión y ETT para un mejor juicio, así como expandir adecuadamente el rango de stop loss para la negociación de inversión.
Esta estrategia puede optimizarse en los siguientes aspectos:
Con la lógica de la estrategia y las señales comerciales clave sin cambios, se pueden esperar mejores resultados de backtest a través de la optimización de parámetros y combinaciones.
La estrategia de inversión de doble factor combina orgánicamente las señales de inversión de precios y el filtrado de tendencias para el sistema de juicio de múltiples factores. En comparación con las estrategias de señal de inversión única, esta estrategia puede capturar mejor las inversiones de precios a corto plazo evitando señales falsas cuando no hay una tendencia clara, mejorando así la calidad de la señal. Se puede esperar un mejor rendimiento a través de la optimización de parámetros y la adición de otros factores.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/2020 // 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 // Extracting The Trend // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // 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 ETT(Length,Delta,Trigger) => pos = 0 xBandpassFilter = 0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos :=iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthETT = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETT = ETT(LengthETT,Delta,Trigger) pos = iff(posReversal123 == 1 and posETT == 1 , 1, iff(posReversal123 == -1 and posETT == -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 )