Функция CustomTicksAdd() содержит серьезную ошибку. Надеюсь, администратор поможет решить эту проблему. Спасибо! - страница 3

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
это недокументированные серверные возможности.
Я также думаю, только у вас получилось лучше сформулировать.
Это настройка пользовательского символа, по идеи от неё зависеть должна интерпретация поступающих тиков - рисовать по цене тика ask/bid или по last бары.
Вот нашёл у себя, на полке пылилось.
Выложил сюда. https://www.mql5.com/ru/code/60406
Простенький код конвертера периодов, в нём довольно просто понять, что от флагов тиков формирование баров не зависит.
Вот нашёл у себя, на полке пылилось.
Выложил сюда. https://www.mql5.com/ru/code/60406
Простенький код конвертера периодов, в нём довольно просто понять, что от флагов тиков формирование баров не зависит.
Вы там используете CustomRatesReplace(), она заменяет данные о тиках в файле, а тут речь о CustomTicksAdd(), и эта функция транслирует терминалу тики, а терминал уже потом формирует базу с барами.
Вы там используете CustomRatesReplace(), она заменяет данные о тиках в файле, а тут речь о CustomTicksAdd(), и эта функция транслирует терминалу тики, а терминал уже потом формирует базу с барами.
Хотя вижу, что и потом добавляете вроде как тики. В общем не вникал глубоко в код. Корректно сравнивать два режима построения графиков было бы.
Приложите короткий код, который воспроизводит ошибку.
Я создал скрипт и мне нужно проверить эту проблему на платформе MT5 брокера AMP. Для этого я скачал установочный пакет программного обеспечения MT5 и мне нужно его установить. Я заранее загрузил файл TICK[] обычного контракта EPM25 в файл «EP_2025.06.02_05_EPM25_TICK_YZ.csv». Мне нужно скопировать этот файл в папку «Файлы». После запуска скрипта сравните обычный контракт EPM25 и пользовательский контракт EPM25_HF, и эта проблема проявится.
Если добавить в скрипт флаг 1300, то получим сообщение
Как вообще такое может быть, что флаг неизвестен?
Как я понимаю, проблема в том, что по этому флагу формируется открытие, и в последствии тело свечи/бара/К-линии, а ожидается, что тик будет пропущен.
Спасибо за ответ, но эта настройка является настройкой по умолчанию и не может решить проблему.
Я создал скрипт и мне нужно проверить эту проблему на платформе MT5 брокера AMP. Для этого я скачал установочный пакет программного обеспечения MT5 и мне нужно его установить. Я заранее загрузил файл TICK[] обычного контракта EPM25 в файл «EP_2025.06.02_05_EPM25_TICK_YZ.csv». Мне нужно скопировать этот файл в папку «Файлы». После запуска скрипта сравните обычный контракт EPM25 и пользовательский контракт EPM25_HF, и эта проблема проявится.
Если убрать лишние цены из тика, то график рисует правильно. По цене ласт.
Если убрать лишние цены из тика, то график рисует правильно. По цене ласт.
Я знаю это. На самом деле я хочу реализовать динамическое воспроизведение исторических цен с помощью пользовательских графиков. При использовании этого решения часть информации будет потеряна. То есть, когда фактической транзакции нет, но цены BID и ASK меняются, информацию невозможно перенести в пользовательский график. Если устранить ошибку в механизме формирования графиков японских свечей с помощью CustomTicksAdd(), можно добиться точного воспроизведения.
Я знаю это. На самом деле я хочу реализовать динамическое воспроизведение исторических цен с помощью пользовательских графиков. При использовании этого решения часть информации будет потеряна. То есть, когда фактической транзакции нет, но цены BID и ASK меняются, информацию невозможно перенести в пользовательский график. Если устранить ошибку в механизме формирования графиков японских свечей с помощью CustomTicksAdd(), можно добиться точного воспроизведения.
Нет, ничего не будет потеряно. Посмотрите тики пользовательского символа которые создаёт ваш скрипт с моей правкой они будут полностью идентичны тому что транслирует терминал.
Посмотрите справку, почему MqlTick заполняет все поля.
В CustomTicksAdd ошибки нет.
В этом скрипте вообще то нужно было использовать CustomTicksReplace, а вот при использовании как вы пишите "динамическое воспроизведение цен", то тут нужно использовать CustomTicksAdd
При использовании этого решения часть информации будет потеряна. То есть, когда фактической транзакции нет, но цены BID и ASK меняются, информацию невозможно перенести в пользовательский график.
У меня есть программа, которая строит пользовательские секундные графики в биржевом терминале (по ценам ласт) , и там не теряется никакая информация.
Всё соответствует реальным тикам. Я не могу её здесь показать, но я точно уверен, что ошибка не в функции CustomTicksAdd , а в вашем представлении как она должна работать.
Измените своё мнение о ней и сможете найти правильное решение.
С уважением.