Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай последние события MQL5.community!
MiB
77
MiB 2014.02.06 12:34 

Всем доброго дня!

Подскажите как, например для периода Н1, определить High текущего дня 5 баров назад?

PS: нужно писать скрипт, который проанализирует кол-во баров от начала дня до 5-го бара от текущего времени или есть готовая функция?

TarasBY
1744
TarasBY 2014.02.06 13:44  
    double ld_High = iHigh (Symbol(), PERIOD_H1, iHighest (Symbol(), PERIOD_H1, MODE_HIGH, 5, 0));
P.S. "для периода Н1 High текущего дня 5 баров назад" - приходится только догадываться... :)))
Vitalie Postolache
11101
Vitalie Postolache 2014.02.06 13:55  
А расскажите мне, чем Хай дня на Д1 отличается от такого же хая на Н1?
Alexey Subbotin
4999
Alexey Subbotin 2014.02.06 15:01  
evillive:
А расскажите мне, чем Хай дня на Д1 отличается от такого же хая на Н1?

Он имеет в виду, найти тот хай дня, который был 5 часов назад. Очевидно, за это время Хай мог быть пробит, поэтому просто iHigh(…), как сделано двумя постами выше, не прокатит.


Вариантов два - либо делать небольшую подпрограмму для расчета, либо запоминать в отдельном буфере значение High дня в начале каждого часа.

Vladyslav Goshkov
1960
Vladyslav Goshkov 2014.02.06 15:05  
alsu:

Он имеет в виду, найти тот хай дня, который был 5 часов назад. Очевидно, за это время Хай мог быть пробит, поэтому просто iHigh(…), как сделано двумя постами выше, не прокатит.



iHigh(NULL, PERIOD_H1, 5);
чем не вариант ?
Alexey Subbotin
4999
Alexey Subbotin 2014.02.06 15:10  
VladislavVG:

чем не вариант ?

Покажет High пятого бара на часовом графике, то же, что и High[5]


А надо Хай дневного графика, который был 5 часов назад.

Vladyslav Goshkov
1960
Vladyslav Goshkov 2014.02.06 16:13  
alsu:

Покажет High пятого бара на часовом графике, то же, что и High[5]


А надо Хай дневного графика, который был 5 часов назад.


Был не внимательным, здесь Вы правы.

На вскидку, как-то так:

 iHigh(NULL,PERIOD_D1,iHighest(NULL, PERIOD_H1, MODE_HIGH, iBarShift(NULL,PERIOD_D1,iTime(NULL,PERIOD_D1,0),false)-5, 5));
Не очень оптимально, но через вызов стандартных функций.
Vladimir Paukas
4099
Vladimir Paukas 2014.02.06 17:07  
MIB:

Всем доброго дня!

Подскажите как, например для периода Н1, определить High текущего дня 5 баров назад?

PS: нужно писать скрипт, который проанализирует кол-во баров от начала дня до 5-го бара от текущего времени или есть готовая функция?

Определить то просто, только ответьте на вопрос.

Если сeйчас меньше 5 часов, хай какого дня вам нужен- текущего или вчерашнего?

TarasBY
1744
TarasBY 2014.02.07 11:26  
alsu:

Он имеет в виду, найти тот хай дня, который был 5 часов назад.

Уже кое-что прояснилось. :)

Если рассчитывать только текущие сутки, и учитывать текущий часовой бар:

    int li_Shift = iBarShift (Symbol(), PERIOD_H1, iTime (Symbol(), PERIOD_D1, 0));   // номер текущего H1 бара
    double ld_High; 
    if (li_Shift < 5) ld_High = iHigh (Symbol(), PERIOD_D1, 0);                       // в текущих сутках не "накопилось" 5 часов
    else ld_High = iHigh (Symbol(), PERIOD_H1, iHighest (Symbol(), PERIOD_H1, MODE_HIGH, li_Shift - 5, 4);
Если нужны другие условия, топикстартер сможет потренироваться.
Александр
287
Александр 2014.02.09 08:40  
TarasBY:
Уже кое-что прояснилось. :)

Если рассчитывать только текущие сутки, и учитывать текущий часовой бар:

Если нужны другие условия, топикстартер сможет потренироваться.

Спасибо,мне очень это помогло,я постараюсь результаты в ближайшее время выложить сюда в ветку.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий