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

 
Valeriy Yastremskiy #:

这不是问题的内容。Dimitri的函数没有通过引用返回一个参数。为什么要使用引用的参数?是的,局部地区将能够在自身中声明一个变量,并在函数被调用后获得对该变量的响应。

就这样吗?

如果一个变量是全局声明的,就不应该有同名的变量。如果一个函数被多个函数调用,就像你的例子一样,你可以忘记它,在每个函数中声明一个同名的变量。这很方便...

 
Valeriy Yastremskiy #:

这不是问题的内容。Dimitri的函数没有通过引用返回一个参数。为什么要使用引用的参数?是的,局部地区将能够在自身中声明一个变量,并在函数被调用后获得对该变量的响应。

就这样吗?

1.所以函数内部可以改变并返回传递给它的任何变量,而不是一个特定的全局变量。

2.这样,函数就不会将任何大尺寸的变量复制到函数中--数组、结构、文本字符串......。

 
Alexey Viktorov #:

如果一个变量是全局声明的,就不应该有同名的变量。如果你从几个函数中调用一个函数,就像你的例子中那样,你可以不用管它,在每个函数中声明一个同名的变量。它很方便...

也就是说,这只是一个通过引用参数的相同名称的局部地区的使用本地化的问题。嗯,不多,但有一些。还以为会有更多的事情发生。

 
JRandomTrader #:

1.这样,函数内部可以改变并返回传递给它的任何变量,而不是一个特定的全局变量。

2.不要把一些大尺寸的变量--数组、结构、文本字符串--复制到一个函数中。

这个问题是关于别的东西。在第三个例子中,你的第一个答案。2й.我不认为这是一个能够改变字段或实体元素的问题。在大多数情况下,它们都不是恒定的,所以在大多数情况下,引用论证是很明显的。但是,如果实体是不变的,那么...但开发商决定不再理会。

 
Valeriy Yastremskiy #:

也就是说,这只是一个通过引用相同的参数名称为局部地区进行本地化使用的问题。嗯,不多,但有一些。还以为会有更多的事情发生。

这些只是我知道我很舒服的事情。当然,还有其他的优势,比如说内存冗余或其他的东西。你为什么不直接问费多塞耶夫?
 
Alexey Viktorov #:
这只是我所知道的,对我来说很舒服的事情。当然还有其他好处,如内存冗余或其他什么。你为什么不直接问费多塞耶夫?

不同的认知水平)))。也许我自己犯了罪,明显的事情是很难传达给别人的))))。

 
Valeriy Yastremskiy #:

通过在全局范围内声明r,可以对一个参数x进行处理。

我们可以通过在全局范围内声明x来做到完全没有参数。此外,也可以不返回结果,而是将其写入全局变量中。但这将导致代码混乱,必须记住存储的内容和位置,而且随着程序代码的增加,它将把程序员的生活变成地狱。
 
下午好。能否请你告诉我缺少什么?我的目的是以最小的交易量 完成最开始的交易。我目前只选择成交量为0.01的订单。
     for(int i=0; i<OrdersTotal(); i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderLots()==0.01){ 
     OrderClose(OrderTicket(),0.01,OrderType()==OP_BUY?Bid:Ask,3,clrWhite);return;}}}    }

如果不是从0.01开始,那么我必须从0.02开始选择订单,以此类推。这个点怎么写?

 
Rustam Bikbulatov 最小的交易量 完成第一批交易。我的EA目前只选择成交量为0.01的订单。

如果不是从0.01开始,那么我必须从0.02开始选择订单,以此类推。这个点怎么写?

if(OrderLots()==0.01)

你自己真的没有看到吗?

"如何检查这个点?" - 你必须计算出手数的最小值0.01。

也许,滑移量应该以点为单位,即3*Point(),而不是3。

 
Rustam Bikbulatov 最小的交易量 完成最开始的交易。我的机器人目前只选择成交量为0.01的订单。

如果不是从0.01开始,那么我必须从0.02开始选择订单,以此类推。这个点怎么写?

你需要2个周期:你应该在第一个周期中获得最小量,在第二个周期中关闭它。你还应该考虑到,当你关闭订单时,它们会被转移1个位置,所以你应该从最大位置到0做一个循环。
原因: