A estratégia de negociação de retorno de chamada de avanço

Autora:ChaoZhang, Data: 2024-02-28 18:01:56
Tags:

img

Resumo

A estratégia de negociação de callback de ruptura realiza a negociação de callback de ruptura sob tendências específicas, calculando o índice de força absoluta e o índice MACD dos preços. Ela pertence a estratégias de negociação de curto prazo. Esta estratégia integra múltiplos indicadores para julgar as principais tendências, tendências de médio prazo e tendências de curto prazo.

Princípio da estratégia

Esta estratégia baseia-se principalmente no índice de força absoluta e no índice MACD dos preços para implementar a negociação de callback de avanço. Em primeiro lugar, calcula as EMAs de 9 períodos, 21 períodos e 50 períodos dos preços para julgar a direção da tendência principal; em seguida, calcula o índice de força absoluta dos preços para refletir a força dos ajustes de curto prazo; finalmente, calcula o índice MACD para julgar a direção da tendência de curto prazo. Compra quando a tendência principal é ascendente e há um ajuste de curto prazo; vende quando a tendência principal é descendente e há um rebote de curto prazo.

Especificamente, a grande tendência ascendente da variedade requer que a EMA de 9 dias seja maior que a EMA de 21 dias e a EMA de 21 dias seja maior que a EMA de 50 dias. Os critérios para julgar os ajustes de curto prazo são que a diferença do índice de força absoluta é menor que 0 e MACDDIFF é menor que 0.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. Combinação das principais tendências e ajustamentos a curto prazo para evitar falsas rupturas
  2. Maior fiabilidade com combinação de múltiplos indicadores
  3. O índice de força absoluta reflete a força dos ajustamentos para julgar a qualidade das chamadas de retorno
  4. O MACD pode avaliar as tendências de curto prazo e as áreas de sobrecompra/supervenda

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. A avaliação errada das principais tendências pode levar ao fracasso comercial
  2. O julgamento errado do tempo e da força de chamada de volta pode levar a uma chamada de volta inválida
  3. Divergência dos indicadores em condições de mercado extremas, resultando em sinais errados

Em resposta aos riscos acima referidos, podem ser utilizados métodos como a otimização de parâmetros, a avaliação de indicadores de diferentes ciclos, o ajuste das regras de posição para controlar perdas únicas, a combinação de mais indicadores para filtrar sinais e a melhoria da precisão para melhorar a estratégia.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Teste mais combinações de indicadores para encontrar estratégias de negociação mais adequadas
  2. Otimizar os parâmetros do indicador para melhorar a sensibilidade do indicador
  3. Ajustar os métodos de stop loss para reduzir a perda única máxima
  4. Aumentar as condições de filtragem para emitir sinais em áreas mais eficazes
  5. Combinar mais indicadores de prazos para melhorar a precisão do julgamento

Resumo

Em resumo, a estratégia de negociação de callback de avanço é geralmente uma estratégia de negociação relativamente estável a curto prazo. Ela combina julgamentos de tendência de vários prazos para evitar transações errôneas em mercados oscilantes. Ao mesmo tempo, o uso combinado de indicadores também melhora a precisão dos julgamentos. Através de testes e otimização subsequentes, essa estratégia pode se tornar uma estratégia estável que vale a pena manter a longo prazo.


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

//@version=5 
strategy("Divergence Scalper [30MIN]", overlay=true , commission_value=0.04 ) 
message_long_entry = input("long entry message") 
message_long_exit = input("long exit message") 
message_short_entry = input("short entry message") 
message_short_exit = input("short exit message") 
//3x ema 
out9 = ta.ema(close,9) 
out21 = ta.ema(close,21) 
out50 = ta.ema(close,50) 
//abs 
absolute_str_formula( ) => 
    top=0.0 
    bottom=0.0 
    if(close>close[1]) 
        top:= nz(top[1])+(close/close[1]) 
    else 
        top:=nz(top[1]) 
    if(close<=close[1]) 
        bottom:= nz(bottom[1])+(close[1]/close) 
    else 
        bottom:=nz(bottom[1]) 
    if (top+bottom/2>=0) 
        1-1/(1+(top/2)/(bottom/2)) 
abs_partial=absolute_str_formula() 
abs_final = abs_partial - ta.sma(abs_partial,50) 
//macd 
fast_length = input(title="Fast Length", defval=23) 
slow_length = input(title="Slow Length", defval=11) 
src = input(title="Source", defval=open) 
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 6) 
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) 
sma_signal = input.string(title="Signal Line MA Type", defval="SMA", options=["SMA", "EMA"]) 
// Calculating 
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) 
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) 
macd = fast_ma - slow_ma 
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) 
hist = macd - signal 
long= abs_final > 0 and hist <0 and out9<out21 and out21<out50 
short = abs_final <0 and hist >0 and out9>out21 and out21>out50 
long_exit = abs_final <0 and hist >0 and out9>out21 and out21>out50 
short_exit = abs_final > 0 and hist <0 and out9<out21 and out21<out50 
strategy.entry("long", strategy.long, when = long and barstate.isconfirmed, alert_message = message_long_entry) 
strategy.entry("short", strategy.short, when = short and barstate.isconfirmed, alert_message = message_short_entry) 
strategy.close("long", when = long_exit and barstate.isconfirmed, alert_message = message_long_exit) 
strategy.close("short", when = short_exit and barstate.isconfirmed, alert_message = message_short_exit) 


Mais.