Estratégia de ordem de tempo


Data de criação: 2023-09-28 15:26:20 última modificação: 2023-09-28 15:26:20
cópia: 4 Cliques: 659
1
focar em
1617
Seguidores

Visão geral

A principal ideia da estratégia de ordens de compra-venda é comprar e vender em um horário personalizado pelo usuário. A estratégia permite ao usuário definir um ponto de tempo preciso, em que ele venderá sua posição atual e depois comprará a um preço limite 1% abaixo do preço atual. Isso permite a realização de reajustes periódicos em horários específicos todos os dias.

Princípio da estratégia

A estratégia primeiro obtém as horas e minutos personalizadas pelo usuário por meio da função de entrada e, em seguida, usa a função de timestamp para gerar o tempo de execução do pedido. Se o tempo atual for posterior ao ponto de tempo especificado, a operação de venda e compra será acionada.

Especificamente, a estratégia julga primeiro se o momento atual está dentro do intervalo de datas de início e término especificado pelo usuário. Se for satisfeito, o preço de mercado será vendido no momento em que o ponto de execução do pedido for atingido, e depois será comprado pelo preço de limite de 99% do preço atual. Assim, é possível realizar um reajuste de posição a um preço 1% abaixo do preço atual em um determinado momento.

Análise de vantagens

A maior vantagem da estratégia é que pode ser reajustado regularmente em um determinado ponto do tempo, sem a necessidade de operação manual, reduzindo o custo de trabalho. Além disso, cada realocação de comprar a um preço um pouco mais baixo do que o preço atual, pode obter uma certa vantagem de compra ultra-baixo.

As vantagens incluem:

  1. Operação totalmente automatizada, reduzindo custos de mão de obra.

  2. A posição pode ser reajustada regularmente em determinados momentos.

  3. A cada reposicionamento, é possível obter uma oportunidade de compra ultra-baixa de um pouco menos de 1% do preço atual.

  4. A transferência pode ser feita a partir de um ponto de transferência personalizado, com uma flexibilidade de ajuste.

  5. Pode-se personalizar a data de início e fim do ciclo de desmontagem para facilitar a otimização de retrospectiva.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. Se você não escolher o momento certo para fazer a troca regular, você pode perder uma boa oportunidade de compra ou vender no momento errado.

  2. O preço de compra é apenas 1% inferior ao preço de venda, podendo não ser possível obter uma diferença de preço de compra ultra-baixa suficiente em cada período de liquidação.

  3. As vendas e compras são feitas a preços de mercado e podem ser afetadas por um certo grau de deslizamento.

  4. Se uma estratégia opera apenas em um determinado ponto de tempo, não é possível administrar o mercado entre esses pontos de tempo.

  5. A troca de posições frequente gera mais taxas de transação.

Resolução:

  1. A escolha de um momento apropriado para a deslocação, em combinação com outros indicadores técnicos.

  2. O parâmetro de diferença de preço de compra pode ser aumentado, se necessário.

  3. Tente escolher uma variedade de negociação com melhor profundidade e menor volatilidade.

  4. Pode ser combinado com outras estratégias para a gestão de risco durante o período de não-deslocação.

  5. Controle adequado da frequência de negociação, equilíbrio entre vantagens de negociação e custos de negociação.

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Optimizar a escolha do ponto de negociação, combinando características do ciclo diário da variedade de negociação para escolher o melhor ponto de negociação.

  2. Adicionar outros indicadores técnicos de julgamento para evitar mudanças de posição em momentos desfavoráveis. Por exemplo, indicadores de julgamento de tendências, como a combinação de médias móveis.

  3. Optimizar os parâmetros de compra ultra-baixos, equilibrando vantagens e custos de transação.

  4. A utilização de tracking stop loss para gerenciamento de posições em intervalos de deslocamento.

  5. Combinado com algoritmos de aprendizagem de máquina para treinar dados históricos, otimizando automaticamente o ponto de tempo de embarque.

  6. A função de recuperação de direitos foi adicionada para acompanhar os pontos de ajuste de equilíbrio em momentos de divisão de ações, dividendos e outros.

Resumir

De um modo geral, a estratégia de ordenação por tempo fixo pode automatizar o processo de negociação e reduzir os custos de operação manual, ajustando periodicamente a posição. A estratégia de otimização é grande e pode ser aprimorada a partir da escolha do ponto de negociação, configuração de parâmetros de compra, parada de perda e otimização de algoritmos.

Código-fonte da estratégia
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/








// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ytrevor

//@version=4
strategy("Order At Specified Time", overlay=true)


// -- These inputs are for customizing the times of your desired orders -- //
customHour = input(title="Hour for Order Execution", type=input.integer, defval=01, minval=00, maxval=24) //
customMinute = input(title="Minute for Order Execution", type=input.integer, defval=00, minval=00, maxval=59)
targetTime = timestamp("UTC", year, month, dayofmonth, customHour, customMinute, 00) //Order executes at this time

inDateRange = (time >= targetTime) and (time <= targetTime) //Orders are placed everyday at 01:00 UTC, or any other time specified via input


// -- These inputs are for back testing. Feel free to change the start and end dates via input -- // 
startDay = input(title="Start Day", type=input.integer, defval=10, minval=1, maxval=31) 
startMonth = input(title="Start Month", type=input.integer, defval=2, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2021)
endDay = input(title="End Day", type=input.integer, defval=22, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer, defval=3, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer, defval=2021)

betweenDates = true


// -- Order execution --  //
if betweenDates
    buyPrice = close*0.99 //Buy at 1% lower than selling price
    strategy.entry("Sell", strategy.short, when=inDateRange) //Sell at 01:00 UTC, or at any other time specified via input
    strategy.entry("Buy", strategy.long, limit=buyPrice, when=inDateRange) //Buy limit order placed at the same time, 1% lower than selling price