Estratégia de pareamento de dupla via de reversão de momentum


Data de criação: 2023-11-24 10:17:15 última modificação: 2023-11-24 10:17:15
cópia: 0 Cliques: 613
1
focar em
1617
Seguidores

Estratégia de pareamento de dupla via de reversão de momentum

Visão geral

Esta estratégia utiliza um conjunto de indicadores técnicos para criar sinais de negociação através de uma inversão de dinâmica combinada com um binário. A estratégia usa um ponto de inversão de julgamento de forma 123, que forma um sinal de parceria com um indicador CSI ergodico, para criar um acompanhamento de tendência. A estratégia visa capturar tendências de linha curta e média para obter maiores lucros.

Princípio da estratégia

A estratégia tem duas partes:

  1. 123 Uma mudança de paradigma
  2. indicador ergodic CSI geração de sinais de par

O julgamento de forma 123 é um julgamento de inversão de preço através da relação de preço de fechamento de 3 linhas K mais recentes. A lógica de julgamento específica é: Se o preço de fechamento após as duas primeiras linhas K estiver mais alto e o atual indicador de stoch rápido e lento estiver abaixo de 50, é um sinal de compra. Se o preço de fechamento das duas primeiras linhas K cair e o atual indicador de stoch rápido e lento estiver acima de 50, é um sinal de venda.

O indicador ergodic CSI considera vários fatores, como preço, amplitude real e indicador de tendência, para avaliar a tendência de mercado e gerar áreas de compra e venda. Quando o indicador está acima da zona de compra, gera um sinal de compra, e quando está abaixo da zona de venda, gera um sinal de venda.

Finalmente, o sinal de inversão de forma 123 é aplicado em função do sinal de órbita do CSI ergodico, resultando em um sinal de estratégia final.

Vantagens estratégicas

  1. Capturar tendências de curto prazo, com maior potencial de lucro
  2. O juízo de forma inversa pode ser eficaz para capturar pontos de viragem
  3. Emparelhamento de duas vias para reduzir sinais falsos

Risco estratégico

  1. O mercado de ações pode se desviar, causando paralisação
  2. A inversão é vulnerável a mercados de turbulência
  3. Optimização de parâmetros com espaço limitado e grande variação de resultados

Direção de otimização

  1. Parâmetros de otimização para aumentar a rentabilidade da estratégia
  2. Aumentar a lógica de stop loss e reduzir a perda individual
  3. Modelos multifatoriais para melhorar a qualidade da seleção de ações

Resumir

Esta estratégia permite o acompanhamento eficaz de tendências de curto e médio prazo em pares, através do emparelhamento de formas invertidas e binárias. Comparado com o indicador técnico único, possui maior estabilidade e nível de lucro. O próximo passo é otimizar ainda mais os parâmetros e adicionar módulos de stop loss e seleção de ações para reduzir a retração e melhorar o efeito geral.

Código-fonte da estratégia
/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/07/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
// This is one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// 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)

ECSI(r,Length,BigPointValue,SmthLen,SellZone,BuyZone) =>
    pos = 0
    source = close
    K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
    xTrueRange = atr(1) 
    xADX = fADX(Length)
    xADXR = (xADX + xADX[1]) * 0.5
    nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
    xCSI = iff(close > 0,  nRes / close, 0)
    xSMA_CSI = sma(xCSI, SmthLen)
    pos := iff(xSMA_CSI > BuyZone, 1,
             iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic CSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
LengthECSI = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.06, minval=0.00001)
BuyZone = input(0.02, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECSI = ECSI(r,LengthECSI,BigPointValue,SmthLen,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posECSI == 1 , 1,
	   iff(posReversal123 == -1 and posECSI == -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 )