来自一个 "傻瓜 "的问题 - 页 67

 
sergeev:

元素的数量是由一个常数指定的

如果事先不知道'元素的数量,请使用ArrayResize。

这些是C++的基础知识

const int elements=4;
如果是这样,也没有什么帮助。
 
x100intraday:
如果是这样,也没有什么帮助。

#define  elements 4
 
sergeev:

谢谢你。
 

你好。

请告诉我如何在MetaTrader 5中设置一个高亮区域,以便能够跟踪当前的订单?

见所附截图。

预先感谢你。

附加的文件:
uf2mcfxvni.JPG  285 kb
 
Dimm-ua:

你好。

请告诉我如何在MetaTrader 5中设置一个高亮区域,以便能够跟踪当前的订单?

见所附截图。

预先感谢你。


"工具箱 "窗口,"贸易 "标签。
 
Karlson:
工具窗口。贸易标签。
我一定是个十足的傻瓜,但根本就没有这种事。
 
 
Karlson:

好的,非常感谢你--整理完毕
 

向开发者提问--仓位逆转是否会改变仓位的开仓时间?如果没有,我们如何获得仓位滚动时间?

事实证明,一个头寸只能在两个请求中被逆转--关闭当前头寸并在相反方向开立一个新头寸,那么开仓时间将等于逆转时间。如果我们通过一个请求进行翻转,那么我们就不能使用PositionGetInteger函数获得位置翻转时间...?

 

拿了一个最简单的内部指标的例子--分形:https://www.mql5.com/ru/code/viewcode/30/5540/fractals.mq5。 那里有这样的代码堆栈。

ExtUpperBuffer[i]=High[i];
ExtLowerBuffer[i]=Low[i];

这些缓冲区是动态的双倍 类型。

进一步说,不仅需要存储价格数据--高点和低点,还需要存储指定的极值条的HighTime和LowTime(如你所知,除了M1,所有的TF都有近似的时间值,因此我不得不为自己计算出准确的时间,将其添加到时间缓冲区,以供进一步使用)。后知后觉的船长建议,我们需要声明适当的数据时间 类型的数组,然后进行类似的填充。

ExtUpperTimeBuffer[i]=exactTime[0]; // правая часть - элемент массива, вычисленный заранее
ExtLowerTimeBuffer[i]=exactTime[0]; // правая часть - элемент массива, вычисленный заранее

和其他。

ExtUpperTimeBuffer[i]=EMPTY_VALUE;
ExtLowerTimeBuffer[i]=EMPTY_VALUE;

但在这之前,请到数据时间 的帮助中去发现。

"日期和时间常数..."和"......可以表示为一个字面字符串"。此外,我们不能将这种类型的数组与指标缓冲区联系起来(我们也不需要?),我们不能对这种数据类型的数组应用SetIndexBuffer,原因众所周知。而我们没有。我们反思了很久,得出的结论是:这是好的。我们编译产生的代码。对于带有=EMPTY_VALUE的字符串,我们得到了"常量值截断"的警告(我们感到很难过),而对于同样的字符串,专家顾问的报告中出现了错误:"阵列超出范围 "(我们最后感到很难过)。似乎 EMPTY_VALUE 不想装入 datetime 类型 ,而数组的大小仍然为零EMPTY_VALUE改为0,错误就消失了,但数组的大小仍为0还有一件奇怪的事情:缓冲区ExtUpperBuffer 和ExtLowerBuffer的大小 非零,这意味着它们被填满了,然而分形却没有出现。为什么会突然出现这种情况呢?

我主要感兴趣的是:是否可以像价格缓冲区一样直接填充时间缓冲区(不需要借助于CopyTime和 其他复制到数组的常规函数),如何填充,如果不能,为什么?真的,为了这个目的,我应该再做一对缓冲区,用于存储从1970年开始的秒数,但类型不是数据时间,而是一些双数长数,例如,在必要的时候,通过TimeToString 时间格式 转换为字面字符串

P.S.:谁懒得复制Fractals.mq5的 完整代码,就告诉我,你是如何存储计算出的特定时间数据的(不调用内置指标的句柄并与之合作)?

谢谢你。