Ошибки, баги, вопросы - страница 1520
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Останавливает, но не сразу
Не понял, дак корректно с ExpertRemove() работать в индикаторах или все же нет?
Для индикаторов вроде же есть функция, или она уже не актуальна
ChartIndicatorDelete();Не понял, дак корректно с ExpertRemove() работать в индикаторах или все же нет?
Нет. В индикаторах ExpertRemove() перекрыта.
"Останавливает, но не сразу" - это сказано вообще про ExpertRemove. Эта функция не прерывает работу программы.
Нет. В индикаторах ExpertRemove() перекрыта.
"Останавливает, но не сразу" - это сказано вообще про ExpertRemove. Эта функция не прерывает работу программы.
Пример приведите. Давайте исходник индикатора для иллюстрации проблемы
В то время как в справке функции IsStopped сказано, что работа программы принудительно завершается через 3 секунды, если поступила команда завершить выполнение mql-программы.
Причем если while(true) заменить на while(!IsStopped()) то при удалении с графика индикатор успешно завершает работу.
Забавная причина ошибки Internal Compiler Error ( функция используется в индикаторе ):
void SaveData ( uint handle_, int wrdata_, int interv_, string dpath_, int tmode_, int tmult_, long ctime_, long& ltime_ )
{
int ierr, wrtint;
// ----
if ( interv_ > 0 ) // work mode
{
if ( MQLInfoInteger ( MQL_TESTER ) == 0 ) { wrtint = interv_; } // не имеет значения
else { wrtint = interv_ * tmult_; } // не имеет значения
//
if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) ) // если закомментировать эту строчку, ошибка исчезнет
{
// некий код сохранения данных ... не имеет значения - проверено
//
ltime_ = ctime_; // в общем тоже не имеет значения
} // if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) )
} // if ( interv_ > 0 )
// ----
return;
} // void SaveData
( пардон, кнопку SRC намеренно не стал использовать, т.к. с ней не удаётся выделить нужные места в тексте )
Лечение очевидно, однако согласитесь - весьма забавный глюк. :)))
У одного ДЦ комиссия 16х2 долларов на оборот 1 млн. Они выставили в настройках сервера, видимо, комиссию 16 долл. И теперь при тесте на их сервере комиссия 16х2 списывается с каждой сделки независимо от её лотности, т.е. адекватный тест можно сделать только с лотом 10.
Это их криворукость в настройке серверов или реальное ограничение МТ5? Что конкретно им можно посоветовать сделать на серверах, чтобы комиссия корректно обрабатывалась в тестере?
В то время как в справке функции IsStopped сказано, что работа программы принудительно завершается через 3 секунды, если поступила команда завершить выполнение mql-программы.
Причем если while(true) заменить на while(!IsStopped()) то при удалении с графика индикатор успешно завершает работу.
Всё понятно. Сделали послабление на обычное удаление.
При закрытии терминала всё будет жёстко. Не более 3 секунд.
И я не уверен, что мы будем писать это в документации, 1. чтобы не потворствовать написанию таких безбашенных индикаторов (Вы это написали с целью проверить?) 2. Как ослабили, так и ужесточили.
Забавная причина ошибки Internal Compiler Error ( функция используется в индикаторе ):
...Лечение очевидно, однако согласитесь - весьма забавный глюк. :)))
Написал Вам личное сообщение.