La programmation visuelle a toujours été un objectif ambitieux des développeurs de logiciels, même dans le domaine du trading quantitatif. Parce que la méthode de "ce que vous voyez est ce que vous obtenez" dans la visualisation réduit considérablement le seuil technique du développement de programmation. Les utilisateurs n'ont plus à gérer une pile de codes ennuyeux, ils utilisent simplement leur imagination et leur pensée logique pour se concentrer sur l'entreprise elle-même. Vous pouvez réaliser n'importe quel programme.
Entrons ensemble dans le domaine de la programmation visuelle de la stratégie commerciale quantitative!
Après vous être connecté àhttps://www.fmz.com, inscrivez votre compte (si vous êtes déjà inscrit, connectez-vous directement) et cliquez sur: Tableau de bord -> Stratégie -> Ajouter une stratégie.
Nous pouvons voir une stratégie de visualisation initiale. Il est uniquement utilisé pour produire les informations relatives aux actifs du compte de l'échange configuré par défaut (le premier objet d'échange ajouté au backtest ou au robot). (Voir le tableau ci-dessous)
Vous pouvez faire glisser le module
Le module de calcul de la racine carrée comme ceci produit les résultats de calcul de ce module.
Comme vous pouvez le voir, si la position du paramètre d'entrée est par défaut, la valeur par défaut 9 sera utilisée comme paramètre d'entrée pour calculer la racine carrée de 9.
Bien sûr, si vous voulez utiliser un module variable comme paramètre d'entrée, vous pouvez épiler le module variable dans la position tenon (concave) directement.
Vous pouvez voir qu'il y a beaucoup de modules de classification sur le côté gauche de la zone d'édition visuelle, et il y a beaucoup de modules visuels disponibles dans chaque projet de classification.
Il y a 11 catégories.
Module d'utilisation:
Vous pouvez entrer une chaîne dans le module texte, de sorte que lorsque vous exécutez le module d'information de sortie, le contenu de la chaîne dans le module texte sera imprimé.
Test de retour:
Comme le code du langage JavaScript:
function main(){
Log("Hello, Blockly!")
}
Comme le code du langage JavaScript:
function main () {
Log("WeChat Push!@")
}
De même, dans la stratégie JavaScript, la fonction principale exécute directement la fonction throw
function main () {
throw "The first sentence throws an exception to stop the program!"
}
Résultats des tests antérieurs:
Généralement, il est plus utilisé lors du débogage. Par exemple, si vous voulez que le programme s'arrête dans certaines conditions et imprime des données à ce moment-là pour l'observation. Ou vous pouvez placer un module d'exception dans le flux de code où des problèmes peuvent survenir, laisser le programme signaler des erreurs, et trouver quelques erreurs.
Comme dans la stratégie JavaScript:
function main () {
Sleep(1000 * 5)
}
Testez le module de sommeil:
Résultats des tests antérieurs:
Ce module, tout comme la fonction API LogProfit sur FMZ Quant Trading Platform, qui imprime le journal des retours et dessine la courbe de retour en fonction des paramètres d'entrée automatiquement.
Par exemple:L'exécution du backtesting est illustrée sur la figure ci-dessous:
Le code de stratégie JavaScript correspondant est le suivant:
function main () {
LogProfit(1)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(3)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(5)
}
Il peut être épissé à n'importe quelle position où vous voulez produire des informations de retour.
Le test:Résultats des tests antérieurs:
Nous pouvons voir que la combinaison de module composée de
Exécution de la boucle toutes les N secondesL'utilisation de ce module est fondamentalement la même que celle du module de boucle. La seule différence est que le module a son propre sommeil.
Traitement de précisionCe module peut être utilisé lorsque le module variable ou la valeur numérique doit contrôler la précision.
Par exemple, le traitement de précision est effectué sur la valeur 3.1415926535897.
Affichage des tests arrière:
Il est utilisé pour effacer les journaux. Certains journaux peuvent être conservés selon les paramètres d'entrée. Comme dans le document de l'API:
LogReset()
Certains journaux peuvent être conservés en fonction des paramètres d'entrée. Comme dans le document de l'API:
LogProfitReset()
Comme le code de stratégie JavaScript:
function main () {
Log(exchange.GetTicker().Last)
}
Tout d'abord, nous créons un module variable appelé K-line.Ensuite, nous obtenons les données de la ligne K, utilisons le module de données de la ligne K pour l'obtenir, et attribuons la valeur au module de la variable:
L'horodatage de la dernière ligne K est imprimé lorsque le backtest est exécuté.
Comme le code de stratégie JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0])
}
Comme le code de stratégie JavaScript:
function main () {
Log(exchange.GetAccount().Stocks)
}
Résultats des tests antérieurs:
Comme le code de stratégie JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
Il peut également être utilisé pour obtenir un attribut dans les informations de commande renvoyées par le module
Après avoir appris tant, combinons une opération de couverture, c'est-à-dire la couverture à la fois des contrats à court terme et à terme.
Nous faisons une couverture d'arbitrage positif, c'est-à-dire ouvrir un contrat de position courte pour le contrat à terme, et ouvrir un contrat de position longue pour le contrat récent.
Résultats des tests antérieurs:
Exemples de stratégies de visualisation:
https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318Pour plus de stratégies, veuillez consulter:https://www.fmz.com/square
Autres articles de cette série
- Module de visualisation pour la construction de stratégies commerciales - En profondeur (https://www.fmz.com/digest-topic/9509) - Module de visualisation pour la construction d'une stratégie commerciale - Compréhension avancée (https://www.fmz.com/bbs-topic/9815)
La programmation ennuyeuse peut être facilement complétée par des blocs de construction.