Stratégie d'investissement quantitative basée sur la date d'achat mensuelle


Date de création: 2023-11-24 14:10:23 Dernière modification: 2023-11-24 14:10:23
Copier: 0 Nombre de clics: 593
1
Suivre
1617
Abonnés

Stratégie d’investissement quantitative basée sur la date d’achat mensuelle

Aperçu

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.

Principe de stratégie

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.

Avantages stratégiques

  1. Trouver les points d’achat les plus marqués par les fluctuations mensuelles des prix et tirer profit des transactions intra-journalières à haute fréquence
  2. Les meilleurs points d’achat peuvent être trouvés en comparant les différentes dates d’achat selon la loi du rendement.
  3. Les dates d’achat évoluent en fonction des événements du mois.
  4. Différentes dates de vente peuvent être définies pour équilibrer les transactions de ligne courte et longue

Risques stratégiques et solutions

  1. Le risque de baisse des prix après l’achat

    • Définir un point d’arrêt pour réduire les pertes maximales
    • Choisissez des paires de devises qui sont suffisamment liquides pour éviter les fluctuations extrêmes des prix
  2. Le risque de changement de date d’achat

    • Surveiller les changements dans les données historiques et ajuster les points de vente optimaux en temps opportun
    • Réduire la taille de la position pendant les périodes de risque élevé
  3. Risque de perte en raison d’une mauvaise configuration

    • Test des paramètres et des différences de rendement
    • Sélectionnez une période représentative pour le test

Orientation de l’optimisation de la stratégie

  1. Plus de facteurs pour déterminer le point d’achat

    • Considérez l’impact des événements clés sur les prix
    • Analyse des prix des actifs numériques concernés
    • Ajout de modèles d’apprentissage automatique pour déterminer le meilleur moment pour acheter
  2. Optimisation des mécanismes de gestion des positions

    • Définition de l’arrêt du point d’arrêt
    • Amélioration de la taille de la position en fonction de la volatilité
    • Considérer une position à long terme
  3. Étendre à d’autres marchés de négociation

    • Les paires de devises numériques sont utilisées pour plus de transactions.
    • Utilisé sur les marchés boursiers, des devises, etc.
    • Définir une stratégie de négociation d’arbitrage entre les marchés

Résumer

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.

Code source de la stratégie
/*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()