Módulo de cruzamento de média móvel com estratégia de lucros múltiplos

Autora:ChaoZhang, Data: 2024-04-26 15:16:12
Tags:SMAMA

img

Resumo

Esta estratégia utiliza o cruzamento de duas médias móveis para determinar as tendências do mercado. Quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, abre uma posição longa, e vice-versa para posições curtas. Ao mesmo tempo, a estratégia emprega vários níveis de lucro, fechando parcialmente as posições quando os preços atingem níveis de lucro pré-estabelecidos, maximizando assim os retornos e controlando o risco.

Princípio da estratégia

O núcleo desta estratégia é usar médias móveis de diferentes períodos para capturar as tendências do mercado. Quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, sugere que o mercado pode estar entrando em uma tendência de alta e uma posição longa é aberta. Por outro lado, quando a média móvel de curto prazo cruza abaixo da média móvel de longo prazo, sugere uma potencial tendência de queda e uma posição curta é aberta. Enquanto isso, a estratégia define vários níveis de lucro e, quando os preços atingem esses níveis, fecha posições em lotes de acordo com as proporções de posição pré-estabelecidas. Isso permite maiores lucros quando as tendências persistem, além de gerenciar o risco.

Vantagens da estratégia

  1. Simples e eficazes: Esta estratégia baseia-se no princípio clássico da média móvel cruzada, que é simples e fácil de compreender e que se mostrou eficaz na prática.
  2. Multiplos lucros: Ao definir vários níveis de lucro e fechar parcialmente as posições quando os preços atingem esses níveis, ele pode maximizar os retornos, além de controlar o risco.
  3. Parâmetros flexíveis: as definições dos parâmetros desta estratégia são muito flexíveis. Os utilizadores podem ajustar os períodos de média móvel e os níveis de lucro de acordo com as suas necessidades e características do mercado para alcançar resultados ótimos.

Riscos estratégicos

  1. Risco de volatilidade do mercado: quando o mercado experimenta fortes flutuações, os sinais cruzados frequentes podem conduzir a negociações frequentes, aumentando os custos de transação e o risco de utilização.
  2. Definição de parâmetros de risco: configurações inadequadas de parâmetros podem conduzir a um mau desempenho da estratégia, como a seleção inadequada de períodos de média móvel ou configurações desproporcionadas do nível de lucro.
  3. Risco de reconhecimento de tendências: Esta estratégia baseia-se principalmente em tendências.

Orientações para a otimização da estratégia

  1. Combinar com outros indicadores: considerar a combinação com outros indicadores técnicos, tais como RSI, MACD, etc., para melhorar a precisão e a fiabilidade do reconhecimento da tendência.
  2. Otimizar parâmetros: através de backtesting e otimização, encontrar os melhores períodos de média móvel e parâmetros de nível de lucro para se adaptar a diferentes condições de mercado.
  3. Adicionar stop-loss: considerar a adição de mecanismos de stop-loss para controlar ainda mais o risco, tais como a definição de stop-loss dinâmico baseado no ATR.
  4. Melhorar a entrada e a saída: explorar mais condições de entrada e saída, como considerar o volume de negociação, os níveis de suporte e resistência, etc., para aumentar a robustez da estratégia.

Conclusão

A estratégia de cruzamento de média móvel com múltiplos lucros é uma estratégia simples e eficaz de acompanhamento de tendências que pode capturar mais lucros nas tendências, enquanto gerencia o risco através da obtenção de lucros em vários níveis. No entanto, esta estratégia também tem algumas limitações e riscos e precisa ser otimizada e melhorada com base em condições específicas do mercado e necessidades dos usuários.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ValdesTradingBots

//Follow Us for More Insights and Updates!

//Join our community and be the first to know about our new releases and trading tips

//Facebook Group: Join our vibrant community at https://www.facebook.com/groups/707469081464839/
//Twitter: Follow us for quick updates and insights at https://twitter.com/ValdesBots

//We're excited to have you with us!

//@version=5
strategy("Valdes Trading Bots MA Cross with Multiple Take Profits", overlay=true)

shortPeriod = input(18, title="Short MA Period")
longPeriod = input(32, title="Long MA Period")

// Take Profit Settings
tp1Enabled = input(true, title="Enable Take Profit 1")
tp1Perc = input(15, title="Take Profit 1 (%)") / 100
tp1QtyPerc = input(25, title="Take Profit 1 Qty (%)") / 100

tp2Enabled = input(true, title="Enable Take Profit 2")
tp2Perc = input(30, title="Take Profit 2 (%)") / 100
tp2QtyPerc = input(25, title="Take Profit 2 Qty (%)") / 100

tp3Enabled = input(true, title="Enable Take Profit 3")
tp3Perc = input(45, title="Take Profit 3 (%)") / 100
tp3QtyPerc = input(25, title="Take Profit 3 Qty (%)") / 100

tp4Enabled = input(true, title="Enable Take Profit 4")
tp4Perc = input(60, title="Take Profit 4 (%)") / 100
tp4QtyPerc = input(25, title="Take Profit 4 Qty (%)") / 100

shortMA = ta.sma(close, shortPeriod)
longMA = ta.sma(close, longPeriod)

// Determine the trend
uptrend = shortMA > longMA
downtrend = shortMA < longMA

// Assign candle colors based on the trend
candleColor = uptrend ? color.rgb(9, 112, 0) : downtrend ? color.rgb(255, 0, 0) : color.new(color.blue, 0)

plot(shortMA, title="Short MA", color=color.rgb(9, 112, 0))
plot(longMA, title="Long MA", color=color.rgb(255, 0, 0))

// Create a cross signal
longCross = ta.crossover(shortMA, longMA)
shortCross = ta.crossunder(shortMA, longMA)

// Strategy entry
if (longCross)
    strategy.entry("Long", strategy.long)
if (shortCross)
    strategy.entry("Short", strategy.short)

// Strategy take profit
if (tp1Enabled and strategy.position_size > 0)
    strategy.exit("TP1 Long", "Long", qty_percent=tp1QtyPerc, limit=strategy.position_avg_price * (1 + tp1Perc))
if (tp1Enabled and strategy.position_size < 0)
    strategy.exit("TP1 Short", "Short", qty_percent=tp1QtyPerc, limit=strategy.position_avg_price * (1 - tp1Perc))

if (tp2Enabled and strategy.position_size > 0)
    strategy.exit("TP2 Long", "Long", qty_percent=tp2QtyPerc, limit=strategy.position_avg_price * (1 + tp2Perc))
if (tp2Enabled and strategy.position_size < 0)
    strategy.exit("TP2 Short", "Short", qty_percent=tp2QtyPerc, limit=strategy.position_avg_price * (1 - tp2Perc))

if (tp3Enabled and strategy.position_size > 0)
    strategy.exit("TP3 Long", "Long", qty_percent=tp3QtyPerc, limit=strategy.position_avg_price * (1 + tp3Perc))
if (tp3Enabled and strategy.position_size < 0)
    strategy.exit("TP3 Short", "Short", qty_percent=tp3QtyPerc, limit=strategy.position_avg_price * (1 - tp3Perc))

if (tp4Enabled and strategy.position_size > 0)
    strategy.exit("TP4 Long", "Long", qty_percent=tp4QtyPerc, limit=strategy.position_avg_price * (1 + tp4Perc))
if (tp4Enabled and strategy.position_size < 0)
    strategy.exit("TP4 Short", "Short", qty_percent=tp4QtyPerc, limit=strategy.position_avg_price * (1 - tp4Perc))

// Plotting the signals on the chart
plotshape(series=longCross, title="Long Cross", location=location.belowbar, color=color.rgb(9, 112, 0), style=shape.triangleup, size=size.small)
plotshape(series=shortCross, title="Short Cross", location=location.abovebar, color=color.rgb(255, 0, 0), style=shape.triangledown, size=size.small)

// Apply candle color
barcolor(candleColor)


Relacionados

Mais.