
Esta estrategia permite un modelo multifactorial para explorar oportunidades de negociación en diferentes entornos de mercado mediante el uso combinado de un indicador de dinámica CMO y un indicador de inversión Stochastic.
La estrategia se compone de dos subestrategias:
123 estrategias de reversión
Las estrategias de valor absoluto de los CMO
Finalmente, si las dos señales de estrategia son iguales, se emite una señal de negociación.
Esta estrategia aprovecha las ventajas de los indicadores de dinámica CMO y de reversión Stochastic. El CMO puede identificar mejor las tendencias, mientras que Stochastic puede encontrar oportunidades de reversión a corto plazo.
La estrategia tiene las siguientes ventajas:
Modelo multifactor, combinando potencia y inversión, para adaptarse a diferentes entornos del mercado
Los CMO tienen una gran capacidad para identificar tendencias, y los stochastic tienen una gran capacidad para determinar puntos de inflexión.
Comercializa solo cuando las dos señales coinciden, evita las señales falsas y aumenta la probabilidad de obtener ganancias
El espacio para optimizar los parámetros es amplio y se puede ajustar para diferentes variedades y ciclos
La combinación de indicadores de ciclo largo y corto permite descubrir más oportunidades de comercio
Las reglas son sencillas, claras, fáciles de entender y se implementan para el comercio algorítmico.
También existe el riesgo de que:
La probabilidad de que una subestrategia emita una señal errónea existe y se necesitan parámetros de optimización
Los eventos repentinos provocan una reversión de la tendencia y generan mayores pérdidas
La frecuencia de las transacciones puede ser excesiva y el costo de las transacciones es un factor a tener en cuenta
Las subestrategias son indicadores de retraso, con problemas de retraso en el tiempo
Se requiere ajuste de parámetros para diferentes variedades, con un mayor requisito de optimización de parámetros
Respuesta:
Parámetros de subestrategia de optimización para reducir la probabilidad de señales erróneas
Establecimiento de stop loss y control de pérdidas individuales
Ajuste de las condiciones de apertura para reducir la frecuencia de las operaciones
Utiliza datos de ticks en tiempo real para reducir el retraso
Optimización automática de parámetros con métodos de aprendizaje automático
Esta estrategia puede ser optimizada en los siguientes aspectos:
Introducción de más factores, como la volatilidad, el precio, etc., para formar un modelo multifactorial sistemático
Construir mecanismos de optimización de parámetros dinámicos para ajustar los parámetros según las condiciones del mercado
Optimización de la lógica de apertura de posiciones, introducción de métodos como la probabilidad y la suavización del índice
En el corto plazo, cubrir posiciones a largo plazo para lograr un doble objetivo
Aprovechar el aprendizaje profundo para extraer más características y crear reglas de transacción no lineales
Explorar modelos sin parámetros para evitar las desviaciones de los parámetros de selección artificial
Combinación de datos de alta frecuencia y eventos de noticias para reducir el retraso de la señal
Esta estrategia utiliza el indicador de movimiento CMO y el indicador de inversión estocástica para implementar modelos multifactoriales y explorar más oportunidades de negociación en los mercados de travesía. En comparación con un indicador único, la combinación de múltiples factores puede adaptarse a un entorno de mercado más complejo. Al mismo tiempo, el espacio para optimizar los parámetros de esta estrategia es grande, las reglas son simples y se adaptan al desarrollo de algoritmos comerciales.
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 17/09/2019
// 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
// This indicator plots the absolute value of CMO. CMO was developed by Tushar
// Chande. A scientist, an inventor, and a respected trading system developer,
// Mr. Chande developed the CMO to capture what he calls "pure momentum". For
// more definitive information on the CMO and other indicators we recommend the
// book The New Technical Trader by Tushar Chande and Stanley Kroll.
// The CMO is closely related to, yet unique from, other momentum oriented indicators
// such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely
// related to Welles Wilder`s RSI, yet it differs in several ways:
// - It uses data for both up days and down days in the numerator, thereby directly
// measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term extreme
// movements in price are not hidden. Once calculated, smoothing can be applied to
// the CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly see
// changes in net momentum using the 0 level. The bounded scale also allows you to
// conveniently compare values across different securities.
//
// 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
CMOabs(Length, TopBand, LowBand) =>
pos = 0
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
pos := iff(nRes > TopBand, -1,
iff(nRes < LowBand, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & CMOabs", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, maxval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOabs = CMOabs(LengthCMO, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1,
iff(posReversal123 == -1 and posCMOabs == -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 )