
La estrategia combina las medias móviles, las medias de medición y las medias de oscilación para formar un triple filtro, con el objetivo de capturar las tendencias de línea corta y media para obtener mejores ganancias en situaciones de tendencia.
La estrategia tiene tres partes principales:
El filtro de tendencia se construye usando el promedio móvil de 20 días y el promedio móvil de 60 días. Se forma una señal de compra cuando se cruza el promedio móvil de largo plazo por encima del promedio móvil de corto plazo; se forma una señal de venta cuando se cruza el promedio móvil de largo plazo por debajo del promedio móvil de corto plazo.
El uso de la cantidad de transacciones dividida por el indicador de la cantidad calculado por la cantidad de transacciones para determinar la dirección del flujo de fondos. El aumento de la cantidad de precios indica el flujo neto de fondos, la disminución de la cantidad de precios indica el flujo neto de fondos.
El uso de 20 días de ancho de canal de Donchian para calcular el parámetro de la banda de Bryn para formar una órbita ascendente y descendente. Cuando el precio está cerca de la órbita ascendente, indica que puede enfrentar presión de reajuste; cuando el precio está cerca de la órbita descendente, indica que puede enfrentar una oportunidad de rebote de soporte.
Combinando estas tres partes, se construye una estrategia multi-espacio para capturar tendencias de líneas cortas. Cuando las medias móviles de corto plazo atraviesan las medias móviles de largo plazo y los indicadores de precio de medida están en una tendencia ascendente, se forma una señal de compra cuando los precios salen de la banda de Brin en la vía; cuando las medias móviles de corto plazo atraviesan las medias móviles de largo plazo y los indicadores de precio de medida están en una tendencia descendente cuando los precios salen de la banda de Brin en la vía, se forma una señal de venta.
La estrategia tiene las siguientes ventajas:
Los filtros de triple indicador son efectivos para evitar falsos brechas.
Las señales son más confiables si se tienen en cuenta las tendencias, los flujos de capital y las sobrecompras y sobreventa.
Los parámetros del indicador han sido optimizados para diferentes ciclos y variedades.
El retiro es controlado, los ingresos estables.
La lógica es clara y fácil de entender, los parámetros se ajustan con flexibilidad.
La estrategia también tiene sus riesgos:
Riesgo de cambio de tendencia. Cuando la tendencia del mercado cambia, puede causar pérdidas.
El retraso en el indicador de la cantidad y el precio. El retraso en el indicador de la cantidad y el precio puede provocar que se pierda el punto de compra o venta.
Dificultad para ajustar los parámetros. Diferentes variedades y períodos requieren ajustar los parámetros, de lo contrario, el efecto puede no ser bueno.
El control de la retirada puede ser mejorado. El control de la retirada se puede optimizar aún más a través de la gestión dinámica de pérdidas o posiciones.
La estrategia puede ser optimizada en los siguientes aspectos:
Aumentar las estrategias de detención de pérdidas y controlar aún más las retiradas mediante el movimiento de las paradas y el seguimiento de las paradas.
Añadir un módulo de gestión de posiciones para ajustar el tamaño de las posiciones según la dinámica de la volatilidad del mercado.
Optimización de los parámetros indicadores para encontrar la combinación óptima de parámetros en diferentes ciclos de variedades.
Aumentar la capacidad de los modelos de aprendizaje automático para auxiliar en el juicio y mejorar la precisión de las señales.
La combinación de los indicadores de emoción y la imagen de la noticia mejora el juicio sobre los eventos inesperados.
La estrategia utiliza una combinación de medias móviles, indicadores de precios y indicadores de bandas de Brin para capturar mejor las tendencias en las líneas medias y cortas. Se puede obtener un mejor efecto de la estrategia optimizando aún más los puntos de parada, administración de posiciones y selección de parámetros. La lógica de la estrategia es clara y fácil de entender, se pueden ajustar los indicadores y parámetros según las diferentes necesidades, y tiene una gran flexibilidad.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/04/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// The Average Directional Movement Index Rating (ADXR) measures the strength
// of the Average Directional Movement Index (ADX). It's calculated by taking
// the average of the current ADX and the ADX from one time period before
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
// and weakening trends. However, because it represents an average of ADX, values
// don't fluctuate as dramatically and some analysts believe the indicator helps
// better display trends in volatile markets.
//
// 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
fADX(Len) =>
up = change(high)
down = -change(low)
trur = rma(tr, Len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
ADXR(LengthADX, LengthADXR, Signal1, Signal2) =>
xADX = fADX(LengthADX)
xADXR = (xADX + xADX[LengthADXR]) / 2
pos = 0.0
pos := iff(xADXR < Signal1, 1,
iff(xADXR > Signal2, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and Average Directional Movement Index Rating", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input(13, step=0.01)
Signal2 = input(45, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posADXR = ADXR(LengthADX, LengthADXR, Signal1, Signal2 )
pos = iff(posReversal123 == 1 and posADXR == 1 , 1,
iff(posReversal123 == -1 and posADXR == -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 ? red: possig == 1 ? green : blue )