[TOC]

Quelle est la plus grande difficulté pour les débutants en trading quantitatif et en trading programmatique ? D’une manière générale, il y en a plusieurs.
Avec le développement de la technologie de l’IA, des solutions aux problèmes ci-dessus peuvent être trouvées dans une certaine mesure. Récemment populaireChat GPTIl peut être utilisé comme un outil d’apprentissage, de recherche et de création de trading quantitatif. Avec la nouvelle mise à niveau de l’éditeur de stratégie sur la plateforme FMZ, Chat GPT a également été connecté, ce qui a considérablement amélioré la productivité quantitative. Explorons-le ensemble.Nouvelles fonctionnalités de FMZ Strategy Editor!
Bien que les fonctions de Chat GPT soient déjà très puissantes et que son niveau de compréhension des questions posées par les humains soit déjà très élevé. Mais la réponse qu’il donne est toujoursExhaustivité de la description du problème、Exactitude de la descriptionLes facteurs tels que les entrées et les sorties de l’utilisateur sont très sensibles. Si le scénario décrit ou le contenu de la question est inexact, Chat GPT ne peut toujours pas donner une réponse parfaite. Par conséquent, lorsque vous l’utilisez pour résoudre certains problèmes, vous devez essayer de l’exprimer correctement et complètement.
Ensuite, nous utiliserons la fonction Chat GPT de l’éditeur de stratégie de la plateforme FMZ pour résoudre un problème de conception de code. Connectez-vous à la plateforme FMZ et accédez à une page d’édition de stratégie.

Utilisez le menu contextuel dans un espace vide, sélectionnez l’option ChatGPT et cliquez pour appelerChat GPT,ouUtilisez ⌘K pour appeler ChatGPT。
Si je suis un débutant en trading quantitatif maintenant, j’ai une exigence : « Utiliser la ligne K d’une minute pour synthétiser les données de la ligne K de n’importe quelle période ». En tant que débutant, mes compétences en programmation sont faibles et je ne peux vraiment pas écrire un tel algorithme. Dans le passé, je ne pouvais que rechercher des informations et demander l’aide d’experts. Maintenant, avec Chat GPT, je peux lui demander directement la réponse. Bien sûr, comme mentionné ci-dessus, décrivez directement cette exigence :« Utilisez la ligne K d’une minute pour synthétiser les données de la ligne K de n’importe quelle période ». Il est fort probable que GPT ne vous donnera pas une réponse utilisable à 100 %, et vous devrez décrire le problème aussi complètement que possible. En prenant cette exigence comme exemple, j’ai continué à ajuster mes questions et à les poser plusieurs fois avant d’obtenir la réponse utilisable que je souhaitais. Alors décrivons cette exigence un peu plus complètement :
在FMZ平台上调用exchange.GetRecords(60)函数可以获取一分钟K线数据,数据结构是:
[{
Time : 毫秒时间戳, // 周期的起始时间
Open : 1000,
High : 1500,
Low : 900,
Close : 1200,
Volume : 1000000
}, ...]
请设计一个算法,使用一分钟K线数据合成任意分钟的K线数据,对于可以整除60分钟的周期,需要从整点的0分开始统计,使用Javascript语言实现,
这个算法单独写成一个函数,测试在function main()函数中测试,使用$.PlotRecords(KLineData, "name")画图。
Après avoir appelé ChatGPT, vous pouvez remplir le contenu de la question optimisée ci-dessus.

ChatGPT commence à fonctionner.

Attends que ce soit fini.

parfoisChat GPTEnvelopper le code”Symbole qui indique dans Markdown que le contenu inclus est du code. Nous supprimons donc simplement la première et la dernière lignes. Parce que la question que je lui ai posée, c'est d'utiliser$.PlotRecords(KLineData, “name”)`Dessin, la stratégie doit donc référencer la bibliothèque de dessin de lignes pour dessiner. Le dessin consiste à vérifier si les données de la ligne K synthétisées par le code donné par Chat GPT sont correctes.
Quant à la nature de la bibliothèque de modèles, je n’entrerai pas dans les détails ici. Vous pouvez consulter la documentation API de FMZ.Adresse de la bibliothèque de dessins au trait
Chat GPTLe code donné peut être directement testé en arrière. J’ai défini la période K-line par défaut du système de backtesting à 5 minutes pour comparer le graphique K-line dessiné par les données K-line calculées par l’algorithme fourni par Chat GPT.


À première vue, l’algorithme donné par ChatGPT pour utiliser la ligne K de 1 minute pour synthétiser la ligne K de 5 minutes est correct.
/*
合成任意分钟的K线数据
@param {Array} records - 一分钟K线数据
@param {Number} period - 合成的周期,单位为分钟
@return {Array} - 合成后的K线数据
*/
function composeKLineData(records, period) {
var result = [];
var index = 0;
var open = records[0].Open;
var high = records[0].High;
var low = records[0].Low;
var close = records[0].Close;
var volume = records[0].Volume;
var time = records[0].Time - records[0].Time % (period * 60 * 1000);
for (var i = 1; i < records.length; i++) {
var record = records[i];
if (record.Time < time + period * 60 * 1000) {
high = Math.max(high, record.High);
low = Math.min(low, record.Low);
close = record.Close;
volume += record.Volume;
} else {
result[index] = {
Time: time,
Open: open,
High: high,
Low: low,
Close: close,
Volume: volume
};
index++;
open = record.Open;
high = record.High;
low = record.Low;
close = record.Close;
volume = record.Volume;
time = record.Time - record.Time % (period * 60 * 1000);
}
}
result[index] = {
Time: time,
Open: open,
High: high,
Low: low,
Close: close,
Volume: volume
};
return result;
}
function main() {
var records = exchange.GetRecords(60);
var kLineData = composeKLineData(records, 5); // 合成5分钟K线数据
$.PlotRecords(kLineData, "KLineData");
}
ChatGPT intégré sur FMZ vous aidera non seulement à écrire du code, mais également à expliquer le code. Sélectionnez le code que ChatGPT vient d’écrire.composeKLineDataFonction, clic droit pour faire apparaître le menu :


ChatGPT peut même donner des suggestions d’optimisation et du code optimisé.

Cette mise à jour de l’éditeur FMZ ajoute la fonctionnalité ChatGPT. Il optimise et améliore davantage l’expérience utilisateur de l’écriture de programmes en ligne et ajoute de nombreuses fonctions pratiques.
Faites un clic droit dans un espace vide ou lorsque le code est sélectionné pour faire apparaître un menu.

Affiche les combinaisons de touches de raccourci pour diverses fonctions.

Renommer le symbole, modifier le nom de la variable locale.


Seule l’image ci-dessus sera modifiéemainNoms de variables dans les fonctionsrecords。
Modifiez toutes les occurrences, sélectionnez un nom de variable ou un mot et modifiez tout le même contenu dans le texte en même temps.


Sélection de format, formate le code sélectionné.
Formater le document, formater tous les codes.

Aller à la définition, sauter à la définition. Allez dans Références, passez aux références. Accédez au symbole…, accédez au nom de la variable, au nom de la fonction, etc.

Définition de Peek, aperçu de la définition. Afficher la définition du code sélectionné sans quitter la ligne de code actuelle. Peek References, aperçu des références, affichez les références à la ligne de code actuelle dans d’autres lignes de code sans quitter la ligne de code actuelle et accédez rapidement à une meilleure compréhension de la logique et de la structure du code.
