La programmation visualisée a toujours été un objectif désiré par les développeurs d'outils logiciels, même dans le domaine des transactions quantitatives. La méthode de visualisation de ce que l'on voit comme une erreur réduit considérablement le seuil technique de développement de programmation. Les utilisateurs n'ont plus à faire face à une tonne de code ennuyeux, ils se concentrent uniquement sur l'activité elle-même en utilisant leur imagination et leur pensée logique. C'est incroyable de pouvoir réaliser ce que l'on veut!
Alors, allons dans le domaine de la programmation visuelle pour quantifier les stratégies de transaction!
Pour vous connecterhttps://www.fmz.comEnsuite, cliquez sur le bouton de connexion (si vous êtes déjà connecté, cliquez directement sur le bouton de connexion): Centre de contrôle - > Bibliothèque de stratégies - > Créer une nouvelle stratégie.
Nous pouvons voir une première stratégie de visualisation. Il ne sert qu'à exprimer les informations sur les actifs des comptes d'un échange configuré par défaut (re-test ou robot, le premier objet d'échange ajouté). (Voir ci-dessous)
L'observation attentive montre que les modules sont tous coniques et coniques, c'est-à-dire qu'ils peuvent être "connectés" et "connectés". Si le code fonctionnel représenté par les deux modules peut être connecté, alors vous absorbez les deux modules lorsque vous les rapprochez les uns des autres.
Certains modules ont des emplacements spéciaux, tels que:
Vous pouvez faire glisser le module "objet" à gauche vers le module "joindre" pour ajouter une position de "joindre" et ainsi ajouter une position de texte de joindre. Cela permet de passer, de cliquer sur une petite vitesse et d'effectuer des ajustements et des réglages sur le module.
Certains modules ont besoin d'entrer des paramètres, comme des nombres, des chaînes, etc. Si vous n'ajoutez pas de variables comme paramètres d'entrée du module, le module s'exécute selon les paramètres d'entrée par défaut.
Un module de calcul comme celui-ci, pour obtenir la racine carrée, produit le résultat de ce module.Vous pouvez voir que si cette position est désactivée, la racine carrée de 9 est calculée en utilisant la valeur par défaut de 9 comme paramètre d'entrée.
Bien sûr, si vous souhaitez utiliser un module de variable comme paramètre d'entrée, vous pouvez directement coller le module de variable à la position
Les modules peuvent être glissés à gauche avec la souris. Les modules peuvent être copiés avec les touches Ctrl + C et collés avec les touches Ctrl + V, ce qui est aussi facile que de copier et coller du code ou du texte. L'espace d'opération peut être redimensionné à l'aide d'une manette de souris, et tous les modules peuvent être redimensionnés ou redimensionnés. Les zones d'opération peuvent être déplacées en faisant glisser des espaces. À droite, la corbeille pour enregistrer les modules récemment supprimés. Le plus important, c'est de bien mettre en place la stratégie du module, et n'oubliez pas le point "enregistrer".
Vous pouvez voir qu'il y a beaucoup de modules de classement sur la gauche de la zone d'édition de visualisation, et il y a beaucoup de modules de visualisation disponibles pour chaque type de projet de classement.
Il y a 11 catégories au total.
Le module est généralement utilisé en combinaison avec les modules de la classe texte, comme illustré ci-dessous:Il est possible d'entrer des chaînes dans un module de classe texte, de sorte que le contenu des chaînes dans le module texte soit imprimé lorsque le module "Export information" est exécuté.Les réactions:
Par exemple, le code de la langue JavaScript:
function main(){
Log("你好,可视化编程!")
}
Le module a la même apparence que "Export Information" et diffère en ce qu'il envoie des informations à WeChat liées au compte actuel tout en les exportant.
Par exemple, le code de la langue JavaScript:
function main () {
Log("微信推送!@")
}
L'élimination d'un module d'exception provoque une erreur dans le programme, qui cesse d'exécuter (sans écrire de code de traitement d'exception).
Une fonction similaire à la fonction main dans une stratégie JavaScript est exécutée directement dans la fonction throw.
function main () {
throw "第一句就抛出异常,让程序停止!"
}
Les résultats des tests:Il est généralement plus utilisé lors du débogage, par exemple pour demander à un programme de s'arrêter dans une certaine condition, et certains données imprimées à ce moment-là sont plus faciles à observer. Ou dans le processus de code qui pourrait avoir un problème, il est possible de placer des modules d'exception, de laisser le programme signaler des erreurs et de détecter des erreurs.
Module en sommeilComme dans la politique de JavaScript:
function main () {
Sleep(1000 * 5)
}
Les modules de test de sommeil:Les résultats des tests:
Le module, comme la fonction LogProfit, imprime des journaux de revenus et dessine automatiquement des courbes de revenus en fonction des paramètres entrés.
Par exemple:Les tests sont effectués comme suit: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 est possible de l'épeler à n'importe quel endroit où l'on veut produire des informations sur les bénéfices.
Un module cyclique peut être enveloppé d'une série de combinaisons de modules qui sont assemblées pour que cette combinaison de modules exécute le cycle.
Le test:Les résultats des tests:Vous pouvez voir que la combinaison de modules composée de modules enveloppés en circuit imprimé et en sommeil est continuellement exécutée.
Le module est essentiellement identique au module circulaire, la seule différence étant qu'il est autonome.
Le module de variables ou de valeurs peut être utilisé pour contrôler la précision, en entrant les valeurs de la partie des paramètres, qui, selon les paramètres, sont produites comme des nombres de particules spécifiées.
Par exemple, la valeur 3.1415926535897 est traitée avec précision.
Les résultats montrent:
Pour les journaux vides, une partie des journaux peut être conservée en fonction des paramètres d'entrée. Comme indiqué dans la documentation de l'API:
LogReset()
Pour vider les journaux de revenus, vous pouvez conserver une partie des journaux en fonction des paramètres d'entrée. Comme le montre la documentation de l'API:
LogProfitReset()
Ce module doit être utilisé en combinaison avec le module de marché dans "Types de modules de transaction", comme indiqué ci-dessous:
Utilisez le module d'information de sortie pour produire le dernier prix de transaction de la transaction avec le dernier ticker:
Les résultats montrent:
Par exemple, le code de stratégie JavaScript:
function main () {
Log(exchange.GetTicker().Last)
}
Le module doit également être utilisé avec le module de données de ligne K pour obtenir le type de module de transaction.
Pour commencer, nous créons un module de variables, appelé K-Line.Les données de la ligne K sont ensuite récupérées à l'aide du module de données de la ligne K et attribuées au module de variables: "K-Line".Utilisez ensuite le module de longueur de liste dans le type de module de la liste pour obtenir la longueur du module de variable de ligne K, afin de spécifier sur quelle barre des données de la ligne K doivent être obtenues.Les images sont en fait les mêmes:Le test est exécuté, puis l'impression est effectuée, le dernier bar de la ligne KBar a une cloche de temps.
Il doit également être utilisé avec le module d'accès à la profondeur de données dans le type de module de transaction.
L'index est mis à zéro, l'ordre de vente est mis à zéro, et l'information obtenue est celle de l'ordre de vente.
Par exemple, le code de stratégie JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0])
}
Ce module doit être utilisé avec le module d'accès à l'information sur les actifs.
Par exemple: le nombre de pièces disponibles pour l'impression du compte courant
Les résultats montrent:
Il y a des stratégies de JavaScript comme:
function main () {
Log(exchange.GetAccount().Stocks)
}
Ce module est utilisé pour obtenir la valeur d'une propriété dans les données d'ordre, par exemple le prix ou la quantité vendue dans un bloc d'ordres (exemple de la séquence 13).
Les résultats des tests:Il y a des stratégies de JavaScript comme:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
Une autre propriété peut être utilisée pour obtenir les informations de commande renvoyées par le module de consultation des détails de la commande (expliqué plus loin).
De même, pour une utilisation avec le module d'acquisition de titres à terme, il est important de noter que les titres retournés par le module d'acquisition de titres à terme sont une matrice (une liste) qui contient des structures de données contenant différents contrats et positions dans différentes directions.
Après avoir appris tant de choses, nous avons ensuite combiné une opération de couverture, c'est-à-dire couvrir à la fois les contrats à court et à long terme. Nous faisons une couverture positive, c'est-à-dire que nous ouvrons un contrat à long terme, un contrat, et un autre à court terme.
Les résultats des tests:
Une stratégie de visualisation de paradigmes:
Pour plus de détails, consultez:https://www.fmz.com/square
Autres articles dans cette série
15650463856Il n'y a pas de cc dans l'indicateur, et je ne peux pas créer avec cette visualisation si je dois utiliser cc ou non.
Le noirS'il vous plaît, dites-moi comment utiliser les modules d'indicateurs dans la visualisation.
L'inventeur de la quantification - un petit rêve https://www.fmz.com/digest-topic/6182
15650463856Pourquoi n'ai-je pas trouvé d'autres utilisations pour les modules personnalisés et les modules indicateurs?
L'inventeur de la quantification - un petit rêveLes articles de cette série expliquent comment réaliser des modules personnalisés.
Le noirBien, merci. Je l'ai trouvé.
L'inventeur de la quantification - un petit rêveL'article de cette série peut être lu et répété.