Baseado na estratégia de duplo contra-momento


Data de criação: 2024-02-20 15:27:02 última modificação: 2024-02-20 15:27:02
cópia: 0 Cliques: 559
1
focar em
1617
Seguidores

Baseado na estratégia de duplo contra-momento

Visão geral

A estratégia de volume de retorno duplo permite a negociação de tendências através da combinação de um sinal de retorno de preço e um sinal de retorno de taxa de flutuação. Ela baseia-se principalmente em um retorno de preço de julgamento de 123 formas, enquanto ajuda a usar a taxa de flutuação do canal de Donchian para filtrar os falsos sinais. A estratégia se aplica a posições de linha média e longa, através de um filtro de retorno duplo, pode efetivamente agarrar os pontos de retorno do mercado e obter ganhos excessivos.

Princípio da estratégia

A parte de reversão de preço usa o julgamento de forma 123. Esta forma significa que os dois primeiros K-linhas de preço se revertem (acima ou abaixo) e o terceiro K-linha reverte novamente (abaixo ou acima), por isso é chamado de forma 123. Quando o preço aparece três K-linhas de reversão, geralmente indica que a tendência de curto prazo está prestes a mudar. Para verificar ainda mais a confiabilidade da reversão de preço, a estratégia também usa o julgamento de indicadores aleatórios, que apenas acionam um sinal de negociação quando um indicador aleatório também se reverte (acima ou abaixo).

A parte de reversão da taxa de flutuação usa a taxa de flutuação do canal de Donchian. O canal de Donchian reflete principalmente a amplitude de flutuação dos preços. Quando a flutuação dos preços aumenta, a largura do canal de Donchian também se expande; Quando a flutuação dos preços diminui, a largura do canal de Donchian também se estreita.

Em suma, a estratégia garante a confiabilidade dos sinais de negociação e controla o risco por meio da verificação de dupla inversão, uma estratégia de tendência relativamente robusta.

Vantagens estratégicas

  • Mecanismo de dupla filtragem para garantir a fiabilidade do sinal de negociação e evitar falsas rupturas
  • Controlar os riscos e reduzir a probabilidade de perdas
  • O que você pode fazer para evitar o ruído do mercado e aproveitar o excesso de lucro
  • Parâmetros de otimização de espaço grande, pode ser ajustado para o estado ótimo
  • Estilo único e bom uso em combinação com indicadores técnicos comuns

Risco estratégico

  • Optimização dependente de parâmetros, os parâmetros errados podem afetar a performance da estratégia
  • A estratégia de parada de prejuízos ainda precisa ser melhorada e o controle de retirada máxima precisa ser melhorado.
  • A frequência de negociação pode ser baixa e não ser adequada para negociação com algoritmos de alta frequência
  • Seleção de variedades e períodos de tempo apropriados, aplicabilidade limitada
  • A aprendizagem de máquina pode ser usada para encontrar o melhor parâmetro.

Direção de otimização

  • A adição de módulos de parada de perda de adaptação pode reduzir significativamente a retração máxima
  • Adição de indicadores de volume de transação para garantir a entrada em caso de alta brecha de volume
  • Parâmetros de otimização para obter a melhor estabilidade
  • Experimentar diferentes variedades e períodos de tempo para encontrar o melhor ambiente
  • Tente combinar com outros indicadores ou estratégias para obter uma sinergia de 1+1>2

Resumir

A estratégia de dupla inversão de volume de rotação obtém um melhor controle de risco por meio da dupla verificação de inversão de preço e inversão de taxa de flutuação. Em comparação com um único indicador, ela filtra um grande número de ruídos e é mais estável. A estratégia pode melhorar ainda mais a qualidade do sinal e a estabilidade de receita por meio de meios como otimização de parâmetros, aumento de módulos de parada e introdução de energia quantitativa.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/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
// The Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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 )