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

 
Artyom Trishkin:

Для поддержания исторических данных в актуальном "горячем" состоянии, необходимо раз в две минуты обращаться к этим данным при помощи любой из функций CopyXXX, iXXX, например CopyTime(), iTime(), и т.д...

Не знаю каких объёмов у вас не выдаёт в тестере. Есть объёмы реальные, и есть тиковые. Без кода нет возможности ответить по существу.

Код тот же , который скидывал ранее (немного измененный). Копирование тиков: 

 MqlTick tick_array[];
      uint start = GetTickCount();
      int received = CopyTicks(_Symbol, tick_array, COPY_TICKS_TRADE, periodStartTime*1000, ticksSizeToCopy);
            if(received != -1) {
               PrintFormat("%s: received %d ticks in %d ms", _Symbol, received, GetTickCount() - start);
               if(GetLastError() != 0) 
                  PrintFormat("%s: таймер Ticks are not synchronized yet, %d ticks received for %d ms. Error=%d",
                              _Symbol, received, GetTickCount() - start, _LastError);
            }

Далее идёт запрос объемов. Например (упрощенно):

int ticks = ArraySize(tick_array);
for (int i = 0; i < ticks; i ++) {
         if((tick_array[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) {
               if(tick_array[i].volume > max) max = tick_array[i].volume;
        }
}

Если цеплять просто на график, то норм. Если в тестере, то почему-то объемов нету...

 
Yevhenii Levchenko:

Код тот же , который скидывал ранее (немного измененный). Копирование тиков: 

Далее идёт запрос объемов. Например (упрощенно):

Если цеплять просто на график, то норм. Если в тестере, то почему-то объемов нету...

Примечание по функции CopyTicks() прочтите. Насчёт флагов.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
[in]  Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000. Первый вызов CopyTicks() инициирует синхронизацию базы тиков, хранящихся на жёстком диске по данному символу. Если тиков в локальной базе не хватает, то недостающие тики...
 

Коллеги подскажите почему нельзя поставить 2 или 3  одновременно индикатора ATR с разным временным периодом на один график?

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

input int               InpOffsetX        = 10;                               // Offset X
input int               InpOffsetY        = 80;                              // Offset Y

Точнее если поменять ТФ то второй появляется но первый исчезает, поочередно на разных тф все три видны но не все вместе. Порядок не отследить.

 
Artyom Trishkin:

Примечание по функции CopyTicks() прочтите. Насчёт флагов.

Не могу понять, что вы имеете в виду. Я же вроде правильные флаги использую...  Да и в реале работает... тестер только никак не хочет.
 
Artyom Trishkin:

Где я говорил что не дружу с логикой?

Ваши слова из предыдущего поста :" Для составления алгоритмов, мне кажется, нужна логика. А это далеко не математика. И вот с ней я никак не дружу - только нужный справочный материал и помощь тех, кто дружит".
 
Artyom Trishkin:
Для составления алгоритмов, мне кажется, нужна логика. А это далеко не математика. И вот с ней я никак не дружу - только нужный справочный материал и помощь тех, кто дружит.

Задача программиста не решать сложные задачи, а заставить компьютер это делать за него. Но для этого может понадобиться решать другие сложные задачи, что программист послушно исполняет. :)

 
ANDREY:
Ваши слова из предыдущего поста :" Для составления алгоритмов, мне кажется, нужна логика. А это далеко не математика. И вот с ней я никак не дружу - только нужный справочный материал и помощь тех, кто дружит".

Нет, не так. Вот так:

" Для составления алгоритмов, мне кажется, нужна логика. А это далеко не математика. И вот с ней я никак не дружу - только нужный справочный материал и помощь тех, кто дружит".

По смыслу даже два предложения стоят рядом друг с другом. Но вы свой смысл нашли...

 
Mihail Matkovskij:

Задача программиста не решать сложные задачи, а заставить компьютер это делать за него. Но для этого может понадобиться решать другие сложные задачи, что программист послушно исполняет. :)

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

 
Valeriy Yastremskiy:

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

В том то и дело, что постановщик он же и исполнитель. Хотя, далеко не всегда.

 

Подскажите,пожалуйста. Есть советник, который берет данные (время) из индикатора и считает разницу в миллисекундах между тиками.

Вывожу через алерт и получаю следующее (см. картинку). Как понимаю сначала идет значение общего количества миллисекунд, а потом значения в миллисекундах между 4-мя последними тиками (между 1 и 2, 2 и 3, 3 и 4).

Почему так? Мне нужны только значения по 4-м тикам.

time 

Файлы:
ind_time.mq4  1 kb
exp_time.mq4  2 kb