Обращение по начальной дате и количеству требуемых элементов
intCopyRates(
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe, // периодdatetime start_time, // с какой датыint count, // сколько копируемMqlRates rates_array[] // массив, куда будут скопированы данные
);
DBL_MAX 将在那里。
为什么残缺的南德不回来了,尽管残缺已经被移除?
第一次打印是10,第二次打印是真的,第三次打印又是10。一分钟放一单--还是10单。
我认为它应该是-1(INVALID_HANDLE)。我想错了吗?
为什么残缺的南德不回来了,尽管残缺已经被移除?
第一次打印是10,第二次打印是真的,第三次打印又是10。一分钟放一单--还是10单。
我认为它应该是-1(INVALID_HANDLE)。我是不是想错了?
被删除的指标不会立即被物理删除,而是在暂停后(也许是几分钟),以防同一程序或其他程序重新打开它们(缓存选项)。
在大多数情况下,这是很方便的。 只有在循环读取一大组指标的缓冲区(大到不能一次全部装入内存)时才会出现问题。
//只有在这种情况下,在程序中释放指标才有意义。
//所有其他使用IndicatorRelease()函数的变体都是 "错误的",因为指标在工作完成时被释放了。
因此,悖论是:这个功能是无用的,因为缓存完全扼杀了所有符合要求的用例。
在这种情况下,雷纳特曾经表示承诺要做一个 "瞬间释放 "的变体,但显然他仍然很忙。;)
--
这算是答案的第一部分(没有这部分,第二部分就无法理解了)。
而现在关于INVALID_HANDLE。在我看来,释放动态对象的函数,以及删除操作符,并没有给指针本身分配INVALID_HANDLE 这个值;它们只是删除句柄所指向的对象。只有内存分配函数(new操作符也是如此)在失败的情况下才会强行给指针分配INVALID_HANDLE 值,所以检查指针有效性的正确方法是CheckPointer() 函数,它实际上是通过系统的句柄表寻找一个对象,如果找到对象则返回句柄类型,如果没有则返回0。
希望现在处理指针(句柄)的逻辑更清楚一点。以及你的例子中的结果。那里的一切都正确:指标是一个组访问对象,它在第一次吹口哨时没有被物理删除(所以即使是CheckPointer() 也会返回非零),更不用说希望在将指针变量传递给IndicatorRelease()后在指针变量中获得INVALID_HANDLE 值的故障了 。
在MetaTrader 5中的订单、头寸和交易 这篇文章中举了一个例子:"每个交易都是基于一个特定的订单,但一个订单可以产生多个交易。例如,一个买入10手的订单可以通过几个连续的交易来执行部分执行"。我的理解是,如果我想建立一个例如10手的头寸,那么在历史上可能会出现几个交易。在我的策略中,1和2的位置在同一方向,我的专家顾问(MT4)以1.0手开仓,然后第三手,然后2.0手。在MT5中,可能会出现在历史上打开第一个头寸的情况,例如出现2个或多个交易。2个或更多的交易可能出现在历史上。当希望打开第2个位置时,专家顾问将滚动浏览历史,发现它将是第3个位置。而且它将打开错误的地段。这有点让人讨厌。
也许有人知道如何解决这个问题或给我一个链接。
谢谢你,这正是你所需要的。
// nelp by nelp for dummies - 这就是文章中需要的内容。
我试图创建一个指标,使用两个不同的时间段,例如M5(屏幕上的当前时间段)和H1。如何在这些不同的时间段内实现价格同步?例如,当在M5上计算指标的最后值时,我想自动从同一时间的H1抽出价格(即ArraySetAsSeries后两个时间段的零条对应于当前的最后时间,如OnTick,但不是屏幕上的最新条)。 如果没有这种可能性,我们应该手动检查条形时间,我们应该为指标添加一个同步函数,如onTick。
我已经尝试在测试器中进行测试--这是件好事。为什么最后的计算值没有保存在屏幕上?
我试图创建一个指标,使用两个不同的时间段,例如M5(屏幕上的当前时间段)和H1。如何在这些不同的时间段内实现价格同步?例如,当在M5上计算指标的最后值时,我想自动从同一时间的H1抽出价格(即ArraySetAsSeries后两个时间段的零条对应于当前的最后时间,如OnTick,但不是屏幕上的最新条)。 如果没有这种可能性,我们应该手动检查条形时间,我们应该为指标添加一个同步函数,如onTick。
我已经尝试在测试器中进行测试--这是件好事。为什么以前的计算值没有保存在指标中?
使用函数CopyXXXX()的其中一个重载
调试时,要检查数据是按哪个方向复制的(如果复制的数据超过1个)。
使用CopyXXXX()的其中一个重载
调试时,要检查数据是按哪个方向复制的(如果复制的数据超过1个)。
你好!
请告诉我在前一天的当前分钟图表上绘制最大和最小值的指标代码?
SPS!
好久不见了=)。
比方说。有一些时间点。例如,D'03.07.2005 13:48:12'。
我怎样才能找出包括这个时间段在内的(某个时期的)酒吧的时间?
如果有一个类似的功能就好了。
datetime УзнатьВремяБараПоВремениПользователя (datetime времяПользователя, ENUM_TIMEFRAMES периодБаров)
...而且,如果当时没有交易,它将返回一个负值。
嗯,吐出来吧,有这样的功能吗?