O recurso está a ser carregado... Carregamento...

Indice de duplo impulso e estratégia híbrida de reversão

Autora:ChaoZhang, Data: 2024-02-06 12:22:32
Tags:

img

Resumo

O Double Momentum Index e Reversal Hybrid Strategy é uma estratégia composta que combina estratégias de reversão e momentum.

Estratégia lógica

A estratégia consiste em duas sub-estratégias:

  1. 123 Estratégia de reversão. Vai longo quando o preço de fechamento sobe por dois dias consecutivos e o Stoch está abaixo de 50; vai curto quando o preço de fechamento cai por dois dias consecutivos e o Stoch está acima de 50.

  2. A estratégia do Índice de Seleção de Commodities (CSI) combina o Intervalo Verdadeiro Médio (ATR) e o Índice de Movimento Direcional Médio (ADX). ATR reflete a volatilidade do mercado e ADX reflete a força da tendência. Quanto maior o valor do CSI, maior a tendência e a volatilidade do mercado.

A estratégia inteira leva a estratégia 123 Reversal como o corpo principal e CSI como uma confirmação assistente. Os sinais de negociação são gerados apenas quando os sinais de ambas as estratégias são consistentes.

Isso garante o atributo de reversão dos sinais de negociação, enquanto a adição de CSI ao filtro pode reduzir os falsos sinais.

Vantagens

A estratégia apresenta as seguintes vantagens:

  1. A combinação de inversão e momento melhora a precisão do sinal. O 123 Reversal como sinal principal pode capturar reversões súbitas e violentas. CSI como confirmação pode filtrar algum ruído.

  2. A adoção de filtragem composta pode reduzir muito as posições líquidas. Mesmo que as próprias sub-estratégias tenham alguns sinais falsos, o sinal final deve ser duplamente confirmado, o que pode filtrar a maioria dos sinais falsos e minimizar a abertura e o fechamento desnecessários de posições.

  3. Os parâmetros das sub-estratégias podem ser otimizados separadamente sem interferência entre si. Isso facilita a busca da combinação de parâmetros ideal.

  4. As sub-estratégias podem ser ativadas separadamente. A estratégia suporta o uso apenas de 123 Reversal ou CSI para negociação sozinha. Isso fornece flexibilidade.

Análise de riscos

Embora a estratégia reduza significativamente os falsos sinais através de filtragem composta, continuam a existir os seguintes riscos principais:

  1. A frequência de geração de sinais de estratégia é relativamente baixa. Ao adotar a confirmação dupla, uma certa proporção de oportunidades de negociação será inevitavelmente filtrada. Este é o custo inevitável para alcançar uma alta taxa de ganho.

  2. Se os parâmetros das duas sub-estratégias forem inadequados, pode resultar em sinais raros ou mesmo nulos.

  3. 123 A reversão pertence às operações de contra-tendência. Em caso de avanços de preços unidirecionais consecutivos e violentos, a estratégia enfrentará riscos maiores. É aconselhável adicionar stop loss para controlar o risco.

Direcção de otimização

As principais possibilidades de otimização desta estratégia são as seguintes:

  1. Otimizar os parâmetros intrínsecos de cada subestratégia para encontrar as combinações de parâmetros ideais, incluindo os parâmetros de Stoch, CSI, etc.

  2. Teste adicionando em diferentes filtros de condições de mercado, como usar o CSI apenas quando a tendência prevalece, usar 123 Reversal apenas em mercados de faixa, etc. Isso pode superar as desvantagens das sub-estratégias até certo ponto.

  3. Desenvolver módulos de auto-adaptação de parâmetros e de otimização dinâmica, permitindo que a estratégia ajuste automaticamente os parâmetros e acompanhe as combinações ideais de parâmetros de acordo com as condições do mercado e as estatísticas em tempo real.

  4. Teste diferentes mecanismos de stop loss. O stop loss adequado pode controlar eficazmente os riscos e reduzir a abertura e o fechamento desnecessários de posições.

Resumo

O índice de impulso duplo e a estratégia híbrida de reversão utilizam as ideias de confirmação e combinação de múltiplos sinais, fazendo bom uso dos respectivos pontos fortes das estratégias de reversão e impulso, ao mesmo tempo em que superam suas deficiências por filtragem mútua, para alcançar alta eficiência e estabilidade.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/10/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
// The Commodity Selection Index ("CSI") is a momentum indicator. It was 
// developed by Welles Wilder and is presented in his book New Concepts in 
// Technical Trading Systems. The name of the index reflects its primary purpose. 
// That is, to help select commodities suitable for short-term trading.
// A high CSI rating indicates that the commodity has strong trending and volatility 
// characteristics. The trending characteristics are brought out by the Directional 
// Movement factor in the calculation--the volatility characteristic by the Average 
// True Range factor.
// Wilder's approach is to trade commodities with high CSI values (relative to other 
// commodities). Because these commodities are highly volatile, they have the potential 
// to make the "most money in the shortest period of time." High CSI values imply 
// trending characteristics which make it easier to trade the security.
// The Commodity Selection Index is designed for short-term traders who can handle 
// the risks associated with highly volatile markets.
//
// 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)

CSI(Length, Commission, Margin, PointValue) =>
    pos = 0.0
    K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission)))
    xATR = atr(Length)
    xADX = fADX(Length)
    nADXR = (xADX + xADX[Length]) * 0.5
    xCSI = K * xATR * nADXR
    xMACSI = sma(xCSI, Length)
    pos := iff(xCSI < xMACSI, 1,
    	     iff(xCSI > xMACSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategy 123 Reversal & Commodity Selection Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PointValue = input(50)
Margin = input(3000)
Commission = input(10)
LengthCSI = input(14)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCSI = CSI(LengthCSI, Commission, Margin, PointValue)
pos = iff(posReversal123 == 1 and posCSI == 1 , 1,
	   iff(posReversal123 == -1 and posCSI == -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 )

Mais.