GKFX - обсуждение работы компании

Алекc1234

Местный житель
Так обработка ошибок в советнике присутствует? Как она реализована? Есть-ли конкретно обработка ошибки 128 и что должен советник выполнить в случае возникновения этой ошибки? И надо прописать Print() в обработке этой ошибки. Тогда будет больше информации откуда ноги растут.

Есть обработка ошибки торговый поток занят. Как считаете - этого недостаточно? А как реализовать обработку ошибки 128, не подскажете? Это нужно делать в функции OrderModify()?
 

qqmber

Почетный гражданин
Есть обработка ошибки торговый поток занят. Как считаете - этого недостаточно? А как реализовать обработку ошибки 128, не подскажете? Это нужно делать в функции OrderModify()?

У вас падает канал торгового потока на транспортном уровне. Временный обрыв связи, проще говоря, в процессе исполнения OrderModify(). Совершенно не обязательно виноват сервер, причина может быть где угодно. Тут мало что можно сделать средствами mql, разве что держать открытой сессию. Для этого надо раз в 28 (не помню точно - Ковалев знает) секунд модифицировать специально созданную далекую отложку и при неудаче поднимать тревогу.
 

Алекc1234

Местный житель
У вас падает канал торгового потока на транспортном уровне. Временный обрыв связи, проще говоря, в процессе исполнения OrderModify(). Совершенно не обязательно виноват сервер, причина может быть где угодно. Тут мало что можно сделать средствами mql, разве что держать открытой сессию. Для этого надо раз в 28 (не помню точно - Ковалев знает) секунд модифицировать специально созданную далекую отложку и при неудаче поднимать тревогу.

Так у меня и так в минуту два раза модифицируются отложки. И при неудачной модификации ничего и не пишется, потому как советник просто на эти 4 минуты засыпает и даже свойства его невозможно открыть в это время...
 

qqmber

Почетный гражданин
Так у меня и так в минуту два раза модифицируются отложки. И при неудачной модификации ничего и не пишется, потому как советник просто на эти 4 минуты засыпает и даже свойства его невозможно открыть в это время...

Понятно. Вам бы конечно техпо плача надо долбить, а не директора, ну а я бы открыл cmd и оставил там работать ping -t <ip вашего сервера>. Может помочь понять проблему.
 

Rann

Rann
Так у меня и так в минуту два раза модифицируются отложки. И при неудачной модификации ничего и не пишется, потому как советник просто на эти 4 минуты засыпает и даже свойства его невозможно открыть в это время...
Трассировку бы в этот момент сделать. То, что другие терминалы работают, это не показатель, т.к. маршруты разные. Но, вообще, странная ситуация.
 

Sergey Kovalyov

Элитный участник
Тут мало что можно сделать средствами mql, разве что держать открытой сессию. Для этого надо раз в 28 (не помню точно - Ковалев знает) секунд модифицировать специально созданную далекую отложку и при неудаче поднимать тревогу.

Точнее говоря, 30 секунд. Но для надежности я использую 28. На случай если 2 секунды не будет тиков, например. Отложку надо модифицировать правильно. В том смысле, что если мы попытаемся установить такую же цену, на какой отложка уже находится, то сессия не обновится. Продолжение по ссылке

http://forexsystemsru.com/obsuzhden...okera-blohi-i-nachat`-spokoino-torgovat`.html
 

Armagedon

Активный участник
По словам метаквотов таймаут-то 30 секунд, но может быть до 12 потоков, которые по непонятной логике забирают на себя управление и получается реконнект.
 

Алекc1234

Местный житель
Трассировку бы в этот момент сделать. То, что другие терминалы работают, это не показатель, т.к. маршруты разные. Но, вообще, странная ситуация.

Вчера написал в Вашу техподдержку, до сих пор нет ответа, поэтому снова пишу здесь. Вот что показывается во вкладке "Эксперты" при торговой паузе

2013.08.06 18:59:51 EURUSD,M1: отдали приказ на модификацию: Тикет 2023741 время: 2013.08.06 17:59:52
2013.08.06 18:59:51 EURUSD,M1: ошибка модификации: номер ошибки: 128: Тикет 2023741 время: 2013.08.06 17:59:52
2013.08.06 18:59:51 EURUSD,M1: вышли с модификации: Тикет 2023741 время: 2013.08.06 17:59:52
2013.08.06 18:56:31 EURUSD,M1: отдали приказ на модификацию: Тикет 2023741 время: 2013.08.06 17:56:32

Как видно, приказ на модификацию был в 17:56(то есть советник послал запрос на ваш сервер) а ответ пришёл только в 17:59(вышли из модификации). И связь тут ни при чём. У меня и у других брокеров - с тем же совом такая же ситуация - в разное время такие затыки случаются. Это явно от Метаквотсов - после последних обновлений что-то они там намутили и не пускают частые модификации....
 

Armagedon

Активный участник
Скорее всего у вас проблема с сетью.
Попробуйте арендовать VPS (10-15 долларов в месяц) и повесить терминалы на VPS.
Как советовали выше, запустите команду "ping -t <ip_сервера>" и следите как пакеты идут.
Может у вас нестабильное соединение и пакеты теряются. Тогда дело точно с вашей сетью, провайдером и тд.
 

Алекc1234

Местный житель
Скорее всего у вас проблема с сетью.
Попробуйте арендовать VPS (10-15 долларов в месяц) и повесить терминалы на VPS.
Как советовали выше, запустите команду "ping -t <ip_сервера>" и следите как пакеты идут.
Может у вас нестабильное соединение и пакеты теряются. Тогда дело точно с вашей сетью, провайдером и тд.

Нету у меня проблем с сетью. У меня оптиковолокно - 16Мб. Тот же советник, модифицирующий ордера один раз в минуту нормально работает без всяких торговых пауз!
 
Последнее редактирование:

Sergey Kovalyov

Элитный участник
2013.08.06 18:59:51 EURUSD,M1: отдали приказ на модификацию: Тикет 2023741 время: 2013.08.06 17:59:52
2013.08.06 18:59:51 EURUSD,M1: ошибка модификации: номер ошибки: 128: Тикет 2023741 время: 2013.08.06 17:59:52
2013.08.06 18:59:51 EURUSD,M1: вышли с модификации: Тикет 2023741 время: 2013.08.06 17:59:52
2013.08.06 18:56:31 EURUSD,M1: отдали приказ на модификацию: Тикет 2023741 время: 2013.08.06 17:56:32

Как видно, приказ на модификацию был в 17:56(то есть советник послал запрос на ваш сервер) а ответ пришёл только в 17:59(вышли из модификации). И связь тут ни при чём. У меня и у других брокеров - с тем же совом такая же ситуация - в разное время такие затыки случаются. Это явно от Метаквотсов - после последних обновлений что-то они там намутили и не пускают частые модификации....

Можно кусок кода, который это выводит? И еще вопрос, из этой же копии терминала другие советники не пытаются торговать?

Я тестирую свой скрипт для борьбы с реконнектом и тоже наткнулся на "странности" (на демке у другого брокера). Я как раз сейчас пытаюсь разобраться, в чем причина.

На данный момент, есть две версии:

1. Бага в терминале, в том месте, где терминал "позволяет" одновременно 8 торговых потоков. В 468-482 былы фиерические глюки на эту тему, потом, вроде, это "починили" (но я не проверял).

2. Ренат, вместо того, чтобы убрать реконнект, решил бороться с нашими скриптами борьбы с реконнектами (вот такая тавтология, да). Безумная версия, согласен, но наблюдая за выступлениями Рената на его форуме, я могу и не в такие безумные версии поверить. =)
 
Последнее редактирование:

Алекc1234

Местный житель
Можно кусок кода, который это выводит? И еще вопрос, из этой же копии терминала другие советники не пытаются торговать?

Нет, другие советники не торгуют, открыт только этот терминал.
Вот как-то так в коде
в самом начале
PHP:
  int nnb=0;bool mb=false;int nns=0;bool ms=false;
и дальше
PHP:
{ while ( nnb < 5) {
       if(IsTradeContextBusy( ) ==false&& IsConnected()==true) {
        Print("отдали приказ на модификацию: Тикет ",Tckt ," время: ",TimeToStr(TimeCurrent(), TIME_DATE|TIME_MINUTES|TIME_SECONDS));
                mb=OrderModify(OrderTicket(),opb,slb,tpb,0,CLR_NONE);
               nnb++;
         Print("вышли с  модификации: Тикет ",Tckt ," время: ",TimeToStr(TimeCurrent(), TIME_DATE|TIME_MINUTES|TIME_SECONDS));          
               if(mb==true)break;
          if(mb==false)     
          Print("ошибка модификации: Тикет ",Tckt ,"номер ошибки:",GetLastError()," время: ",TimeToStr(TimeCurrent(), TIME_DATE|TIME_MINUTES|TIME_SECONDS));        
                }
               Sleep(100);
                }  
            }
 
Последнее редактирование модератором:

Sergey Kovalyov

Элитный участник
И, если несложно, то и кусок терминального лога за это же время. Всякого ping failed и прочего там нет?
 

Алекc1234

Местный житель
И, если несложно, то и кусок терминального лога за это же время. Всякого ping failed и прочего там нет?

Вот лог - там, как я и писал раньше, Trade timeout

18:56:00 '112783': pending order #2023741 buy stop 0.02 EURUSD was modified -> price: 1.33299 sl: 1.33169 tp: 0.00000
18:56:00 '112783': modify pending order #2023629 sell stop 0.02 EURUSD at 1.32612 sl: 1.32742 tp: 0.00000 -> price: 1.33066 sl: 1.33196 tp: 0.00000
18:56:01 '112783': request was accepted by server
18:56:01 '112783': request in process
18:56:01 '112783': pending order #2023629 sell stop 0.02 EURUSD was modified -> price: 1.33066 sl: 1.33196 tp: 0.00000
18:59:51 '112783': modification of pending order #2023741 buy stop 0.02 EURUSD at 1.33299 sl: 1.33169 tp: 0.00000 -> price: 1.33725 sl: 1.33595 tp: 0.00000 failed [Trade timeout]
18:59:52 '112783': modify pending order #2023741 buy stop 0.02 EURUSD at 1.33299 sl: 1.33169 tp: 0.00000 -> price: 1.33725 sl: 1.33595 tp: 0.00000
 

FXTS

Местный знаток
Вопрос к Дмитрию Rann.

Здравствуйте Дмитрий.

В функции установки ордера OrderSend() есть параметр Slippage (Максимально допустимое отклонение цены для рыночных ордеров). Работает ли этот параметр на счетах типа ECN и конкретно у вас? К примеру, советник подает запрос на открытие ордера OrderSend() OP_BUY по цене 1.32000 и параметр Slippage имеет значение 0, значит ли это что брокер исполнит его по спреду либо если такой цены не будет - пропустит его, или он исполнит его по той цене которую "захочет", проигнорирует Slippage?

Второй вопрос, существуют ли у вас ночные фризы (запреты на торговлю) при формировании отчетов в серверной части (к примеру Альпари блокирует торговлю ночью на несколько секунд, хотя котировки идут, и иногда, советники, если попадают на это время сыпят оффквотами при модификации и закрытии и в итоге закрываемся хуже чем по алгоритму) и если такие моменты присутствуют, можно ли указать точное время когда это происходит конкретно у вас.

Спасибо!
 

Алекc1234

Местный житель
Вот этот выделенный кусок мне не нравится.
Невозможно открыть свойства = зависание советника. Советники виснут, как правило, от того что где-то алгоритм зацикливается. Просто от того что ордер не отправился - не может быть зависаний. Например, в каком-нибудь цикле ждет ответа от сервера. ;)

Ну вот советник отправляет запрос на сервер и ждёт, пока придёт ответ, от этого и ничего не делает и зависает...
 

Sergey Kovalyov

Элитный участник
Кстати, вернемся немного в топик =)

http://1fx.ru/interview/29067_intervyu-s-generalnym-direktorom-gkfx/

И напомню ссылку на предыдущее интервью (я как-то его пропустил мимо, хотя ссылка в ветке на него уже была, это я только что поиском выяснил =) ):

«На Форекс многие зарабатывают деньги, и очень большие», – Дмитрий Раннев, GKFX
 

qqmber

Почетный гражданин
Нету у меня проблем с сетью. У меня оптиковолокно - 16Мб. Тот же советник, модифицирующий ордера один раз в минуту нормально работает без всяких торговых пауз!

Здесь два важных факта.

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

Увеличение интервала модификации до 60 секунд снимает проблему. Если только это не случайный эффект, значит сервер отказывается обрабатывать слишком частые запросы. Сервер умеет контролировать частоту торговых операций, но имеет специальный код ошибки для сильно шустрых клиентов. Если, тем не менее, приходит error 128, это не тот случай. Я начинаю подозревать, что Ковалев прав - начудили что-то с коннектами в последних билдах.
 
Верх