Estratégia de Alavancagem de Crossover de Média Móvel Exponencial

MATIC EMA MA
Data de criação: 2024-04-30 16:26:37 última modificação: 2024-04-30 16:26:37
cópia: 0 Cliques: 534
1
focar em
1617
Seguidores

Estratégia de Alavancagem de Crossover de Média Móvel Exponencial

Visão geral

A estratégia usa o cruzamento das médias móveis dos dois índices (EMA) nos dias 20 e 55 para determinar os sinais de negociação. Quando a EMA de curto prazo atravessa a EMA de longo prazo, o sinal de compra é emitido, e vice-versa, o sinal de venda é emitido. A estratégia também introduz a negociação de alavancagem, aumentando os ganhos com a alavancagem, aumentando o risco. Além disso, a estratégia também aumenta a restrição condicional, abrindo a posição somente depois que as duas linhas médias se cruzam, quando o preço toca a média das linhas de curto prazo, para reduzir o risco de falsos sinais.

Princípio da estratégia

  1. Calcular o 20o e o 55o dia de EMA (ou MA)
  2. Determine se o EMA de curto prazo é superior ao EMA de longo prazo, e, se for, defina a variável readyToEnter como true, indicando que está pronto para entrar.
  3. Se o readyToEnter for true e o preço tocar a EMA de curto prazo, execute a compra e reinicie o readyToEnter como false.
  4. Se o EMA de curto prazo for menor do que o EMA de longo prazo, a posição será neutralizada.
  5. O tamanho da posição é definido de acordo com os parâmetros de alavancagem.
  6. Execute a estratégia apenas dentro do intervalo de resposta definido pelo usuário.

Vantagens estratégicas

  1. O cruzamento de linhas médias é um método simples e fácil de usar para determinar tendências e é adequado para a maioria dos mercados.
  2. A introdução de negociações de alavancagem pode aumentar os lucros.
  3. Aumentar as restrições de condições para reduzir o risco de falsos sinais.
  4. Oferece opções de EMA e MA para atender a diferentes preferências dos usuários.
  5. A estrutura do código é clara, fácil de entender e modificar.

Risco estratégico

  1. A negociação de alavancagem aumenta o risco e pode levar a grandes perdas se for mal julgada.
  2. O equilíbrio entre as linhas está atrasado e pode perder o melhor momento de entrada.
  3. Aplica-se apenas a mercados com tendências óbvias, podendo ocorrer transações frequentes, resultando em taxas elevadas, se o mercado estiver em turbulência.

Direção de otimização da estratégia

  1. Pode-se tentar otimizar o ciclo da linha média para encontrar os parâmetros mais adequados para o mercado atual.
  2. Pode-se introduzir outros indicadores, como RSI, MACD, etc., para analisar a tendência e melhorar a taxa de vitória.
  3. Pode-se configurar um stop loss e um stop loss para controlar o risco de uma única transação.
  4. Pode-se ajustar o tamanho da alavancagem de acordo com a dinâmica da taxa de flutuação do mercado, aumentando a alavancagem em horas de flutuação e diminuindo a alavancagem em horas de flutuação.
  5. Algoritmos de aprendizagem de máquina podem ser introduzidos para adaptar os parâmetros de otimização.

Resumir

A estratégia, através da combinação de equilíbrio de cruzamento e negociação de alavancagem, aumenta a receita ao mesmo tempo em que controla a tendência do mercado. Mas a alavancagem também traz alto risco e deve ser usada com cautela. Além disso, a estratégia tem espaço para otimização e pode melhorar o desempenho da estratégia por meio da introdução de mais indicadores, parâmetros de ajuste dinâmico, etc. Em geral, a estratégia é adequada para traders que buscam alta receita e que possam assumir alto risco.

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

//@version=5
strategy("EMA Crossover Strategy with Leverage, Conditional Entry, and MA Option", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs for backtesting period
startDate = input(defval=timestamp("2023-01-01"), title="Start Date")
endDate = input(defval=timestamp("2024-04-028"), title="End Date")

// Input for leverage multiplier
leverage = input.float(3.0, title="Leverage Multiplier", minval=1.0, maxval=10.0, step=0.1)

// Input for choosing between EMA and MA
useEMA = input.bool(true, title="Use EMA (true) or MA (false)?")

// Input source and lengths for MAs
src = close
ema1_length = input.int(20, title='EMA/MA-1 Length')
ema2_length = input.int(55, title='EMA/MA-2 Length')

// Calculate the MAs based on user selection
pema1 = useEMA ? ta.ema(src, ema1_length) : ta.sma(src, ema1_length)
pema2 = useEMA ? ta.ema(src, ema2_length) : ta.sma(src, ema2_length)

// Tracking the crossover condition for strategy entry
crossedAbove = ta.crossover(pema1, pema2)

// Define a variable to track if a valid entry condition has been met
var bool readyToEnter = false

// Check for MA crossover and update readyToEnter
if (crossedAbove)
    readyToEnter := true

// Entry condition: Enter when price touches MA-1 after the crossover // and (low <= pema1 and high >= pema1)
entryCondition = readyToEnter

// Reset readyToEnter after entry
if (entryCondition)
    readyToEnter := false

// Exit condition: Price crosses under MA-1
exitCondition = ta.crossunder(pema1, pema2)

// Check if the current bar's time is within the specified period
inBacktestPeriod = true

// Execute trade logic only within the specified date range and apply leverage to position sizing
if (inBacktestPeriod)
    if (entryCondition)
        strategy.entry("Long", strategy.long, qty=strategy.equity * leverage / close)
    if (exitCondition)
        strategy.close("Long")


// Plotting the MAs for visual reference
ema1_color = pema1 > pema2 ? color.red : color.green
ema2_color = pema1 > pema2 ? color.red : color.green
plot(pema1, color=ema1_color, style=plot.style_line, linewidth=1, title='EMA/MA-1')
plot(pema2, color=ema2_color, style=plot.style_line, linewidth=1, title='EMA/MA-2')