Este algoritmo negocia ouro com base em sua ação de preço. Ele calcula os preços mais altos e mais baixos dos últimos 20 candelabros para determinar a faixa de flutuação de preços. Ele vai longo quando o preço quebra o preço mais alto do mais recente candelabro e vai curto quando o preço quebra o preço mais baixo do mais recente candelabro. Depois de abrir posições longas ou curtas, ele define os preços de take profit e stop loss.
A lógica central deste algoritmo é baseada na teoria do breakout. Ele registra os preços mais altos e mais baixos dos 20 candelabros mais recentes para determinar a faixa de flutuação de preços. Quando o preço excede essa faixa, ele é considerado um breakout e, portanto, um sinal de negociação é acionado. Especificamente, o fluxo do algoritmo é:
Como pode ser visto, os sinais de negociação deste algoritmo vêm de julgamentos de ruptura de preço.
O algoritmo tem as seguintes vantagens:
Em geral, a ideia central deste algoritmo é clara e lógica. É simples de implementar e fácil de entender o tempo de entrada. Também permite controlar a perda de uma única negociação. Assim, é uma estratégia de negociação quantitativa com forte praticidade.
O algoritmo também tem alguns riscos:
Para controlar e otimizar estes riscos, podem ser tomadas as seguintes medidas:
O algoritmo pode ser otimizado nos seguintes aspectos:
Combinar com outros indicadoresAs médias móveis, as bandas de Bollinger, etc., podem ser introduzidas para confirmar duas vezes os sinais de ruptura e aumentar a confiabilidade.
Optimização de parâmetros. Diferentes combinações de parâmetros podem ser testadas para otimizar o comprimento do período de ruptura e encontrar configurações de parâmetros mais confiáveis.
Optimização de lucro e stop lossAjuste dinâmico da distância de tomada de lucro e stop loss com base na volatilidade etc.
Optimização do dimensionamento da posição. Otimizar o algoritmo de dimensionamento de posições para reduzir o impacto da perda de um único negócio.
Aprendizagem de máquinaAprenda a partir de uma grande quantidade de dados históricos para encontrar automaticamente melhores combinações de parâmetros.
As otimizações acima podem melhorar ainda mais a estabilidade, a taxa de vitória e a lucratividade do algoritmo.
O algoritmo de negociação de ouro gera sinais de negociação com base na ação do preço e na teoria do breakout. A ideia é simples e clara, fácil de implementar e altamente prática. Enquanto isso, também tem alguns riscos e precisa de otimização adicional para melhorar a estabilidade e lucratividade.
/*backtest start: 2022-12-06 00:00:00 end: 2023-12-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("XAUUSD Price Action Strategy", overlay=true) // Define input parameters takeProfit = input(500, "Take Profit") stopLoss = input(200, "Stop Loss") // Calculate price action highs = ta.highest(high, 20) lows = ta.lowest(low, 20) priceRange = highs - lows breakoutLevel = highs[1] // Define conditions for long and short trades longCondition = high > breakoutLevel and close > highs[1] shortCondition = low < breakoutLevel and close < lows[1] // Execute long and short trades with take profit and stop loss if longCondition strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", limit = close + takeProfit, stop = close - stopLoss) if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", limit = close - takeProfit, stop = close + stopLoss) // Plot breakout level plot(breakoutLevel, color=color.blue, title="Breakout Level") // Highlight long and short trade signals on the chart bgcolor(longCondition ? color.green : na, transp=80) bgcolor(shortCondition ? color.red : na, transp=80)