Negociação de ouro com a estratégia Simons

Autora:ChaoZhang, Data: 2024-03-01 12:28:38
Tags:

img

Resumo

Esta estratégia combina indicadores de média móvel, índice de força relativa (RSI) e padrões de engulfamento para realizar negociações longas e curtas em ouro.

Estratégia lógica

A estratégia toma decisões comerciais com base nos seguintes aspectos:

  1. Crossover de média móvel

    O cruzamento entre MA de 21 dias e MA de 200 dias é usado como o principal indicador para determinar a reversão da tendência.

  2. Indicador RSI

    O RSI deve estar abaixo do nível de sobrecompra para o sinal longo e acima do nível de sobrevenda para o sinal curto, para evitar picos de compra e vales de venda.

  3. Confirmação do padrão de engulfamento

    O padrão de engulfamento de alta é necessário para o sinal longo quando a cruz de ouro acontece. padrão de engulfamento de baixa necessário para o sinal curto quando a cruz de morte ocorre. isso confirma ainda mais a inversão da tendência.

Os sinais de negociação são gerados quando todas as três condições acima são atendidas.

Vantagens

A maior vantagem reside no uso abrangente de múltiplos parâmetros e indicadores para a tomada de decisão, que filtra bem os sinais incorretos e reduz os stop loss desnecessários.

  1. A própria estratégia da média móvel tem uma estabilidade relativamente boa.

  2. As configurações do RSI evitam picos de compra e vales de venda.

  3. A confirmação dos padrões de engulfamento melhora a confiabilidade no julgamento da inversão da tendência.

  4. Um stop loss menor controla eficazmente os riscos.

Riscos

Embora esta estratégia se destaque no que se refere à filtragem de sinais e ao controlo de riscos, contém ainda alguns pontos fracos e riscos:

  1. O ajuste de parâmetros complexos requer esforços significativos para encontrar a combinação ideal.

  2. Os sinais de entrada rigorosos podem perder algumas boas oportunidades.

  3. Em condições de mercado extremamente voláteis, haverá um certo atraso.

  4. A estabilidade a longo prazo e a validade necessitam de uma verificação adicional.

Para enfrentar os riscos acima, podemos ajustar os parâmetros, otimizar os fluxos lógicos, incorporar outros indicadores, etc., para melhorar a estratégia.

Oportunidades de otimização

Apesar do bom desempenho na combinação de múltiplos indicadores, esta estratégia ainda tem espaço para otimização:

  1. Além disso, encontrar conjuntos de parâmetros ideais através de mais backtesting.

  2. Incorporar outros indicadores como MACD, KD etc. para ajudar a julgar o momento da reversão da tendência.

  3. Melhorar e aperfeiçoar os mecanismos de stop loss.

  4. Teste conjuntos de dados históricos mais longos para verificar a validade a longo prazo da estratégia.

Conclusão

Em conclusão, esta estratégia aproveita um conjunto de ferramentas de análise técnica como médias móveis, RSI e padrões de engulfamento para realizar negociações de ouro longas e curtas. Através da configuração de parâmetros e filtragem de sinal, estabelece um sistema relativamente rigoroso para controlar os riscos até certo ponto. No entanto, nenhuma estratégia pode ser absolutamente perfeita. Esta estratégia ainda tem muito espaço para otimização e melhoria direcional. Em geral, fornece referências significativas para negociação quantificada, mas ainda deve ser usada discretamente com ajustes pragmáticos quando aplicada na prática.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Gold Trading with Simons Strategy", overlay=true)

// Parameters
length21 = input(21, minval=1, title="Length for 21 MA")
length50 = input(50, minval=1, title="Length for 50 MA")
length200 = input(200, minval=1, title="Length for 200 MA")
rsiLength = input(14, minval=1, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
takeProfitPercent = input(4, title="Take Profit %")
stopLossPercent = input(1, title="Stop Loss %")

// Moving Averages
ma21 = sma(close, length21)
ma50 = sma(close, length50)
ma200 = sma(close, length200)

// RSI
rsi = rsi(close, rsiLength)

// Engulfing Pattern
isBullishCandle(c) => close[c] > open[c]
isBearishCandle(c) => close[c] < open[c]

bearishEngulfing = isBullishCandle(1) and isBearishCandle(0) and close < open[1] and open > close[1]
bullishEngulfing = isBearishCandle(1) and isBullishCandle(0) and close > open[1] and open < close[1]

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel(entryPrice) => entryPrice * (1 + takeProfitPercent / 100)
stopLossLevel(entryPrice) => entryPrice * (1 - stopLossPercent / 100)

// Entry Conditions
longCondition = crossover(ma21, ma200) and close > ma21 and close > ma50 and rsi < rsiOverbought and bullishEngulfing
shortCondition = crossunder(ma21, ma200) and close < ma21 and close < ma50 and rsi > rsiOversold and bearishEngulfing

// Entry
if (longCondition)
    entryPrice = close
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Long", stop=stopLossLevel(entryPrice))
if (shortCondition)
    entryPrice = close
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", "Short", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Short", stop=stopLossLevel(entryPrice))

// Plotting
plot(ma21, color=color.blue, title="21 MA")
plot(ma50, color=color.orange, title="50 MA")
plot(ma200, color=color.red, title="200 MA")
hline(rsiOverbought, "RSI Overbought", color=color.green)
hline(rsiOversold, "RSI Oversold", color=color.red)
plot(rsi, "RSI", color=color.purple)

Mais.