Estratégia de negociação de média móvel e estocástica


Data de criação: 2024-02-02 10:48:37 última modificação: 2024-02-02 10:48:37
cópia: 0 Cliques: 826
1
focar em
1617
Seguidores

Estratégia de negociação de média móvel e estocástica

Visão geral

Esta estratégia combina as médias móveis e os indicadores aleatórios para criar um sistema de negociação de ações automatizado. Utiliza duas médias móveis de diferentes comprimentos e indicadores aleatórios para capturar os sinais de tendência e de sobrevenda, e executa operações de compra e venda de acordo com a direção da tendência e os sinais de indicadores da região de sobrevenda.

Princípio da estratégia

1. Média móvel

Utilize a linha rápida ((linha de 5 dias) e a linha lenta ((linha de 20 dias) duas médias móveis. Quando a linha rápida atravessa a linha lenta, é um sinal de compra, e a linha inferior é um sinal de venda. O papel da média móvel é determinar a tendência e a direção dos preços.

2. Indicadores aleatórios

Os parâmetros do indicador aleatório são: K-line cycle 14, K-line smoothing cycle 3, D-line smoothing cycle 3. A linha K abaixo de 20 é a região de superalimento e acima de 80 é a região de superalimento. O indicador aleatório serve para determinar se você está na região de superalimento.

3. Regras de compra e venda

Condições de compra: Linha rápida através da linha lenta e linha K <20 ((área de super-venda) Condições de venda: linha rápida abaixo da linha lenta e linha K> 80 ((área de supercompra)

Quando as condições de compra são satisfeitas, compra-se mais; quando as condições de venda são satisfeitas, vende-se menos.

4. Configuração Stop Loss

Cancelamento de 1% após compra; Cancelamento de 1% após venda.

Análise de vantagens

Esta estratégia combina tendências e indicadores para capturar eficazmente as tendências de linha média e longa dos preços, enquanto usa indicadores aleatórios para controlar o tempo de compra e venda, evitando operações de compra e venda arbitrárias sem uma direção clara. Os parâmetros da estratégia podem ser ajustados em grande escala e podem ser ajustados para diferentes condições de mercado.

Riscos e soluções

  • Se houver uma situação de agitação causada por uma grande notícia, é possível que haja um grande prejuízo. Pode-se definir uma linha de parada para controlar o risco.

  • Se você encontrar um mercado com uma revisão horizontal contínua, você pode ter pequenos prejuízos consecutivos. Você pode ajustar adequadamente os parâmetros do ciclo da média móvel para reduzir os prejuízos.

  • É preciso ter cuidado para evitar os momentos críticos do mercado de ações, pois os preços são propensos a se inverterem, o que pode levar a erros de negociação.

Direção de otimização

  • Pode-se testar diferentes combinações de parâmetros para encontrar a melhor combinação de parâmetros. Por exemplo, pode-se testar o efeito de combinações de médias móveis de diferentes comprimentos.

  • Pode ser combinado com outras ferramentas de análise, como volume de negócios, taxa de flutuação, etc. para definir condições de filtragem e aumentar a taxa de ganho da estratégia.

  • Pode-se estudar o mecanismo de seleção de ações, escolher ações de desempenho ou índices ponderados, etc., para reduzir o risco de ações individuais.

Resumir

A estratégia funciona bem em geral, com um bom resultado de ganhos e perdas em geral, após a definição de condições de parada de perda. O efeito pode ser ainda melhorado com o ajuste de parâmetros e a otimização da seleção de pools de ações.

Código-fonte da estratégia
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average and Stochastic Strategy 80% ", overlay=true)

// Moving Average Settings
maShortLength = input(5, title="Short MA Length")
maLongLength = input(20, title="Long MA Length")

// Stochastic Settings
stochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="Stochastic %K")
smoothD = input(3, title="Stochastic %D")
stochOverbought = 80
stochOversold = 20

// Profit Target Settings
profitTarget = input(1, title="Profit Target (%)") // 1% profit target

// Calculate Moving Averages
maShort = sma(close, maShortLength)
maLong = sma(close, maLongLength)

// Calculate Stochastic
k = sma(stoch(close, high, low, stochLength), smoothK)
d = sma(k, smoothD)

// Entry Conditions
longConditionMA = crossover(maShort, maLong) and k < stochOversold
shortConditionMA = crossunder(maShort, maLong) and k > stochOverbought

// Opposite Conditions
oppositeLongConditionMA = crossunder(maShort, maLong) and k < stochOversold
oppositeShortConditionMA = crossover(maShort, maLong) and k > stochOverbought

// Strategy Logic
if (longConditionMA)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", profit=close * (50 + profitTarget / 100))

if (shortConditionMA)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", profit=close * (20 - profitTarget / 100))

// Opposite Strategy Logic
if (oppositeLongConditionMA)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", profit=close * (50 - profitTarget / 100))

if (oppositeShortConditionMA)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", profit=close * (20 + profitTarget / 100))

// Plot Moving Averages
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")

// Plot Stochastic
hline(stochOverbought, "Overbought", color=color.red)
hline(stochOversold, "Oversold", color=color.green)
plot(k, color=color.black, title="Stochastic %K")