Estratégia Quântica CMO de Dupla Inversão


Data de criação: 2024-01-04 14:35:23 última modificação: 2024-01-04 14:35:23
cópia: 0 Cliques: 557
1
focar em
1621
Seguidores

Estratégia Quântica CMO de Dupla Inversão

Visão geral

A estratégia é uma estratégia de dupla reversão, que combina o indicador de reversão 123 e o indicador quântico CMOWMA para realizar a dupla confirmação do sinal de reversão de preço, com um efeito visual de linha K de cor vermelho-verde.

Princípio da estratégia

A estratégia é composta por duas partes:

  1. 123 Indicadores de inversão

    • Usando a relação entre o preço de fechamento e o tamanho do preço de fechamento de ontem para determinar a subida ou queda dos preços
    • Utilização de linhas rápidas e lentos cruzados de indicadores estocásticos para confirmar o sinal de reversão
    • Produzir sinal de fazer mais ou fazer menos quando condicional
  2. Índice quântico CMOWMA

    • A utilização do indicador CMO para medir a dinâmica dos preços
    • Média móvel ponderada WMA para o indicador CMO
    • Indicador CMO acima de (<) seu WMA quando observado (<)

As duas partes do sinal entram em posição simultânea.

Vantagens estratégicas

  1. Mecanismos de dupla confirmação, filtragem de monopólios e redução de posições sem valor
  2. Linha K vermelho-verde para efeitos visuais, facilitando a avaliação do mercado
  3. Utilizando uma combinação de indicadores de reversão e dinamismo, a estabilidade geral é boa
  4. Configuração de parâmetros simples, adequado para várias variedades, fácil de implementar

Risco estratégico

  1. A reversão pode ser repetida, com risco de colapsos
  2. Mudanças frequentes de posições geram custos de transação excessivos
  3. Parâmetros mal definidos podem causar sinais excessivos ou insuficientes
  4. Os parâmetros do CMO precisam ser ajustados de acordo com as características da variedade

Pode-se reduzir o risco por meio de medidas como a flexibilização adequada das condições de reversão, o aumento do tempo de detenção e a otimização do conjunto de parâmetros.

Otimização de Estratégia

  1. Pode testar a influência de diferentes parâmetros estocásticos sobre o efeito
  2. Confirmação de substituição ou adição em combinação com outros indicadores, como MACD, KDJ
  3. Pode testar a otimização de diferentes parâmetros de comprimento CMO e WMA
  4. Você pode tentar adicionar um stop loss em um nível específico.
  5. Condições de filtragem podem ser definidas para controlar a frequência de abertura

Resumir

A estratégia é robusta em geral, com parâmetros simples e fáceis de implementar, e combina a inversão de preços e o indicador de dinâmica, formando um mecanismo de filtragem de duplo sinal eficaz, que pode filtrar os falsos sinais, e o efeito de coloração da linha K é intuitivo. A otimização dos parâmetros e o controle de risco podem melhorar ainda mais o desempenho da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-12-04 00:00:00
end: 2024-01-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/08/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 Chandre Momentum Oscillator and its WMA on the 
//    same chart. This indicator plots the absolute value of CMO.
//    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

CMOWMA(Length, LengthWMA) =>
    pos = 0
    xMom = abs(close - close[1])
    xSMA_mom = sma(xMom, Length)
    xMomLength = close - close[Length]
    nRes = 100 * (xMomLength / (xSMA_mom * Length))
    xWMACMO = wma(nRes, LengthWMA)
    pos := iff(nRes > xWMACMO, 1,
    	   iff(nRes <= xWMACMO, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMO & WMA", 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(14, minval=1)
LengthWMA = input(13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOWMA = CMOWMA(LengthCMO, LengthWMA)
pos = iff(posReversal123 == 1 and posCMOWMA == 1 , 1,
	   iff(posReversal123 == -1 and posCMOWMA == -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 )