MQL4 - как брать исторические данные?

 

Читал справку, читал форум, читал гугл, но так и не нашёл примеров.

Я для обучения нейросетевых индикаторов хочу делать пробежки по истории котировок. И вот никак не могу найти - а как, собственно, это делать? Функции для таймсерий дают только "текущий" момент и сдвиг относительно него.

 
Ну а сдвиг откуда берётся по-вашему? Это и есть история.
 

Мнэээээ.

Всмысле, если я хочу минутные котировки 10-летней давности, то это надо сдвиг в несколько миллионов просто делать?

Но он тогда и сдвигаться ведь будет вместе с поступлением новых баров?

Как тогда указать в явном виде, что я хочу диапазон с первого января 01 года по последнее декабря 05, например?

 

А где этот брокер который предоставит М1 за 10 лет? Не видел такого...

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

 

А, кажется понял. Скажем, если я хочу в часах вычислить и использовать в циклах даты, то я делаю так:

int timestart = (D'2008.01.01' / 3600) + 2;
int timeend = (D'2013.01.01' / 3600) + 2;

То есть, количество секунд с 1970 года, делённое на 3600 (получил количество часов), и плюс 2 - это сдвиг вперёд на нужное количество часов, правильно?

 

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

Так и тут, какой смысл рассматривать советником такую древнюю историю? Я понимаю, за вчера/прошлую неделю, но котировки старше года - уже плесень.

Но если уж очень хочется, то можно вычислить, сколько минут прошло с нужного момента до текущего М1 бара, задать сдвиг на столько баров назад и скопировать в массив нужное количество баров, вернее, данные о них (Time, Open, Close, High, Low, Volume).

ArrayCopyRates() делает что-то подобное, но там нет возможности задать сдвиг, она забивает в массив данные от нулевого и до заданного бара.

 

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

С другой стороны, просто больше массив обучающих примеров. Не суть.

У меня тут новый вопрос из серии "mql4 для полных идиотов", не по теме, но не плодить же темы по каждой мелочи.

Когда я в программе индикатора в буфер записываю значение, например, Close[i], или даже Close[i] +1.0 - всё в порядке, я вижу график индикатора в терминале.

Если же я просто делаю Buffer[i] = 1.0, то никакого графика нет. WTF? Я не знаю какого-то секрета?

 
yaapelsinko:

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

С другой стороны, просто больше массив обучающих примеров. Не суть.

У меня тут новый вопрос из серии "mql4 для полных идиотов", не по теме, но не плодить же темы по каждой мелочи.

Когда я в программе индикатора в буфер записываю значение, например, Close[i], или даже Close[i] +1.0 - всё в порядке, я вижу график индикатора в терминале.

Если же я просто делаю Buffer[i] = 1.0, то никакого графика нет. WTF? Я не знаю какого-то секрета?


Стройте индикатор не в основном окне. Ну и иногда разбавляйте значениями -1
Причина обращения: