Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ошибка загрузки файла в советнике . Из разряда найдите 10 отличий . Первый код относится к срипту .Второй к советнику , они идентичны Ctrl-C Ctrl-V. В скрипте код работает , в советнике нет.
Чтобы найти 10 отличий, надо посмотреть код открытия файла. (и добавить в этот код открытия вывод кода ошибки при неудаче)
Во-вторых, если Вы хотите тестировать эксперта с этим файлом добавьте в код эксперта строчку #property tester_file "KitMaRsi.csv"
Здравствуйте. В MQL4 при выполнении программы может возникнуть такая ошибка ERR_HISTORY_WILL_UPDATED(4066), код которой вернет функция GetLastError(). Подскажите, а в MQL5 есть аналогичная ошибка? Смотрел здесь https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes но не чего похожего не нашел.
За ошибку не скажу. Терминал сам следит за тем чтобы данные были синхронизированы, програмно можно синхронизировать (загрузить) данные и проверить синхронизирована или нет история.
Организация доступа к данным описана тут (есть пример скрипта загрузки истории).
Функции которые могут понадобится: SeriesInfoInteger и SymbolIsSynchronized
Как то не работает switch с символьными переменными...
Вместо:
'type' - illegal switch expression type
'Buy' - constant expression is not integral
Используйте идентификаторы, а не текст. Что будет проще и логичней...
Как то не работает switch с символьными переменными...
Вместо:
'type' - illegal switch expression type
'Buy' - constant expression is not integral
Приходится рисовать так:
что не так наглядно да и кривовато.
На других языках прокатывает...
Надо как-то по другому писать?
я сделал так
За ошибку не скажу. Терминал сам следит за тем чтобы данные были синхронизированы, програмно можно синхронизировать (загрузить) данные и проверить синхронизирована или нет история.
Организация доступа к данным описана тут (есть пример скрипта загрузки истории).
Функции которые могут понадобится: SeriesInfoInteger и SymbolIsSynchronized
Есть ли в MQL5 аналоги таким библиотекам, как stdlib.mqh, WinUser32.mqh, stderror.mqh, в частности интересует функция PostMessageA?
При оптимизации с несколькими агентами результаты на график выводятся в порядке их обработки, т.е. вперемежку. Можно ли сделать порядок вывода результатов в соответствии с выборкой параметров, как это было в МТ4? Т.е. пришедший позже результат вставлялся в нужное место. Это к тому, что неудобно отслеживать тенденции и закономерности в процессе оптимизации, а анализ результатов можно делать только после окончания расчетов.
++: Это все про оптимизацию с полным перебором - на генетике это, естественно, не имеет смысла.
Описание в справочнике
В действительности
bool ObjectCreate(
long chart_id, // идентификатор графика
string name, // имя объекта
ENUM_OBJECT type, // тип объекта
intn win, // индекс окна);
Запустим на M1 код примера iFractals из справки, где используется вторая - полная - форма вызова функции OnCalculate(). Но перед этим внутри этой функции исправим
на
для того, чтобы не упустить из виду ни одной строки с выводимыми результатами (если оставить как есть, визуально всегда будет видна 1, поскольку другие значения бывают редко и сразу же сменяются единицей, поэтому кажется, что единица выводится всегда). После запуска убеждаемся, что не единичные значения появляются каждую минуту, то есть на каждом новом баре, из чего недвусмысленно явствует, что индикатор перерисовывается ежеминутно полностью, несмотря на то, что в коде используется экономный алгоритм. Сомневающиеся могут добавить несколько строк кода, рисующего на каждом фрактале, скажем, вертикальные линии, затем, после первой отрисовки, удалить их, дождавшись через минуту, с появлением нового бара, появления полного набора таких же линий. Ни о какой дорисовке только последнего фрактала или линии речи почему-то не идёт.
Да, действительно, индикатора из примера у функции iFractals() обновляет заново свои индикатрные буфера значениями из встроенного индикатора. "Виновато" в этом второе условие в строчке (выделено желтым):
Объяснение: на каждом тике сравниваются эти два значения и в конце функции стоит присваивание
//--- запомним количество значений в индикаторе Fractals bars_calculated=calculated;
И разница между ними может возникнуть в дух случаях:
В данном случае не сделано разделение этих двух событий, вы это обнаружили. Пока не могу сказать, будем ли мы править данный пример, чтобы не возникало таких вопросов.