Estratégia de cruzamento entre médias móveis múltiplas

Autora:ChaoZhang, Data: 2024-02-04 17:21:25
Tags:

img

Resumo

Esta estratégia calcula linhas médias móveis de vários prazos para determinar a tendência em diferentes períodos. Ela vai longa quando o preço cruza as médias móveis e vai curta quando o preço cruza abaixo das médias móveis.

Princípios

A estratégia baseia-se nos seguintes pontos-chave:

  1. Calcule as médias móveis simples de 21 dias, 50 dias, 100 dias e 200 dias.

  2. Vá longo quando o preço cruza qualquer uma das médias móveis, e vá curto quando cruza abaixo.

  3. Defina o stop loss perto do preço mais baixo da barra anterior após a abertura de posições longas e perto do preço mais alto após a abertura de posições curtas.

  4. Estabelecer metas de lucro abaixo do preço mais baixo para os longs e acima do preço mais alto para os shorts dentro de determinadas faixas.

  5. Fechar posições quando o preço atingir os níveis de stop loss ou take profit.

Julgar as tendências em vários prazos pode melhorar a confiabilidade dos sinais de negociação e nos permitir seguir as tendências quando elas são relativamente claras.

Vantagens

As principais vantagens desta estratégia são:

  1. Melhoria da confiabilidade do sinal com análise de múltiplos prazos.

  2. As paradas dinâmicas facilitam o controle do risco.

  3. A sintaxe Pine oferece estruturas legíveis para ajustar facilmente parâmetros e otimizar.

  4. Aplicação prática fácil. Crossovers de média móvel são uma idéia de estratégia clássica que pode ser facilmente implementada na negociação ao vivo com ajuste adequado de parâmetros.

Riscos

Há também alguns riscos a considerar:

  1. Julgamento da tendência impreciso. As médias móveis podem produzir sinais mistos e atraso, levando a sinais comerciais inadequados.

  2. Exposição a perdas em mercados voláteis: as perdas de parada podem ser desencadeadas facilmente em enormes diferenças de preços ou reversões, incorrendo em grandes perdas.

  3. Parâmetros incorretos aumentam as perdas. Paradas muito largas ou ganhos de tomada apertados podem aumentar a perda máxima por negociação.

  4. Riscos de detenção a longo prazo: esta tendência de seguir uma estratégia não considera a rentabilidade a longo prazo e pode consumir um capital significativo ao longo do tempo.

  5. Diferenças reais de negociação: os custos de negociação, o deslizamento, etc., podem afetar os retornos quando aplicados em plataformas de negociação reais.

Soluções:

  1. Adicionar confirmação de sinal com outros indicadores como KDJ, MACD etc.

  2. Ajustar a largura de parada com base nas condições do mercado para evitar um disparo prematuro.

  3. Otimizar os parâmetros e avaliar os retornos e os drawdowns a longo prazo.

  4. Teste completamente as estratégias no comércio de papel e adicione paradas manuais.

Oportunidades de melhoria

Há ainda espaço para melhorias:

  1. Adicione regras quantitativas de entrada e saída, por exemplo, verifique novos máximos e mínimos para garantir que as negociações tenham tendências mais claras.

  2. Incorporar dimensionamento de posições e gestão de riscos.

  3. Utilize indicadores como PRZ, ATR, DMI, etc. para filtrar e selecionar tendências adequadas.

  4. Alternar períodos de detenção longos e curtos.

  5. Construir um pool de ações usando modelos de investimento de fatores.

  6. Adicionar aprendizagem de máquina para controle de riscos.

Conclusão

Esta estratégia de cruzamento de média móvel simples oferece uma implementação fácil para seguir a tendência. As paradas dinâmicas ajudam a controlar os riscos.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)


Mais.