
A ideia principal desta estratégia é combinar o tempo e o indicador ATR para realizar um stop loss automatizado. A estratégia abre uma posição para comprar ou vender em um ponto fixo e, em combinação com o indicador ATR, calcula um preço de stop loss razoável. Isso permite uma negociação automatizada e eficiente, reduzindo a frequência de operações manuais e, ao mesmo tempo, controlando o risco efetivamente com o indicador ATR.
Esta estratégia usa o hour e o minuto variáveis combinadas com a condição de julgamento de if para a ação de abertura de posição no ponto de tempo especificado pelo parâmetro da estratégia tradeTime. Por exemplo, a configuração de 0700, significa que a abertura de posição será acionada às 7 da manhã, hora de Pequim.
Após a abertura da posição, a estratégia usa a função ta.atr () para calcular o valor do indicador ATR nos últimos 5 minutos e usa isso como base para o stop loss. Por exemplo, após a compra, o preço de parada = preço de compra + valor de ATR; após a venda, o preço de parada = preço de venda - valor de ATR.
Isso permite a abertura automática de posições baseada em pontos de tempo, bem como o stop loss baseado no indicador ATR. Isso reduz a frequência de operações manuais e, ao mesmo tempo, controla o risco de forma eficaz.
A estratégia tem as seguintes vantagens:
Alta automação. Pode ser guardado sem o homem para fazer pedidos automáticos em horários específicos, reduzindo significativamente a frequência de operação manual.
O Stop Loss Bar, baseado no indicador ATR, pode controlar efetivamente os prejuízos individuais. O indicador ATR pode capturar dinamicamente a volatilidade do mercado e, assim, definir uma distância de parada razoável.
É altamente escalável. Pode ser facilmente combinado com mais indicadores ou algoritmos de aprendizagem de máquina para auxiliar a decisão. Por exemplo, a combinação de indicadores de avaliação de tendências de linha média.
Arbitragem multi-variedade é fácil de implementar. Uma estratégia de arbitragem de abertura de contrato pode ser facilmente implementada apenas com a configuração do mesmo horário de negociação para diferentes variedades.
É fácil de integrar com o sistema de negociação automatizado. Combinado com a gestão de tarefas em tempo real, pode ser executado 24 horas por dia, sem vigilância, para a realização de negociações totalmente automatizadas.
A estratégia também apresenta alguns riscos:
Risco de surto de mercado. Um evento de grande escala pode levar a uma flutuação extrema dos preços, desencadeando um stop loss e gerando grandes perdas.
Risco de liquidez da marca. Algumas variedades são menos líquidas, não podem ser totalmente transacionadas no ponto de parada do preço limite e não podem ser liquidadas.
Risco de otimização dos parâmetros ATR. Os parâmetros ATR precisam ser testados repetidamente para otimização, e se forem definidos em tamanhos maiores ou menores, isso afetará a eficácia da estratégia.
Risco de otimização de pontos de tempo. O tempo fixo de abertura de posições pode perder oportunidades de mercado, necessitando de mais pontos de ajuste de indicadores.
Esta estratégia pode ser melhorada em relação a:
Combine mais indicadores para avaliar a situação do mercado e evite abrir posições em ambientes de mercado desfavoráveis, como MACD, RSI, etc.
O uso de algoritmos de aprendizagem de máquina para prever a melhor hora de abertura de estoque. Pode coletar mais dados históricos, usar LSTM e outros para treinamento de modelos.
A utilização de plataformas como a Heartbeat para a arbitragem de variedades.
Optimizar os parâmetros ATR e as configurações de stop-loss. Os parâmetros ideais podem ser encontrados com mais feedback repetitivo.
A estratégia é executada no servidor, com a integração de tarefas cronometradas, com a operação totalmente automatizada, 7x24 horas.
Esta estratégia integra o ponto de tempo e o indicador ATR para uma negociação de stop loss automática e eficiente. Com otimização de parâmetros, é possível obter um alfa estável. Ao mesmo tempo, possui uma forte capacidade de escalabilidade e integração, sendo uma das estratégias de quantificação recomendadas.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true)
// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na
// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")
// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))
// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders
// if (buyCondition)
// strategy.entry("Buy", strategy.long)
// buyprice := close
// takeProfitLevel := buyprice + atrValue
// strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
sellprice := close
takeProfitLevelForSell := sellprice -atrValue
strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)
// Plot horizontal lines for take profit levels
plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")