на вкладке история счёта выберите всю историю (правый клик на любом ордере)
Не совсем Вас понял...
Там и так вся история выбрана.
Тема была о том, что реальный баланс 811.7, а во вкладке "торговля" показывается 812.33 и то же самое определяет эксперт через AccountBalance().
А вот после перелогина уже все становится нормально и кругом баланс 811.7
Недавно столкнулся с такой ситуацией:
Есть один счет, торговля на котором ведется с двух терминалов МТ4. Иногда бывает так, что при отсутствии любых (текущих или отложенных) ордеров на терминалах отображается разный баланс (эквити). Соответственно, советник открывает неправильный лот и торговля уже идет не по системе...
Смоделировать самому ситуацию получилось довольно легко. Пробовал практически одновременно закрывать 2 открытые позиции из разных терминалов. Получилось с третьего раза.
На первом рисунке видно терминал с закладкой "История счета". Там баланс 811.7 и он правильный, а сверху рисунка видно баланс 812.33 (выводится советником через AccountBalance()). Также, ошибочный баланс 812.33 видно и на вкладке "Торговля" (второй рисунок).
Достиглось это одновременным (практически) закрытием ордеров 57481168 и 57481175 с разных терминалов. И получилось, что данный терминал не учел последнюю позицию на "-0.63", хотя в истории она отобразилась корректно. Лечится это перелогиниванием или перезапуском терминала.
Заставлять советник перелогиниваться после каждого закрытия позиции не серьезно. Да и это может не помочь, поскольку я вижу одинаковый баланс на терминалах или нет и могу перелогиниться, а вот как обьяснить это советникам, если нету связи между двумя терминалами?
Кто-нибудь встречался с подобной ситуацией? Просьба разработчиков как-то прокоментировать возможные причины и способы их устранения при работе советником.
Вы думаете, кроме вас много народа занимется этим?
Достиглось это одновременным (практически) закрытием ордеров 57481168 и 57481175 с разных терминалов. И получилось, что данный терминал не учел последнюю позицию на "-0.63", хотя в истории она отобразилась корректно. Лечится это перелогиниванием или перезапуском терминала.
RefreshRates() перед OrderSend() не пробовали?
Пробовал в эксперте, который определяет текущий баланс поставить его перед AccountBalance().
Результат отрицательный :(. Все осталось как описано выше. Помогает только перелогин.
Мне очень странно, что во вкладке "торговля" и "история счета" отображаются разные данные (почему они считаются по-разному). Это какой-то конкретный глюк...
Пробовал в эксперте, который определяет текущий баланс поставить его перед AccountBalance().
Результат отрицательный :(. Все осталось как описано выше. Помогает только перелогин.
Мне очень странно, что во вкладке "торговля" и "история счета" отображаются разные данные (почему они считаются по-разному). Это какой-то конкретный глюк...
Я точно не знаю, т.к. не разработчик МТ.
Предполагаю, что это никакой не глюк, а особенность реализации:
1. В закладке "история счёта" прибыль считается на стороне клиента
2. В закладке "торговля" данные берутся от сервера:
а) транзакция со второго терминала могла на сервере ещё не завершиться и сделка -0.63 ещё не отразилась в балансе
б) прошло мало времени - не было запроса баланса на сервер
Я встречался, исходные данные полностью аналогичные - 2 терминала и один счет.
Отмечу, что терминалы в момент обнаружения глюка были подключены к разным "под-серверам" брокера (специально проверил, кликнув на индикатор состояния соединения).
После ручного подключения 2-го терминала к тому "под-серверу", где баланс был больше (реал все-таки =), баланс стал совпадать.
Думается, проблема в синхронизации данных между "под-серверами" брокера.
Я точно не знаю, т.к. не разработчик МТ.
Предполагаю, что это никакой не глюк, а особенность реализации:
1. В закладке "история счёта" прибыль считается на стороне клиента
2. В закладке "торговля" данные берутся от сервера:
а) транзакция со второго терминала могла на сервере ещё не завершиться и сделка -0.63 ещё не отразилась в балансе
б) прошло мало времени - не было запроса баланса на сервер
Возможно и так, но баланс в окне "торговля" (и запрос AccountBalance()) не обновится и через час, если не будет перелогина. Т.е. вариант б) не проходит. Интересно, в каких случаях происходит запрос баланса на сервер.
Я встречался, исходные данные полностью аналогичные - 2 терминала и один счет.
Отмечу, что терминалы в момент обнаружения глюка были подключены к разным "под-серверам" брокера (специально проверил, кликнув на индикатор состояния соединения).
После ручного подключения 2-го терминала к тому "под-серверу", где баланс был больше (реал все-таки =), баланс стал совпадать.
Думается, проблема в синхронизации данных между "под-серверами" брокера.
Спасибо за идею. Поэкспериментировал. Действительно, если разные серверы брокера в двух терминалах, то добиться такой ситуации намного легче.
Но раза с 10-го у меня получилось и при одинаковом сервере. Так, что вопрос остается...
Скорее всего Вы торгуете разными валютами, а приход тиков у них не совпадает. Вот и получается, что обновление происходит не одновременно. Для синхронизации нужно советники вешать на одну и туже валюту, а торговля пусть идёт по разным. На чемпионате был такой советник, который был прикреплён к валюте с частыми тиками, а торговля велась на совершенно других.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Недавно столкнулся с такой ситуацией:
Есть один счет, торговля на котором ведется с двух терминалов МТ4. Иногда бывает так, что при отсутствии любых (текущих или отложенных) ордеров на терминалах отображается разный баланс (эквити). Соответственно, советник открывает неправильный лот и торговля уже идет не по системе...
Смоделировать самому ситуацию получилось довольно легко. Пробовал практически одновременно закрывать 2 открытые позиции из разных терминалов. Получилось с третьего раза.
На первом рисунке видно терминал с закладкой "История счета". Там баланс 811.7 и он правильный, а сверху рисунка видно баланс 812.33 (выводится советником через AccountBalance()). Также, ошибочный баланс 812.33 видно и на вкладке "Торговля" (второй рисунок).
Достиглось это одновременным (практически) закрытием ордеров 57481168 и 57481175 с разных терминалов. И получилось, что данный терминал не учел последнюю позицию на "-0.63", хотя в истории она отобразилась корректно. Лечится это перелогиниванием или перезапуском терминала.
Заставлять советник перелогиниваться после каждого закрытия позиции не серьезно. Да и это может не помочь, поскольку я вижу одинаковый баланс на терминалах или нет и могу перелогиниться, а вот как обьяснить это советникам, если нету связи между двумя терминалами?
Кто-нибудь встречался с подобной ситуацией? Просьба разработчиков как-то прокоментировать возможные причины и способы их устранения при работе советником.