Une minute et demie de différence entre l'heure locale et l'heure du tic-tac frais. Ce qu'il faut faire. - page 5
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je sais. Où voulez-vous en venir ?
A quoi :
Dans la vue d'ensemble du marché, il y a toujours les colonnes "Volume" "Dernière transaction" On soupçonne que cette fonction renvoie simplement l'heure du dernier tick.
La fonctionSymbolInfoInteger(_Symbol,SYMBOL_TIME) renvoie uniquement l'heure du dernier tick. Parce que la modification d'une citation entraîne l'apparition d'une nouvelle coche informative.
Vous voulez mesurer le temps entre l'arrivée de la dernière cotation et l'heure du dernier tic-tac. En secondes, il semble être toujours égal à 0. Par conséquent, le terminal renvoie tout rapidement.
A :
La fonctionSymbolInfoInteger(_Symbol,SYMBOL_TIME) renvoie uniquement l'heure du dernier tick. Parce que la modification d'une citation entraîne une nouvelle coche informationnelle.
Vous voulez mesurer le temps entre l'arrivée de la dernière cotation et le moment du dernier tic-tac. En secondes, il semble être toujours égal à 0. Par conséquent, le terminal renvoie tout rapidement.
Encore une fois, c'est ce que je considère comme le problème.
Étant donné :
L'heure locale et l'heure du serveur sont plus ou moins synchronisées, c'est-à-dire que la différence entre le .time_msc des nouveaux ticks et l'heure locale est de quelques secondes.
A 18:00:00 heure locale vous essayez d'obtenir un nouveau tick par le symbole SBER avec SymbolInfoTick, vous obtenez un tick avec l'heure 17:57:00
A 18:00:01 comp temps nous essayons d'obtenir un nouveau tick avec SymbolInfoTick, nous obtenons un tick avec le temps 17 :58:30
Je ne pense pas que cela puisse être appelé opérationnel.
Maintenant, je me suis éloigné de l'heure locale de l'ordinateur et j'utilise plutôt l'heure maximale du dernier tick parmi tous les symboles de l'aperçu du marché.
Encore une fois, c'est ce que je considère comme le problème.
Étant donné :
L'heure locale et l'heure du serveur sont plus ou moins synchronisées, c'est-à-dire que la différence entre le .time_msc du nouveau tick et l'heure locale est de quelques secondes.
A 18:00:00 heure locale vous essayez d'obtenir un nouveau tick par le symbole SBER avec SymbolInfoTick, vous obtenez un tick avec l'heure 17:57:00
A 18:00:01 comp temps nous essayons d'obtenir un nouveau tick avec SymbolInfoTick, nous obtenons un tick avec le temps 17 :58:30
Je ne pense pas que cela puisse être appelé opérationnel.
Maintenant, je me suis éloigné de l'heure locale de l'ordinateur et j'utilise plutôt l'heure maximale du dernier tick parmi tous les symboles de l'aperçu du marché.
Comprenez-vous que vous pouvez régler n'importe quelle heure d'ordinateur ? Vous ne pouvez pas l'utiliser. On vous l'a déjà dit. C'est la première chose.
Deuxièmement, l'heure maximale du dernier tick parmi tous les symboles de l'aperçu du marché ne peut pas être utilisée. Vous voulez trouver le décalage entre l'heure du dernier tick du symbole SBER (SymbolInfoTick) et l'heure de la dernière cotation du symbole SBER (SymbolInfoInteger). C'est-à-dire que vous devez le faire à peu près comme je l'ai écrit (à peu près parce que vous devez utiliser un culbuteur pour plus de précision, comme on vous l'a conseillé).
Troisièmement, ceci :
Est affirmé sans preuve. Si vous considérez votre code comme une preuve, voir "deuxième".
Savez-vous que vous pouvez régler l'heure de l'ordinateur sur n'importe quoi ? Vous ne pouvez pas être lié à elle. On vous l'a déjà dit. Tout d'abord.
Vous ne pouvez pas le régler sur n'importe quel moment si vous parlez de millisecondes ou même de secondes. Parler de délais de quelques minutes est tout à fait possible. Je ne mesure pas la différence avec lui maintenant, mais avec le temps maximum .time_msc du dernier tick pour tous les symboles de l'aperçu du marché.
Vous voulez trouver le décalage entre l'heure du dernier tick du symbole SBER (SymbolInfoTick) et l'heure de la dernière cotation du symbole SBER (SymbolInfoInteger).
Je ne le fais pas.
Deuxièmement, vous ne pouvez pas non plus utiliser l'heure maximale du dernier tick parmi tous les symboles de l'aperçu du marché.
Pourquoi ? Je ne compare pas l'heure du dernier tick (par ordinateur), je compare le time_msc.
Je ne peux pas utiliser votre code sans preuve. Si vous considérez votre code comme une preuve - voir "deuxième".
En général, les développeurs demandent du code pour reproduire le problème. Voici un retard de 2 secondes pris récemment.
(en gros, parce que vous devez utiliser un culbuteur pour plus de précision, comme on vous l'a conseillé).
pivomoe:
Rien qu'à travers ces lignes, ce que vous voulez semble clair. Vous êtes intéressé par quelque chose comme la synchronisation inter-symboles. C'est-à-dire la pertinence générale des données sur les instruments que vous souhaitez.
Je ne peux pas vous aider pour l'instant, je n'ai pas été impliqué dans cette question. Demandez aux développeurs.
Rien qu'à travers ces lignes, ce que vous voulez semble clair. Vous êtes intéressé par quelque chose comme la synchronisation inter-symboles. C'est-à-dire la pertinence générale des données sur les instruments que vous souhaitez.
Je ne peux pas vous aider pour l'instant, je n'ai pas été impliqué dans cette question. Adresse aux développeurs.
Alexey (ne voulait pas participer, mais...).
N'est-ce pas le code "pertinence" (NEW_TICK) de la page 2 de ce fil ?
Ajouté
Avec CUR_TICK, vous pouvez toujours vérifier qu'il s'agit du même tick qu'avant ou
le nouveau paquet de tics contient un tic qui n'était pas dans le précédent.
Alexey (je ne voulais pas m'impliquer, mais...).
N'est-ce pas le code de "pertinence" (NEW_TICK) de la page 2 de ce fil ?
Apparemment non. Depuis :
TimeTradeServer
Renvoie l'heure actuelle estimée du serveur commercial. Contrairement àTimeCurrent(), la valeur de l'heure est calculée dans le terminal client et dépend des paramètres horaires de l'ordinateur de l'utilisateur.
C'est-à-dire qu'il dépend du temps de l'ordinateur (il ne devrait pas en être ainsi pour la précision de la mesure).
L'important ici, bien sûr, est de vérifier l'exactitude du code depivomoe, et s'il y a vraiment un bogue, de contacter les développeurs.
La vérification semble devoir se faire via TimeGMTOffset. J'esquisserai un exemple plus tard.
Apparemment non. Parce que :
Regardez bien le code !
TimeTradeServer() ne sert qu'à déterminer le jour et c'est tout (cette vérification est faite "au cas où") !
TimeTradeServer() peut ne pas être fait du tout !
Ajouté par
Je répète
"Avec CUR_TICK, vous pouvez toujours vérifier qu'il s'agit du même tick que précédemment, ou bien
le nouveau paquet de tick contient un tick qui n'a pas été transmis dans le paquet précédent, et le paquet contient 1 tick("old")".
Il s'agit ici, bien sûr, de vérifier l'exactitude du code depivomoe et, s'il y a effectivement un bug, de contacter les développeurs.
Le bug apparaît soit s'il y a des dizaines de caractères dans la revue de marché, soit s'il y a plusieurs caractères ouverts dans la revue, mais qu'il y a plusieurs dizaines d'onglets dans le navigateur Opera. J'ai écrit aux développeurs par message privé.
Comme je l'ai écrit précédemment, le problème est résolu avec un Sleep assez grand entre les appels, pour 40 caractères sleep(10) est suffisant. À mesure que le nombre de personnages augmente, il faut de plus en plus de sommeil.