Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 658

 
Добрый день!

Заметил, что мне не удается перебирать ордера от j=0 до j=OrdersTotal() - счет всё время сбивается (см. пр.).
Причём он может начаться не с 0 и перескакивать через несколько десятков.
Скорее всего, он возобновляется с каждым новым тиком, но не понятно почему он не начинается с 0, а просто перепрыгивает через несколько номеров  и как с этим бороться.

Кто-то сталкивался с такой проблемой? Какой есть выход из этой ситуации?
Файлы:
test.jpg  82 kb
 
Algotrader18:
Добрый день!

Заметил, что мне не удается перебирать ордера от j=0 до j=OrdersTotal() - счет всё время сбивается (см. пр.).
Причём он может начаться не с 0 и перескакивать через несколько десятков.
Скорее всего, он возобновляется с каждым новым тиком, но не понятно почему он не начинается с 0, а просто перепрыгивает через несколько номеров  и как с этим бороться.

Кто-то сталкивался с такой проблемой? Какой есть выход из этой ситуации?

перебирать ордера нужно в цикле. а не на каждом тике... если точнее, то пришел тик и посчитали все свои ордера в цикле: for(j=0;j<OrderTotal;j++)

OrdersTotal() показывает сколько открыто ордеров (включая отложенные ордера, включая ордера по всем инструментам... вообще всего... вот сколько в терминале видите открытых ордеров вот столько ))))

нумерация ордеров как в массивах, от 0 до OrdersTotal()-1 - это последний ордер, а у Вас, наверное, вывод в журнал на каждом тике несуществующий тикет № [OrdersTotal()] или еще какая то информация, которую сложно угадать

 

Добрый день!


Подскажите пожалуйста, сколько символов вмещается в себя комментарий к ордеру?

 
Algotrader18:
Добрый день!

Заметил, что мне не удается перебирать ордера от j=0 до j=OrdersTotal() - счет всё время сбивается (см. пр.).
Причём он может начаться не с 0 и перескакивать через несколько десятков.
Скорее всего, он возобновляется с каждым новым тиком, но не понятно почему он не начинается с 0, а просто перепрыгивает через несколько номеров  и как с этим бороться.

Кто-то сталкивался с такой проблемой? Какой есть выход из этой ситуации?
А зачем вообще нужна информация по всем ордерам каждый тик? Не лучше ли ввести ограничения на просмотр ордеров, например, каждую новую минуту, пять минут, ..., час?
 

На некоторых VPS шрифт интерфейса советника значительно больше чем запрограммирован в коде МКЛ. 

Как поменять, кто знает?


 

Вопрос: OnTimer() сбрасывает вычисления при поступлении тиков?

В функции OnTick() у меня очень большие вычисления и никаких данных не производится, только спустя какое то время, иногда почти сразу, иногда пара минут нужно. Насколько я знаю это связано с тем, что если в процессе вычисления пришел тик, то все вычисления останавливаются и начинаются заново.

Но производить мне их нужно не часто, поэтому хотелось бы в таймер поместить?

 
Roman Sharanov:

Вопрос: OnTimer() сбрасывает вычисления при поступлении тиков?

В функции OnTick() у меня очень большие вычисления и никаких данных не производится, только спустя какое то время, иногда почти сразу, иногда пара минут нужно. Насколько я знаю это связано с тем, что если в процессе вычисления пришел тик, то все вычисления останавливаются и начинаются заново.

Но производить мне их нужно не часто, поэтому хотелось бы в таймер поместить?

Откуда вы такое знаете? Это не так.

Пока не будут завершены все вычисления, начавшиеся с приходом тика, все последующие тики пропускаются.

 
Artyom Trishkin:

Откуда вы такое знаете? Это не так.

Пока не будут завершены все вычисления, начавшиеся с приходом тика, все последующие тики пропускаются.

Хм, где то увидел что наоборот, значит неправ я
интересно, почему тогда при одних и тех же вычисления, когда я ставлю эксперта на график, результаты иногда сразу выдаются, а иногда ждать нужно долго?

При этом тики приходят

 
Roman Sharanov:

Хм, где то увидел что наоборот, значит неправ я
интересно, почему тогда при одних и тех же вычисления, когда я ставлю эксперта на график, результаты иногда сразу выдаются, а иногда ждать нужно долго?

При этом тики приходят

Без кода никто не скажет.

 
Artyom Trishkin:

Без кода никто не скажет.

вот еще нашел серьезный недочет, очень много вызовов CopyClose()

Не подскажете, как можно в цикле скопировать из массива валютных пар их котировки?

Это получается двойной массив должен быть, а MQL такое не поддерживает, типа%

...
double all_data[N][];
for(int i = 0; i < N; n++){
        CopyClose(Pairs[i], PERIOD_CURRENT, 1, Count, all_data[i]);
}
Причина обращения: