En cours d’utilisation_Quelques découvertes de la fonction N (documentation de l’API)


_N est utilisé pour traiter le nombre de floating-points en minuscules.
Voici un exemple de code:
function main(){
var pi = 3.1415926535897; // 声明一个变量 储存 圆周率, 小数位数13位。
Log(_N(pi, 4) * 100); // 当我们使用 _N 函数 保留4位小数后 再 乘以 100 会是什么结果呢?
}
Quand nous utilisons_Si on multiplie par 100, on obtient le résultat suivant.
J’ai commencé par penser_N (pi, 4) renvoie 3.1415, puis il est multiplié par 100 qui est égal à 314.15.
Résultats de l’opération:

#### J’ai utilisé explicitement N, mais je me demande pourquoi il y a autant de petits chiffres.
Pour afficher 314.15, il suffit d’écrire:
function main(){
var pi = 3.1415926535897;
Log(_N(pi * 100, 2));
}

### Et si c’était le cas ?_Le premier paramètre N est une valeur de chaîne de caractères qui peut provoquer une erreur:
Code de test :
function main(){
var pi = "3.1415"; // 传入 字符串 3.1415 , 很多时候解析出来的数据没有检查类型,可能会误传入字符串。
_N(pi, 2);
}
J’ai vraiment mis les pieds dans ce trou, et les données que j’ai trouvées sont une chaîne de caractères, et j’ai vu les erreurs ci-dessous.

DEBUG a mis du temps à trouver la cause, mais il est possible d’en savoir plus.
Après avoir été testé dans Safari, un robot exécute une page, si une fois que le contenu de la sortie du journal est trop important, cela peut entraîner la suppression de l’information du journal et l’affichage d’un espace vide. Le navigateur Chrome a été testé et peut être affiché normalement.
La mise à jour de la barre d’état, c’est-à-dire que chaque fois que vous appelez la fonction LogStatus de l’API pour afficher le contenu, le mécanisme de requête est déclenché si la page de journal actuelle n’est pas sur la première page, et la barre d’état de la page du robot n’affiche plus les mises à jour. Lorsque la page du journal est sélectionnée comme première page, la barre d’état est restaurée.
Par exemple, le message d’erreur de cet utilisateur:
#### Le disque dur:

#### Backtesting :

Ces deux erreurs sont dues à l’utilisation de variables non définies.
#### Pourquoi ?
La raison en est que le code a été copié directement dans la stratégie, et certaines stratégies ont été copiées directement dans la stratégie.paramètreC’est une stratégie.Paramètres de l’interfacePar défaut. Définir un paramètre sur l’interface de stratégieVariable de paramètreC’est l’équivalent d’une déclaration dans le code de la stratégie.Variables globales Si c’est juste une copie du code Peut-être utilisé dans le codeVariables de l’interface de stratégie (paramètres)On est dans un état indéfini Si vous voulez tester la stratégie de quelqu’un d’autre, il est préférable de copier la stratégie entière.
#### Par exemple, la page de copie de cette stratégie (le type de stratégie qui est ouvert est accessible en cliquant sur la place de la stratégie):
Cliquez sur le bouton Copier, cliquez sur le bouton Copier et cliquez sur le bouton Copier en ligne, c’est la copie complète de la stratégie.

Ce type d’erreur peut être causé par l’absence de configuration d’une liste blanche d’adresses IP KEY de l’API de l’échange. L’ajout d’une adresse IP à la liste blanche peut résoudre ce problème.
La perte d’épargne à terme, également appelée perte d’épargne à la carte, si vous achetez 2480 pièces d’acier à vis à une main, quel que soit le nombre de jours de négociation, le prix actuel est de 2520, la perte d’épargne à vis est de 400 yuans, la perte d’épargne à terme indique la perte de la position actuelle par rapport au prix d’ouverture; la perte d’épargne à terme sur le marché de l’acier à vis à vis, également appelée perte d’épargne sur le marché de l’acier à vis, si vous détenez plusieurs billets d’acier à vis à une main, le dernier jour de négociation est de 2500 et le prix actuel est de 2520, la perte d’épargne sur le marché de l’acier à vis à vis est de 200 yuans, la perte d’épargne sur le marché de l’acier à vis représente la perte de votre position actuelle par rapport au prix de clôture d’un jour de négoci
La somme des valeurs et des variables indéfinies donne le résultat Nan, et celle des objets et des objets indéfinis donne undefined.
function main(){
var a = 11// {aa : "aa", bb : 12}
var b = {}
Log(a + b.c)
}
TypeError: cannot read property ‘Sleep’ of undefined at main (Erreur de type: ne peut pas lire la propriété ‘Sleep’ of undefined at main)FILE:103)
var id2 = e.Sell(ticker.Sell + ticker.Sell * 0.05, 0.1)
var order2 = e.GetOrder(id2)
Log("order2:", order).
Sleep(2000) # 103 行, 这里报错。
J’ai regardé pendant une demi-journée et je n’arrive pas à comprendre. En lisant attentivement, vous trouverez Log ((“order2:”, order). Si vous vous posez des questions aussi étranges, pensez à cette scène.
Il n’y a pas de journal, c’est comme si c’était programmé.
La raison: les anciens fichiers DB3 ont atteint 25 G Les serveurs de cloud étrangers ont explosé
_En cas de problème, vérifiez attentivement l’emplacement de l’ordinateur ou du serveur, le disque dur et l’état du système.