
La idea central de esta estrategia es encontrar la mejor fecha de compra de cada mes para obtener el mejor retorno de la inversión mediante la compra de activos digitales en esta fecha y su venta al final de la misma. La estrategia es adecuada para los inversores que buscan obtener ganancias adicionales aprovechando las fluctuaciones de los precios en el día.
La estrategia funciona según la fecha de compra y la fecha de venta de cada mes que el usuario establezca. Si se abre una orden de compra y venta de activos el día de la fecha de compra, si se establece una fecha de venta, se cerrará el día de la venta; Si no se establece una fecha de venta, se cerrará el día de la fecha de finalización de la estrategia.
La lógica de la señal de compra es la siguiente: si es la fecha de compra establecida por el usuario y está dentro de la fecha de entrada en vigor de la estrategia, se abre una cuenta adicional.
La lógica de la señal de posición baja es: si se establece una fecha de venta y es la fecha de venta, la posición baja; si no se establece una fecha de venta pero es más allá de la fecha de finalización de la estrategia, también la posición baja.
El riesgo de caída de precios después de la compra
El riesgo de cambio de fecha de compra óptima
Riesgo de pérdidas por errores de configuración
Combina más factores para determinar el punto de compra
Mecanismo de gestión de posiciones optimizado
Extensión a otros mercados de operaciones
Esta estrategia busca el punto de compra con mayor fluctuación de precios por mes, probando las diferencias de ganancias generadas por las diferentes fechas de compra. Esto puede generar ganancias adicionales para los inversores que buscan obtener ganancias de las operaciones de alta frecuencia durante el día.
/*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()