Cadre stratégique et fonctions de l'API
Dans les stratégies écrites enJavaScript
, Python
etcpp
, leSleep()
Dans le trading en direct, il est utilisé pour contrôler les intervalles de polling de stratégie, et aussi contrôler la fréquence de demande d'accès à l'interface API de l'échange.
function onTick(){
//Write strategy logic here, and it will be called constantly, such as printing ticker information
Log(exchange.GetTicker())
}
function main(){
while(true){
onTick()
// The function "Sleep" is mainly used to control the polling frequency of cryptocurrency strategies to prevent accessing the exchange API interafce too frequently
Sleep(60000)
}
}
def onTick():
Log(exchange.GetTicker())
def main():
while True:
onTick()
Sleep(60000)
void onTick() {
Log(exchange.GetTicker());
}
void main() {
while(true) {
onTick();
Sleep(60000);
}
}
Exemples de cadres de base de stratégies de crypto-monnaie:
function onTick(){
// It is just an example; for all the assets will be used to place orders fast during backtest or in live trading, do not implement the example in live trading
exchange.Buy(100, 1)
}
function main(){
while(true){
onTick()
// The pause period can be customized in millisecond (1 second = 1000 milliseconds)
Sleep(1000)
}
}
def onTick():
exchange.Buy(100, 1)
def main():
while True:
onTick()
Sleep(1000)
void onTick() {
exchange.Buy(100, 1);
}
void main() {
while(true) {
onTick();
Sleep(1000);
}
}
Prenons l'exemple le plus simple, si je veux placer un ordre d'achat avec un prix de 100 et une quantité de 1 sur l'échange chaque seconde, je peux l'écrire comme ceci:
Ce qui suit montre les fonctions d'API couramment utilisées dans le développement et la conception de stratégies.Manuel de l'API de la plateforme de négociation quantique FMZ.
Fonction globale
Nom de la fonction |
Une brève introduction |
La version |
Retourne le |
numéro de la version actuelle du système |
|
Je dors. |
fonction de sommeil, |
Paramètre est la valeur de millisecondes pour faire une pause |
|
C' est virtuel |
Déterminer le |
Environnement d'exécution, renvoie une valeur vraie pour indiquer un backtest
l'environnement
Je ne sais pas.Le courrierEnvoyez un courriel.
Je ne sais pas.Mail_Go est en coursAsynchrone
version de laMail
fonctionnement
Je ne sais pas.Régler le filtre d'erreurUne erreur de filtre
logs, le paramètre est une chaîne d'expressions régulières, les logs d'erreur
correspondant à cette expression régulière ne sera pas téléchargé dans le journal
Le système.
Je ne sais pas.GetPid- Prends le robot.
Le processus ID.
Je ne sais pas.Obtenez la dernière erreur- Prends le dernier.
Un message d'erreur
Je ne sais pas.Obtenez le commandementUne stratégie.
les commandes d'interaction, les paramètres de stratégie de contrôle d'interaction peuvent être
[contrôle d'interaction]
Je ne sais pas.Obtenez MetaVous obtenez la valeur de
Meta écrit lors de la génération du code d'enregistrement de la stratégie.
Je ne sais pas.Faites le choix♪ Utilisé pour la matière première
accès aux prises.
Je ne sais pas.HttpQuery est une requêteEnvoyez une demande Http.
Je ne sais pas.HttpQuery_Go est en cours de développementAsynchrone
version de laHttpQuery
fonctionnement
Je ne sais pas.CodifierEncodage de données.
fonctionnement
Je ne sais pas.UnixNanoUne nanoseconde.
Des horodatages.
Je ne sais pas.Unix♪ Passez au deuxième niveau ♪
Des horodatages.
Je ne sais pas.GetOSVous avez un système.
Une information.
Je ne sais pas.MD5Calculer le MD5
Je ne sais pas.DBExecUne base de données.
les fonctions qui peuvent être utilisées pour exécuter des instructions SQL et effectuer
Les opérations de base de données.
Je ne sais pas.UUIDGénérez un UUID.
Je ne sais pas.La boucle d'événementÉcoutez les événements
et retourner après n'importe quel websocket est lisible ou des tâches simultanées telles queexchange.Go
, HttpQuery_Go
, etc. sont complétés, cette fonction
est uniquement disponible pour les transactions en direct.
Je ne sais pas._GEn sauvegardant constamment des données,
Cette fonction implémente une fonction de dictionnaire global sauvegardable.
structure est une table KV, qui est stockée dans la base de données locale du docker
le fichier en permanence.
Je ne sais pas.- Je ne sais pas.Le gestionnaire d'horodatage, les conversions
Un objet d'heure ou de date en millisecondes dans une chaîne de temps.
Je ne sais pas._ NFormer un point flottant
le numéro, par exemple_N(3.1415, 2)
supprimera la valeur de 3,1415 après
deux décimales, et la fonction renvoie 3,14
Je ne sais pas._CEssayez à nouveau la fonction pour
Il convient de noter que, par exemple, la tolérance à l'erreur pour
Leexchange.GetTicker
la fonction est_C(exchange.GetTicker)
et non_C(exchange.GetTicker())
|
| _CroixUne fonction de jugement croisé._Cross()
La valeur de retour de la fonctions est un nombre positif indique
la période de la pénétration ascendante, un nombre négatif indique la
Le prix de l'échange est le prix de l'échange, et 0 est le prix actuel de l'échange.
C'est la même chose.
Je ne sais pas.JSONParseParser JSON, qui peut
correctement analyser les chaînes JSON contenant des valeurs plus grandes, sera analyser plus grande
les valeurs à un type de chaîne.JSONParse()
fonction n'est pas prise en charge
dans le système de backtesting.
Fonctions de journaux
Nom de la fonction |
Une brève introduction |
Le journal |
Les journaux de sortie, prise en charge de la définition de la couleur du texte du journal, prise en charge de la définition de push, prise en charge de l'impression d'images après le codage base64 |
LogProfit |
Les données de P&L de sortie, les valeurs de P&L imprimées et les courbes de rendement graphiques basées sur les valeurs de P&L |
LogProfitReset est débloqué. |
Vider leLogProfit les sorties des fonctions tous les journaux des résultats, graphiques des résultats |
LogStatus |
Informations de sortie dans la barre d'état, prise en charge de la conception de commandes de boutons dans la barre d'état, prise en charge de la sortie de formulaires |
Le logiciel est activé. |
Activer ou désactiver le journalisation des informations de commande |
Graphique |
Fonctions de graphique, basées sur la bibliothèque de graphiques Highcharts/Highstocks |
Le tableau KLine |
Fonction de dessin de style de langage Pine, qui est utilisée pour le dessin personnalisé à l'exécution de la stratégie en utilisant un style de dessin de langage de type Pine |
LogReset (réinitialisation du journal) |
Suppression des journaux, prise en charge de la conservation d'un certain nombre de journaux récents via les paramètres |
LogVacuum |
Récupérer les ressources SQLite pour récupérer l'espace de stockage occupé par SQLite lors de la suppression des données après avoir effacé le journal en appelant leLogReset() fonction |
console.log |
Informations de débogage de sortie dans la colonne Information de débogage de la page de négociation en direct |
console.error |
Les informations d'erreur sont affichées dans la colonne Information de débogage de la page de négociation en direct |
Fonctions du ticker
Fonctions de transaction
Nom de la fonction |
Une brève introduction |
exchange.Buy |
Soumettre un ordre d'achat, les contrats à terme doivent faire attention à la direction de la transaction est réglée correctement, si la direction de la transaction et la fonction de la transaction ne correspondent pas, l'erreur sera signalée! |
exchange.Sell |
Soumettre des ordres de vente, les contrats à terme lors de la passation des ordres doivent prêter attention à la direction de la transaction est réglée correctement, si la direction de la transaction et la fonction de la transaction ne correspondent pas, il signalera une erreur |
exchange.CreateOrder |
Envoyer une commande et spécifier le type de transaction, la direction de la transaction, le prix et la quantité par le biais de paramètres |
exchange.CancelOrder |
Annuler la commande |
exchange.GetOrder |
Obtenez des informations de commande, la structure des données estLes ordresla structure |
exchange.GetOrders |
Obtenez des commandes non remplies avec la structure des donnéesLes ordrestableau de structure (liste) |
exchange.GetHistoryOrders |
Obtenir les ordres historiques de la paire et du contrat de négociation en cours; aider à spécifier des produits de négociation spécifiques |
exchange.SetPrecision |
Réglez la précision du prix et de la quantité de commande de l'objet d'échange, après la réglage, le système ignorera automatiquement la redondance des données. |
exchange.SetRate |
Définir le taux de change |
exchange.IO |
Pour les autres appels d'interface liés aux objets d'échange |
exchange.Log |
Sortie, enregistrement des journaux de transaction et ne pas passer de commande |
exchange.Encode |
calcul du chiffrement de la signature |
exchange.Go |
Fonctions de support asynchrone à plusieurs fils |
exchange.GetAccount |
Obtenez les informations du compte |
exchange.GetAssets |
Demande d'informations sur les actifs du compte de change |
exchange.GetName |
Obtenir le nom de l'objet d'échange |
exchange.GetLabel |
Obtenir l'étiquette de l'objet d'échange |
exchange.GetCurrency |
Obtenez la paire de trading actuelle |
exchange.SetCurrency |
Échange de paires de négociation |
exchange.GetQuoteCurrency |
Obtenir le nom de la devise de la paire de négociation en cours |
Fonctions futures
Nom de la fonction |
Une brève introduction |
[exchange.GetPositions ((/syntaxe-guide#fun_exchange.getpositions) ] Je suis désolé pour ce que vous avez dit. |
Obtenez des positions futures avec la structure des donnéesPosition de l'appareiltableau de structure (liste) |
exchange.SetMarginLevel |
Mettez le levier |
exchange.SetDirection |
Fonction utilisée pour régler leexchange.Buyfonction,exchange.Sellfonction d'exécution de la direction de l'ordre d'ordre du contrat à terme |
exchange.SetContractType |
Définir le code du contrat, par exemple:exchange.SetContractType("swap") fonction définit le code du contrat àswap , qui définit le contrat pour l' opération en cours comme un contrat perpétuel |
exchange.GetContractType |
Obtenez le code de contrat actuel |
exchange.GetFundings |
Obtenez les données actuelles sur les taux de financement des contrats perpétuels des marchés à terme |
Fonctions du réseau
JavaScript multi-threading
La plate-forme de négociation quantitative FMZ prend réellement en charge la fonction multi-threaded duJavaScript
La stratégie linguistique est mise en place de bas en haut du système et vise à atteindre les objectifs suivants:
Objets |
Directions de conduite |
Les commentaires |
filtrage |
Objet global à plusieurs fils |
Les fonctions des membres:Thread , getThread , mainThread , etc. |
Le fil |
Objet de fil |
Les fonctions des membres:peekMessage , postMessage , join , etc. |
Fermeture de fil |
Objet de verrouillage de fil |
Les fonctions des membres:acquire , release . Ils peuvent être passés dans l'environnement du thread en tant que paramètres de la fonction d'exécution du thread. |
ThreadÉvénement |
Objet événement |
Les fonctions des membres:set , clear , wait , isSet . Ils peuvent être passés dans l'environnement du thread comme paramètre de la fonction d'exécution du thread. |
ThreadCondition |
Objet de condition |
Les fonctions des membres:notify , notifyAll , wait , acquire , release . Ils peuvent être passés dans l'environnement du thread comme paramètre de la fonction d'exécution du thread. |
ThreadDict |
Objet du dictionnaire |
Les fonctions des membres:get , set . Ils peuvent être passés dans l'environnement du thread en tant que paramètres de la fonction d'exécution du thread. |
Manuel de syntaxe de la plateforme de trading quantique FMZ:JavaScript multi-threading
Le Web3
Bibliothèque d'indicateurs TA
Nom de la fonction |
Une brève introduction |
TA.MACD |
Calculer l'indicateur moyen de divergence lissée exponentielle |
TA.KDJ |
Calcul des indicateurs stochastiques |
TA.RSI |
Calculer l'indicateur de résistance |
TA.ATR |
Calculer l'indicateur de volatilité réelle moyenne |
TA.OBV |
Calcul des indicateurs de marée énergétique |
TA.MA |
Calcul des indicateurs de moyenne mobile |
TA.EMA |
Calcul des indicateurs des moyennes exponentielles |
TA.BOLL |
Calculer l'indicateur de la bande de Bollinger |
TA.Alligator |
Calculer l' indicateur de la ligne d' alligator |
TA.CMF |
Calcul de l'indicateur Chaikin des flux de trésorerie |
TA.Highest |
Calculer le prix maximal de la période |
TA.Lowest |
Calcul du prix minimum de la période |
TA.SMA |
Calculer les indicateurs de moyenne mobile simple |
Talib Indicateur Bibliothèque
La bibliothèque d'indicateurs talib contient de nombreux indicateurs de trading, tels que:talib.CDL2CROWSVous pouvez aller au manuel de syntaxe pour plus de détails.
Fonctions d'entrée de stratégie
Bibliothèques de modèles