[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 502 1...495496497498499500501502503504505506507508509...537 新评论 [删除] 2011.07.10 08:32 #5011 编辑|删除 帮助找到一个考虑到滑点的下单功能,并且没有130-134的错误。 Victor Nikolaev 2011.07.10 09:13 #5012 nuan: 编辑|删除 帮助找到一个考虑到滑点的下单功能,并且没有130-134的错误。 让我看看你的变体。 [删除] 2011.07.10 09:25 #5013 NumderOrder=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point, "BUY",0,0,Red); Print(GetLastError())。在SL和TP的任何数值下,它都会给出134,它往往根本不下单。如果(NumberOfOrders(NULL)==0),则根据条件打开。 在测试器中,它总是下一堆订单,而不是一个订单,也就是说,我不明白为什么它要下一个订单,如果这个货币对上没有其他未结订单的话。 [删除] 2011.07.10 09:36 #5014 对不起,为什么有多个订单 Victor Nikolaev 2011.07.10 09:42 #5015 nuan: NumderOrder=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point, "BUY",0,0,Red); Print(GetLastError())。 在SL和TP的任何数值下,它都会给出134,它往往根本不下单。 如果(NumberOfOrders(NULL)==0),则根据条件打开。 在测试器中,它总是下一堆订单,而不是一个订单,也就是说,我不明白为什么它要下一个订单,如果这个货币对上没有其他未结订单的话。 ERR_NOT_ENOUGH_MONEY 134 没有足够的钱来完成交易。 [删除] 2011.07.10 14:30 #5016 日子过得不错。我正在做一个EA,它在某个条件下开了2个订单(比喻说:当价格上升和下降时)。当价格上升时,它打开2个,当价格下降时,它关闭这些2个并打开一个新的2个。一个订单没有止盈,第二个订单有止盈。第二个问题是有问题的。当它的死亡时间到来时,它没有被选中,这里有删除订单的代码。 for (int a = 0; a < OrdersTotal()-1; a++) if (OrderSelect(a, SELECT_BY_POS, MODE_TRADES)) if (OrderComment() == "MyOrd" && OrderType() == OP_SELL) OrderClose(OrderTicket(), NormalizeDouble(OrderLots(), Digits), NormalizeDouble(Ask, Digits), 0); OP_BUY的情况也一样。我正在比较评论,以确定这是一个由我的EA开出的订单,而不是手动或其他EA开出的。OrderSelect的问题就在这里,它就是不想选择有止盈的订单。当它得到一个到它的数字时,OrderSelect返回false。测试员日志中没有错误,GetLastError也说一切正常(返回0)。为什么没有被选中?如果它不能选择它,为什么没有错误?谢谢大家。 [删除] 2011.07.10 14:53 #5017 后续问题。为什么在测试器中,当我将周期设置为月+时,那么结果中出现了五位数?无论在哪里设置价格,我都把NormalizeDouble(SomeValue, Digits)放进去。而只有在结果中,日志才不会发誓,尽管当我不知道四舍五入函数时,它才会发誓。 --- 2011.07.10 15:04 #5018 条件 a < OrdersTotal()-1 在每个迭代中都会被检查。 想一想a 等于什么,OrdersTotal()-1在第一次迭代后等于什么? Alexander 2011.07.10 16:15 #5019 Solree:OrderClose(OrderTicket(), NormalizeDouble(OrderLots(), Digits), NormalizeDouble(Ask, Digits), 0)。 地段和价格有不同的数字。 Andrey F. Zelinsky 2011.07.10 16:34 #5020 Solree: 归一化双数(OrderLots(),Digits) 另外--要把这批货正常化也不是那么容易。 你需要考虑到地段变更的允许步骤。 例如,如果步长是0.01,那么就按2进行标准化处理 而如果步长是0.1,那么归一化应该是1 1...495496497498499500501502503504505506507508509...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
编辑|删除 帮助找到一个考虑到滑点的下单功能,并且没有130-134的错误。
让我看看你的变体。
Print(GetLastError())。
在SL和TP的任何数值下,它都会给出134,它往往根本不下单。
如果(NumberOfOrders(NULL)==0),则根据条件打开。
在测试器中,它总是下一堆订单,而不是一个订单,也就是说,我不明白为什么它要下一个订单,如果这个货币对上没有其他未结订单的话。
NumderOrder=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point, "BUY",0,0,Red);
Print(GetLastError())。
在SL和TP的任何数值下,它都会给出134,它往往根本不下单。
如果(NumberOfOrders(NULL)==0),则根据条件打开。
在测试器中,它总是下一堆订单,而不是一个订单,也就是说,我不明白为什么它要下一个订单,如果这个货币对上没有其他未结订单的话。
ERR_NOT_ENOUGH_MONEY 134 没有足够的钱来完成交易。
日子过得不错。我正在做一个EA,它在某个条件下开了2个订单(比喻说:当价格上升和下降时)。当价格上升时,它打开2个,当价格下降时,它关闭这些2个并打开一个新的2个。一个订单没有止盈,第二个订单有止盈。第二个问题是有问题的。当它的死亡时间到来时,它没有被选中,这里有删除订单的代码。
OP_BUY的情况也一样。我正在比较评论,以确定这是一个由我的EA开出的订单,而不是手动或其他EA开出的。OrderSelect的问题就在这里,它就是不想选择有止盈的订单。当它得到一个到它的数字时,OrderSelect返回false。测试员日志中没有错误,GetLastError也说一切正常(返回0)。为什么没有被选中?如果它不能选择它,为什么没有错误?谢谢大家。
条件
在每个迭代中都会被检查。
想一想a 等于什么,OrdersTotal()-1在第一次迭代后等于什么?
OrderClose(OrderTicket(), NormalizeDouble(OrderLots(), Digits), NormalizeDouble(Ask, Digits), 0)。
Solree:
归一化双数(OrderLots(),Digits)
你需要考虑到地段变更的允许步骤。
例如,如果步长是0.01,那么就按2进行标准化处理
而如果步长是0.1,那么归一化应该是1