O recurso está a ser carregado... Carregamento...

Tendência cruzada de média móvel dinâmica, seguindo uma estratégia com gestão adaptativa do risco

Autora:ChaoZhang, Data: 2024-12-27 15:08:40
Tags:SMAMATPSL

img

Resumo

Esta estratégia é um sistema de seguimento de tendências baseado em sinais cruzados de média móvel dupla, incorporando um mecanismo dinâmico de take-profit e stop-loss. Utiliza médias móveis simples (SMA) de 5 períodos e 12 períodos para gerar sinais de negociação, otimizando a relação risco-recompensação através do ajuste dinâmico dos níveis de take-profit e stop-loss.

Princípios de estratégia

A lógica central baseia-se na relação cruzada entre médias móveis rápidas (5 períodos) e lentas (12-períodos). Um sinal de compra é gerado quando o MA rápido cruza acima do MA lento, enquanto as posições são fechadas quando o MA rápido cruza abaixo do MA lento. A singularidade da estratégia está em seu mecanismo dinâmico de gerenciamento de risco: após a entrada da posição, o sistema monitora continuamente o movimento dos preços e ajusta dinamicamente os níveis de take-profit e stop-loss para maximizar os lucros enquanto controla o risco.

Vantagens da estratégia

  1. Emprega a estratégia clássica de cruzamento de duas MA com sinais claros, fáceis de compreender e executar
  2. Mecanismo dinâmico de captação de lucros/paragem de perdas protege eficazmente os lucros realizados e impede a utilização de recursos
  3. Os parâmetros da estratégia podem ser ajustados de forma flexível às diferentes características do mercado
  4. Mecanismo abrangente de gestão de riscos para controlar eficazmente o risco do comércio único
  5. Estrutura de código clara facilita a manutenção e otimização

Riscos estratégicos

  1. Pode gerar sinais falsos em mercados variados, levando a negociações frequentes
  2. Possíveis saques significativos em cenários de reversão rápida
  3. Configurações incorretas de parâmetros podem afetar o desempenho da estratégia
  4. As emissões de liquidez de mercado podem afectar a execução de stop-loss Recomendações de gestão de riscos:
  • Adicionar filtros de tendência
  • Optimize a seleção de parâmetros
  • Monitorizar a liquidez do mercado em tempo real
  • Estabelecer um sistema abrangente de gestão do dinheiro

Orientações de otimização

  1. Introduzir indicadores de força da tendência para filtrar os sinais de mercado variáveis
  2. Considerar a incorporação de fatores de volume para melhorar a confiabilidade do sinal
  3. Otimizar os parâmetros de take-profit/stop-loss para melhorar o rácio risco/recompensa
  4. Adicionar mecanismo de adaptação à volatilidade do mercado
  5. Melhorar o sistema de dimensionamento da posição

Resumo

Esta estratégia capta efetivamente as tendências e controla dinamicamente o risco, combinando sinais de cruzamento de média móvel clássica com gestão de risco dinâmica inovadora. O design da estratégia é claro, a implementação é eficiente e demonstra boa praticidade e escalabilidade. Através da otimização e melhoria contínua, esta estratégia mostra promessa para alcançar retornos estáveis na negociação real.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)







Relacionados

Mais.