Скачать MetaTrader 5

частота работы iClose

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужен приватный мониторинг счета? В Сигналах есть такая возможность!
Олег
379
Олег 2014.03.20 13:14 

Здравствуйте!

Помогите новичку пожалуйста!

Вопрос следующий. я использую iClose() например

for (int j=1;j<=121;j++)

{

ExtMapBuffer1[j1]=iClose(NULL,PERIOD_W1,j1);

потом всякая вещь..............

.........................................

}

а именно вопрос как часто считываются данные закрытия?? каждую секунду или каждую неделю. Если каждую секунду, то как сделать, чтобы они считывались раз в неделю??

Я что-то пытался смотреть в документации про refresh, но не понял. Там вроде не прописывается временной интервал. Это надо т.к. я использую в индикаторе iClose 4 раза для разных таймфреймов и платформа начинает подвисать.

Плиз помогите.

С Уважением Олег

Всеволод
648
Всеволод 2014.03.20 18:24  

так определитесь j или j1...

Подвисает из-за ваших ошибок, выкладывайте весь код с описанием что хотели сделать.

Олег
379
Олег 2014.03.20 18:32  
splxgf:

так определитесь j или j1...

Подвисает из-за ваших ошибок, выкладывайте весь код с описанием что хотели сделать. Спасибо за ответ. Вопрос глобальный . Реально ли заставить iClose снимать массив только раз в неделю. это надо для того чтобы не подвисала платформа. если я скачал массив закрытия недели, то зачем мне надо каждую секунду его подкачивать. Страдает вес идюк. у меня айклозев 4 штуки по разным таймфреймам. я думал скачивать раз в неделю или раз в день для D1 итд. просто хочу оптимизировать код а именно память

Alexey Viktorov
6705
Alexey Viktorov 2014.03.20 18:43  
Грузит скорее всего не из-за iClose() а потому, что пересчитывает много баров, если не все, на каждом тике.
Олег
379
Олег 2014.03.20 18:49  
AlexeyVik:
Грузит скорее всего не из-за iClose() а потому, что пересчитывает много баров, если не все, на каждом тике.


Все так. а как обмануть малой кровью???.
Олег
379
Олег 2014.03.20 18:51  
elisseev2000:


Все так. а как обмануть малой кровью???. надо заставить мт4 скачивать массивы на неделе только раз в неделю. на днях только раз в день. и все. и работаем со статикой
Viktor
228
Viktor 2014.03.20 18:56  
elisseev2000:


Все так. а как обмануть малой кровью???.
// есть простой прием
static datetime last_time = 0;
if (iTime(NULL, PERIOD_W1, 0) != last_time) {
        last_time = iTime(NULL, PERIOD_W1, 0);

        ***     здесь ваш код   
        *** будет выполнен один раз в начале недели

}
Дни, часы и прочее: - аналогично.
Alexey Viktorov
6705
Alexey Viktorov 2014.03.20 18:57  

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

Обман тут не поможет. Надо правильно переписать определение не посчитанных баров.

Всеволод
648
Всеволод 2014.03.20 19:03  
elisseev2000:


Все так. а как обмануть малой кровью???.

Ну так проверяйте добавился ли на нужном таймфреме новый бар, и пересчитывайте только вновь появившиеся. Как вариант вынести логику расчета во внешний индикатор, там чуть проще избежать ненужных пересчетов.
Олег
379
Олег 2014.03.20 19:06  
prorab:
Дни, часы и прочее: - аналогично.

А массив будет висеть в памяти ? другие тайфреймы будут этот массив считыватть в течение недели???
Олег
379
Олег 2014.03.20 19:10  

splxgf:

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

так тоже вопрос . будет ли массив данных в течение недели работать. т.е с него можно будет считывать

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий