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

Aide: comment empêcher les achats et les ventes sans fin sur le même réseau K

Auteur:Je suis désolée., Créé: 2021-09-20 09:10:57, mis à jour:

En raison des limitations du langage Ma, la stratégie doit être réimplémentée avec JS.

Depuis la réimplémentation de la stratégie de Mac en JS, de nombreux problèmes ont été trouvés, dans le fonctionnement réel, il a été constaté que sur la même ligne K, en raison de la volatilité, il y a 1-2 achats et ventes. Cela entraîne des pertes.

Demandez-vous comment la langue Ma a été conçue pour éviter cela, quelle est la logique générale?

Ou: Comment puis-je utiliser JS pour empêcher les achats et les ventes sur la même ligne K? Si vous voulez résoudre le problème avec une barre de temps, vous trouverez qu'il n'y a pas de barre de temps dans les commandes qui sont traitées.


Plus de

Je suis désolée.Il y a aussi un problème, avec le code ci-dessous, qui est d'empêcher que la même ligne K ne cause des pertes en raison d'un peu de fluctuation sur la même ligne K. Mais il y a un nouveau problème, c'est que lorsque la même ligne K est plate, vous devez attendre jusqu'à ce que la prochaine ligne K soit ouverte. Le code est le suivant: if (before_record_time!= now_records.Time) // le temps de la ligne K précédente n'est pas égal à l'erreur de la ligne K précédente. Je ne sais pas. La logique de l'opération de l'équilibrage ici est que vous ne pouvez pas exécuter l'équilibrage sur la même ligne K. Je ne sais pas. Ma solution est la suivante: le timestamp de la ligne K, qui était un stockage de variables, est maintenant un stockage de deux variables. Un chronomètre multi-directionnel duo_before_record_time Un temps de travail dans le vide Kong_before_record_time Si vous faites plus de choses, utilisez cette restriction, la même ligne K, les positions qui ne vont pas dans la même direction après la mise au point. Le code est le suivant: if (duo_before_record_time!= now_records.Time) // le temps de la ligne K précédente n'est pas égal à l'erreur de la ligne K précédente. Je ne sais pas. La logique de l'opération de l'équilibrage ici est que vous ne pouvez pas exécuter l'équilibrage sur la même ligne K. Je ne sais pas. Et quand vous faites des espaces, vous pouvez aussi limiter les positions inversées qui ne sont pas les mêmes après avoir été alignées sur la même ligne K. if (kong_before_record_time!= now_records.Time) // le temps de la ligne K précédente n'est pas égal à l'erreur de cette ligne K, alors pour une autre ligne K Je ne sais pas. La logique de l'opération de l'équilibrage ici est que vous ne pouvez pas exécuter l'équilibrage sur la même ligne K. Je ne sais pas. Ainsi, une fois que la même ligne K est mise à plat, une position dans la direction opposée peut être immédiatement ouverte si les conditions d'ouverture sont remplies. Mais pas dans la même direction. J'espère que mes questions seront utiles à mes amis plus tard.

Le foinLa facture vous répond.

Une bonne humeurL'axe K est le temps, il faut le résoudre avec le temps.

Je suis désolée.Le code est le suivant: if (before_record_time!= now_records.Time) // le temps de la ligne K précédente n'est pas égal à l'erreur de la ligne K précédente. Je ne sais pas. La logique de l'opération de l'équilibrage ici est que vous ne pouvez pas exécuter l'équilibrage sur la même ligne K. Je ne sais pas.

Je suis désolée.Une meilleure solution a été trouvée, en déclarant une variable pour stocker le temps de la dernière ligne K en cours à chaque mise en place (qu'on fasse ou non de la mise en place, à condition que la mise en place soit couverte par cette variable), puis en déterminant que le temps de la dernière mise en place n'est pas égal au temps de la dernière ligne K, ce qui peut être parfaitement résolu.

Je suis désolée.Par ailleurs, avec exchange.GetOrders (().length>0 on détermine qu'il n'y a pas de commandes en attente et on enregistre le temps de commande.

Je suis désolée.Après un long brouillage, j'ai finalement trouvé la solution, le code est le suivant: si (Math.abs ((before_order_time - now_records.Time)/1000 > now_period) est un ensemble de données qui contient les données de l'ordre // le temps de la dernière fois de commande moins le temps de la ligne K actuelle, divisé par 1000 pour obtenir le nombre de secondes, en prenant la valeur absolue différente des deux, qui n'est pas sur la même ligne K si elle est supérieure au nombre de secondes du cycle. // vous devez définir vous-même la variable before_order_time, en enregistrant uniquement la barre de temps de l'ordre. before_order_time = Date.parse ((new Date))); // en enregistrant la barre de temps actuelle // le nombre de secondes pour le nombre de périodes, est exprimé par var now_period = _C ((exchange.GetPeriod); // obtient le cycle actuel, par exemple 5 minutes, 15 minutes, 1 jour, et renvoie le nombre de secondes.

L'été ne vous frappe pas.Il devrait être possible d'intercepter les codes de temps dans les données de la ligne K. Si c'est le même codes de temps, vous pouvez les supprimer.