Estratégia de investimento quantitativa com base na data de compra mensal


Data de criação: 2023-11-24 14:10:23 última modificação: 2023-11-24 14:10:23
cópia: 0 Cliques: 593
1
focar em
1617
Seguidores

Estratégia de investimento quantitativa com base na data de compra mensal

Visão geral

A idéia central desta estratégia é encontrar a melhor data de compra de cada mês para obter o melhor retorno de investimento, comprando ativos digitais nesse dia e vendendo-os no final do mês. A estratégia é adequada para investidores que esperam obter lucros extras com a volatilidade dos preços durante o dia.

Princípio da estratégia

A estratégia funciona de acordo com a data de compra e venda de cada mês definida pelo usuário. Se você abrir uma ordem de compra de ativos no dia da data de compra, se você definir a data de venda, em posição de equilíbrio na data de venda; Se você não definir a data de venda, em equilíbrio no dia da data de encerramento da estratégia.

A lógica de julgamento de um sinal de compra é a seguinte: se for a data de compra definida pelo usuário e dentro da data de vigência da estratégia, é aberto mais de um pedido.

A lógica de julgamento de sinais de equilíbrio é: se a data de venda for definida e for a data de venda, equilíbrio; se a data de venda não for definida, mas ultrapassar a data de término da estratégia, equilíbrio também.

Vantagens estratégicas

  1. Encontrar os pontos de compra com maior flutuação de preços por mês e aproveitar a alta frequência de transações intradiárias para obter lucros extras
  2. Os melhores pontos de compra podem ser encontrados através da comparação de diferentes datas de compra
  3. A melhor data de compra pode ser combinada com os eventos de notícias do mês para determinar se há mudanças.
  4. Pode-se definir diferentes datas de venda para equilibrar as transações de linha curta e longa

Riscos estratégicos e soluções

  1. Risco de queda de preço após a compra

    • Estabelecer um ponto de parada para reduzir o máximo de perdas
    • Escolha pares de negociação com bastante liquidez para evitar flutuações extremas de preços
  2. Risco de mudança de data de compra ideal

    • Monitorar mudanças nos dados históricos e ajustar os melhores pontos de compra
    • Reduzir o tamanho da posição em períodos de alto risco
  3. Risco de perda por erro de configuração

    • Testar os diferentes parâmetros e comparar as diferenças de rendimento
    • Escolha um período de tempo representativo para o teste

Direção de otimização da estratégia

  1. Combinação de mais fatores para determinar o ponto de compra

    • Considere o impacto dos principais eventos de notícias no mês sobre os preços
    • Análise de preços de ativos digitais relevantes
    • Adicionar modelos de aprendizagem de máquina para determinar o melhor momento de compra
  2. Otimização da gestão de posições

    • Configurar o ponto de parada para o equilíbrio dinâmico
    • Dimensões de posição ajustadas à volatilidade
    • Considere posições de longo prazo
  3. Expansão para outros mercados de negociação

    • Aplicação para mais pares de moeda digital
    • Aplica-se a mercados como ações e divisas.
    • Estabelecer estratégias de arbitragem

Resumir

Esta estratégia, testando as diferenças de receita trazidas por diferentes datas de compra, procura o maior ponto de compra de flutuação de preços por mês. Isso pode trazer lucros extras para os investidores que buscam lucrar com a alta frequência de negociação durante o dia.

Código-fonte da estratégia
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
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/
// © dennis.decoene

//@version=4
strategy(title="Buy and Hold, which day of month is best to buy?", overlay=true)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31, group="Starting From")
     
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12, group="Starting From")
     
startYear = input(title="Start Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100, group="Starting From")

endDate = input(title="End Date", type=input.integer,
     defval=2, minval=1, maxval=31, group="Until")
endMonth = input(title="End Month", type=input.integer,
     defval=10, minval=1, maxval=12, group="Until")
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100, group="Until")

entryday = input(title="Entry Day", type=input.integer,
     defval=26, minval=1, maxval=31, tooltip="When to enter (buy the asset) each month")
exitday = input(title="Exit Day", type=input.integer,
     defval=6, minval=1, maxval=31, tooltip="When to exit (sell the asset) each month")
     
useExitDay= input(title="Close position on exit day?", type=input.bool, defval=false, tooltip="Use the Exit Day to close each months position it true or close at the end of the period (if false)")
     
isEntryDay= (dayofmonth(time)==entryday)
isExitDay= (dayofmonth(time)==exitday-1)


inDateRange = true

if (isEntryDay and inDateRange)
    strategy.entry(id="Buy", long=true)
    
if (isExitDay and useExitDay)
    strategy.close_all()


// Exit open market position when date range ends
if (not inDateRange and not useExitDay)
    strategy.close_all()