Estratégia do surfista

Autora:ChaoZhang, Data: 2023-10-17 15:30:18
Tags:

img

Resumo

A estratégia Surf Rider é uma estratégia combinada que integra diferentes estratégias de tendência para gerar sinais de negociação mais confiáveis.

Estratégia lógica

A estratégia do Surf Rider integra dois tipos diferentes de estratégias: estratégia de reversão e estratégia de tendência.

Em primeiro lugar, a estratégia 123 Reversal é uma estratégia de reversão. Ele usa informações de velas para identificar sinais de reversão de preço. Ele gera um sinal de compra quando o fechamento de ontem é maior do que o fechamento do dia anterior, e o fechamento de hoje é menor do que o de ontem, enquanto o Slow K de 9 dias é menor que 50. Ele gera um sinal de venda quando o fechamento de ontem é menor do que o fechamento do dia anterior, e o fechamento de hoje é maior do que o de ontem, enquanto o Fast K de 9 dias é maior do que 50.

Em segundo lugar, a estratégia ECO é uma estratégia de seguimento de tendências. Ele usa o tamanho e a direção dos candelabros de preço para calcular o impulso e determinar a direção da tendência. O indicador ECO acima de 0 indica uma tendência ascendente, enquanto abaixo de 0 indica uma tendência descendente.

A estratégia Surf Rider combina os sinais de ambas as estratégias. Ela só entrará em posições quando ambas as estratégias gerarem sinais na mesma direção, por exemplo, quando o ECO mostrar uma tendência de alta e a estratégia 123 Reversal também dar um sinal de compra. Isso evita perder negócios devido a julgamentos incorretos de uma única estratégia.

Análise das vantagens

Em comparação com uma única estratégia, a estratégia Surf Rider tem as seguintes vantagens:

  1. A combinação de estratégias de reversão e tendência complementa seus pontos fortes e evita fraquezas, tornando os sinais de negociação mais confiáveis.

  2. A estratégia 123 Reversal utiliza o indicador estocástico para identificar áreas de sobrecompra e sobrevenda, enquanto a estratégia ECO julga a direção do ímpeto dos preços.

  3. O filtro de estratégia dupla garante a abertura de posições apenas quando ambas as estratégias concordam com a mesma direcção, o que reduz consideravelmente o risco de negociação.

  4. O espaço flexível de ajuste de parâmetros permite a otimização de parâmetros para diferentes mercados, tornando a estratégia adaptável a mais ambientes de mercado.

  5. A abordagem multi-tempo que combina a reversão intradiária e a tendência a médio prazo permite captar mais oportunidades de negociação.

Análise de riscos

Apesar do uso de múltiplas estratégias para reduzir os riscos individuais da estratégia, a estratégia Surf Rider ainda contém os seguintes riscos na negociação:

  1. A estratégia 123 Reversal é mais fraca nos mercados de intervalo, potencialmente gerando sinais de reversão consecutivos de perdas.

  2. A estratégia ECO tem um desempenho inferior em ambientes de baixa liquidez, pelo que deve ser evitada.

  3. O filtro de estratégia dupla pode perder alguns sinais de lucro que as estratégias individuais capturariam separadamente.

  4. As configurações incorretas dos parâmetros podem causar que a estratégia gere sinais falsos.

  5. A estratégia pode não se adaptar a algumas condições de mercado excepcionais, como os eventos do cisne negro.

Orientações de otimização

Há mais espaço para otimizar a estratégia do Surf Rider:

  1. Considere a possibilidade de adicionar uma estratégia de stop loss às posições de saída automaticamente quando as perdas atingirem níveis de stop loss.

  2. Teste diferentes parâmetros da média móvel para encontrar combinações de parâmetros mais estáveis.

  3. Tente a otimização de parâmetros adaptativos baseada em aprendizagem de máquina para ajuste dinâmico de parâmetros.

  4. Adicionar mais estratégias auxiliares para melhorar ainda mais a precisão do sinal.

  5. Teste a estabilidade em diferentes ambientes de mercado e ajuste os parâmetros em conformidade.

  6. Desenvolver sistemas automatizados de backtesting e execução para uma otimização mais rigorosa da estratégia.

Conclusão

Em conclusão, ao combinar estratégias de reversão e tendência para confirmação dupla, a estratégia Surf Rider melhora a precisão do sinal enquanto captura mudanças de tendência, permitindo retornos excessivos no mercado mais amplo.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/04/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
// We call this one the ECO for short, but it will be listed on the indicator list 
// at W. Blau’s Ergodic Candlestick Oscillator. The ECO is a momentum indicator. 
// It is based on candlestick bars, and takes into account the size and direction 
// of the candlestick "body". We have found it to be a very good momentum indicator, 
// and especially smooth, because it is unaffected by gaps in price, unlike many other 
// momentum indicators.
// We like to use this indicator as an additional trend confirmation tool, or as an 
// alternate trend definition tool, in place of a weekly indicator. The simplest way 
// of using the indicator is simply to define the trend based on which side of the "0" 
// line the indicator is located on. If the indicator is above "0", then the trend is up. 
// If the indicator is below "0" then the trend is down. You can add an additional 
// qualifier by noting the "slope" of the indicator, and the crossing points of the slow 
// and fast lines. Some like to use the slope alone to define trend direction. If the 
// lines are sloping upward, the trend is up. Alternately, if the lines are sloping 
// downward, the trend is down. In this view, the point where the lines "cross" is the 
// point where the trend changes.
// When the ECO is below the "0" line, the trend is down, and we are qualified only to 
// sell on new short signals from the Hi-Lo Activator. In other words, when the ECO is 
// above 0, we are not allowed to take short signals, and when the ECO is below 0, we 
// are not allowed to take long signals. 
//
// 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

ECO(r,s) =>
    pos = 0
    xCO = close - open
    xHL = high - low
    xEMA = ema(ema(xCO, r), s)
    xvEMA = ema(ema(xHL, r), s)
    nRes = 100 * (xEMA / xvEMA)
    pos := iff(nRes > 0, 1,
	         iff(nRes <= 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & ECO Strategy", 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)
s = input(12, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECO = ECO(r,s)
pos = iff(posReversal123 == 1 and posECO == 1 , 1,
	   iff(posReversal123 == -1 and posECO == -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.