
Esta estratégia permite um modelo multifatorial para explorar oportunidades de negociação em diferentes cenários de mercado, usando uma combinação de indicadores de dinâmica CMO e Stochastic Reversal.
A estratégia é composta por duas sub-estratégias:
123 estratégia de reversão
A estratégia de valor absoluto do CMO
Finalmente, se os dois sinais de estratégia secundária coincidirem, um sinal de transação será emitido.
A estratégia aproveita as vantagens do CMO, um indicador de dinâmica, e do Stochastic, um indicador de reversão. O CMO é mais capaz de identificar tendências, enquanto o Stochastic é capaz de encontrar oportunidades de reversão em curto prazo.
A estratégia tem as seguintes vantagens:
Modelo multifator, combinando potência e inversão, para se adaptar a diferentes condições de mercado
Os CMOs são capazes de identificar tendências e os stochastic são capazes de determinar pontos de inflexão.
Negocie apenas quando os dois sinais coincidem, evitando sinais errados e aumentando a probabilidade de lucro
Parâmetros de otimização de espaço grande, pode ser ajustado para diferentes variedades e períodos
A combinação de indicadores de longo e curto período permite descobrir mais oportunidades de negociação
Regras simples, claras e fáceis de entender, adequadas para negociação algorítmica
A estratégia também apresenta os seguintes riscos:
Há uma probabilidade de uma sub-estratégia emitir um sinal de erro, e os parâmetros precisam ser otimizados
O evento de emergência pode levar a uma reversão da tendência e a maiores perdas.
A frequência de transações pode ser excessiva e os custos de transação são fatores a serem considerados
As estratégias secundárias são indicadores de atraso, existem problemas de atraso de tempo
Parâmetros precisam ser ajustados para diferentes variedades, exigindo maior otimização de parâmetros
Resposta:
Parâmetros de subestratégia de otimização para reduzir a probabilidade de sinais errados
Estabelecer o stop loss e controlar os perdas individuais
Ajustar as condições de abertura de posições e reduzir a frequência de negociação
Utilização de dados de ticks em tempo real para reduzir o atraso
Parâmetros de otimização automática usando métodos de aprendizagem de máquina
Esta estratégia pode ser melhorada em:
A introdução de mais fatores, como a taxa de flutuação, a quantidade, etc., formam um modelo multifatorial sistemático
Construir mecanismos de otimização de parâmetros dinâmicos, ajustando os parâmetros de acordo com as condições do mercado
Optimizar a lógica de abertura de posições, introduzir probabilidades e métodos de suavização de índices
Objetivo duplo: proteger posições de longo prazo no curto prazo
Usando a aprendizagem profunda para extrair mais características e criar regras de negociação não lineares
Explorar modelos sem parâmetros e evitar desvios com parâmetros de seleção manual
Combinação de dados de alta frequência e eventos de notícias para reduzir o atraso do sinal
Esta estratégia, através da utilização do indicador de dinâmica CMO e do indicador de reversão Stochastic, permite a realização de modelos de múltiplos fatores, explorando mais oportunidades de negociação em mercados de transição. Em comparação com o indicador único, o conjunto de múltiplos fatores pode se adaptar a um ambiente de mercado mais complexo. Ao mesmo tempo, o espaço de otimização dos parâmetros da estratégia é grande, as regras são simples e adequadas para o desenvolvimento de algoritmos de negociação.
/*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 )