Обновление платформы MetaTrader 4 build 670: виртуальный хостинг, web-запросы и работа с сигналами из MQL-программ - страница 19
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проблему нашли и исправили, но вам придется дождаться следующего обновления терминала, временного решения для исправления некорректного поведения терминала, к сожалению, нет.
Приносим свои извинения за доставленные неудобства.
Справка:
ArraySize
Возвращает количество элементов указанного массива.
int ArraySize(
const void& array[] // проверяемый массив
);
В реальности так:
не работает. Работает так:
- значит, функция возвращает значение типа uint. Поправьте справку.
P.S. Meat несколько дней назад подымал этот вопрос, а справка до сих пор не исправлена.
Похоже, принадлежу к числу немногих, кто использует тестер вдумчиво... Продолжаю его мучить. Одну ошибку уже нашел, теперь вторая.
Речь пойдет об учете комисси в тестере. Напишем тестовый советник расчета комиссии:
Залогинился на счет, где комиссия равна 36 у.е. за 1 миллион у.е. (полный круг).
Запуская в тестере данный советник выяснил, что комиссия считается корректно для разных символов и для разных валют торгового счета. Более того, если на том же торговом сервере зайти на счет с другой комиссией. То комиссия в тестере тоже изменится. Т.е. данные о размере комиссии в тестере привязаны не к торговому серверу, а к торговому счету (config\accounts.ini - здесь, видимо ). Что есть правильно.
Однако, все же для одной валютной пары в тестере комиссия вычисляется неверно:
Речь идет о помеченной красным USDJPY. Причем для всех остальных XXXJPY комиссия вычисляется верно.
Да и из здравого смысла вы можете видеть по скрину, что за 10 лотов USDJPY ну никак нельзя заплатить комиссию в размере $0.35 (USD выставлена в качестве валюты тестерного торгового счета). Забегая вперед скажу, что на реальном торговом счете комиссия по USDJPY начислялась корректно. Т.е. проблема, похоже, именно в тестере.
Прошу разработчиков прокомментировать. И планируется ли добавление штатной возможности задавать комиссию в тестере?
Вот кстати к разговору о комиссиях: Когда уже наконец можно будет программно узнать комиссию по инструменту? Разработчики, ну ё-маё! Уж скоко лет об этом просим. Это реально необходимая вещь для торговли. А всякие ваши танцы-шманцы с MQL, Сигналами и прочим - это уже вторично, т.к. не относится непосредственно к трейдингу.
Куда дели торговую панель? Положите на место!
Куда дели торговую панель? Положите на место!
Всё в терминале на месте. А Вы про какую панель?
Вот кстати к разговору о комиссиях: Когда уже наконец можно будет программно узнать комиссию по инструменту? Разработчики, ну ё-маё! Уж скоко лет об этом просим. Это реально необходимая вещь для торговли. А всякие ваши танцы-шманцы с MQL, Сигналами и прочим - это уже вторично, т.к. не относится непосредственно к трейдингу.
Запустите код выше в тестере (выбрать только валюту счета в тестере, отличную от USD - см. ниже) - сразу узнаете текущую комиссию у себя на счете. Хотя, конечно, вы имели в виду вариант прямых рук:
MarketInfo(SymbolName, MODE_COMMISSION);
Видимо, разработчики еще не совсем знают, какой ответ давать. Ведь комиссия в MT4 может начисляться двумя способами - относительный (процент от цены - самый распространенный в мире) и абсолютный (за лот, вне зависимости от смысла торгуемого символа).Похоже, принадлежу к числу немногих, кто использует тестер вдумчиво... Продолжаю его мучить. Одну ошибку уже нашел, теперь вторая.
Речь пойдет об учете комисси в тестере. Напишем тестовый советник расчета комиссии:
Залогинился на счет, где комиссия равна 36 у.е. за 1 миллион у.е. (полный круг).
Запуская в тестере данный советник выяснил, что комиссия считается корректно для разных символов и для разных валют торгового счета. Более того, если на том же торговом сервере зайти на счет с другой комиссией. То комиссия в тестере тоже изменится. Т.е. данные о размере комиссии в тестере привязаны не к торговому серверу, а к торговому счету (config\accounts.ini - здесь, видимо ). Что есть правильно.
Однако, все же для одной валютной пары в тестере комиссия вычисляется неверно:
Речь идет о помеченной красным USDJPY. Причем для всех остальных XXXJPY комиссия вычисляется верно.
Перехвалил разрабов из-за своей невнимательности к результатам выложенного выше советника для тестера. Оказывается, MT4-тестер неправильно вычисляет комиссию для всех USDXXX-символов, если в тестере в качестве валюты счета выбрана USD. Если в тестере выбрать отличную от USD-валюту (например, EUR или DKK) - комиссия будет вычисляться в тестере верно.
Это баг и очень серьезный. Но поскольку тестером, видимо, пользуются без понимания, что к чему, баг уже давно с седой бородой. Компетенция, однако...
Желающие могут портировать MQL4-код на MQL5 и проверить наличие подобного бага в MT5-тестере...
Что же касается всех XXXYYY, где XXX != USD. То комиссию для них вычисляет правильно (внимательно перебрал) , включая экзотику (NOKSGD и т.д.) и металлы. При этом вычисляет правильно для любых валют счета, выбранных в тестере.
Возможно, исправление разрабами этого бага в тестере сподвигнет их заодно наделить MT4-тестер штатной возможностью менять величину комиссии в тестере, как это сделали недавно со спредом. Правда, тогда MT4-тестер по возможностям вырвется в еще больший отрыв перед MT5-тестером... И еще раз напомню.
Всё в терминале на месте. А Вы про какую панель?
Я вот об этом:
Позже обнаружилось, что такая ситуация возникает, если инструмент недоступен для торговли.
Вопрос закрыт.