任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 8

 
gyfto:

从我的角度来看,我认为Close[]可以在循环中从Bars-1传到0,你可以在dll中收集这个数组并在那里进行处理。我还没有试过,但它即将到来。

你不需要传递数组本身。传递一个指向它的指针和它的大小就足够了。

https://docs.mql4.com/ru/array/ArrayCopySeries

https://docs.mql4.com/ru/array/ArrayCopyRates

 

伙计们,请给我一个简单的条件:"如果当前价格>酒吧的开盘价,则执行行动"。我还没有和酒吧合作过。而我的大脑却无法达到4:49

 
oDin48:

伙计们,请给我一个简单的条件 "如果当前价格>开盘价,则执行行动"。我还没有和酒吧合作过。而我的大脑却无法达到4:49



if(Close[0]>Open[0])
    {
  //Ваше действие
    }
 
大家好 .... 如何缩短以下表达式: if(a>b && a>c && a>d)
 

问候!

我不知道在哪里问比较好,但我毕竟决定不创建一个新话题。我试图在CodeBase中找到一个专家顾问,似乎有足够多的专家顾问,但由于我不是mql的专家,我意识到我将无法分配我需要的函数。你能告诉我,是否有一个简单的EA,可以跟踪已经打开的订单(和新打开的订单),如果其中一个订单关闭(首先是停止),就会创建一个新的挂单 ,参数为已关闭的订单(价格,取数,停止)?

还有一个问题。我们有i-SignalOfTrade指标。由于移动终端 不提供事件的声音通知,这个指标可能非常有用。但它有一些额外的功能,如果你自己交易,就不能禁用这些功能--它通知你创建和修改挂单等事件。即通知你已经知道的行动。如果你能帮助我禁用它们(或者也许有其他类似的指标),我将不胜感激,我只需要留下挂单触发的通知,采取和停止触发。

 
i999i:
大家好,.... 如何缩短以下表达式: if(a>b && a>c && a>d)

你可以写if((b-a)*(c-a)*(d-a)>0),但不一定快。逻辑和是二进制乘法,它只是同一表达式的另一种符号,唯一的区别是变量类型的大小。a>b是一个布尔变量,4个字节,而b-a,如果它们是双倍的,那么差值将是双倍的(8个字节),这个乘法至少是2倍的。

竺可桢

你不需要传递数组本身。传递一个指向它的指针和它的大小就足够了。


无价的建议。

gyfto

a>b是一个布尔变量,4个字节

让我解释一下。你可以把你的表达式改写为if(((a>b)*(a>c)*(a>d)==1),因为括号里的表达式取值为0或1(而它们又在预编译器的define中被定义为false和true)。
 
gyfto:

你可以写if((b-a)*(c-a)*(d-a)>0),但不一定快。逻辑和是二进制乘法,它只是同一表达式的另一种符号,唯一的区别是变量类型的大小。a>b是一个布尔变量,4个字节,b-a如果是双倍,那么差值将是双倍(8个字节),这个乘法至少是2倍。


无价的建议。


gyfto

你可以写if((b-a)*(c-a)*(d-a)>0),但不确定它是否能更快地工作。逻辑和是二进制乘法,它只是同一表达式的另一种符号,唯一的区别是变量类型的大小。a>b是一个布尔变量,4个字节,b-a如果是双倍,那么差值将是双倍(8个字节),这个乘法至少是2倍。


无价的建议。

谢谢你的提示 .... 是否有其他方法来计算a,b,c的最小和最大值?
 
i999i:

谢谢你的提示 .... 是否有其他方法来计算a,b,c的最小和最大值?


MathMax(MathMax(a,b),c),反之亦然 MathMin.如果有四个值,那么int max = MathMax(MathMax(x1, x2), MathMax(x3, x4))。如果数值是一个carload,也要通过ArrayMaximum 形成一个数组。
 
gyfto:

MathMax(MathMax(a,b),c),反之亦然 MathMin.如果有四个值,那么int max = MathMax(MathMax(x1, x2), MathMax(x3, x4))。如果你也需要通过ArrayMaximum形成一个数组,

你必须使用ArrayMaximum,有几十个值....a ArrayMaximum会比这个快 - a>b && a>c && a>d
 
i999i:

谢谢你的建议 .... 是否有其他方法来计算a,b,c的最小和最大值?


首先,告诉我你为什么需要它。你需要知道其中的原因。这只是为了好玩和兴趣,还是背后有什么目的?