L'idée de base de cette stratégie est de trouver la meilleure date d'achat chaque mois en achetant des actifs numériques à cette date et en les vendant à la fin du mois, afin d'obtenir des rendements d'investissement optimaux.
La stratégie fonctionne en fonction de la date d'achat mensuelle définie par l'utilisateur et de la date de vente. Elle va long sur la date d'achat en achetant des actifs et ferme la position à la date de vente si elle est définie. Sinon, elle ferme la position à la date de fin de la stratégie. Cela peut tester la différence de profit de différentes dates d'achat mensuelles.
La logique du signal d'achat est la suivante: si c'est la date d'achat définie par l'utilisateur et dans la fourchette de date effective de la stratégie, passez long.
La logique du signal de position de clôture est la suivante: si la date de vente est fixée et qu'il s'agit de la date de vente actuelle, la position est clôturée; si aucune date de vente n'existe mais que la date de fin de la stratégie est dépassée, la position est également clôturée.
Risque d'effondrement des prix après achat
Modification de la date d'achat optimale
Perte causée par un paramètre incorrect
Considérez d'autres facteurs pour déterminer le point d'entrée
Optimiser le mécanisme de gestion des positions
Expansion vers d'autres marchés commerciaux
Cette stratégie trouve la date de la plus grande oscillation des prix intraday chaque mois en testant la différence de profit à partir de différentes dates d'achat. Elle peut apporter des rendements excédentaires aux investisseurs qui cherchent des bénéfices du trading intraday à haute fréquence.
/*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()