初学者的问题 MQL5 MT5 MetaTrader 5 - 页 535

 
Karputov Vladimir:

所以,你需要马上说明这样的要求 :) 。

情况如下:如果图表中存在一个条形图,它对应于指标缓冲区 中的一个单元。只要你不在这个单元格中写东西,它就会储存垃圾。

为什么在MT4中不是垃圾,而只是在这个栏下不显示指标?
 
Aleksey Lebedev:

当你除以整数(int,long,datetime等)时,结果是一个整数,也就是说,余数被丢弃。今天00:00和昨天23:59:59,差异将是1天。

首先它不是--它在实验中被证明是指标。

第二,鉴于我们最初是以秒为单位计算的,你是如何得到1的--从数学上告诉我。

 
Alexey Kozitsyn:
与简单类型的归零方式完全相同。一旦所需的字段被分配了一个 0的值--使用反向操作StructToTime()。

归零了。

MqlDateTime str1;
datetime  Open_timePos=iTime(_Symbol,0,pos);
TimeToStruct(Open_timePos,str1);
   str1.hour=0;
   str1.min=0;
   str1.sec=0;
datetime  start_time=StructToTime(str1);
Print("день=",TimeToStr(start_time));

一切都成功了--谢谢你!
 

Aleksey Lebedev:
При делении целых чисел(int,long,datetime и т.п.) результат целое число, т.е. остаток отбрасывается. 00:00 сегодня и 23:59:59 вчера, разность будет равна 1дню.

-Aleks-

首先它不是--在实验中证明的指标。

不要与基础知识争论)。

-Aleks-

第二,你是如何得到1的--从数学上告诉我,鉴于最初我们有以秒为单位的计算。

datetime today=D'2016.03.09 00:00:00';
datetime yesterday=D'2016.03.08 23:59:59';
Print("today=",86400*(today/86400)," value=",int(today));
Print("yesterday=",86400*(yesterday/86400)," value=",int(yesterday));
Print("разница в днях = ",int(today/86400-yesterday/86400));

使用通过结构转换,如果它更容易理解。

 
Aleksey Lebedev:

不要挑战基础知识)

如果更容易理解,就使用结构转换。

所了解的是已经处理过的事情。我没有试过你的代码运行,但我认为是你自己做的,所以向我这个不懂的人解释一下它是如何工作的。

86401/86400-86400/86400等于1,如果按照数学规则1.000012-1=0.000012 ,int应该四舍五入到整数,即0。

 
-Aleks-:

所了解的是已经处理过的事情。我没有试过你的代码运行,但我想你已经自己做了,所以向我这个不懂的人解释一下它是如何工作的。

86401/86400/86400等于1,如果根据数学规则1.000012-1=0.000012 ,int应该四舍五入到整数,即0。

但要做到这一点)

一天的开始时间00:00:00除以86400没有余数,前一个至少少1秒。四舍五入--除法的剩余部分被丢弃,而不是整个表达式。

86400/86400=1

86399/86400=0

 
Aleksey Lebedev:

然后运行它)

一天的开始时间00:00:00除以86400没有余数,前一个至少少1秒。四舍五入--除法的剩余部分被丢弃,而不是整个表达式。

86400/86400=1

86399/86400=0

所以我很惊讶这种奇特的四舍五入发生在表达式中--我以为当变量被赋值时,小数点后的数值会被丢弃。
 
伙计们!是否有可能以编程方式在图表上显示该指标?还是只能用手?
 
Vladimir Tkach:
伙计们!是否有可能以编程方式在图表上显示该指标?还是只能用手?
你可以这样做https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
是在mql5中,还是在mql4中?