[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 484 1...477478479480481482483484485486487488489490491...537 新评论 Денис 2011.07.03 14:35 #4831 向交易功能发送了不正确的参数,例如,不正确的符号、未识别的交易、负的价格公差、不存在的票号,等等。 你需要改变程序逻辑。 试试第二个参数,把OrderOpenPrice()而不是零放进去 Anatoli Kazharski 2011.07.03 15:08 #4832 sergeev: 养成打印所有可能与错误有关的参数的习惯。 如果(!OrderModify(...)) { 打印(GetlastError()+....OrderModify参数列表 ); } 是的,这是个好习惯。谢谢。)) FOReignEXchange 03.07.2011 18:35 尝试用第二个参数而不是零来放OrderOpenPrice()。 是的,这是正确的。))而且由于某种原因,我确信你不能设置你不需要修改的参数,因为这将导致另一个错误。是否有与我所说的类似的东西? 这样的事情在我的脑海中是固定的。 该函数试图将参数改为相同的值。 Денис 2011.07.03 15:10 #4833 tol64: 而且由于某种原因,我确信你不能设置你不想修改的参数,因为那会引起另一个错误。是否有与我所说的类似的东西? 像这样的事情是固定在脑子里的。 该函数试图将参数改为相同的值。 你可以只改变一个参数,其余的保持不变,然后到处写OrderOpenPrice(), OrdsrStopLoss()等等。 prom18 2011.07.03 18:11 #4834 你好!谁有某一价位的拖网的例子,并有一定的间距?谢谢你! Anatoli Kazharski 2011.07.03 18:13 #4835 这里是我的另一个问题。关于我上面给出的代码例子(tol64 03.07.2011 18:20)。 该程序并不总是同步不同仓位的止损。也就是说,选择了头寸,满足了条件,它也被记录在日记中,但止损没有被修改。 在上图中,票据4的仓位的止损应该被修改,设置为与票据1的仓位相同的值。程序通过打印达到了这一点,但进一步的执行似乎被阻止了。 for(count = 0; count < OrdersTotal(); count++) { if(OrderSelect(count,SELECT_BY_POS,MODE_TRADES)) Print("Ticket: ",OrderTicket(),", Type: ",OrderType(),", Magic: ",OrderMagicNumber(),", StopLoss: ",OrderStopLoss()); double Op_Price = NormalizeDouble(OrderOpenPrice(),Digits); double Stp_Loss = NormalizeDouble(OrderStopLoss(),Digits); if(OrderMagicNumber() == Magic_SP01) { if(OrderType() == OP_SELLSTOP) { if(Low_1 < SP_Level_01 && new_val > Op_Price && new_val < Open_0) { OrderModify(OrderTicket(),new_val,OrderStopLoss(),0,0,DeepPink); } if(!(global_trailing_SP < Stp_Loss && global_trailing_SP > High_1)) Print("Условие не выполняется!"); else { OrderModify(OrderTicket(),OrderOpenPrice(),global_trailing_SP,0,0,DeepPink); Print("Условие ModifyOrder исполнилось: global_trailing_SP: ",global_trailing_SP,", Stop Loss: ",OrderStopLoss()); } } if(OrderType() == OP_SELL) { if(global_trailing_SP < Stp_Loss && global_trailing_SP > High_1) { OrderModify(OrderTicket(),OrderOpenPrice(),global_trailing_SP,0,0,DeepPink); } } } ... 因为条件没有得到满足的变体也没有被记录。尝试了这么多不同的组合,但都没有成功。请帮助。 Денис 2011.07.03 18:23 #4836 还有这里。 if(OrderSelect(count,SELECT_BY_POS,MODE_TRADES)) 这不正是我们要做的吗? if(OrderSelect(count,SELECT_BY_POS,MODE_TRADES)=true) --- 2011.07.03 18:24 #4837 FOReignEXchange: 还有这里。 这不正是我们要做的吗? 不,它不会,反正它返回的是bool。 Andrey F. Zelinsky 2011.07.03 18:31 #4838 tol64:这里是我的另一个问题。关于我上面给出的代码例子(tol64 03.07.2011 18:20)。 该程序并不总是同步不同仓位的止损。也就是说,选择了头寸,满足了条件,它也被记录在日记中,但止损没有被修改。 在上图中,票据4的仓位的止损应该被修改,设置为与票据1的仓位相同的值。程序通过打印达到了这一点,但进一步的执行似乎被阻止了。因为条件没有得到满足的变体也没有被记录。尝试了这么多不同的组合,但都没有成功。我希望得到您的帮助。 Print() 在你提供的函数中直接输出变量 global_trailing_SP 的值。 你从哪里读取这个变量的值? 并替换代码中的零(高亮)。 OrderModify(OrderTicket(),OrderOpenPrice(),global_trailing_SP,0,0,DeepPink) 对OrderTakeProfit() Andrey F. Zelinsky 2011.07.03 18:34 #4839 FOReignEXchange: 如果没有条件,那么这个条件是为了什么呢?而订单数据就不会被使用。 然后告诉我哪个代码更好 if(OrderSelect(count,SELECT_BY_POS,MODE_TRADES)) 写成: if(!OrderSelect(count,SELECT_BY_POS,MODE_TRADES)) continue; Денис 2011.07.03 18:48 #4840 abolk: 然后,告诉我什么是更好的代码写成: 我不明白?我只是在帮助中寻找,那里的OrderSelect() 使用一个条件。我没有见过任何地方没有真正的。 If是一个条件运算符。而且括号里应该有一个条件。在我看来,这种方式更符合逻辑。虽然可能没有什么区别。 1...477478479480481482483484485486487488489490491...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
向交易功能发送了不正确的参数,例如,不正确的符号、未识别的交易、负的价格公差、不存在的票号,等等。 你需要改变程序逻辑。
试试第二个参数,把OrderOpenPrice()而不是零放进去
养成打印所有可能与错误有关的参数的习惯。
如果(!OrderModify(...)) { 打印(GetlastError()+....OrderModify参数列表 ); }
是的,这是个好习惯。谢谢。))
FOReignEXchange 03.07.2011 18:35
尝试用第二个参数而不是零来放OrderOpenPrice()。
是的,这是正确的。))而且由于某种原因,我确信你不能设置你不需要修改的参数,因为这将导致另一个错误。是否有与我所说的类似的东西?
这样的事情在我的脑海中是固定的。
该函数试图将参数改为相同的值。
而且由于某种原因,我确信你不能设置你不想修改的参数,因为那会引起另一个错误。是否有与我所说的类似的东西?
像这样的事情是固定在脑子里的。
该函数试图将参数改为相同的值。
你可以只改变一个参数,其余的保持不变,然后到处写OrderOpenPrice(), OrdsrStopLoss()等等。
这里是我的另一个问题。关于我上面给出的代码例子(tol64 03.07.2011 18:20)。
该程序并不总是同步不同仓位的止损。也就是说,选择了头寸,满足了条件,它也被记录在日记中,但止损没有被修改。
在上图中,票据4的仓位的止损应该被修改,设置为与票据1的仓位相同的值。程序通过打印达到了这一点,但进一步的执行似乎被阻止了。
因为条件没有得到满足的变体也没有被记录。尝试了这么多不同的组合,但都没有成功。请帮助。
还有这里。
这不正是我们要做的吗?
还有这里。
这不正是我们要做的吗?
不,它不会,反正它返回的是bool。
这里是我的另一个问题。关于我上面给出的代码例子(tol64 03.07.2011 18:20)。
该程序并不总是同步不同仓位的止损。也就是说,选择了头寸,满足了条件,它也被记录在日记中,但止损没有被修改。
在上图中,票据4的仓位的止损应该被修改,设置为与票据1的仓位相同的值。程序通过打印达到了这一点,但进一步的执行似乎被阻止了。
因为条件没有得到满足的变体也没有被记录。尝试了这么多不同的组合,但都没有成功。我希望得到您的帮助。
Print() 在你提供的函数中直接输出变量 global_trailing_SP 的值。
你从哪里读取这个变量的值?
并替换代码中的零(高亮)。
对OrderTakeProfit()
如果没有条件,那么这个条件是为了什么呢?而订单数据就不会被使用。
然后告诉我哪个代码更好
写成:
然后,告诉我什么是更好的代码
写成:
我不明白?我只是在帮助中寻找,那里的OrderSelect() 使用一个条件。我没有见过任何地方没有真正的。
If是一个条件运算符。而且括号里应该有一个条件。在我看来,这种方式更符合逻辑。虽然可能没有什么区别。