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

Estratégia diária de DCA com ligação às EMA

Autora:ChaoZhang, Data: 2024-01-16 15:30:17
Tags:

img

Resumo

Esta estratégia de script Pine implementa uma abordagem de média de custo diário em dólares na plataforma TradingView, incorporando sinais de toque da EMA para determinar pontos de entrada.

Estratégia lógica

A estratégia tem as seguintes características principais:

  1. Média diária do custo em dólares

    • Investimento fixo diário, independentemente dos altos e baixos do mercado
    • Investimentos em lote a longo prazo para reduzir o risco de transacção única
  2. EMAs para sinais de entrada

    • O sinal de compra é acionado quando o preço de fechamento ultrapassa a EMA 5, 10, 20 etc.
    • As linhas da EMA servem de suporte para evitar retrações a curto prazo
  3. Perda de paragem dinâmica

    • Vender todas as posições se o preço de fechamento cair abaixo da SMA de 20 dias
    • Evitar perdas adicionais
  4. Limite de contagem de transacções

    • Caps max negociações a 300 para controlar o dimensionamento das posições
    • Previne o excesso de investimento para além da capacidade dos activos

Especificamente, todos os dias a estratégia investe uma quantia fixa e calcula as ações a serem compradas com base no preço de fechamento. Se o preço de fechamento cruzar acima de qualquer uma das EMA de 5, 10, 20 dias, etc., um sinal de compra é acionado. Uma vez que a contagem de negociações acumulada atinge o limite de 300, não ocorrerão mais compras. Além disso, se o preço fechar abaixo da SMA de 20 dias ou atingir a data de saída pré-definida, todas as posições são limpas. O script também traça as EMAs no gráfico de preços para análise visual.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Diversificação de riscos

    • Pequenos investimentos diários de montante fixo independentemente da evolução do mercado
    • Evita perseguir os altos
  2. Combinação da EMA evita retrações

    • Os crossovers da EMA impedem compras em períodos de retração
    • A continuação das compras durante as retrações diversifica o risco
  3. Controlo dinâmico das perdas de parada

    • Stop loss permite saídas oportunas
    • Previne grandes perdas
  4. Controlo de limites comerciais Riscos

    • O tamanho máximo da posição é pré-definido para evitar o excesso de investimento
    • Manter o investimento dentro da capacidade de activos
  5. Visualização EMA intuitiva

    • EMAs representadas no gráfico de preços
    • Permite um fácil controlo pelo operador
  6. Muito personalizável

    • Insumos personalizados para o montante do investimento, períodos de EMA, paradas, etc.
    • Previsões de risco

Análise de riscos

A estratégia comporta também alguns riscos:

  1. Ainda existem riscos sistêmicos

    • Os eventos do cisne negro podem levar a grandes perdas.
    • A diversificação só reduz os riscos mas não os elimina
  2. Montante fixo do investimento

    • Os investimentos fixos diários poderão perder a vantagem se os preços subirem
    • O ajustamento dinâmico do montante poderia ajudar
  3. As EMAs não podem reagir a movimentos extremos

    • As EMAs têm uma reacção mais lenta a eventos repentinos e não conseguem parar as perdas a tempo
    • Em combinação com KD, BOLL pode ajudar a identificar extremos
  4. Limites comerciais potencial de lucro

    • Limite máximo dos ganhos possíveis
    • Necessidade de equilibrar riscos e recompensas
  5. A colocação de Stop Loss requer cuidado

    • Paradas muito próximas tendem a ser retiradas prematuramente enquanto paradas muito soltas não conseguem proteger a tempo
    • É necessário um extenso ensaio para encontrar o equilíbrio certo

Melhorias Futuras

Outras optimizações:

  1. Montante dinâmico diário de investimento

    • Basear os investimentos diários em indicadores
    • Aumentar quando alta, diminuir quando baixa
  2. Sinais de entrada adicionais

    • Complementar a EMA com outros indicadores como KD, BOLL
    • Melhorar a identificação de movimentos extremos
  3. Média móvel exponencial

    • As EMA reagem lentamente a eventos repentinos, DEMA, TEMA podem ajudar
    • Captação mais rápida das novas tendências
  4. Limite de posição dinâmica

    • Limite de aumento baseado na rentabilidade da estratégia
    • Permite uma posição em risco mais elevada em avaliações justas
  5. Perda de paragem de atraso

    • A estratégia atual do mercado vende tudo, paradas de atraso podem ajudar a evitar lacunas para baixo
    • Reduzir o risco de paradas

Conclusão

Em resumo, esta estratégia diária de DCA combinada com a EMA realiza o conceito de investimentos periódicos de longo prazo, espalhando riscos em várias pequenas entradas em comparação com grandes compras únicas. As EMAs ajudam a evitar riscos de retração de curto prazo até certo ponto, enquanto o stop loss controla a perda máxima. Ainda assim, os riscos do cisne negro e as limitações do tamanho fixo do investimento precisam ser mantidos em mente. Estes aspectos fornecem direções de aprimoramento futuro por meio de ajuste de parâmetros e combinações de indicadores para a construção de estratégias quant eficientes, mas estáveis.


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

//@version=4
strategy("Daily DCA Strategy with Touching EMAs", overlay=true, pyramiding=10000)

// Customizable Parameters
daily_investment = input(50000, title="Daily Investment")
start_year = input(2022, title="Start Year")
start_month = input(1, title="Start Month")
start_day = input(1, title="Start Day")
end_year = input(2023, title="End Year")
end_month = input(12, title="End Month")
end_day = input(1, title="End Day")
trade_count_limit = input(10000, title="Pyramiding Limit")
enable_sell = input(true, title="Enable Sell")

start_date = timestamp(start_year, start_month, start_day)
var int trade_count = 0

// Calculate the number of shares to buy based on the current closing price
shares_to_buy = daily_investment / close

// Check if a new day has started and after the start date
isNewDay = dayofmonth != dayofmonth[1] and time >= start_date

// Buy conditions based on EMA crossovers
ema5_cross_above = crossover(close, ema(close, 5))
ema10_cross_above = crossover(close, ema(close, 10))
ema20_cross_above = crossover(close, ema(close, 20))
ema50_cross_above = crossover(close, ema(close, 50))
ema100_cross_above = crossover(close, ema(close, 100))
ema200_cross_above = crossover(close, ema(close, 200))

if isNewDay and (ema5_cross_above or ema10_cross_above or ema20_cross_above or ema50_cross_above or ema100_cross_above or ema200_cross_above) and trade_count < trade_count_limit
    strategy.entry("Buy", strategy.long, qty=shares_to_buy)
    trade_count := trade_count + 1

// Dynamic sell conditions (optional)
sell_condition =  true

if enable_sell and sell_condition
    strategy.close_all()

// EMA Ribbon for visualization
plot(ema(close, 5), color=color.red, title="EMA 5")
plot(ema(close, 10), color=color.orange, title="EMA 10")
plot(ema(close, 20), color=color.yellow, title="EMA 20")
plot(ema(close, 50), color=color.green, title="EMA 50")
plot(ema(close, 100), color=color.blue, title="EMA 100")
plot(ema(close, 200), color=color.purple, title="EMA 200")


Mais.