ФОРТС. Вопросы по исполнению - страница 67

 
Renat Fatkhullin:

Прочтите с прошлой страницы. Вдумчиво и каждое слово: https://www.mql5.com/ru/forum/38456/page68#comment_2184557

Надо иметь хоть минимальное понимание, что является техническими доказательствами. Ими являются существующие логи терминала, где есть миллисекундные тайминги.

Вот если бы были представлены логи терминала, соответствующие неким пустым и неконкретным строкам эксперта, тогда можно было бы говорить о наличии технических доказательств и корректности данных. Но вместо этого было долгое осознанное манипулирование со скрытием исходных данных.

Вы неправильно понимаете. Просто посмотрите на свои логи - там и отсылка приказа есть и момент получения подтверждения. Время между этими событиями легко вычислите по существующему в логах таймингу в мс.

Ренат, спасибо за ответ! Однако, в таком случае, хотел бы попросить Вас прокомментировать слова Вашего сотрудника из СД о состояниях отправленного ордера. По сути, им написано, что ответ сервера не означает, что ордер выставлен на Биржу, а только отправлен. 

Ниже копирую текст этого разъяснения (https://www.mql5.com/ru/forum/58012/page9#comment_2073582):

Видимо нужно объяснить как работает система ордеров и что означает placed.

Итак:

1. Вы отправляете запрос 

buy limit 5.00 SNGR-3.16 at 35501

2. Сервер МТ5 проверяет это запрос (параметры, претрейд и т.д.). Если есть проблемы, то в ответ на запрос вы получите получите соответствующий код ошибки.
После чего заводит у себя новый ордер присваивая ему тикет (#24025010) - у ордера при этом выставляется состояние started. Проставлять тикет ордера нужно для того чтобы в момент выставления ордера на бирже связать идентификатор ордера в МТ5 с ордером на бирже.
Терминалу отправляется транзакция о добавлении нового ордера в состоянии started - это можно отследить в OnTradeTransaction.

3. Далее торговый сервер (через шлюз) отправляет вашу заявку на биржу, если заявка успешно отправилась, то на ваш запрос отправляется ответ placed - это значит
"что заявка отправлена", результаты её работы будут выполняться асинхронно, т.к. заранее не известно через какое время ответит биржа.

Соответственно именно в этот момент вы видите в журнале запись

2015.11.26 10:48:23.726 Trades  'ххххх': buy limit 5.00 SNGR-3.16 at 35501 placed for execution in 7 ms
4. Спустя какое то время, биржа устанавливает ордер в своей системе, присваивает ему свой идентификатор, после чего уведомляет об этом шлюз и сервер МТ5.
Если биржа установила ордера - то в ордер в МТ5 прописывается идентификатор ордера на бирже, и состояние ордера меняется со started => placed.
Если биржа по какой-то причине отказала в выставлении ордера, то ордер снимается.


Это всё можно отследить простым журналирование транзакций приходящих в OnTradeTransaction.
ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 9 - Категория: биржевой трейдинг
 
Sergey Chalyshev:

Так вы логи разбирали, или замеряли реальное время?

Это получилось так же, как с дизельными двигателями фольксвагена. 

Реальное очень трудно замерять точно в данном случае. Тем более когда речь идет о релятивистских скоростях.

 Только логи. И если они не врут - то считаю что все замечательно со скоростью исполнения приказов.  ПО крайней мере, мне хватает "по горло".

 
kond777:

Ренат, спасибо за ответ! Однако, в таком случае, хотел бы попросить Вас прокомментировать слова Вашего сотрудника из СД о состояниях отправленного ордера. По сути, им написано, что ответ сервера не означает, что ордер выставлен на Биржу, а только отправлен. 

Ниже копирую текст этого разъяснения (https://www.mql5.com/ru/forum/58012/page9#comment_2073582):

Что Вам мешает просмотреть логи в журнале и понять цепочку сообщений:

09:33:18.898    Trades  '1006337': exchange sell 1.00 Si-3.16 at market
09:33:18.925    Trades  '1006337': exchange sell 1.00 Si-3.16 at market placed for execution in 26 ms
09:33:18.937    Trades  '1006337': deal #4986730 sell 1.00 Si-3.16 at 77731 done (based on order #39860859)
 

Вопрос: что люди с отстутствующим мат аппаратом даже на уровне третьего класса школы тут делают?

Это не оскорбление, а реальный и простой вопрос. Один внаглую набрасывает, другие не могут прочесть лог и сравнить тайминг вручную.

 

Кстати, вот небольшой скрипт для демонстрация скорости, с которой информация о совершенной сделке попадает в историю. При присоединении скрипта на график можно выбрать направление BUY или SELL. Объём открываемой позиции - 1 лот:

//+------------------------------------------------------------------+
//|                                               SpeedTradeTest.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.01"
#property strict
#property description "Демонстрация скорости, с которой информация о совершенной сделке попадает в историю"
#property script_show_inputs
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
enum type_trades  // перечисление типов торговой операции
  {
   BUY=1,     // скрипт покупает один лот
   SELL=2,    // скрипт продаёт один лот 
  };
input type_trades tt=BUY;
#include <trade\trade.mqh>
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   CTrade tr;
//--- show initial
   HistorySelect(0,TimeCurrent()+60);
   Print("Before: ",HistoryDealsTotal()," deals, ",HistoryOrdersTotal()," orders");
//--- do a deal
   if(tt==BUY)
     {
      if(tr.Buy(1.0))
        {
         uint ticks =GetTickCount();
         int  deals =HistoryDealsTotal();
         int  orders=HistoryOrdersTotal();
         //--- let's wait for 10 seconds
         Print("After: ",deals," deals, ",orders," orders");

         while((GetTickCount()-ticks)<10000)
           {
            HistorySelect(0,TimeCurrent()+60);
            if(HistoryDealsTotal()>deals || HistoryOrdersTotal()>orders)
              {
               Print("Result: ",HistoryDealsTotal()," deals, ",HistoryOrdersTotal()," orders");
               break;
              }
            Sleep(1);
           }
        }
     }
   else
     {
      if(tr.Sell(1.0))
        {
         uint ticks =GetTickCount();
         int  deals =HistoryDealsTotal();
         int  orders=HistoryOrdersTotal();
         //--- let's wait for 10 seconds
         Print("After: ",deals," deals, ",orders," orders");

         while((GetTickCount()-ticks)<10000)
           {
            HistorySelect(0,TimeCurrent()+60);
            if(HistoryDealsTotal()>deals || HistoryOrdersTotal()>orders)
              {
               Print("Result: ",HistoryDealsTotal()," deals, ",HistoryOrdersTotal()," orders");
               break;
              }
            Sleep(1);
           }
        }
     }
//---
   Print("Finished");
  }
//+------------------------------------------------------------------+


И информация, которая выводится во вкладку "Эксперты", после нескольких запусков. Думаю нетрудно вручную вычислить скорость:

20:35:09.678    Test (RTS-3.16,H1)      Before: 277 deals, 236 orders
20:35:09.716    Test (RTS-3.16,H1)      After: 277 deals, 236 orders
20:35:09.735    Test (RTS-3.16,H1)      Result: 278 deals, 237 orders
20:35:09.735    Test (RTS-3.16,H1)      Finished
20:35:31.731    Test (RTS-3.16,H1)      Before: 278 deals, 237 orders
20:35:31.762    Test (RTS-3.16,H1)      After: 278 deals, 237 orders
20:35:31.817    Test (RTS-3.16,H1)      Result: 279 deals, 238 orders
20:35:31.817    Test (RTS-3.16,H1)      Finished
20:36:44.764    Test (GAZR-3.16,H1)     Before: 279 deals, 238 orders
20:36:44.802    Test (GAZR-3.16,H1)     After: 279 deals, 238 orders
20:36:44.819    Test (GAZR-3.16,H1)     Result: 280 deals, 238 orders
20:36:44.820    Test (GAZR-3.16,H1)     Finished
20:37:03.052    Test (GAZR-3.16,H1)     Before: 280 deals, 239 orders
20:37:03.084    Test (GAZR-3.16,H1)     After: 280 deals, 239 orders
20:37:03.099    Test (GAZR-3.16,H1)     Result: 281 deals, 240 orders
20:37:03.099    Test (GAZR-3.16,H1)     Finished
Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
Файлы:
 
Renat Fatkhullin:

Вопрос: что люди с отстутствующим мат аппаратом даже на уровне третьего класса школы тут делают?

Это не оскорбление, а реальный и простой вопрос. Один внаглую набрасывает, другие не могут прочесть лог и сравнить тайминг вручную.

Большое спасибо за ответ. Теперь понятно отношение Руководителя компании к конечным пользователям МТ5. 

З.Ы. А Вам, Карпутов, стоило бы знать, что в логах МТ5 не отображается подтверждение сервера Биржи об установки-удаления отложенного ордера

 

После технического проигрыша остается только говорить про отношения.

Здесь технический форум, а не институт благородных девиц. Тяжесть предъявленных обвинений адекватна результату.

Ну и как оказалось, kond777 - родной клон Михаила Филимонова(раньше Mikalas, тоже отжигал с обвинениями). До последнего не признался в своей манипуляции.

 
Renat Fatkhullin:

После технического проигрыша остается только говорить про отношения.

Здесь технический форум, а не институт благородных девиц. Тяжесть предъявленных обвинений адекватна результату.

Ну и как оказалось, kond777 - родной клон Михаила Филимонова(раньше Mikalas, тоже отжигал с обвинениями). До последнего не признался в своей манипуляции.

Каков наглец!

Забанил обоих, и полевает грязью!

 
Nadin_Kass:

Каков наглец!

Забанил обоих, и полевает грязью!

Клоны наступают и ... уходят в небытие.
 

   А  Nadin_Kass - это я так понимаю свежеобретённый, но уже 2 -ой клон Михаила? :(

Как-то всё некрасиво получается. :(((

А я честно говоря, поверил Михаилу и даже  корил себя за деструктивное поведение. А тут вон оно оказывается что. :(

P.S. Ренат, спасибо за разъяснения. 

Причина обращения: