1. Welche Art von Hardware? Der Server ist anspruchsvoll, und hier sieht es so aus, als würde alles auf einem normalen PC laufen. Oder liege ich da falsch?
2. Haben Sie die Laufzeiteinstellungen / Plugins / Routing genau überprüft? Es sieht sehr nach einer künstlichen Verzögerung aus (um das B-Buch nicht zu verbrennen).
Es wäre interessant, der Sache auf den Grund zu gehen.
ps: hier dupliziert, da ich die Antwort sehen werde (und den Blog überprüfen muss)
Vielen Dank für die Informationen, eine sehr nützliche Untersuchung eines Terminals in einem Vakuum, in dem man eine schlechte Internetverbindung und einen schlechten Austausch, der die Ausführung verzögert, nicht verantwortlich machen kann.
Entweder haben sie sich auf den Ablauf der Ereignisse verlassen (und es war anders), oder sie haben einfach etwas nicht berücksichtigt.
Andrei!
Ich würde Ihnen zustimmen, wenn dieser Expert Advisor (seit 5 Jahren nicht bearbeitet) immer richtig funktioniert hätte!
Bei jeder Aktion auf die Bestellung im Berater passiert nichts, bis herausgefunden wird, was mit der Bestellung passiert ist.
Und zeichnet auf, dass die Order geändert wird (Print(__FUNCTION__, ": Buy order modifyed.", "New price = ", order_data.price_open, " Ticket = ", a_ticket);) nein!
Nein und sonst EintragPrint(__FUNCTION__,": Kaufauftrag in Bearbeitung. Ticket = ", a_ticket);
case SELECT_TRUE:
switch (order_data.real_state)
{
case ORDER_EXIST:
switch (o_status)
{
case BUY_ORDER:
BuyOrder.mem_time = GetMicrosecondCount ();
switch (BuyOrder.state)
{
case ORD_DO_SET: //Операции запрещены
BuyOrder.state = ORD_WORK; //Операции разрешены
Print ( __FUNCTION__ , ": Buy ордер установлен. Билет = " , a_ticket);
break ;
case ORD_DO_MODIFY: //Операции запрещены
if ( NormalizeDouble (BuyOrder.modify_price, Digits ()) == NormalizeDouble (order_data.price_open, Digits ()))
{
BuyOrder.state = ORD_WORK; //Изменено состояние ордера, над ним можно совершать операции
Print ( __FUNCTION__ , ": Buy ордер модифицирован. " , "Новая цена = " , order_data.price_open, " Билет = " , a_ticket);
}
elsePrint ( __FUNCTION__ , ": Buy ордер в процессе модификации. Билет = " , a_ticket);break ;
case ORD_DO_CANCEL: //Операции запрещены
Print ( __FUNCTION__ , ": OE Buy ордер в процессе удаления. Билет = " , a_ticket);
break ;
}
break
2020.02 . 1310 : 00 : 08.991 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 11.491 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 12.992 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 14.485 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 15.491 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 16.982 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 18.491 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 19.989 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 20.991 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 1172845492020.02 . 1310 : 00 : 22.489 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Buy ордер в процессе удаления. Билет = 1172845492020.02 . 1310 : 00 : 23.489 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Buy ордер в процессе удаления. Билет = 1172845492020.02 . 1310 : 00 : 24.491 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Buy ордер в процессе удаления. Билет = 1172845492020.02 . 1310 : 00 : 25.983 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Buy ордер в процессе удаления. Билет = 1172845492020.02 . 1310 : 00 : 26.991 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Buy ордер в процессе удаления. Билет = 117284549
Ein Rekord
2020.02 . 1310 : 00 : 08.991 FCS_Trader (SBRF- 6.20 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 117284549
kann nur erscheinen, wenn ein Fehler aufgetreten ist oder der Auftragsstatus nicht definiert ist ( FallSELECT_BUSY: )
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит...
Leider sind die meisten Fehler (zumindest bei FORTS) schwebend!
D.h. es ist immer sehr schwierig, einen Fehler zu reproduzieren.
Nicht umsonst gibt es dieses Thema schon seit fast 6 Jahren....
Wenn es einen Fehler in der Logik des Expert Advisors gäbe, würde er oft "auftauchen", nicht nur ein- oder zweimal pro Handelswoche!
Darüber hinaus hat dieser EA seit mehr als 5 Jahren auf 84 Symbolen gearbeitet!
Hinzugefügt
Oh, und von der Störung (Beitrag oben)
2020.02.1110:01:49.737 FCS_Trader (SBRF-3.20,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 117122773
Gab es noch eine Börsenantwort in OnTradeTransaction() oder wurden die Daten noch im Terminal synchronisiert(dieser letzte Eintrag)!
Nach 1 Minute 42 Sekunden wurde festgestellt, was mit der Bestellung passiert ist!
Hinzugefügt von
Ja, und ich bin nicht der jenige, der diese kolossalen Verzögerungen in das Logbuch eingetragen hat!
2020.02.1310:00:04.427 Trades 'xxxxx': sell limit 1.00 SILV-12.20 at 18.91 placed for execution in3400.385 ms
2020.02.1310:00:05.049 Trades 'xxxxx': cancel order #117284388 buy limit 2.00 GAZR-9.20 at 210862020.02.1310:00:05.049 Trades 'xxxxx': cancel order #117284389 sell limit 1.00 GAZR-9.20 at 258582020.02.1310:00:05.106 Trades 'xxxxx': cancel order #117284392 buy limit 2.00 RTS-6.20 at 1453502020.02.1310:00:05.106 Trades 'xxxxx': cancel order #117284394 sell limit 1.00 RTS-6.20 at 1623702020.02.1310:00:05.815 Trades 'xxxxx': buy limit 1.00 SBRF-6.20 at 21997 placed for execution in4582.068 ms
2020.02.1310:00:05.816 Trades 'xxxxx': sell limit 2.00 SBRF-6.20 at 26879 placed for execution in4583.598 ms
2020.02.1310:00:06.809 Trades 'xxxxx': cancel order #117284397 sell limit 2.00 Si-12.20 at 665492020.02.1310:00:08.356 Trades 'xxxxx': buy limit 2.00 ROSN-6.20 at 42128 placed for execution in7119.210 ms
2020.02.1310:00:08.367 Trades 'xxxxx': sell limit 1.00 ROSN-6.20 at 51112 placed for execution in7129.944 ms
2020.02.1310:00:08.370 Trades 'xxxxx': accepted buy limit 1.00 MOEX-6.20 at 102312020.02.1310:00:08.374 Trades 'xxxxx': accepted sell limit 2.00 MOEX-6.20 at 124032020.02.1310:00:08.375 Trades 'xxxxx': buy limit 1.00 GBPU-6.20 at 1.2631 placed for execution in7093.203 ms
2020.02.1310:00:08.382 Trades 'xxxxx': buy limit 2.00 LKOH-6.20 at 62201 placed for execution in7100.184 ms
2020.02.1310:00:08.384 Trades 'xxxxx': sell limit 1.00 GBPU-6.20 at 1.3405 placed for execution in7101.788 ms
2020.02.1310:00:08.384 Trades 'xxxxx': sell limit 2.00 LKOH-6.20 at 66799 placed for execution in7102.416 ms
2020.02.1310:00:08.570 Trades 'xxxxx': accepted buy limit 7.00 Eu-9.20 at 711312020.02.1310:00:08.572 Trades 'xxxxx': buy limit 1.00 PLT-6.20 at 921.3 placed for execution in7170.723 ms
2020.02.1310:00:08.573 Trades 'xxxxx': accepted buy limit 1.00 MTSI-6.20 at 306642020.02.1310:00:08.574 Trades 'xxxxx': accepted sell limit 2.00 MTSI-6.20 at 372022020.02.1310:00:08.589 Trades 'xxxxx': buy limit 1.00 MIX-6.20 at 293475 placed for execution in7153.171 ms
2020.02.1310:00:08.590 Trades 'xxxxx': buy limit 2.00 MXI-6.20 at 2914.25 placed for execution in7155.083 ms
2020.02.1310:00:08.605 Trades 'xxxxx': buy limit 1.00 HYDR-6.20 at 6716 placed for execution in7169.712 ms
2020.02.1310:00:08.607 Trades 'xxxxx': sell limit 2.00 MXI-6.20 at 3295.65 placed for execution in7171.361 ms
2020.02.1310:00:08.609 Trades 'xxxxx': sell limit 1.00 MIX-6.20 at 331775 placed for execution in7173.465 ms
2020.02.1310:00:08.610 Trades 'xxxxx': sell limit 2.00 HYDR-6.20 at 8128 placed for execution in7174.417 ms
2020.02.1310:00:08.611 Trades 'xxxxx': buy limit 2.00 VTBR-6.20 at 4397 placed for execution in7166.885 ms
2020.02.1310:00:08.612 Trades 'xxxxx': sell limit 2.00 VTBR-6.20 at 5321 placed for execution in7167.615 ms
2020.02.1310:00:08.633 Trades 'xxxxx': buy limit 1.00 AUDU-6.20 at 0.6592 placed for execution in7115.432 ms
2020.02.1310:00:08.636 Trades 'xxxxx': accepted buy limit 1.00 RTKM-6.20 at 81442020.02.1310:00:08.640 Trades 'xxxxx': accepted sell limit 2.00 RTKM-6.20 at 104502020.02.1310:00:08.655 Trades 'xxxxx': buy limit 10.00 BR-7.20 at 51.87 placed for execution in7133.431 ms
2020.02.1310:00:08.658 Trades 'xxxxx': sell limit 2.00 BR-7.20 at 61.51 placed for execution in7136.161 ms
2020.02.1310:00:08.667 Trades 'xxxxx': buy limit 2.00 LKOH-12.20 at 59401 placed for execution in7072.427 ms
2020.02.1310:00:08.677 Trades 'xxxxx': sell limit 1.00 LKOH-12.20 at 72363 placed for execution in7081.993 ms
2020.02.1310:00:08.677 Trades 'xxxxx': buy limit 1.00 BR-9.20 at 54.06 placed for execution in7078.509 ms
2020.02.1310:00:08.690 Trades 'xxxxx': buy limit 1.00 CHMF-6.20 at 91501 placed for execution in6985.443 ms
2020.02.1310:00:08.704 Trades 'xxxxx': cancel order #117284430 buy limit 1.00 SBRF-6.20 at 219972020.02.1310:00:08.704 Trades 'xxxxx': cancel order #117284431 sell limit 2.00 SBRF-6.20 at 268792020.02.1310:00:08.734 Trades 'xxxxx': buy limit 2.00 SBPR-6.20 at 20354 placed for execution in6811.282 ms
2020.02.1310:00:08.734 Trades 'xxxxx': buy limit 2.00 MGNT-6.20 at 3404 placed for execution in6811.918 ms
2020.02.1310:00:08.735 Trades 'xxxxx': sell limit 2.00 MGNT-6.20 at 4128 placed for execution in6812.492 ms
2020.02.1310:00:08.736 Trades 'xxxxx': sell limit 2.00 SBPR-6.20 at 25106 placed for execution in6813.437 ms
2020.02.1310:00:08.807 Trades 'xxxxx': buy limit 1.00 MOEX-6.20 at 10231 placed for execution in6542.366 ms
2020.02.1310:00:08.809 Trades 'xxxxx': sell limit 2.00 MOEX-6.20 at 12403 placed for execution in6544.267 ms
2020.02.1310:00:08.811 Trades 'xxxxx': buy limit 1.00 MTSI-6.20 at 30664 placed for execution in6426.971 ms
2020.02.1310:00:08.829 Trades 'xxxxx': buy limit 7.00 Eu-9.20 at 71131 placed for execution in6491.851 ms
2020.02.1310:00:08.830 Trades 'xxxxx': sell limit 2.00 MTSI-6.20 at 37202 placed for execution in6445.075 ms
2020.02.1310:00:08.833 Trades 'xxxxx': buy limit 1.00 RTKM-6.20 at 8144 placed for execution in6401.223 ms
2020.02.1310:00:08.834 Trades 'xxxxx': sell limit 2.00 RTKM-6.20 at 10450 placed for execution in6402.302 ms
Und das , ohne die Reaktion der Börse zu berücksichtigen!
Hinzugefügt
Detaillierte Angaben zu den Fehlern.
ORDER_DATA order_data;
ENUM_ORD_SELECT order_select = OrderRealSelect(a_ticket, order_data, true);
switch(order_select)
{
case SELECT_ERROR:
if(order_data.error_code == ERR_ZERO_TICKET)
{
switch(o_status)
{
case BUY_ORDER:
BuyOrder.Canceled(true);
Print(__FUNCTION__, ": Билет Buy ордера = 0");
break;
case SELL_ORDER:
SellOrder.Canceled(true);
Print(__FUNCTION__, ": Билет Sell ордера = 0");
break;
}
}
else
{
switch(o_status)
{
case BUY_ORDER:
BuyOrder.mem_time = GetMicrosecondCount();
Print(__FUNCTION__, ": Ошибка определения состояния Buy ордера! Билет = ", a_ticket, " Код ошибки: ", order_data.error_code);
break;
case SELL_ORDER:
SellOrder.mem_time = GetMicrosecondCount();
Print(__FUNCTION__, ": Ошибка определения состояния Sell ордера! Билет = ", a_ticket, " Код ошибки: ", order_data.error_code);
break;
}
}
break;
case SELECT_BUSY:
switch(o_status)
{
case BUY_ORDER:
BuyOrder.mem_time = GetMicrosecondCount();
Print(__FUNCTION__, ": Buy Ордер в переходном состоянии. Билет = ", a_ticket, " Состояние: ", order_data.state);
break;
case SELL_ORDER:
SellOrder.mem_time = GetMicrosecondCount();
Print(__FUNCTION__, ": Sell Ордер в переходном состоянии. Билет = ", a_ticket, " Состояние: ", order_data.state);
break;
}
break;
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
https://www.mql5.com/ru/blogs/post/733393
Cool, danke für die Rezension!
1. Welche Art von Hardware? Der Server ist anspruchsvoll, und hier sieht es so aus, als würde alles auf einem normalen PC laufen. Oder liege ich da falsch?
2. Haben Sie die Laufzeiteinstellungen / Plugins / Routing genau überprüft? Es sieht sehr nach einer künstlichen Verzögerung aus (um das B-Buch nicht zu verbrennen).
Es wäre interessant, der Sache auf den Grund zu gehen.
ps: hier dupliziert, da ich die Antwort sehen werde (und den Blog überprüfen muss)
ps: hier dupliziert, da ich die Antwort sehen werde (und den Blog überprüfen muss)
Dort wird geantwortet.
Es wäre interessant, der Sache auf den Grund zu gehen.
Jahrgangsstufe 6 bittet Entwickler und Makler, die Sache zu regeln....
Hinzugefügt
Um das Aussortieren zu erleichtern, ist es besser, asynchrone Aufträge zu verwenden (mehr Protokolle).
Es ändert sich nichts.... Es ist traurig (Open, Real, FORTS, Bild 2280).
Es gibt kein Terminalprotokoll, da die Entwickler es nicht für nötig hielten, die Antwort auf den Austausch zu protokollieren.
1 Minute und 42 Sekunden wurde der Auftrag gelöscht!
https://www.mql5.com/ru/blogs/post/733393
Offen, real, FORTS, Bild 2280
Heute war es überhaupt "überlastet", es gab überhaupt keine Synchronisation:
Hier ist der Anfang und das Ende des Protokolls (EA von Hand zurücksetzen)
Auf anderen Charts (2 Terminals 83 EAs) funktionierten die EAs einwandfrei
Hinzugefügt
Es scheint mir, dass diese "Störung" auftrat, weil das Terminal irgendwie die
Daten nach"accepted modify order #117284549" und es sollte eine Bestätigung erhalten und synchronisiert worden sein
Daten nach"modify order #117284549 buy limit 1.00 SBRF-9.20 at 23557 sl: 0 tp: 0 expiration: day -> 24138, sl: 0 tp: 0 expiration: day placed for execution in 1299.618 ms"
Heute hat es überhaupt nicht geklappt, es gab überhaupt keine Synchronisation:
Hier ist der Anfang und das Ende des Protokolls (EA von Hand zurücksetzen)
Es sieht eher nach einem Fehler in der Logik des Expert Advisors aus.
Entweder haben sie sich auf die Abfolge der Ereignisse verlassen (die anders war), oder sie haben einfach etwas nicht beachtet.
Eher ein Fehler in der Logik des EA.
Entweder haben sie sich auf den Ablauf der Ereignisse verlassen (und es war anders), oder sie haben einfach etwas nicht berücksichtigt.
Andrei!
Ich würde Ihnen zustimmen, wenn dieser Expert Advisor (seit 5 Jahren nicht bearbeitet) immer richtig funktioniert hätte!
Bei jeder Aktion auf die Bestellung im Berater passiert nichts, bis herausgefunden wird, was mit der Bestellung passiert ist.
Und zeichnet auf, dass die Order geändert wird (Print(__FUNCTION__, ": Buy order modifyed.", "New price = ", order_data.price_open, " Ticket = ", a_ticket);) nein!
Nein und sonst Eintrag Print ( __FUNCTION__ , ": Kaufauftrag in Bearbeitung. Ticket = " , a_ticket);
Ein Rekord
kann nur erscheinen, wenn ein Fehler aufgetreten ist oder der Auftragsstatus nicht definiert ist ( Fall SELECT_BUSY: )
Hinzugefügt
Die Funktion OrderRealSelect() hat bis heute immer einwandfrei funktioniert (ich glaube, sie funktioniert immer noch...)
Leider sind die meisten Fehler (zumindest bei FORTS) schwebend!
D.h. es ist immer sehr schwierig, einen Fehler zu reproduzieren.
Nicht umsonst gibt es dieses Thema schon seit fast 6 Jahren....
Wenn es einen Fehler in der Logik des Expert Advisors gäbe, würde er oft "auftauchen", nicht nur ein- oder zweimal pro Handelswoche!
Darüber hinaus hat dieser EA seit mehr als 5 Jahren auf 84 Symbolen gearbeitet!
Hinzugefügt
Oh, und von der Störung (Beitrag oben)
Gab es noch eine Börsenantwort in OnTradeTransaction() oder wurden die Daten noch im Terminal synchronisiert(dieser letzte Eintrag)!
Nach 1 Minute 42 Sekunden wurde festgestellt, was mit der Bestellung passiert ist!
Hinzugefügt von
Ja, und ich bin nicht der jenige, der diese kolossalen Verzögerungen in das Logbuch eingetragen hat!
Und das , ohne die Reaktion der Börse zu berücksichtigen!
Hinzugefügt
Detaillierte Angaben zu den Fehlern.
Wir werden morgen sehen, ob es eine Störung gibt.
Wenn man die Geschichte dieses Themas verfolgt, waren wir anfangs empört über Verzögerungen von zehn Millisekunden,
dann Sekunden, und jetzt Minuten!
Langsam fange ich an, Roboter für KVIK umzuschreiben!
Mit MT5 Potenzial von 6-7 Millisekunden mit meinem Netzwerk (von zu Hause aus, ohne Börse Antwort)
Mitsolchen Verzögerungen hat das Terminal meiner Meinung nach keine Zukunft.