Previsão automática alta/baixa e estratégia de negociação

Autora:ChaoZhang, Data: 2024-03-15 17:22:36
Tags:

img

Resumo

Esta estratégia identifica os pontos altos e baixos às 9:15 na sessão da manhã, calcula automaticamente os preços-alvo e os preços de stop-loss para posições longas e curtas e abre automaticamente as posições quando as condições são atendidas.

Princípios de estratégia

  1. Determine o intervalo de formação dos pontos altos e baixos das 9:00 às 9:15.
  2. Registre o preço mais alto e o preço mais baixo às 9:15 como sessionHigh e sessionLow, respectivamente.
  3. Calcular o preço-alvo longo (sessãoHigh+200), o preço-alvo curto (sessãoLow-200) e os preços de stop-loss correspondentes.
  4. Obter o preço de fechamento atual e o indicador RSI.
  5. Condição de entrada longa: o preço de fechamento ultrapassa o nível de sessionHigh e o RSI é superior ao nível de sobrecompra.
  6. Condição de entrada curta: o preço de encerramento rompe abaixo do nível da sessãoLow e o RSI é inferior ao nível de sobrevenda.
  7. Gravar níveis de preços relevantes e abrir automaticamente posições longas ou curtas com base nas condições de entrada.

Análise das vantagens

  1. Simples e fácil de usar: A estratégia baseia-se em pontos altos/baixos claros de 9:15 e indicador RSI, com uma lógica clara que é fácil de entender e implementar.
  2. A estratégia inclui cálculos embutidos para os preços-alvo e os preços de stop-loss, bem como julgamentos de condições de entrada, permitindo a execução automática de negociações.
  3. Preços de stop-loss pontuais: os preços de stop-loss são definidos com base nos pontos alto/baixo de 9:15, proporcionando um nível de stop-loss claro uma vez aberta uma posição, controlando efetivamente o risco.
  4. Seguimento de tendências: Ao usar o indicador RSI para julgar as condições de sobrecompra e sobrevenda, a estratégia entra no início da formação de tendências, ajudando a seguir a tendência.

Análise de riscos

  1. Risco de otimização de parâmetros: os parâmetros da estratégia, tais como o comprimento do RSI e os limiares de sobrecompra/supervenda, devem ser otimizados com base nas características do mercado, podendo diferentes parâmetros resultar em resultados diferentes.
  2. Risco de indicador único: a estratégia baseia-se principalmente no indicador RSI, que pode tornar-se ineficaz em determinadas condições de mercado.
  3. Risco de volatilidade intradiária: as flutuações de preços após as 9:15 podem desencadear stop-losses e falhar movimentos de tendência.
  4. Falta de gestão de posições: a estratégia não tem controlo sobre o tamanho das posições e a gestão de fundos e a abertura excessivamente frequente de posições pode acarretar riscos adicionais.

Orientações de otimização

  1. A taxa de prejuízo é a taxa de prejuízo que se calcula a partir da variação da taxa de prejuízo.
  2. Combinar com outros indicadores: introduzir outros indicadores, como o MACD e os sistemas de médias móveis, para confirmar os julgamentos de tendência e melhorar a precisão da entrada.
  3. Otimizar as condições de entrada: ajustar de forma adaptativa os limiares de sobrecompra/supervenda do RSI para evitar as limitações dos limiares fixos.
  4. Introduzir a gestão de posições: controlar o dimensionamento das posições com base nas condições de volatilidade do mercado, por exemplo, utilizando modelos de risco percentual.

Resumo

Esta estratégia é baseada nos pontos altos/baixos 9:15, usa o indicador RSI para julgamento da tendência, calcula automaticamente os preços alvo e os preços de stop-loss e abre automaticamente posições longas ou curtas com base nas condições de entrada. A lógica da estratégia é simples e clara, com um alto grau de automação, permitindo a captura rápida dos movimentos da tendência. No entanto, a estratégia também tem riscos em termos de otimização de parâmetros, dependência de um único indicador, volatilidade intradiária e falta de gerenciamento de posição. No futuro, a estratégia pode ser otimizada e melhorada em aspectos como stop-loss dinâmico, combinando com outros indicadores, otimizando as condições de entrada e introduzindo gerenciamento de posição, a fim de obter um desempenho de negociação mais robusto.


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

//@version=5
strategy("9:15 AM High/Low with Automatic Forecasting", overlay=true)

// Parameters
showSignals = input(true, title="Show Signals")

// Define session time
sessionStartHour = input(9, title="Session Start Hour")
sessionStartMinute = input(0, title="Session Start Minute")
sessionEndHour = input(9, title="Session End Hour")
sessionEndMinute = input(15, title="Session End Minute")

// Calculate session high and low
var float sessionHigh = na
var float sessionLow = na
if (hour == sessionStartHour and minute == sessionStartMinute)
    sessionHigh := high
    sessionLow := low

// Update session high and low if within session time
if (hour == sessionStartHour and minute >= sessionStartMinute and minute < sessionEndMinute)
    sessionHigh := high > sessionHigh or na(sessionHigh) ? high : sessionHigh
    sessionLow := low < sessionLow or na(sessionLow) ? low : sessionLow

// Plot horizontal lines for session high and low
plot(sessionHigh, color=color.green, title="9:00 AM High", style=plot.style_stepline, linewidth=1)
plot(sessionLow, color=color.red, title="9:00 AM Low", style=plot.style_stepline, linewidth=1)

// Calculate targets and stop loss
longTarget = sessionHigh + 200
longStopLoss = sessionLow
shortTarget = sessionLow - 200
shortStopLoss = sessionHigh

// Plot targets and stop loss
plot(longTarget, color=color.blue, title="Long Target", style=plot.style_cross, linewidth=1)
plot(longStopLoss, color=color.red, title="Long Stop Loss", style=plot.style_cross, linewidth=1)
plot(shortTarget, color=color.blue, title="Short Target", style=plot.style_cross, linewidth=1)
plot(shortStopLoss, color=color.red, title="Short Stop Loss", style=plot.style_cross, linewidth=1)

// RSI
rsiLength = input(14, title="RSI Length")
overboughtLevel = input(60, title="Overbought Level")
oversoldLevel = input(40, title="Oversold Level")
rsi = ta.rsi(close, rsiLength)

// Entry conditions
longCondition = close > sessionHigh and rsi > overboughtLevel
shortCondition = close < sessionLow and rsi < oversoldLevel

// Long entry
if (showSignals and longCondition)
    strategy.entry("Long", strategy.long)

// Short entry
if (showSignals and shortCondition)
    strategy.entry("Short", strategy.short)


Mais.