La idea central de esta estrategia es encontrar la mejor fecha de compra cada mes comprando activos digitales en esa fecha y vendiéndolos al final del mes, con el fin de lograr rendimientos óptimos de la inversión.
La estrategia se ejecuta en función de la fecha de compra mensual definida por el usuario y la fecha de venta. Se hace largo en la fecha de compra comprando activos y cierra la posición en la fecha de venta si se establece. De lo contrario, cierra la posición en la fecha de finalización de la estrategia. Esto puede probar la diferencia de ganancias de diferentes fechas de compra mensuales.
La lógica para la señal de compra es: si es la fecha de compra definida por el usuario y dentro del rango de fecha efectiva de la estrategia, vaya largo.
La lógica para la señal de posición cerrada es: si la fecha de venta está establecida y es la fecha de venta ahora, la posición cerrada; si no hay fecha de venta, pero más allá de la fecha de finalización de la estrategia, también la posición cerrada.
Riesgo de caída de precios después de la compra
Cambio de la fecha óptima de compra
Pérdida causada por una configuración incorrecta de parámetros
Considere más factores para determinar el punto de entrada
Optimizar el mecanismo de gestión de posiciones
Expansión a otros mercados comerciales
Esta estrategia encuentra la fecha de mayor oscilación de precios intradiarios cada mes probando la diferencia de ganancias de diferentes fechas de compra. Puede traer retornos excedentes para los inversores que buscan ganancias de la negociación intradiaria de alta frecuencia.
/*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()