
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.
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.
Risco de queda de preço após a compra
Risco de mudança de data de compra ideal
Risco de perda por erro de configuração
Combinação de mais fatores para determinar o ponto de compra
Otimização da gestão de posições
Expansão para outros mercados de negociação
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.
/*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()