Estratégia de inversão da média móvel dupla cruzada

Autora:ChaoZhang, Data: 2023-11-21 11:28:27
Tags:

imgAqui está o artigo que eu tentei escrever conforme o que você pediu:

Resumo

Esta estratégia combina a estratégia de padrão de reversão 123 e a estratégia do indicador Bear Power. Os sinais de negociação são gerados quando ambos dão sinais de compra ou venda na mesma direção.

Estratégia lógica

A estratégia consiste em duas partes:

  1. 123 Estratégia de reversão do padrão

    Ele gera sinais de compra quando o preço de fechamento rompe para cima após dois dias consecutivos de declínio e o indicador baixo do Stoch retorna do nível baixo; Ele gera sinais de venda quando o preço de fechamento cai após dois dias consecutivos de aumento e o indicador alto do Stoch retira do nível alto.

  2. Estratégia do indicador de força de urso

    O indicador Bear Power reflete a comparação de poderes de alta e baixa.

Ao combinar os sinais, os sinais de negociação reais são gerados se os dois derem sinais na mesma direção.

Vantagens

  1. A combinação de sinais de reversão e filtros de indicadores evita falhas e melhora a qualidade do sinal.

  2. Aplicável a múltiplos prazos, flexível na adaptação aos diferentes ambientes de mercado.

  3. As estratégias constituintes podem ser utilizadas isoladamente ou em combinação, com um projeto modular.

Riscos

  1. Os sinais de reversão podem enfrentar grandes profundidades de retração.

  2. Os parâmetros do indicador Bear Power necessitam de testes e otimização repetidos.

  3. As estratégias integradas de múltiplos fatores têm ajustes de parâmetros complexos e exigem grandes quantidades de dados históricos para testes.

Orientações de otimização

  1. Conectar mais fontes de dados com o módulo Quant para obter um intervalo de tempo mais longo e um conjunto de dados mais rico.

  2. Aplicar métodos de aprendizagem automática para pesquisar e avaliar automaticamente combinações de parâmetros.

  3. Adicionar mecanismos de stop loss para controlar a perda de uma única transação.

Conclusão

Esta estratégia combina análise técnica de reversão e indicadores quantitativos para melhorar a qualidade do sinal através da confirmação dupla.


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
//  Bear Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
// 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

BearPower(SellLevel, BuyLevel) =>
    value =  iff (close < open ,  
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))
    pos = 0.0
    pos := iff(value > SellLevel, -1,
	   iff(value <= BuyLevel, 1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
	   iff(posReversal123 == -1 and posBearPower == -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 ? red: possig == 1 ? green : blue ) 

Mais.