3
Suivre
1444
Abonnés

Instructions de backtesting de la plateforme quantitative FMZ Inventor

Créé le: 2019-07-06 12:15:50, Mis à jour le: 2023-10-25 20:00:15
comments   22
hits   9711

Instructions de backtesting de la plateforme quantitative FMZ Inventor

La plupart des stratégies doivent être testées à des fins de vérification avant d’être mises en pratique. FMZ prend en charge certains types de contrats au comptant, à terme et perpétuels de devises numériques, ainsi que tous les types de contrats à terme sur matières premières. Cependant, le mécanisme de backtesting de la plateforme quantitative Inventor est différent du backtesting onbar commun, ce qui a semé la confusion chez de nombreux novices. Cet article expliquera et répondra en détail à certaines questions courantes sur les backtesting.

Comment fonctionne le système de backtesting ?

Instructions de backtesting de la plateforme quantitative FMZ Inventor

Comme le montre la figure ci-dessus, l’heure de début et l’heure de fin du backtest peuvent être considérées comme un axe temporel. Lors du backtesting, le point temporel du backtest se déplace de gauche à droite le long de l’axe pour démarrer le backtesting. À ce moment-là, seul ce point peut être obtenu. La stratégie utilise des données historiques antérieures pour effectuer des achats et des ventes sur la base de ces données, ce qui entraîne finalement un profit ou une perte. De toute évidence, la distribution des points de temps de backtesting est discrète et la densité de la distribution représente la précision du backtesting. Bien entendu, étant donné que plus les points de temps du backtesting sont denses, plus cela prend du temps, le système de backtesting réel doit faire un compromis entre précision et efficacité.

Mécanisme de backtesting traditionnel onBar

Le mécanisme de backtesting onbar est basé sur la ligne K, c’est-à-dire que chaque ligne K génère un point de temps de backtesting, auquel les prix d’ouverture élevés et les prix de clôture bas, le volume des transactions et d’autres informations de la ligne K actuelle peuvent être obtenus, comme ainsi que les informations antérieures à ce point dans le temps. Informations historiques sur la ligne K. L’inconvénient de ce mécanisme est évident : un seul achat et une seule vente peuvent être générés sur une ligne K, et le prix est généralement basé sur le cours de clôture de la ligne K. De plus, une ligne K ne peut obtenir que quatre prix : ouverture haute et clôture basse. Quant à la façon dont le prix évolue au sein de la ligne K, que le prix le plus élevé se produise en premier ou que le prix le plus bas se produise en premier, etc., il n’y a aucun moyen pour obtenir de telles informations. En prenant comme exemple la ligne K d’une heure, dans le trading réel, les informations sur le marché seront obtenues toutes les quelques secondes et les instructions de trading seront émises pendant la séance de trading au lieu d’attendre la fin de la ligne K. L’avantage du mécanisme de backtesting onbar est qu’il est facile à comprendre et que la vitesse de backtesting est extrêmement rapide.

Plateforme quantitative d’inventeurs FMZ Mécanisme de backtesting onTick

Instructions de backtesting de la plateforme quantitative FMZ Inventor

L’image ci-dessus est l’interface des paramètres de backtesting FMZ. Les modes de backtesting sont divisés en deux types : le backtesting au niveau de la simulation et le backtesting en temps réel, qui sont présentés ci-dessous :

Qu’est-ce qu’une tique ?

Contrairement aux données K-line, le tick est le prix à un moment précis. Sur la base des données de la ligne K, nous ne connaissons en réalité que le moment où le prix d’ouverture et le prix de clôture se sont produits. On ne sait pas exactement quand le prix a atteint son plus haut niveau au cours du cycle de la ligne K. En fait, les données K-line sont également générées sur la base des ticks. Sur la base des données de la ligne K, nous pouvons également simuler les changements d’un tick spécifique d’une période de ligne K. Bien qu’il ne s’agisse pas d’un véritable tick, cela peut rendre notre backtesting plus précis. De plus, la période de la ligne K utilisée pour la simulation peut être beaucoup plus petite que la période utilisée pour le backtesting, de sorte que la précision est plus élevée.

Backtesting au niveau de la simulation

Pour les backtests au niveau de la simulation, vous devez sélectionner la période K-line et la période K-line sous-jacente utilisée pour les backtests. Par exemple, si la stratégie utilise un backtesting horaire et que la ligne K sous-jacente est de 5 minutes, alors l’intervalle entre les points de temps de backtesting sera basé sur les ticks générés par la simulation de la ligne K de 5 minutes, ce qui se reflète spécifiquement dans le continu variations du cours de clôture de la dernière ligne K d’une heure. Le mécanisme de génération de ticks au sein d’une K-line basée sur la K-line est similaire à celui de MT4. Cet article contient une description détaillée : https://www.fmz.com/bbs-topic/662

Instructions de backtesting de la plateforme quantitative FMZ Inventor
Nous utilisons une stratégie simple pour démontrer ce mécanisme. Le code de la stratégie est le suivant :

function main() {
  while(true){
      var records = exchange.GetRecords() //GetRecords可以填参数,获取不同周期K线。
      var ticker = exchange.GetTicker()
      Log('K线收盘价: ', records[records.length-1].Close, 'ticker买一卖一价: ', ticker.Buy, ticker.Sell)
      //js回测不用Sleep,会自动跳到下一个tick。Python需要一个小的休眠时间
  }
}

Résultats des backtests : Instructions de backtesting de la plateforme quantitative FMZ Inventor Pour chaque ligne K, seuls les ticks d’ouverture et de fermeture sont fixés, et 12 ticks simulés sont ajoutés entre les deux, de sorte qu’une ligne K formera 14 points de temps de backtesting. Si le backtest porte sur une journée, le cycle K-line sous-jacent est de 5 minutes, avec un total de 24 × 12 × 14 = 4032 points de temps, tandis que le backtest onBar traditionnel n’en a que 24, ce qui améliore considérablement la précision. Les positions d’ouverture et de fermeture peuvent également être réalisées au sein d’un cycle de ligne K. Bien que les tiques générées au milieu soient simulées, l’impact n’est pas significatif. Dans le backtest, tant que le prix de l’offre est supérieur au prix de la demande et que le prix de la demande est inférieur au prix de l’offre, une transaction sera mise en correspondance. Cette méthode de backtesting prend en compte à la fois la vitesse et la précision du backtesting et est recommandée à tous.

Backtesting en temps réel

Le backtesting en temps réel utilise des ticks réels, l’intervalle le plus court entre chaque point temporel étant de seulement 1 seconde. Cette précision du backtesting est précise à chaque seconde, mais en raison de la grande quantité de données, la vitesse du backtesting est lente et le temps de backtesting ne peut pas être calculé. garanti. Très long. L’image ci-dessous montre la tique réelle. Le backtesting en temps réel peut être utilisé pour valider avec précision les stratégies. Instructions de backtesting de la plateforme quantitative FMZ Inventor

L’écart entre le backtesting et le trading réel

Même les tests rétrospectifs en temps réel et les échanges réels présentent encore des lacunes évidentes en matière de données, telles que l’incapacité d’obtenir l’historique des transactions, l’incapacité d’obtenir les changements de profondeur réels, les retards réels du réseau, etc. Néanmoins, le système de backtesting actuel de FMZ est relativement complet et dispose de nombreuses petites fonctions, telles que la simulation d’erreurs de réseau, qui peuvent être utilisées pour tester la tolérance aux pannes des stratégies, la simulation de retards de réseau, le dessin d’icônes de marché, etc.

Questions fréquemment posées

Pourquoi seules quelques paires de trading et bourses sont-elles prises en charge pour le backtesting ?

Actuellement, il n’existe que quelques paires de données de trading courantes. En fait, la relation entre la stratégie et le produit n’est pas très grande, mais elle est suffisante pour vérifier la stratégie.

Peut-il simuler le taux de financement facturé par BitMEX ?

Oui, vous pouvez activer la journalisation des événements en sélectionnant BitMEX Backtest. Instructions de backtesting de la plateforme quantitative FMZ Inventor

Où est effectué le backtesting ?

Le backtesting des stratégies JavaScript est effectué dans le navigateur et Python peut choisir les serveurs de FMZ ou son propre hébergeur.

Les journaux de backtest peuvent-ils être téléchargés ?

Oui, il y a un bouton de téléchargement dans le coin supérieur droit du journal

Puis-je effectuer un backtest local ?

FMZ a ouvert le code source de son moteur de backtesting Python. Référence : https://www.fmz.com/bbs-topic/1687