FORTS. Questions relatives à l'application de la loi - page 9

 
Renat:
C'est le terminal 1060 et le serveur est toujours 1035.
Je l'ai eu))
 

Bonjour, Renat !

En concevant un mode de suivi des ordres "d'urgence" (au cas où l'événement OnTradeTransaction n'arrive pas),

J'ai détecté qu'un ordre MARKET apparaît dans l'historique en plus de 3 SECONDES :

CN      0       07:10:26.424    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:10:26
CE      0       07:10:26.424    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010000
CG      0       07:10:27.554    History_bug (Eu-3.15,H1)        Время ожидания составило = 1138 мсек
NN      0       07:10:27.554    History_bug (Eu-3.15,H1)        CheckOrders: Не получен билет ордера!
JD      0       07:10:29.328    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:10:29
DK      0       07:10:29.328    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010001
EP      0       07:10:30.596    History_bug (Eu-3.15,H1)        Время ожидания составило = 1279 мсек
RE      0       07:10:30.596    History_bug (Eu-3.15,H1)        CheckOrders: Не получен билет ордера!
KJ      0       07:10:41.112    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:10:41
LQ      0       07:10:41.112    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010000
GJ      0       07:10:43.123    History_bug (Eu-3.15,H1)        Время ожидания составило = 2012 мсек
HK      0       07:10:43.123    History_bug (Eu-3.15,H1)        CheckOrders: Не получен билет ордера!
IQ      0       07:10:46.176    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:10:46
LG      0       07:10:46.176    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010001
DD      0       07:10:48.193    History_bug (Eu-3.15,H1)        Время ожидания составило = 2028 мсек
LQ      0       07:10:48.193    History_bug (Eu-3.15,H1)        CheckOrders: Не получен билет ордера!
EG      0       07:10:58.440    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:10:58
NL      0       07:10:58.440    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010000
NN      0       07:11:01.531    History_bug (Eu-3.15,H1)        Время ожидания составило = 3104 мсек
PG      0       07:11:01.531    History_bug (Eu-3.15,H1)        CheckOrders: Не получен билет ордера!
DM      0       07:11:06.359    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:11:06
NR      0       07:11:06.359    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010001
RG      0       07:11:09.649    History_bug (Eu-3.15,H1)        Время ожидания составило = 3292 мсек
HN      0       07:11:09.649    History_bug (Eu-3.15,H1)        CheckOrders: Не получен билет ордера!
LS      0       07:11:19.636    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:11:19
GH      0       07:11:19.636    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010000
RQ      0       07:11:23.808    History_bug (Eu-3.15,H1)        Время ожидания составило = 4180 мсек
PF      0       07:11:23.808    History_bug (Eu-3.15,H1)        CheckOrders: Билет получен = 9833674
QE      0       07:11:27.865    History_bug (Eu-3.15,H1)        Время ожидания составило = 4056 мсек
HN      0       07:11:27.865    History_bug (Eu-3.15,H1)        CheckOrders: Сделка совершена, билет = 9833674
HD      0       07:11:30.832    History_bug (Eu-3.15,H1)        Ордер отослан =  2015.02.10 07:11:30
IK      0       07:11:30.832    History_bug (Eu-3.15,H1)        Уникальный номер ордера (mem_magic) = 1010001
LP      0       07:11:34.962    History_bug (Eu-3.15,H1)        Время ожидания составило = 4134 мсек
DG      0       07:11:34.962    History_bug (Eu-3.15,H1)        CheckOrders: Билет получен = 9833675
CD      0       07:11:39.018    History_bug (Eu-3.15,H1)        Время ожидания составило = 4057 мсек
JN      0       07:11:39.018    History_bug (Eu-3.15,H1)        CheckOrders: Сделка совершена, билет = 9833675

Le code de l'EA qui a produit ce journal est joint.

D'abord, le temps d'attente était de 1000 ms, puis 2000, 3000 et enfin 4000 ms.

2 commandes ont été envoyées pour chaque période(position ouverte - position fermée)

N'est-ce pas trop long pour une commande MARKET ?

P/S Demo Open (terminal build 1060)

Dossiers :
History_bug.mq5  10 kb
 

Je n'ai pas encore exécuté le code, mais la source voit l'erreur classique de la date de fin incorrecte dans HistorySelect.

Tout programmeur débutant appelle cette fonction avec une date erronée, mord constamment la fin de l'histoire et trouve "une longue transaction dans l'histoire".

 

C'est probablement la fonction, car "chaque premier" fait une "erreur classique".

Dans ce fichier, on tente de lire l'historique depuis une date donnée jusqu'au moment présent. Pouvez-vous me dire comment procéder correctement, afin de ne pas "grignoter la fin de l'histoire" ?

 

L'erreur est que les gens ne pensent pas à l'heure actuelle et mettent une mauvaise date provenant d'une mauvaise source.

Il suffit de spécifier une date lointaine connue comme date de fin, plutôt que l'obsolète serverTime.

 
Renat:

L'erreur est que les gens ne pensent pas à l'heure actuelle et mettent une mauvaise date provenant d'une mauvaise source.

Il suffit de mettre la date lointaine connue comme date de fin, et non l'obsolète serverTime.

Peut-être que l'aide, avec l'exemple qu'elle contient, peut être corrigée à ce moment-là aussi ?

https://www.mql5.com/ru/docs/trading/historyselect

Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
Торговые функции / HistorySelect - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
papaklass:

Renat, avez-vous déjà travaillé avec OnTradeTransaction() ?

Non, malheureusement, très occupé.

Veuillez l'essayer vous-même sur notre serveur MetaQuotes-Demo.

 

De la phrase de Renat

Il suffit de spécifier une date lointaine connue comme date de fin, plutôt que l'obsolète serverTime.

J'ai compris que vous deviez spécifier la date de demain (ou une date encore plus lointaine) comme date de fin et vous serez content.

 
Renat:

L'erreur est que les gens ne pensent pas à l'heure actuelle et mettent une mauvaise date provenant d'une mauvaise source.

Il suffit de spécifier une date lointaine connue comme date de fin, plutôt que l'obsolète serverTime.

Et leTimeTradeServer() "obsolète" est acceptable comme date de début ?
 
Mikalas:
Et comme date de départ, leTimeTradeServer( ) "périmé" convient également ?

Les dates de début et de fin doivent être fixées avec tolérance et avec la marge nécessaire. C'est-à-dire moins N secondes et plus N secondes au minimum.

TimeTradeServer() n'est pas une heure exacte, mais est mis à jour uniquement par les ticks de prix entrant dans l'aperçu du marché.


Si vous n'avez soudainement aucune donnée dans l'échantillon historique, alors 99% de l'erreur se situe dans les limites de la requête.

Raison: