Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite - страница 26
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
You used static. This is one time initialization!
Переменная - static, для неё выполнена однократная инициализация.
О, простите, иногда я не вижу леса за деревьями.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Тестируем 'CopyTicks'
traveller00, 2020.04.15 08:29
MT5 последняя релизная сборка 2361. В аттаче кастомный символ. Создать символ из json, импортировать тики, запустить тест советника на чарте этого символа.
Советник
Параметры теста
1. Счёт неттинг.
1.1. При указанных датах вывод похож на правду: 2000 0 2000 0.
1.2. При смене дат на 07.04.2020-08.04.2020 вывод становится странным: -1 4004 1 0.
Во-первых, почему появляется ошибка в первом случае? Во-вторых, почему второй случай берёт только 1 тик? Дата запроса тиков не менялась.
2. Счёт хедж.
2.1. При указанных датах вывод становится странным: 2000 0 1 0.
Почему второй случай берёт только 1 тик? Дата запроса тиков не менялась.
2.2. При смене дат на 07.04.2020-08.04.2020 вывод остановится странным, но таким же: 2000 0 1 0.
Отсюда вопросы: почему CopyTicks с фиксированными параметрами зависит не только от дат тестирования, но и от типа счёта? Или я что-то не понимаю и делаю не так?
Это сильно затрудняет работу, просьба по возможности поправить. Удалось воспроизвести? Что-то ещё нужно от меня для повторения? Спасибо.
Просьба поправить странные баги. Или пояснить, что я делаю не так. Спасибо.
Вот такая строка в коде намертво вешает Метаедитор при попытке компиляции, либо закрытии окна, либо переключении на другую вкладку:
2380:
Такой вопрос: есть индикатор 'DigitsTest', он в OnInit() и в OnCalculate() распечатывает Digits(). Если индикатор запустить в тестере или онлайн (на графике) - Digits() работает верно.
А теперь эксперимент: советник 'DigitsTest EA' запускается на символе 'AUDJPY' (на сегодня по символу 'AUDJPY' цена 67.448 - то есть Digits() выдаёт '3'). Советник создаёт два хендла индикатора 'DigitsTest' - первый на символе 'EURJPY' (на сегодня по символу 'EURJPY' цена 116.326 - то есть Digits() выдаёт '3'), а второй на символе 'EURUSD' (на сегодня по символу 'EURUSD' цена 1.08333 - то есть Digits() выдаёт '5'). И теперь индикаторы (созданные в советнике) распечатывают Digits() равное '3'.
Вопрос: почему оба индикатора выдают Digits() равное '3', а не '3' и '5'?
Код индикатора:
Код советника:
Результат запуска в тестере стратегий (отладка на истории)
На распечатке видно, что индикатор созданный на символе и 'EURJPY' и 'EURUSD' распечатывают Digits равное '3'.
2380
SymbolInfoTick не получает тиковые объёмы и реальные объёмы
Код:
Результат запуска
2380
SymbolInfoTick не получает тиковые объёмы и реальные объёмы
Код:
Результат запуска
А почему вы считаете, что там должны быть объёмы???
В документации однозначно сказано
Возвращает текущие цены для указанного символа в переменной типа MqlTick.
а про объёмы ничего нет.
2380
SymbolInfoTick не получает тиковые объёмы и реальные объёмы
Код:
Результат запуска
Дополнил вызовами SYMBOL_VOLUME и SYMBOL_VOLUME_REAL - всё равно объёмов нет.
Результат
Дополнил вызовами SYMBOL_VOLUME и SYMBOL_VOLUME_REAL - всё равно объёмов нет.
Результат
Биржевой инструмент
Какой вы объём ожидаете на форекс? AUDUSDОбъёмы тиков удалось получить только при помощи CopyTickVolume. Почему остальные способы перестали работать?
Результат
Если на хедже открыть две противоположные позиции по лоту, а затем схлопнуть через CloseBy, то во вкладке История (режим) будут показаны эти две позиции по лоту.
Такое отображение схлопнувшихся позиций показывает, будто было полностью проторговано 2 лота. Но на самом деле - один.
В MT4 с этим сделано хорошо - одна из позиций показывается с нулевым объемом.
Строка для поиска: Uluchshenie 021.