Если код применять только в реале или на демо счёте, то подобный вашему вариант удобнее. Однако в тестере стратегий при его использовании могут возникнуть проблемы.
Например какие? Почему у меня не вызывает никаких проблем нигде, а у вас "могут возникнуть".
Попробовал разные варианты. Результат одни и тот же. Как такое может быть абсолютно не понятно. В какой-то момент конгструкция iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); Вдруг начинает обсчитывать больший диапазон баров. Подскажите кто понимает, всю голову сломал. Спасибо.
staticint 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);
}
Обрати внимание на эти строки
datetime Time_Check_Low_Day=Time[iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];//iLowest раз
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); //iLowest два
1. Лучше эти строки поменять местами.
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал
datetime Time_Check_Low_Day=Time[i];
2. NumberLastBar_beg - это номер первого вчерашнего бара, а ты это значение ставишь вместо количества баров среди которых должен быть произведен поиск.
3. Когда вставляешь код найди кнопку SRC в панели инструментов окна ввода текста.
Например какие? Почему у меня не вызывает никаких проблем нигде, а у вас "могут возникнуть".
Даж в задумчивости. Код имеющегося индикатора, где это можно наглядно видеть (если не применять отдельное условие для тестера) - у меня нет желания выкладывать. Как и думать, что прописать на его основе отдельное для наглядности.
Однако если будете настаивать - конечно, скорее всего, займусь подумать, чем можно заменить имеющуюся у него сложную "начинку" для прописать там что-то иное.
2. NumberLastBar_beg - это номер первого вчерашнего бара, а ты это значение ставишь вместо количества баров среди которых должен быть произведен поиск.
1. Тут переменная i чисто для контроля, для Print. А с подстановкой баров я накосячил. Спасибо за подсказку!
Еще вопрос. Не пойму как получить, с минимальными затратами, из Time[0] переменную типа int в виде 00:00. Не приходит ничего в голову, кроме как через string, StrToTime, и TimeToStr, преобразовывать. Спасибо!
Коллеги подскажите есть ли альтернатива программе Report Manager?
Нужно объединять большие отчеты за несколько лет, а RM зависает или просто ничего не происходит при нажатии на merge. С маленькими отчетами проблем нет.
Если код применять только в реале или на демо счёте, то подобный вашему вариант удобнее. Однако в тестере стратегий при его использовании могут возникнуть проблемы.
Например какие? Почему у меня не вызывает никаких проблем нигде, а у вас "могут возникнуть".
Есть кусок непонятный мне
получается в принте вот такая фигня типо 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. А с подстановкой баров я накосячил. Спасибо за подсказку!
Коллеги подскажите есть ли альтернатива программе Report Manager?
Нужно объединять большие отчеты за несколько лет, а RM зависает или просто ничего не происходит при нажатии на merge. С маленькими отчетами проблем нет.