新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 821

 

请注意我的问题。我正在写一个指标,它进行一些计算,并将它们保存在一个数组中(不是时间序列),其大小与图表中的烛台数量相同。最初,我认为如果我在终端参数中的图表中有2000个烛台,那么在出现新的烛台时,第一个烛台将是第二个,第二个-第三个,等等。但我发现,随着每根新蜡烛的出现,Rates_total的值就会增加,并高于2000的上限。

因此,重新计算数组是没有意义的。

但为什么会出现这种情况,因为终端正好设置了2000个烛台?


当终端关闭时,条数又变成了2000,当新的蜡烛出现时又开始增加。


ruslanzip:
下午.你能给我一个提示吗?该条件的代码会是怎样的。如果账户余额 增加或减少,则执行函数

//Declare a variable outside of functions:

double Balance=AccountBalance()。

/添加到滴答/计算功能。

如果(Balance!=AccountBalance())

{

Balance=AccountBalance()。

MyFunction(); // <-- 你的函数

}

 
我的真实账户里有钱,但这里说你只能提取工资?
 
Roza75:
我的真实账户里有钱,但这里说你只能提取工资?
真实的账户,你在哪里?
 
Artyom Trishkin:
真实的账户,你在哪里?
Metatreder 4应用程序
 
Igor Makanu:

因为终端是这样工作的

所以这是正常的行为,不是错误?因为一些基本的自定义指标在编写时没有考虑到这个因素,而是在每次prev_calculated==0时进行全面重新计算。


伊戈尔-马卡努

如果我在这个账户上运行第二个EA,会发生什么?

你需要使用历史订单,我们的魔术师没有开放的订单 - 检查历史上最后一个订单的利润。

重装?还是重装?如果是后者,EA的行为将不会改变。如果你启动第二个EA,算法将被类似地执行,没有错误。

作者需要用什么来工作,取决于他为自己设定的任务。他提出问题的方式,我回答了。 我的问题没有更具体。

 
The_Sheikh:

请注意我的问题。我正在写一个指标,它进行一些计算,并将它们保存在一个数组中(不是时间序列),其大小与图表中的烛台数量相同。最初,我认为如果我在终端参数中的图表中有2000个烛台,那么在出现新的烛台时,第一个烛台将是第二个,第二个-第三个,等等。但我发现,随着每根新蜡烛的出现,Rates_total的值就会增加,并高于2000的上限。

因此,重新计算数组是没有意义的。

但为什么当终端正好设置了2000个蜡烛图时,会出现这样的情况?


当终端关闭时,条数又变成了2000,当新的蜡烛出现时又开始增加。


//Declare a variable outside of functions:

double Balance=AccountBalance()。

/添加到滴答/计算功能。

如果(Balance!=AccountBalance())

{

Balance=AccountBalance()。

MyFunction(); // <-- 你的函数

}



非常感谢你,它成功了!

 
Artyom Trishkin:

我的手机上有Metatreder 4应用程序。
 
Alexey Viktorov:

而且为什么要试图弄清楚它的内部运作方式呢?好吧,如果你想写你自己的函数,可能更方便的是排序和取最外层的一个索引的值。但它几乎不会比内置功能更快。另外,内置功能允许你在指定的索引范围内搜索一个值。所以,简单的排序是行不通的。因此,我们将不得不把数组的一部分复制到一个中间数组中,并对其进行排序,然后从其中取出所需的值,但数组复制并不是一个非常 "便宜 "的功能。

你需要了解,这样你的大脑才能发展。昨天我坐了很久,做了草图,看来在枚举的原则下是可以不做排序的,但我们仍然需要会存储值的变量,更可以一次性返回值,而不是索引,这就简化了工作。你可以更好地在范围和不同的修改中做出自己的函数,以节省计算量。内置功能缺乏许多细节。但是内置函数非常快,我不明白这与什么有关,也许它们是用C++写的,因为我写的函数非常仔细,考虑到所有的细节:速度、质量、节省代码,实施修改,减少函数内的检查和传递的数量,但是由于某些原因,内置函数仍然绕过了速度,而不是质量,但是我很早就向论坛社区提出这个问题了。

 
所有论坛用户下午好!面对一个问题,第二天就头疼了,我怎么也想不出来怎么实施的办法!"李先生说。如何在某个烛光下画出一个矩形、一个圆形、一个椭圆形(不管是什么图形),而不是在新的坐标上重画。而如果某些条件触发了一个数字呢?每个数字都在自己的烛台上。我是最近才开始学习mql4的,所以我对图表不熟悉。我昨天决定尝试在第10条上打印一个正方形(作为一个例子)。 我得到了一个,它不再被画出来。昨天,我把代码戳了又戳,最终还是成功了,但方块不断地在旧的地方被擦掉,在新的地方被画出来,然后烦恼的是,输出的方块只有一次。提示谁知道如何实施!或者建议在论坛上哪里有分支机构。阿卡已经看了一堆资料,只是更加迷茫了!提前感谢您的回答