
Esta estrategia utiliza primero la señal de reversión de precios para el comercio, y luego se filtra en combinación con los indicadores de filtración de tendencias, para lograr un doble factor de conducción. En la parte de reversión de precios se utiliza el sistema de comercio de reversión 123, y en la parte de filtración de tendencias se utiliza el sistema de comercio de tendencias de extracción ((Extracting The Trend, ETT), ambos en combinación con la estrategia de comercio de reversión para formar un doble factor de conducción.
La parte de reversión de precios utiliza el sistema de reversión 123. El sistema proviene de Ulf Jensen, en la página 183 de su libro Cómo ganar el triple de dinero en el mercado de futuros. La generación de su señal de negociación tiene las siguientes condiciones:
Cuando se cumplen las condiciones anteriores, se genera una señal de compra; por el contrario, cuando
Cuando se cumplen las condiciones anteriores, se genera una señal de venta.
La finalidad de este sistema de inversión es capturar el movimiento de los precios cuando se producen cambios de tendencia a corto plazo.
El filtro de tendencias utiliza la parte extractiva del sistema de tendencias ((ETT) 。 El sistema ETT determina la dirección de la tendencia a través de la combinación de la filtración de rendimiento y la línea media。 En esta estrategia, su función principal es verificar las señales de reversión de precios y evitar operaciones de reversión cuando no hay una tendencia clara。
La estrategia combina las señales de negociación de las dos subestrategias para lograr un comercio inverso impulsado por dos factores.
La combinación de estrategias de inversión de la combinación de dos factores a través de una combinación de subestrategias, que combinan sus respectivas ventajas, se refleja principalmente en:
Por lo tanto, la estrategia puede filtrar eficazmente las señales de reversión ineficaces y realizar operaciones de reversión con la premisa de que el juicio de tendencia es correcto, lo que mejora el rendimiento general del sistema de negociación.
Los principales riesgos de las estrategias de inversión de la combinación de dos factores son los siguientes:
Para reducir los riesgos mencionados anteriormente, se puede considerar ajustar los parámetros del compilador, optimizar las estrategias de reversión y las estrategias de ETT para que el juicio sea más preciso, al tiempo que se libera adecuadamente el margen de pérdida de las operaciones de reversión. En la práctica, también se necesita tener en cuenta el riesgo propio de los dos factores que impulsan el control de la escala de la posición.
Esta estrategia puede ser optimizada en los siguientes aspectos:
Se espera obtener mejores resultados de retroalimentación a través de la optimización de parámetros y combinaciones, siempre que se mantenga el pensamiento estratégico y la lógica de las señales de negociación principales.
La estrategia de inversión de la combinación de dos factores, a través de la combinación orgánica de la señal de reversión de precios y la señal de filtración de tendencias, permite un sistema de negociación basado en el juicio de múltiples factores. En comparación con la señal de reversión única, la estrategia puede mejorar la calidad de la señal, evitando así las falsas señales en situaciones de tendencia no clara, sobre la base de la garantía de captura de reversión de precios a corto plazo.
/*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 )