Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 616
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
iBarShift еще не смотрели?
Нет, тут более извращенческий вопрос, это тут не поможет.
Никак не пойму, как мне, сегодня в любое время(в тестере конечно), корректно, узнать номера баров вчерашнего дня с 00:00 по 23:59. Подскажите плз.
Вот так примерно вычисляется номер последнего бара предыдущего дня в тестере. Остальное можете сами додумать и доделать.
Вот так примерно вычисляется номер последнего бара предыдущего дня в тестере. Остальное можете сами додумать и доделать.
Спасибо! Завтра попробую. Сегодня голова не соображает. На самом деле не совсем правильно задал вопрос. Нужно, сегодня, знать номера первого и последнего бара вчерашнего дня. Все не обязательно.
Спасибо! Завтра попробую. Сегодня голова не соображает. На самом деле не совсем правильно задал вопрос. Нужно, сегодня, знать номера первого и последнего бара вчерашнего дня. Все не обязательно.
Тестер TimeCurrent хорошо воспринимает. Поэтому можно ещё и что-то с подобным вариантом замутить (попробуйте создать скрипт с нижеприведённым кодом и гляньте на результат):
А вообще, вот тут очень хорошая статья. Несмотря на то, что она для МТ5, однако там и к применению в МТ4 полезная инфа.
Никак не пойму, как мне, сегодня в любое время(в тестере конечно), корректно, узнать номера баров вчерашнего дня с 00:00 по 23:59. Подскажите плз.
Вот так можно найти индекс первого бара в начале любого дня.
Зная такой индекс, можно нехитрым прибавлением единицы вычислить индекс последнего бара в предыдущем дне.
Вот так можно найти индекс первого бара в начале любого дня.
Зная такой индекс можно нехитрым прибавлением единицы узнать индекс последнего бара в предыдущем дне.
Если код применять только в реале или на демо счёте, то подобный вашему вариант удобнее. Однако в тестере стратегий при его использовании могут возникнуть проблемы.
P./S.: Поэтому FOReignEXchange и я привели иные варианты.
Если код применять только в реале или на демо счёте, то подобный вашему вариант удобнее. Однако в тестере стратегий при его использовании могут возникнуть проблемы.
P./S.: Поэтому FOReignEXchange и я привели иные варианты.
Возможно. Я для индикатора такой код использовал, там он меня не подводил. Пусть пробует разные варианты.
Попробовал разные варианты. Результат одни и тот же. Как такое может быть абсолютно не понятно. В какой-то момент конгструкция iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); Вдруг начинает обсчитывать больший диапазон баров. Подскажите кто понимает, всю голову сломал. Спасибо.

4:08:36 Time+iLowest test started14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1: NumberLastBar_beg= 24 NumberLastBar_end= 0
14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1: i=18
14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1: NumberLastBar_beg= 25 NumberLastBar_end= 1
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1: i=19
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1: NumberLastBar_beg= 26 NumberLastBar_end= 2
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1: i=20
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1: time_check_low_day=06:00
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1: NumberLastBar_beg= 27 NumberLastBar_end= 3
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1: i=21
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1: time_check_low_day=06:00
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1: NumberLastBar_beg= 28 NumberLastBar_end= 4
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1: i=31
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1: time_check_low_day=21:00
Код:
static int PrevTime=0;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if(Time[0]<=PrevTime) return(0);
PrevTime=Time[0];
//////////////
// CheckForLongetivityClose_Sell();
double pBid=NormalizeDouble(Bid,Digits),Low_Now=Low[1];
////////////
int n_beg=1; // индекс дня, в данном случае 1 - вчерашний день
datetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg); // Начало дня "n" в секундах
int NumberLastBar_beg=iBarShift(NULL,0,DayTime_beg);
int n_end=0; // индекс дня, в данном случае 1 - вчерашний день
datetime DayTime_end=iTime(NULL,PERIOD_D1,n_end); // Начало дня "n" в секундах
int NumberLastBar_end=iBarShift(NULL,0,DayTime_end);
Print(" NumberLastBar_beg= ",NumberLastBar_beg," NumberLastBar_end= ",NumberLastBar_end);
//---------------------------------------------------------------------
datetime Time_Check_Low_Day=Time[iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);
Print(" i=",i);
string time_check_low_day=TimeToStr(Time_Check_Low_Day,TIME_MINUTES);
/////////////
Print(" time_check_low_day=",time_check_low_day);
datetime time_check_verify=StrToTime("H_check_beg:M_check_beg");
return(0);
}