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

 
8.6е+18
Вы уверены что число именно 860000000000000000 ?
Если перевести такое количество бит в гигабайты то получим - 1075000000 Гб.
 
2017.05.29 22:53:02.047 MQL4 Market: failed create temp file for downloading product 'Prodigy' [267]

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

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

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

Может быть есть смысл рассмотреть вариант приобретения ноута с более энергоемкой батареей ? Или работать безопасно от сети ? 
 
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)

Файлы: