[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 580

 
BeerGod:

那么这样一来,它就根据给定的参数来选择订单。

例如:https://www.mql5.com/ru/forum/131859/page3#434221

函数NumberOfPositions()。

该函数返回当前未结头寸的数量。 通过外部参数指定更准确地选择要计算的头寸。

  • sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定仪器的位置。默认值"" 意味着任何市场工具。NULL 表示当前的仪器。
  • op- 贸易操作,职位类型。有效值:OP_BUYOP_SELL-1。默认值-1 意味着任何位置。
  • mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。


谢谢......我将把那个论坛主题添加到我的书签中。:))
 
Desead:


当我从图表中删除机器人时,就会调用deinit--我无法以其他方式跟踪这个条件.....,可能写一个单独的脚本来删除所有剩余的挂起的机器人更容易。

顺便说一下,关于这个问题的另一个想法。

我似乎已经解决了删除订单的问题。我在一个单独的函数中计算了 "必要的"(要删除的)订单的数量,调用这个函数,然后在while中设置一个条件(总数>0),然后循环删除for(int i=Total-1;i<=0l; i--),再次计算"必要的 " 数量当达到给定水平时退出while删除 尝试。这样一来,一切都被删除了。

如果其中一个订单在计数时刻后因任何原因消失,这里可能会出现无限循环。


在删除订单的for循环之后,每次都会进行订单计数,计数器迭代,同时通过break 退出循环,当计数器达到你在外部变量中设置的值时,你可以在退出之前添加错误处理,并通过以下方式输出结果
警报(...)
打印( ...)
而且正如有人建议我为贸易决议添加一个检查。所以这里没有办法进行循环。


 
Dimka-novitsek:

日安!!!。找不到一个漂亮的解决方法来解决这个问题。下面是一个典型的 订单设置。但是,如果我给机器人的参数为零,即没有止损和止盈,就不会有任何效果。

我们也可以设置一个if,第二次输入带零的订单,但这有点麻烦。

一切都很成熟--在艺术的层面上!!!。;)

而且,说真的--学会思考你刚刚写的东西。根据你的公式,在STOPPs的零值时,止损和止盈等于订单的开盘价,这是不可能的。你有什么其他的解决办法吗(你能不能用用你的脑子?:)?

 
Dimka-novitsek:

日安!!!。找不到一个漂亮的解决方法来解决这个问题。下面是一个典型的订单设置。但是,如果我给机器人的参数为零,即没有止损和止盈,就不会有任何效果。

我们也可以设置一个if,第二次输入带零的订单,但这有点麻烦。



if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; 
 
rigonich:


......你在浪费时间(你没有给这个人留下任何机会):如果一个人不刺激他的灰色物质,他将在 "门廊 "上度过一生--"看在上帝的份上,给我一个提示!":)))
 
BeerGod:

那么这样一来,它就根据给定的参数来选择订单。

例如:https://www.mql5.com/ru/forum/131859/page3#434221

函数NumberOfPositions()。

该函数返回当前未结头寸的数量。 通过外部参数指定更准确地选择要计算的头寸。

  • sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定仪器的位置。默认值"" 意味着任何市场工具。NULL 表示当前的仪器。
  • op- 贸易操作,职位类型。有效值:OP_BUYOP_SELL-1。默认值为-1 意味着任何位置。
  • mn- 位置标识符,MagicNumber。默认值为-1,意味着任何标识符。


看了看

ModifyOrder()函数。https://forum.mql4.com/ru/38949#434195

有3个参数需要输入。两个我猜到了,第三个我没猜到。

下一行的UseSound是什么?

----------------------------------------------------

如果(使用声音)PlaySound("alert.wav"); break;

 
lottamer:


让它发挥作用--我有一个位置和一个工具。

但这并不奏效!

它说代码中存在一个错误

到这一点。

---------------------------

int start()

{

//----

如果OrdersTotal()>0

PlaySound("alert.wav")。

//----

return(0);

}

-----------------------------

送出8个错误!!!。


把条件(在if后面的那个)放在括号里
 
TarasBY:

你已经完全成熟了--在艺术层面上!!!。;)

而且,说真的--学会思考你刚刚写的东西。如果我们按照你的公式设置零STOPPs,那么止损和止盈就等于订单的开仓价,这是不可接受的。你有什么其他的解决办法吗(你能不能用用你的脑子?:)?


:))哎呀,我还可以澄清 "泛欧 "中的以下一点吗?

start和void函数之间的区别是什么?

 
TarasBY:

...你错了:如果一个人不刺激他的灰色物质,他就会在 "门廊 "上度过他的一生--"看在上帝的份上,给我一个提示!":)))


你可能是对的,但这是我的人生哲学--如果不是太麻烦,就帮助别人,他们会在你需要时帮助你。 55岁时,很难改变习惯。

P.S. 这也是我的学习方式。

 
lottamer:


:))哎呀,我还可以澄清 "panamic "中的以下一点吗?

start和void函数之间的区别是什么?

你已经在无人实现的事情上打了一拳:"将手指与帮助它的大头 相碰"!!!!。:)))

第一个是一个函数,第二个是它返回的值的类型。

P.S. 请耐心阅读