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 два
这些线应该被调换。
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал
datetime Time_Check_Low_Day=Time[i];
尝试了不同的选择。其结果是一样的。我不明白这怎么可能发生。在某个时刻,iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);突然开始计算一个更大的条形范围。请告知谁能理解,我的脑袋已经坏了。谢谢。
![](https://c.mql5.com/mql4/forum/2014/05/aumgdsfiqk_small.png)
4:08:36 时间+iLowest测试开始14: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()
{
如果(Time[0]<=PrevTime)返回(0)。
PrevTime=Time[0];
//////////////
// CheckForLongTimeClose_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"(秒)。
intLastBar_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=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的垃圾。
价格旧值
当我把它加起来的时候,为什么减去的时候会变成这样?最令人困惑的是,它发生在故事的这个特定部分,在其他部分则是正常的。
尝试了不同的变体。其结果是一样的。这怎么可能是这样的呢,绝对不清楚。在某个时刻,iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);突然开始计算一个更大的条形范围。请告知谁能理解,我的脑袋已经坏了。谢谢。
4:08:36 时间+iLowest测试开始14: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
代码。
注意这些线条。
这些线应该被调换。
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал datetime Time_Check_Low_Day=Time[i];
2.NumberLastBar_beg是昨天的条数,而这个值可以用要 搜索的条数来代替。
3.当你粘贴代码时,在文本输入窗口的工具条上找到SRC按钮。
比如说哪些人?为什么我在任何地方都 没有问题,而你却 "可能 "有问题呢?
我有点沉思。我不想把现有指标的代码放在可以清楚看到的地方(如果不为测试者应用一个单独的条件)。以及思考,在其基础上单独开出什么药方,以达到明确的目的。
然而,如果你坚持 - 当然,我很可能会开始考虑什么可以取代他的复杂 "馅料",以便在那里开出其他的东西。仔细阅读iLowest()的帮助。要搜索的元素数量是多少?那它等于什么呢?
请注意这几句话
最好把这些线换掉。
2.NumberLastBar_beg是昨天的第一个条形的数字,你把这个值代替你想搜索 的条形的数量。
i变量在这里纯粹是为了控制的目的,用于打印。我在调整栏杆时犯了一个错误。谢谢你的提示!