
L’idée centrale de cette stratégie est de trouver la meilleure date d’achat par mois pour obtenir le meilleur retour sur investissement en achetant un actif numérique à cette date et en le vendant à la fin de la journée. La stratégie s’adresse aux investisseurs qui souhaitent tirer parti des fluctuations de prix au cours de la journée pour obtenir des rendements supplémentaires.
La stratégie fonctionne en fonction des dates d’achat et de vente de chaque mois que l’utilisateur a configurées. Si vous ouvrez un ordre d’achat d’actifs le jour de la date d’achat, le jour de la vente, si vous avez configuré la date de vente, le jour de la vente; Si vous n’avez pas configuré la date de vente, le jour de la fin de la stratégie.
La logique de jugement du signal d’achat est la suivante: si c’est la date d’achat définie par l’utilisateur, et dans le cadre de la date d’entrée en vigueur de la stratégie, ouvrez plus d’options.
La logique du signal de placement est la suivante: si la date de vente est définie et qu’elle est définie, la position est à plat; si la date de vente n’est pas définie mais qu’elle est supérieure à la date de fin de la stratégie, la position est à plat.
Le risque de baisse des prix après l’achat
Le risque de changement de date d’achat
Risque de perte en raison d’une mauvaise configuration
Plus de facteurs pour déterminer le point d’achat
Optimisation des mécanismes de gestion des positions
Étendre à d’autres marchés de négociation
Cette stratégie permet de tester les différences de rendement entre les dates de prise de position pour trouver les points de prise de position les plus marquées par les fluctuations de prix mensuelles. Cela peut générer des rendements supplémentaires pour les investisseurs qui cherchent à tirer profit de la fréquence élevée des transactions au cours de la journée. La prochaine étape consiste à introduire davantage de facteurs de jugement pour le moment de la prise de position, à optimiser la gestion des positions et à étendre le marché d’application.
/*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()