Ошибки, баги, вопросы - страница 718

 
papaklass:
Поставил 64-битную версию теминала. По сравнению с 32-битной, как новая платформа. Половину иконок на панели нет (обзор рынка, навигатор, тестер, инструменты и т.д.). Копирую экспертов в каталог MQL5\Experts\ ни тестер, ни терминал, ни редактор их не видят. С индикаторами аналогично. В чем проблема? Почему разные версии ОДНОЙ И ТОЙ ЖЕ платформы так себя ведут?
В 64бит. лучше всего исходники и ЕХешники лучше всего закидывать в сам терминал. Файл - открыть каталог данных. Далее как в прогр. файлах. Иначе плохо.
 

 Использую структуру для задания массива значений, массива массивов... Затем в цикле проделываю вроде этого:

      Buffer_Array[tf/2].bars_calculated=Buffer_Array[tf/2].calculated;

Возникла необходимость задействовать глобальные переменные терминала, которые бы тоже назначались в цикле в массив значений, но столкнулся с проблемой заведения и обращения к массиву строковых имён глобальных переменных, получилось только так:

GlobalVariableSet("bc",Buffer_Array[tf/2].calculated);
где всякий раз разные значения будут переприсваиваться в одну и ту же глобальную переменную bc, в то время как нужно-то в несколько разных. Как это всё переделать по аналогии с первой сторокой кода? Неужто как-то через сложение: "bc"+[tf/2]?
 
x100intraday:

Возникла необходимость задействовать глобальные переменные терминала, которые бы тоже назначались в цикле в массив значений, но...............

Пишите массив в ресурс, ресурс (на случай падения терминала) регулярно сохраняйте на диске.  Быстро и надёжно.

Вот ещё вариант: https://www.mql5.com/ru/code/845

CFastFile - класс для работы с байтовым массивом как с файлом
CFastFile - класс для работы с байтовым массивом как с файлом
  • голосов: 14
  • 2012.02.29
  • o_O
  • www.mql5.com
Класс CFastFile избавляет от необходимости промежуточной записи данных в физический файл на диске. Это позволяет получить значительное ускорение при работе с данными.
 
MetaDriver:

Пишите массив в ресурс, ресурс (на случай падения терминала) регулярно сохраняйте на диске.  Быстро и надёжно.

Вот ещё вариант: https://www.mql5.com/ru/code/845

 Я так понял, что пример данного класса - это удобства на время терминальной сессии, а мне нужно в очередной сессии восстанавливать значения предыдущей даже после ребута. В классе есть возможность таки сбрасывать на диск и затем считывать из файла, но тогда это ничем не лучше первой рекомендации. Пока вижу преимущества использования глобальных переменных терминала, надо только избавиться от варнингов implicit conversion from 'number' to 'string' как-нибудь через добавления префикса (string) при суммировании строкового имени переменной с целочисленным индексом.
 

Думал, ну наконец-то подобрался к завершающей стадии проекта. Да не тут то было! :)

Здесь (https://www.mql5.com/ru/forum/23/page14#comment_170601) было написано:

...

14. MetaTester: Алгоритм проверки ограничений на совокупный объем позиций ордеров приведен в точное соответствие с сервером.

...

Но объём и сейчас можно превысить. Проверял на конкурсном счёте.

//---

Опять что ли эту тему в Сервисдеск писать? Старой заявки по этому вопросу уже не видно.

Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
x100intraday:
  .. Пока вижу преимущества использования глобальных переменных терминала, ............
Видимо Вам виднее.
 
tol64:

Думал, ну наконец-то подобрался к завершающей стадии проекта. Да не тут то было! :)

Здесь (https://www.mql5.com/ru/forum/23/page14#comment_170601) было написано:

Но объём и сейчас можно превысить. Проверял на конкурсном счёте.

//---

Опять что ли эту тему в Сервисдеск писать? Старой заявки по этому вопросу уже не видно.

так было всегда, в том числе и в мт4. При срабатывании, если денег нет, будет что-то вроде "deleted[no money]".

 Кстати, для лимитных ордеров в стакане так не должно быть, но как есть - не проверял

 
Сервисдеск это где?   Нужно написать
 
fellow:
Сервисдеск это где?   Нужно написать

Заходим в профиль и выбираем Сервисдеск


 
notused:

так было всегда, в том числе и в мт4. При срабатывании, если денег нет, будет что-то вроде "deleted[no money]".

 Кстати, для лимитных ордеров в стакане так не должно быть, но как есть - не проверял

Но по описанию в справке (на которое я опираюсь) написано следующее:

SYMBOL_VOLUME_LIMIT

Максимально допустимый для данного символа совокупный объем открытой позиции и отложенных ордеров в одном направлении (покупка или продажа). Например, при ограничении в 5 лотов можно иметь открытую позицию на покупку объемом 5 лотов и выставить отложенный ордер Sell Limit объемом 5 лотов. Но при этом нельзя выставить отложенный ордер Buy Limit (поскольку совокупный объем в одном направлении превысит ограничение) или выставить Sell Limit объемом более 5 лотов.

double


Поэтому выставить 5-ый отложенный ордер Buy Stop при открытой позиции объёмом в 3 лота и имеющихся 4-ёх ордерах Buy Stop по 3 лота каждый (при ограничении 15 лот), не должно получаться.

Скорее всего разработчики, где-то немного ошиблись при исправлении. Следующий ордер Buy Stop (шестой) уже выставить не получается и получаем сообщение в журнал:

В общем, надо основательно протестировать и выявить проявление превышения объёмов во всех возможных случаях. Отпишу в конце дня. А пока достаточно было бы услышать комментарий от разработчиков, а то вдруг я всё это придумал. Такое у меня тоже бывает. :)

//---

А со стаканом у меня тоже были какие-то проблемы (пока отложил, буду решать в последнюю очередь).

Причина обращения: