Les ressources ont été chargées... Je charge...

2.3 Explications communes des API

Auteur:La bonté, Créé: 2019-04-16 15:39:35, Mis à jour: 2019-04-17 10:55:33

Résumé

Quand il s'agit de programmation, elle doit être inséparable de l'API. Pour beaucoup de non-programmeurs, quelle est l'API? Dans cette section, nous utiliserons le langage le plus simple pour expliquer ce qu'est l'API, et introduire les API couramment utilisées dans les outils FMZ Quant.

C'est quoi une API?

Si vous le recherchez sur Google, vous obtiendrez les résultats suivants: API (Application Programming Interface) est une fonction prédéfinie pour fournir aux applications et aux développeurs la possibilité d'accéder à un ensemble de routines basées sur un logiciel ou un matériel.

En fait, dans la vie quotidienne, nous avons beaucoup de scénarios d'API similaires, tels que: vous allez dans un restaurant pour manger, il suffit de regarder le menu pour commander, vous n'avez pas besoin de savoir comment le faire.

Quelle est l'API dans le commerce quantitatif?

Par exemple, si vous avez besoin d'obtenir le prix d'ouverture de la variété actuelle aujourd'hui, vous n'avez pas besoin de savoir exactement comment l'obtenir.

API commune pour le langage M

Avant de parler de l'API du langage M, examinons d'abord la structure du code commun et ses caractéristiques. Cela vous aidera à mieux comprendre l'API.

AA:=OPEN; //Get the opening price of the latest k line and assign the result to the variable AA
BB:=MA(ClOSE,10); //Get the 10-cycle moving average of the latest K line and assign the result to the variable BB

Le code indiqué ci-dessus:

  • AA est une variable, et la variable est un élément qui peut être modifié, tout comme l'algèbre de notre collège. si le prix d'ouverture est attribué à AA, alors AA est le prix d'ouverture; si le prix le plus élevé est attribué à AA, alors AA est le prix le plus élevé. AA est juste un nom personnalisé, vous pouvez également le définir comme BB ou autre chose.

  • := est la signification de l'affectation, c'est-à-dire que la valeur du côté droit de := est donnée à la variable de gauche.

  • OPEN et MA sont des API du langage M. Notez que l'OPEN dans la première ligne est l'API pour obtenir le prix de clôture. Il peut être utilisé directement. L'MA dans la deuxième ligne est l'API pour obtenir la moyenne mobile. Il doit être passé par 2 paramètres, ce qui signifie que vous devez dire à l'outil de trading FMZ Quant, quel type de moyenne mobile vous avez besoin: Si vous voulez obtenir la moyenne mobile à 50 périodes calculée au prix d'ouverture, vous pouvez écrire: MA (OPEN, 50); assurez-vous qu'il y a une virgule entre les paramètres.

  • Le jaune // est un caractère de commentaire, et l'anglais derrière est le contenu du commentaire. Ceux-ci sont tous vus par les programmeurs pour indiquer ce que signifie la ligne de code. Le commentaire ne sera pas traité du tout pendant que le programme commence à s'exécuter. Notez qu'avant le caractère de commentaire, chaque ligne de code doit avoir un point-virgule comme fin de ligne.

Avec la connaissance de la structure de code de base, nous allons vous apporter une grammaire commune des langages M ci-dessous, et nous les utiliserons à l'avenir.

  • OPEN - Obtenez le prix d'ouverture de la dernière ligne K

Exemple: AA:=OPEN; Obtenez le prix d'ouverture de la dernière ligne K et attribuez le résultat à AA

  • HIGH - obtenir le prix le plus élevé de la dernière ligne K

Exemple: AA:=HIGH; Obtenez le prix le plus élevé de la dernière ligne K et assignez le résultat à AA

  • LOW - obtenir le prix le plus bas de la dernière ligne K

Exemple: AA:=LOW; Obtenez le prix le plus bas de la dernière ligne K et assignez le résultat à AA

  • CLOSE - Obtenez le prix de clôture de la dernière ligne K. Lorsque la ligne K n'est pas terminée, obtenez le dernier prix.

Exemple: AA:=CLOSE; obtenir le prix de clôture de la dernière ligne K et attribuer le résultat à AA

  • VOL - Obtenez le volume de la dernière ligne K

Exemple: AA:=VOL; Obtenez le volume de la dernière ligne K et assignez le résultat à AA

  • REF ((X,N) - se réfère à la valeur de X avant N cycles.

Exemple: REF(CLOSE,1); Obtenez le prix d'ouverture de la ligne K précédente

  • MA ((X,N) - trouver la moyenne mobile simple de X en N cycles

Exemple: MA ((CLOSE, 10); // Obtenez la moyenne mobile de 10 cycles de la dernière ligne K

  • CROSSUP ((A,B) Représente que lorsque A passe devant B depuis le bas, il renvoie 1 (Oui), sinon il renvoie 0 (Non)

Exemple: CROSSUP (CLOSE, MA (C, 10)) // prix de clôture à la hausse sur la moyenne mobile du cycle 10

  • CROSSDOWN ((A,B) Représente que lorsque A passe devant B depuis le haut, il renvoie 1 (Oui), sinon il renvoie 0 (Non)

Exemple: CROSSDOWN(CLOSE, MA(C,10)) // prix de clôture à la baisse-croix du prix moyen mobile du cycle 10

  • BK - achat de position longue ouverte

Exemple: CLOSE>MA(CLOSE,5), BK; // Le prix de clôture est supérieur à la moyenne mobile de 5 cycles, position longue ouverte

  • SP - vendre pour fermer une position longue

Exemple: CLOSE

  • SK - vendre une position ouverte à découvert

Exemple: CLOSE

  • BP - acheter pour couvrir et fermer une position courte

Exemple: CLOSE>MA(CLOSE,5), BP; // Le prix de clôture est supérieur à la moyenne mobile de 5 cycles, position courte fermée

  • BPK - position courte fermée et position longue ouverte (position ouverte inversée)

Exemple: CLOSE>MA(CLOSE,5), BPK; // lorsque le prix de clôture est supérieur à la moyenne mobile sur 5 périodes, fermer la position courte et ouvrir la position longue.

  • SPK - position longue fermée et position courte ouverte (position ouverte inversée)

Exemple: CLOSE

  • CLOSEOUT - fermer toutes les positions, il est recommandé d'utiliser dans l'addition et la soustraction opération de position

Exemple: CLOSEOUT; fermer toutes les positions actuellement détenues.

API du langage JavaScript couramment utilisé

Avant d'expliquer l'API du langage JavaScript, jetons un coup d'œil à ce qu'est la structure de code commune et à ses caractéristiques. Cela vous aidera à mieux comprendre l'API.

var aa = exchange.GetRecords(); // get the K-line data
var bb = exchange.SetContractType("This_week") // set the trading pair to weekly K-line

Le code indiqué ci-dessus:

  • La création de variables dans le langage JavaScript est souvent appelée une variable declaration. nous utilisons le mot clé var pour déclarer la variable, le nom de la variable est : aa.

  • Dans le langage JavaScript, attribuer un signe d'égalité, c'est-à-dire donner la valeur du côté droit de = à la variable de gauche.

  • Le code exchange est l'objet d'échange. L'échange ici se réfère à l'échange que vous configurez sur la page de la plateforme. C'est un format fixe, c'est-à-dire que vous devez spécifier l'objet d'échange lorsque vous appelez l'API du langage JavaScript.

  • Le code vert est l'API du langage JavaScript. Lorsque nous l'appelons, il appelle en fait la fonction dans l'objet d'échange. Notez que le point derrière le code est également un format fixe. La fonction ici a le même sens que la fonction que nous avons apprise au collège. Si la fonction n'a pas besoin de spécifier un paramètre, elle est représentée par une parenthèse vide; si la fonction doit passer dans un paramètre, le paramètre est écrit entre parenthèses.

Après avoir utilisé le cas pour comprendre la structure de base du code, jetons un oeil à quelques API de langage JavaScript que vous utiliserez à l'avenir.

  • SetContractType (code de variété ) - définir la paire de négociation, qui est la variété de négociation que vous souhaitez négocier

Exemple: exchange.SetContractType ((this_week); //Réglez la paire de négociation sur la ligne K hebdomadaire

  • GetTicker - Obtenez les données de Tick

Exemple: exchange.GetTicker ((); // Obtenez les données de Tick

  • GetRecords - obtenir les données de ligne K

Exemple: exchange.GetRecords ((); // Obtenez les données de ligne K

  • Acheter - acheter à long

Exemple: échange.Acheter ((5000, 1); // Acheter une unité à 5000

  • Vente à découvert

Exemple: échange.Vendre (5000, 1); // Vendre une unité à 5000

  • Obtenez des informations sur le compte

Exemple: exchange.GetAccount ((); // Obtenez les informations du compte

  • Obtenez des informations de position

Exemple: exchange.GetPosition ((); // Obtenez des informations sur la position

  • SetDirection - réglé pour exécuter le type d'ordre long ou court

Exemple:

change.SetDirection ((buy); //Définir le type d'ordre pour ouvrir des positions longues

change.SetDirection ((closebuy); //Définir le type d'ordre à vendre pour fermer les positions longues

change.SetDirection ((sell); //Définir le type d'ordre pour ouvrir des positions courtes

exchange.SetDirection ((closesell); //Définir le type d'ordre à acheter pour couvrir la position courte

  • Journaux - sortie d'un message dans le journal

Exemple: Log (( hello, World ); //sortie " hello world " dans le journal

  • Sommeil - mettre en pause le programme pendant un certain temps

Exemple: sommeil (1000); / / faire une pause du programme pendant 1 seconde (1000 millisecondes équivaut à 1 seconde)

Certaines personnes peuvent avoir des doutes, tant d'API ci-dessus, comment puis-je tout mémoriser? en fait, vous n'avez pas besoin de vous souvenir d'aucune d'entre elles, le site officiel FMZ Quant a une documentation API détaillée. Tout comme regarder un dictionnaire, chaque fois que vous l'utilisez, vous n'avez qu'à le vérifier à travers notre documentation. Ne soyez pas effrayé par la partie de codage. Ce que nous voulons, c'est organiser nos propres stratégies à travers ces langues. S'il vous plaît rappelez-vous que la technologie n'est jamais un seuil pour le trading quantitatif. L'excellente stratégie de trading est la plus importante de toutes.

Pour résumer

Ce qui précède est l'API la plus couramment utilisée dans le trading quantitatif, comprenant essentiellement: l'obtention de données, le calcul de données, la passation d'ordres. Ces étapes devraient suffire pour traiter une stratégie de trading quantitative simple.

Exercices après l'école

1, essayez d'écrire une phrase de ligne moyenne de cycle 5 en langage M.

2, essayez d'utiliser le langage JavaScript GetAccount pour obtenir les informations de votre compte, et utilisez Log pour les imprimer dans le journal.

Communiqué de la section suivante

La programmation est comme assembler des briques LEGO. L'API est comme les différentes parties d'un bloc de construction. Le processus de programmation consiste à faire de chaque partie Lego un jouet complet. Dans la section suivante, je vous conduirai à assembler une stratégie de trading quantitative complète en utilisant l'API du langage M.


Plus de