Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 617
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробовал разные варианты. Результат одни и тот же. Как такое может быть абсолютно не понятно. В какой-то момент конгструкция 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);
}
Если код применять только в реале или на демо счёте, то подобный вашему вариант удобнее. Однако в тестере стратегий при его использовании могут возникнуть проблемы.
Например какие? Почему у меня не вызывает никаких проблем нигде, а у вас "могут возникнуть".
Есть кусок непонятный мне
получается в принте вот такая фигня типо 5e-005.0
значение PriceOld
При сложении все норм, почему так выходит при вычитании?Самое непонятное, что происходит это именно на этом участке истории, на других нормально.
Попробовал разные варианты. Результат одни и тот же. Как такое может быть абсолютно не понятно. В какой-то момент конгструкция 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
Код:
Обрати внимание на эти строки
1. Лучше эти строки поменять местами.
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал datetime Time_Check_Low_Day=Time[i];
2. NumberLastBar_beg - это номер первого вчерашнего бара, а ты это значение ставишь вместо количества баров среди которых должен быть произведен поиск.
3. Когда вставляешь код найди кнопку SRC в панели инструментов окна ввода текста.
Например какие? Почему у меня не вызывает никаких проблем нигде, а у вас "могут возникнуть".
Даж в задумчивости. Код имеющегося индикатора, где это можно наглядно видеть (если не применять отдельное условие для тестера) - у меня нет желания выкладывать. Как и думать, что прописать на его основе отдельное для наглядности.
Однако если будете настаивать - конечно, скорее всего, займусь подумать, чем можно заменить имеющуюся у него сложную "начинку" для прописать там что-то иное.Справку по iLowest() внимательно прочтите. Число элементов, в которых производиться поиск, чему должну равняться? И чему равно у Вас.
Обрати внимание на эти строки
1. Лучше эти строки поменять местами.
2. NumberLastBar_beg - это номер первого вчерашнего бара, а ты это значение ставишь вместо количества баров среди которых должен быть произведен поиск.
1. Тут переменная i чисто для контроля, для Print. А с подстановкой баров я накосячил. Спасибо за подсказку!