Estratégia de negociação de rompimento de canal de média móvel


Data de criação: 2024-01-29 14:31:25 última modificação: 2024-01-29 14:31:25
cópia: 0 Cliques: 631
1
focar em
1617
Seguidores

Estratégia de negociação de rompimento de canal de média móvel

Visão geral

A estratégia baseia-se no princípio da forca de ouro de uma média móvel simples, tomando decisões de compra e venda através do cruzamento da linha média de 7 dias e da linha média de 14 dias. Um sinal de compra é emitido quando a linha média de 7 dias se rompe a partir da linha média de 14 dias; Um sinal de venda é emitido quando a linha média de 7 dias se rompe a partir da linha média de 14 dias.

Princípio da estratégia

A lógica central de negociação da estratégia baseia-se no princípio de cruzamento entre a média de 7 dias e a média de 14 dias. A tendência de curto prazo para o preço de reação da média de 7 dias e a tendência de médio prazo para o preço de reação da média de 14 dias.

Especificamente, a estratégia calcula as médias móveis simples dos dias 7 e 14 com o indicador SMA. Comparando a relação entre o tamanho atual da linha 7 e a linha 14 após a formação de cada linha K. Se a linha 7 atravessar a linha 14 na linha 7, é emitido um sinal de multiplicação para entrar em uma posição longa; Se a linha 7 atravessar a linha 14 abaixo da linha 7, é emitido um sinal de vazio para entrar em uma posição curta.

Além disso, a estratégia também configura stop loss, stop-loss e stop-loss de rastreamento para bloquear o lucro e controlar o risco. Os parâmetros específicos podem ser otimizados de acordo com os resultados da retrospectiva.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. As regras são simples, claras, fáceis de entender e apropriadas para quem está começando;
  2. O princípio da cruz de equilíbrio é eficaz e a taxa de vitória é alta;
  3. Ter paradas, paradas e paradas de rastreamento para controlar o risco de forma eficaz;
  4. Com menos parâmetros, é mais fácil de testar e otimizar.

Riscos e soluções

A estratégia também apresenta alguns riscos:

  1. Quando a tendência se inverte, o sinal de cruzamento de equilíbrio fica atrasado e não consegue reagir a uma mudança de tendência a tempo, o que pode levar a grandes perdas;
  2. Nos mercados de forte horizontal, os sinais de cruzamento de linha média são frequentes, gerando mais falsos sinais e afetando a eficácia da estratégia.

Para combater estes riscos, podem ser consideradas as seguintes medidas:

  1. Em combinação com outros indicadores de filtragem de sinais de cruzamento de linha uniforme, como MACD, KDJ, etc., para evitar a formação de sinais errados no ponto de mudança de tendência;
  2. Aumentar a margem de suspensão e reduzir o período de detenção para reduzir o impacto de perdas individuais;
  3. Otimizar os parâmetros de linha média de acordo com as diferentes condições do mercado, aumentar adequadamente o ciclo de linha média no mercado horizontal e reduzir a frequência dos sinais de cruzamento.

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Teste diferentes combinações e parâmetros de equilíbrio para encontrar o melhor parâmetro;
  2. Adição de outros indicadores para filtragem de sinais e melhoria da eficácia da estratégia;
  3. Optimizar os parâmetros de stop loss, redução de retração e aumento da taxa de retorno;
  4. Os parâmetros são ajustados de acordo com as diferentes variedades e períodos de negociação.

Resumir

A estratégia em geral é muito adequada para o aprendizado de iniciantes, o princípio é simples, fácil de entender e implementar. Ao mesmo tempo, também tem uma boa adaptabilidade ao mercado, com maior espaço para ajuste e otimização de parâmetros, e espera-se obter ganhos estáveis.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bensonsuntw

strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

backtest_year = input(2019, type=input.integer, title='backtest_year')
backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12)
backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31)
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)
stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true)
trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true)
buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss')
sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss')
buy_tp = input(0.4, type=input.float, title='buy_tp')
sell_tp =input(0.2, type=input.float, title='sell_tp')
trail_stop_long = input(1.1, type=input.float, title='trail_stop_long')
trail_stop_short = input(0.9, type=input.float, title='trail_stop_short')
trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset')
trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset')


// you can set your own logic here
shortCondition = crossunder(sma(close,7),sma(close,14))
longCondition = crossover(sma(close,7),sma(close,14))

strategy.entry("Buy", strategy.long, when=longCondition  )
strategy.close("Buy", when=shortCondition)
strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na)

strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na)


net_profit = strategy.netprofit + strategy.openprofit

plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)