Parabólica SAR e CCI estratégia com saída da EMA para negociação de ouro

Autora:ChaoZhang, Data: 2023-12-07 17:04:54
Tags:

img

Resumo

Trata-se de uma estratégia de negociação de ouro no período M5 baseada na combinação de indicadores técnicos Parabolic SAR, CCI e EMA. Utiliza três indicadores diferentes para identificar a direção da tendência e situações de sobrecompra/supervenda de ouro para capturar oportunidades de negociação durante os recuos do mercado.

Estratégia lógica

  1. O SAR parabólico é usado para determinar a direção da tendência e os pontos de reversão potenciais do ouro.

  2. O CCI indica as condições de sobrecompra/supervenda do mercado. Um CCI acima de 100 sugere uma tendência ascendente em fortalecimento, enquanto um CCI abaixo de -100 sugere uma tendência descendente em fortalecimento.

  3. Os crossovers da EMA sinalizam pontos de virada de curto prazo do preço.

  4. Regras de entrada: Vão longos quando o SAR cruza a EMA de 5 minutos em direção ascendente e o CCI é superior a 100; vão curtos quando o SAR cruza a EMA de 5 minutos em direção descendente e o CCI é inferior a -100.

  5. Regras de saída: Obter lucro no preço de entrada + 7 ticks, Stop loss definido na linha EMA de 1 minuto.

Vantagens

  1. Utiliza 3 indicadores para identificar tendências e níveis de apoio/resistência principais, melhorando a rentabilidade.

  2. O CCI filtra as falsas rupturas de forma eficiente. As inversões SAR combinadas com a direção da tendência evitam entradas desnecessárias durante as consolidações.

  3. Os crossovers da EMA com a SAR oferecem entradas de baixo risco durante os retrabalhos temporários.

  4. Parâmetros otimizados adequados para commodities voláteis como ouro e pequenas contas.

Riscos

  1. Baseia-se principalmente em indicadores técnicos que podem falhar durante eventos de cisne negro.

  2. Commodity volátil, EMA stop loss propenso a ser atingido por picos resultando em grandes perdas.

  3. A Comissão considera que a medida de auxílio não pode ser considerada como uma medida de auxílio estatal.

  4. As falhas do sistema durante movimentos voláteis podem impedir a execução efetiva de stop loss.

Oportunidades de melhoria

  1. Teste diferentes combinações de parâmetros para otimizar o CCI para as características do ouro.

  2. Incorporar mais indicadores como padrões de velas, Bandas de Bollinger para melhorar a robustez.

  3. Empregar o aprendizado de máquina para a otimização dinâmica dos parâmetros SAR, adaptando-se aos mercados em evolução.

  4. Teste diferentes mecanismos de stop loss, por exemplo, trailing stops, para reduzir a probabilidade de ser atingido.

  5. Otimizar os modelos de dimensionamento de posições, por exemplo, dimensionamento de posições dinâmico e fracionário fixo para controlar o montante das perdas de uma única transação.

Conclusão

Em geral, uma estratégia de negociação de ouro estável que combina múltiplos indicadores para identificar tendências, níveis de suporte / resistência e zonas de sobrecompra / sobrevenda para entradas de baixo risco durante os retracements. Parâmetros otimizados permitem que a negociação de pequenas contas capitalize a alta volatilidade do ouro. Tem riscos que podem ser abordados através de um gerenciamento de risco adequado. Potencial significativo para melhorar ainda mais a estabilidade e a lucratividade através do aprimoramento.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true)

// Parameters
length = input(50, title="EMA Length")
length_21 = input(21, title="EMA Length 21")
acc = input(0.02, title="Acceleration Factor")
max_acc = input(0.2, title="Max Acceleration Factor")
takeProfitPoints = input(7, title="Take Profit Points")

// Variables
var float ep = 0.0
var float sar = 0.0
var float af = acc

// Calculating 5-minute EMA based on 1-minute data
var float sum_close = na
var float ema_5min = na
if (bar_index % 5 == 0)
    sum_close := 0.0
    for i = 0 to 4
        sum_close := sum_close + close[i]
    ema_5min := ema(sum_close / 5, length_21)

// Calculating 1-minute EMA
ema1 = ema(close, length)
cci = cci(close, 45)

// Custom Parabolic SAR Calculation
trendUp = close > ema1
trendDown = close < ema1

var float prev_sar = na
prev_sar := na(sar[1]) ? low[1] : sar[1]

if trendUp
    ep := high > ep ? high : ep
    af := min(af + acc, max_acc)
    sar := min(prev_sar, prev_sar + af * (ep - prev_sar))

if trendDown
    ep := low < ep ? low : ep
    af := min(af + acc, max_acc)
    sar := max(prev_sar, prev_sar + af * (ep - prev_sar))

// Entry Conditions
longCondition = sar > ema1 and ema1 > ema_5min and cci > 100
shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100

// Exit Conditions
longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick
longStopLoss = ema1
shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick
shortStopLoss = ema1

// Plotting Entry Points
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy Execution
if longCondition
    strategy.entry("Long", strategy.long)

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

if strategy.position_size > 0
    strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss)

if strategy.position_size < 0
    strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)


Mais.