Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Посмотри на Топ сигналов MetaTrader 5. Выбери лучший и подпишись!
Forex Trader
114252
Forex Trader 2005.09.21 17:14 
Скажу сразу, что не программист я.
Но вот решил написать индикатор, в котором мне нужны данные Close другого ТФ.
В описании MQL4 нашел такой текст:

 Возможна также организация доступа к историческим данным по другим временным интервалам и даже по другим валютным парам. Чтобы получить такие данные необходимо предварительно определить одномерный массив и выполнить операцию копирования с помощью функции "ArrayCopySeries". Причем при вызове функции можно передавать меньшее количество параметров и не указывать параметры по умолчанию.
 double eur_close_m1[];
 int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);

Я так понял, что данными данного массива можно будет пользоваться, но как мне сравнить два close из этого массива, к примеру прошлго[1] и позапрошлого баров [2]?

Спасибо за ответ

P.S. Описание прошлого языка было куда понятнее для не программистов.
Forex Trader
114252
Forex Trader 2005.09.21 17:41  
(iOpen, iClose, Highest, iHigh, Lowest, iLow, Close, Open) почитай про эти функции, может найдешь для себя полезное
Forex Trader
114252
Forex Trader 2005.09.21 18:38  
но как мне сравнить два close из этого массива, к примеру прошлго[1] и позапрошлого баров [2]

просто вместо "Close[1]" и "Close[2]" пиши "имя_массива[1]" и "имя_массива[2]"

Но проще использовать ф-ции, которые Bagadul подсказал ;)
Forex Trader
114252
Forex Trader 2005.09.21 19:15  
Спасибо всем за ответы!

Ошибка у уважаемых разработчиков!
В строке:
int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);
Скопирована из руководства, первая часть " int number_copied = " лишняя. без нее все нормально работает, а то мне выдавалась ошибка...

А про указанные функции где можно почитать?

Эту проблему я решил, но возникла другая:)
Я хочу на М15 иметь график индикатора за 15 мин. и за час. То, что я написал, рисует индикатор по данным часовых закрытий, но точки привязывает не к барам конца часа, а к текущим барам подряд...
Получается искаженная информация...
Есть ли возможность это исправить? Реально ли это?
Буду благодарен за подсказки и советы.
Forex Trader
114252
Forex Trader 2005.09.21 19:47  
Ошибка у уважаемых разработчиков!
В строке:
int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);
Скопирована из руководства, первая часть " int number_copied = " лишняя. без нее все нормально работает, а то мне выдавалась ошибка...

интересно, что за ошибка у Вас выдавалась? функция ArrayCopySeries возвращает количество скопированных элементов
Forex Trader
114252
Forex Trader 2005.09.21 20:01  
[/quote]
интересно, что за ошибка у Вас выдавалась? функция ArrayCopySeries возвращает количество скопированных элементов [/quote]

Что он писал уже не помню, но когда удалил "int number_copied =" перед ArrayCopySeries все встало на свои места и ошибки Meta Editor больше не выдавал/
Forex Trader
114252
Forex Trader 2005.09.22 01:12  
Что он писал уже не помню, но когда удалил "int number_copied =" перед ArrayCopySeries все встало на свои места и ошибки Meta Editor больше не выдавал/

может он говорил, что данная переменная уже создана? ;) Надо внимательнее относиться к ошибкам...
я только что попробовал, ошибки нет:
   double eur_close_m1[];
   int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);





Я хочу на М15 иметь график индикатора за 15 мин. и за час. То, что я написал, рисует индикатор по данным часовых закрытий, но точки привязывает не к барам конца часа, а к текущим барам подряд...
Получается искаженная информация...
Есть ли возможность это исправить? Реально ли это?
Буду благодарен за подсказки и советы.

это реально. Надо смотреть время бара, например.
Или, если таймфреймы меняться не будут, то просто пропускать три бара.
Чуть-чуть подумай, и всё получится.

Если будут конкретные проблемы с реализацией (например, как ф-цию использовать), пиши сюда.

А про указанные функции где можно почитать?

в словаре. Набери имя ф-ции и нажми на неё Ctrl-F1

Forex Trader
114252
Forex Trader 2005.09.22 08:27  
Надо смотреть время бара, например.
Или, если таймфреймы меняться не будут, то просто пропускать три бара.

Скорее всего надо именно смотреть время бара на М15, т.к. просто пропускать 3 бара не помогло. График очень отдаленно похож на часовой.
А вто как смотреть время бара не знаю. Читал про константы даты и времени D'', но можно ли ее использовать в виде Close[D'xxxx']?
Короче, вопросов стало еще больше:)
Forex Trader
114252
Forex Trader 2005.09.22 13:58  
Time[#бара] ;)
Forex Trader
114252
Forex Trader 2005.09.28 18:58  
Time[#бара] ;)


Уважаемый komposter!
Что-то чем дальше, тем "ну его нафиг"...:) (не ругаюсь это я)
Почти неделю пробовал всякого разного, и проверять по минутам и те бары, на которых час не закрывается, не обсчитывать и другое, но вот что странно: если считать по закрытиям бара от 45 до 59 минуты, т.е. пропускать 3 внутренних для часа, график индикатора отличается от построенного просто по часовым барам.
Думал и пытался связать время бара двух ТФ: М15 и Н1. Time[] дает время начала бара от.... а мне нужно, чтобы совпадало время окончания. Да и пока не пойму как вообще его привязать, вернее связать 2 бара с одним временем, да еще по одному расчитывать, а к другому пририсовывать.
Чую катастрофически не хватает не только знаний, но и умения и опыта... естественно.
Алгоритм, который прописываю предварительно на бумаге, работает в реале совсем не так:(
Если у Вас есть возможность и время, коего всегда не хватает:) буду благодарен за более подробную, предметную помощь в написании кода. Сам алгоритм расчета индикатора, вроде, не сложен.
Сейчас появилась идея, но для этого нужно рисовать индикатор с права на лево. Это возможно?
Forex Trader
114252
Forex Trader 2005.09.30 01:24  
время, коего всегда не хватает:)

да, времени таки нет =)
буду благодарен за более подробную, предметную помощь в написании кода

можно на ты? ;) напиши мне на мыло точную задачу. Желательно, с максимальным кол-вом деталей, но структурированно :) Постараюсь помочь, а то на форуме думается не очень =)
Сейчас появилась идея, но для этого нужно рисовать индикатор с права на лево. Это возможно?

Да, просто цикл строить не от первого на графике бара к последнему, а наоборот ;) и пересчитывать всю историю придётся каждый тик...
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий