Estratégia combinada de negociação de reversão multifator

Autora:ChaoZhang, Data: 2023-09-20 15:13:58
Tags:

Resumo

Esta estratégia combina múltiplos indicadores de reversão para tomar posições contra-direcionais quando surgem sinais de reversão de preço.

Estratégia lógica

  1. Em primeiro lugar, o sistema de reversão 123 é utilizado para identificar sinais de reversão de preços, com base na ação de preços de dois bares consecutivos e no indicador estocástico.

  2. Em segundo lugar, o indicador de Kurtose Rápida e Lenta (FSK) avalia a reversão do sentimento com base na aceleração do ímpeto.

  3. O sistema de inversão 123 e o indicador de inversão FSK são combinados como uma combinação.

  4. A negociação reversa pode ser ativada, tomando curto quando o sinal original é longo, e vice-versa.

Análise das vantagens

  1. A combinação de vários fatores pode melhorar a precisão do sinal e evitar falsos sinais.

  2. O sistema 123 e o indicador FSK são complementares na detecção de reversões em diferentes prazos.

  3. A negociação reversa permite lucrar com reversões acentuadas.

  4. Usar múltiplos fatores de reversão aumenta a robustez da estratégia.

  5. Fácil de compreender e implementar, adequado para iniciantes no comércio de quantidades.

Análise de riscos

  1. Os sinais de inversão podem produzir falsos sinais que resultam em perdas.

  2. A má sincronização das reversões pode levar a perseguir altos e baixos.

  3. A negociação reversa pode produzir perdas em tendências persistentes.

  4. A otimização de parâmetros inadequada leva ao sobreajuste.

  5. A alta frequência de negociação pode acarretar maiores custos de transação.

Orientações de otimização

  1. Teste adicionando outros fatores de reversão como RSI, KD para enriquecer a combinação.

  2. Otimizar os parâmetros para uma melhor sensibilidade do indicador.

  3. Adicionar um filtro de tendência para evitar transações contra-tendência.

  4. Utilize o dimensionamento dinâmico das posições para otimizar a eficiência do capital.

  5. Otimizar o stop loss para limitar as perdas por transação.

  6. Avaliar o impacto dos custos de transacção para evitar o excesso de negociação.

Conclusão

Esta estratégia combina o sistema de reversão 123 e o indicador FSK para negociar reversões de preços na direção contrária. Pode filtrar sinais falsos e melhorar a precisão.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/10/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 indicator plots the Fast & Slow Kurtosis. The Kurtosis is a market
// sentiment indicator. The Kurtosis is constructed from three different parts.
// The Kurtosis, the Fast Kurtosis(FK), and the Fast/Slow Kurtosis(FSK).
//
// 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

FSK(Triger) =>
    pos = 0.0
    xMOM_R = mom(mom(close, 3), 1)
    xMOM_RAvr = ema(xMOM_R, 65)
    xMOM_RWAvr = wma(xMOM_RAvr, 3)
    pos := iff(xMOM_RAvr > Triger and xMOM_RWAvr > Triger, 1,-1) 
    pos

strategy(title="Combo Backtest 123 Reversal & FSK (Fast and Slow Kurtosis)", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Triger = input(0, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFSK = FSK(Triger)
pos = iff(posReversal123 == 1 and posFSK == 1 , 1,
	   iff(posReversal123 == -1 and posFSK == -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.