Ошибки, баги, вопросы - страница 1905

 
Sergey Dzyublik:
Разряжал батарею на ноуте.
Работал в MetaEditor 1601.
Заряд батареи был на 0% и во время компиляции МТ4 программы ноут вырубился из-за нехватки питания.
Какое мое удивление, когда в следующий раз открыв рабочий файл вместо кода оказалось 311 KB NUL значений.

По возможности, рассмотрите пожалуйста вариант более безопасной реализации процедуры сохранения во время компиляции.
лучше поставить охранника к ноуту, который будет следить за зарядом батареи и при необходимости вставлять штепсель в розетку ))
 
Konstantin:
лучше поставить охранника к ноуту, который будет следить за зарядом батареи и при необходимости вставлять штепсель в розетку ))

 

Гибернация для этих целей есть... и розетки с таймером...

 
Sergey Dzyublik:
Вы уверены что число именно 860000000000000000 ?
Если перевести такое количество бит в гигабайты то получим - 1075000000 Гб.


Сам нули считал....

Сейчас поставил 6.18e+18, если будет больше OnTesterPass вызывается только на новом поколении. При прямом переборе вообще не вызывается... И об этом ни слова в справке. Люди должны сами выискивать такие "особенности" тестера, тратив на это уйму времени.


 

чего то запутался в спецификации контрактов:

1. размер тика == шаг с которой ходит цена == SYMBOL_TRADE_TICK_SIZE

2. цена тика == стоимость 1 пункта == SYMBOL_POINT

правильно я понимаю?

Данная путаница возникла из-за акции TGKA у брокера Открытие, там в спецификации указано не верно:

1. размер тика == 0.000005
2. цена тика == 0.00001 (должно быть 0.000001)

 
Почему в МТ5 сильно отличаются результаты сетов оптимизации от отдельных прогонов тестирования? Столкнулся с этим на фондовой секции. Просмотрел справку по особенностям работы с тестером, но нашел там лишь один не понятный момент, возможно влияющий на указанную ситуацию. Исходя из смысла раздела справки Моделирование времени в тестере, видно, что серверное время возвращаемое функцией TimeTradeServer() всегда равно времени GMT и нет поправки на смещение по часовому поясу. А т.к. тестируемый робот имеет окно работы между аукционами и синхронизирует это окно посредством функции TimeTradeServer(), то может быть тут кроется причина и следует при тестировании добавлять коррекцию по часовому поясу?
 

Здравствуйте! В МТ4, при удалении лимитного ордера расположенного внутри спреда часто возникает ситуация ошибки – зависает удаляемый ордер, которая лечится только перезагрузкой терминала. Насколько я смог разобраться механизм ее возникновения такой:

    1)  Выставляем лимитку  внутри спреда, близко к цене Ask (для ордеров Buy Limit) или Bid (для ордеров Sell Limit) и через некоторое время пробуем её удалить.

    2)  Посылаем команду OrderDelete(), пока эта команда идет на сервер - ордер может уже исполниться на сервере (он же внутри спреда очень близко к цене активации). Получается, что когда команда дойдет до сервера, она будет применена уже к рыночному ордеру – получаем ошибку в терминале и зависший ордер. Ордер в терминале, при этом, остается лимитным  (через функцию OrderType() - также определяется как лимитный), рыночным он отобразится только после перезагрузки терминала. Если продолжать удалять его как лимитный  будем видеть ошибку в логе экспертов под кодом: 3, а в логе журнала терминала:  [Invalid parameters]. Вообще никакие действия с подвешенным таким образом ордером невозможны – в терминале он лимитный, а на сервере  рыночный. Вручную ордер так же не удаляется.

Прилагаю упрощенный советник (только для Buy Limit), для воспроизведения ошибки, и профиль с установленными параллельно 8-ю советниками (так ошибка проявится быстрее, чем, если ее ловить одним советником – хотя она возникает и при одном установленном советнике). Ордер Buy Limit в советнике устанавливается на 1 пятизначный пункт ниже цены Ask и удаляется через 1 секунду после установки. Если установить ордер даже в 5 пунктах ниже Ask и удалять через  любое количество секунд/минут/часов ошибка все равно периодически возникает, просто реже, потому что механизм ее возникновения не меняется.

Необходимо запустить терминал и дождаться появления зависшего ордера. Обычно ждать не более часа, в зависимости от активности рынка.

На всякий случай, система:

Microsoft Windows XP (X86 based PC), IE 08.00, 2 x  Intel Core i3-2120  @ 3.30GHz, RAM: 2421 / 3981 Mb, HDD: 195187 / 666422 Mb, GMT+03:00

МТ4:  Version  4.00 Build 1090 (19 May 2017)

MetaEditor:  Version  5.00  build 1601 (19 May 2017)

Файлы:
 

Последний билд терминала не может подключится к ICMarkets реал. Заменил на более старый 1596 - чудесно подключился.

И вот спрашивается, а нужно ли обновляться терминалу на самые последние билды, если сервера брокеров ещё не обновились?

[Удален]  
zenz:

Здравствуйте! В МТ4, при удалении лимитного ордера расположенного внутри спреда часто возникает ситуация ошибки – зависает удаляемый ордер, которая лечится только перезагрузкой терминала. Насколько я смог разобраться механизм ее возникновения такой:

    1)  Выставляем лимитку  внутри спреда, близко к цене Ask (для ордеров Buy Limit) или Bid (для ордеров Sell Limit) и через некоторое время пробуем её удалить.

    2)  Посылаем команду OrderDelete(), пока эта команда идет на сервер - ордер может уже исполниться на сервере (он же внутри спреда очень близко к цене активации). Получается, что когда команда дойдет до сервера, она будет применена уже к рыночному ордеру – получаем ошибку в терминале и зависший ордер. Ордер в терминале, при этом, остается лимитным  (через функцию OrderType() - также определяется как лимитный), рыночным он отобразится только после перезагрузки терминала. Если продолжать удалять его как лимитный  будем видеть ошибку в логе экспертов под кодом: 3, а в логе журнала терминала:  [Invalid parameters]. Вообще никакие действия с подвешенным таким образом ордером невозможны – в терминале он лимитный, а на сервере  рыночный. Вручную ордер так же не удаляется.

Прилагаю упрощенный советник (только для Buy Limit), для воспроизведения ошибки, и профиль с установленными параллельно 8-ю советниками (так ошибка проявится быстрее, чем, если ее ловить одним советником – хотя она возникает и при одном установленном советнике). Ордер Buy Limit в советнике устанавливается на 1 пятизначный пункт ниже цены Ask и удаляется через 1 секунду после установки. Если установить ордер даже в 5 пунктах ниже Ask и удалять через  любое количество секунд/минут/часов ошибка все равно периодически возникает, просто реже, потому что механизм ее возникновения не меняется.

Необходимо запустить терминал и дождаться появления зависшего ордера. Обычно ждать не более часа, в зависимости от активности рынка.

На всякий случай, система:

Microsoft Windows XP (X86 based PC), IE 08.00, 2 x  Intel Core i3-2120  @ 3.30GHz, RAM: 2421 / 3981 Mb, HDD: 195187 / 666422 Mb, GMT+03:00

МТ4:  Version  4.00 Build 1090 (19 May 2017)

MetaEditor:  Version  5.00  build 1601 (19 May 2017)


Обновляйте Windows и пользуйтесь лицензией
 
Vladimir Zubov:

Обновляйте Windows и пользуйтесь лицензией

Бред.


Для разработчиков - информация о системе взята из лога терминала. Не знаю, почему там не отображается что система с пакетом обновлений SP3.

 
zenz:

Бред.


Для разработчиков - информация о системе взята из лога терминала. Не знаю, почему там не отображается что система с пакетом обновлений SP3.


Ренат писал, что с 10 июня XP и Vista не будeт поддерживаться