//--- Проверяем первый запуск индикатораif(prev_calculated<=0 ||
_weekOpenTime!=iTime(_Symbol,PERIOD_W1,0)+SEC_PER_DAY ||
_dayOpenTime!=iTime(_Symbol,PERIOD_D1,0) ||
_hourOpenTime!=iTime(_Symbol,PERIOD_H1,0) )
{
_weekOpenTime= 0;
_dayOpenTime = 0;
_hourOpenTime= 0;
//--- Проверяем, записано ли время открытия текущей неделиif(!CheckCurrentWeekOpenTime()) // Если время не записаноreturn(0); // Выходим//--- Проверяем, записано ли время открытия текущего дняif(!CheckCurrentDayOpenTime()) // Если время не записаноreturn(0); // Выходим//--- Проверяем, записано ли время открытия текущего часаif(!CheckCurrentHourOpenTime()) // Если время не записаноreturn(0); // Выходим//--- Устанавливаем флаг соединения с сервером для запуска таймера
_isConnected=true;
//---Print(__FUNCTION__,": Данные старших ТФ загружены!");
}
自己试试吧。启动指示器,关闭终端,在新的一小时到来时再打开。
因此,如果你得到TimeCurrent
返回最后已知的服务器时间,即在Market Watch中选择的一个符号的最后报价的到达时间。
因此,如果你得到TimeCurrent
返回最后的已知服务器时间,即在Market Watch中选择的一个符号的最后报价的到达时间。
你能告诉我这段 代码中的TimeCurrent调用在哪里吗?
你能告诉我在这段 代码中哪里调用了TimeCurrent吗?
因此,酒吧的开放时间仍与终端关闭前相同。形成一个新的条形图,时间也被更新。问题是什么。
酒吧开放的时间与我们在航站楼关闭前收到的时间相同。形成一个新的条形图,时间也被更新。问题是什么。
这就是问题所在,当图表上最后一个小时条的时间为22:00时,终端就会关闭。例如,它是在22:45关闭的。在23:01开启--在与服务器建立连接后的最后一个小时的时间请求,在没有任何定时器的情况下对OnInit()进行预请求--仍然是22小时。这很正常,你认为呢?
检查蜡烛的时间,而不是条形图的计算。
这样才能正确更新(检查)。
检查蜡烛图的时间,而不是条形图的计算。
这样才会正确地更新(检查)。
我们谈论的是什么样的酒吧计算?
我会检查你的变体,但实际上你只是在OnCalculate()中添加了一个 "空闲 "数据请求,仅此而已。 而且根据逻辑,它甚至不会到达 "空闲 "请求,因为prev_calculated <= 0已经被执行,第一个运行块将被执行。
总之,这是一个拐杖,语言中一定没有这种情况。连接建立后,检查数据采集的功能是否有误,以及所获数据的正确性。但最后我们得到了什么?数据仍然是错误的。
实际上,如果我们想确定,我们可以简单地在inite中请求当前时间,然后在OnCalculate()中请求当前时间,然后比较它们,直到它们不同。但这是同一个拐杖,不应该是这样的。
问题就在这里,当图表上的最后一个小时条在22:00时,终端就会关闭。例如,它是在22:45关闭的。在23:01开启--在与服务器建立连接后的最后一个小时的时间请求,在没有任何定时器的情况下对OnInit()进行预请求--仍然是22小时。按照你的说法,这是否正常?
从你的问题来看,这似乎是你所需要的。
按照我的理解,终端第一次输出它在历史上的最后一个数据,然后从服务器上加载。
问题!为什么它在与服务器的连接已经建立之后才给出以前的数据,在OnInit()中有一个数据的预查询,在每个CheckCurren...()函数中有一个数据加载的检查。我需要做多少次该死的检查才能使一切正常工作......。
任何最后一个条形图的关闭时间将是TimeCurrent,根据你的问题,这似乎是你所需要的。
什么时间关门?我需要一个开放的时间...