OrderModify()问题 - 页 2

 
WhooDoo22:

啊哈!我把票号0换成了1,一切都像钟表一样工作了。是的,我错了,威廉...OrderSelect()函数是一个问题。很明显,OrderSelect()函数必须选择一张票。如果票号是0,EA会选择什么票? :O "?"。谢谢你们两位的帮助。

谢谢你们。

票号永远不会 是0 ...这不是一个有效的票号。


请参考这个主题:https://www.mql5.com/en/forum/142545
 

西蒙,我理解0不是一个有效的票号,因为0意味着没有票可以选择。1代表一张票和OrderSelect()函数 试图选择的具体票号。

我将阅读该主题。谢谢你发布的信息。

谢谢你。

 
WhooDoo22:

我理解0不是一个有效的票号,因为0意味着没有票可以选择。1代表一张票和OrderSelect()函数目前正在选择的具体票号。

不,这是不正确的。零作为一个票据号码并不意味着什么,它是无效的。 OrdersTotal() == 0意味着没有订单 ......很明显,你把不同函数和票据号码与订单位置的结果混为一谈。


除非你想得到完全相同的结果,否则不要完全按照你之前所做的去做。 你不能假设你有正确的票号。你需要在订单库中找到它,然后选择它。

如果你想学习,请做这个练习。

  • 在任何经纪商处开一个新的模拟账户
  • 下一个0.1手的市场订单,没有TP或SL
  • 写一些代码,为这个订单找到正确的票据号码,然后使用票据号码选择订单,然后修改它,使它有一个TP和SL,最后关闭它。

 
RaptorUK:

不,这是不正确的。零作为一个票据号码并不意味着什么,它是无效的。 OrdersTotal() == 0意味着没有订单......很明显,你把不同函数和票据号码的结果混在一起了。

如果你想学习,请做这个练习。

  • 在任何经纪商处开一个新的模拟账户
  • 下一个0.1手的市场订单,没有TP或SL
  • 写一些代码,找到这个订单的正确票号,然后使用票号来选择订单,然后修改它,使它有一个TP和SL,最后关闭它。


你试过这个练习吗? 当你完成后,请展示你的代码。
 

西蒙。

我将为这个项目 编码。这应该 是小菜一碟。我已经做了大部分的工作。)

是的,我不介意做这个练习,因为你已经提供了你的一贯支持。

谢谢你。

 

西蒙。

完成了。我以为你想要的是脚本格式的文件,这样你就可以把它拖放到图表上,等待EA计算一些数字,然后看着它从市场中拉出一个订单。

我目前所做的和这个项目之间的区别是...

目前正在构建。

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){

这个项目。

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)){

我之所以使用 "if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)){",是因为我处理的是一个订单池,而不是 一个预定义的特定票据变量。

我目前构建的第二卷使用预定义变量,因为我必须选择特定的票据来运行第二卷的策略。这个项目是为了在眨眼间简单地关闭一个订单。

实际上,当我在编码包含Ask/Bid价格的函数执行时,我的头顶上升起了几个问号。这是因为,通常在发送/关闭订单时,我通常只输入 "Ask"/"Bid",但我意识到我需要定义一个变量,根据市场上的订单是卖出或买入 的条件,可以是Ask或Bid价格。然后,我就在通常的 "如果订单总数大于零 "中加入了一个变量,然后就完成了所有设置。这应该是一个很好的例子了。

谢谢你。

附加的文件:
 

好吧,这不是我的本意,但我应该更清楚地说明我的要求.......你的代码没有设置SL和TP ......但无论如何让我修改一下我的要求。. .

使用相同的模拟账户 ......

  • 在英镑兑美元、美元兑日元和欧元兑美元上各下一个0.1手的市场订单,不设止损和止盈 ......忘记你下这些订单的顺序
  • 在不考虑交易顺序的情况下,假设事先不知道所下订单的数量,编写一些代码,为USDJPY的订单找到正确的票据号码
  • 将票据号码以 "USDJPY的票据号码="的形式打印到日志中。
  • 然后使用票据号码来选择订单,然后修改它,使它有一个TP和SL,最后关闭它。

然后,当你完成后,请显示你的代码和日志中显示 票据号码 的行。

 

西蒙。

啊,对不起,我没有完全读懂你的第一个说明,没有按你的要求编码。哦,好吧,你增加了一个新的要求清单,所以我就开始忙了。

在这之前,我先说明一下我将要做的事情...

1.找到在USDJPY上的订单的票号。

2.以 "USDJPY的票号="的形式将票号打印到日志中。

3.3.使用票据号码选择订单并修改订单,使其有一个TP和SL并关闭它。

4.显示代码和日志中显示票号的一行。


说到这里,我想清楚我们是在同一页面上。

是的,我可以做1。(显然我不能用 "货币功能 "来隔离票据,对吗?)

是的,我可以做2。

3.你的意思是,使用OrderSelect()函数 选择订单,并修改它,使它有一个TP和SL,然后关闭它?

4.很明显,我会显示代码;)......日志中显示票号的一行(你可以要求的是日志中显示票号的 "视觉快照"。无所谓)

在我开始工作之前,请先发布一个回复。


谢谢你。

 
WhooDoo22:


说到这里,我想清楚我们是在同一起跑线上。

是的,我可以做1。(显然我不能用 "货币功能 "来隔离票据,对吗?)

是的,我可以做2。

3.你的意思是,使用OrderSelect()函数 来选择订单,并修改它,使它有一个TP和SL,然后关闭它?

4.Obvioiusly, I'll show code;)......一行显示票号的日志(你可以要求的是显示票号的日志的 "视觉快照"。无所谓)

你可以使用任何你喜欢的函数,只要你的代码符合要求。......这样做,你就不会违反所给的条件,例如,"不考虑交易的顺序,并假定事先不知道所下订单的数量"。)
 
进展如何? 需要任何说明或提示吗?