
Esta estrategia utiliza un mecanismo de seguimiento bidireccional, combinado con una señal de reversión de precios y un indicador de volumen de transacción, para realizar operaciones cuantitativas automatizadas. Su mayor ventaja reside en el control de riesgos confiables, para bloquear las ganancias y evitar la expansión de las pérdidas mediante el seguimiento de los estancamientos. Al mismo tiempo, las señales de reversión de comercio aumentan la victoria de la estrategia.
Esta estrategia consta de dos subestrategias. La primera subestrategia utiliza un indicador aleatorio para determinar las señales de reversión de precios. La lógica es la siguiente:
Si el precio de cierre sube dos días seguidos y la línea Slow K está por debajo de 50 en el día 9, haga más; si el precio de cierre baja dos días seguidos y la línea Fast K está por encima de 50 en el día 9, haga un vacío.
La segunda subestrategia es la combinación de indicadores de volumen de transacciones y debilidades en el juicio. En concreto, es comparar el volumen de transacciones actual con el promedio de volumen de transacciones de 40 días. Si el volumen de transacciones actual es mayor que el promedio, considere que la cantidad puede atacar, pertenece a una señal de reversión, hacer vacío; Si el volumen de transacciones actuales es menor que el promedio, considere que la cantidad puede bajar, pertenece a una señal de reversión, hacer más.
La señal de transacción final es la intersección de las dos señales de estrategias secundarias mencionadas anteriormente. Es decir, la posición se abre cuando las dos estrategias emiten señales al mismo tiempo. Mediante este método de filtrado de Intersection Targets, se puede filtrar parte de la transacción de ruido y mejorar la calidad de la señal.
Se puede optimizar aún más en los siguientes aspectos:
En general, esta estrategia utiliza el seguimiento bidireccional y la inversión de precios como la lógica de negociación principal, y se complementa con el juicio cuantitativo para mejorar la calidad de la señal a través de la doble confirmación. En la aplicación práctica, aún se necesitan pruebas y optimizaciones adicionales, especialmente para proteger los riesgos de la pérdida de control y la gestión de fondos, y para evitar la quiebra causada por el retorno de grandes cantidades.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 16/11/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
// Volume and SMA
//
// 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
VSAVol(Length) =>
pos = 0.0
xSMA_vol = sma(volume, Length)
pos := iff(volume > xSMA_vol, -1,
iff(volume < xSMA_vol, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MAVol = input(40, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posVSAVol = VSAVol(Length_MAVol)
pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1,
iff(posReversal123 == -1 and posVSAVol == -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 )