[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 389 1...382383384385386387388389390391392393394395396...537 新评论 ilunga 2011.05.17 10:29 #3881 Dimka-novitsek: 当EA什么都不启动时,它只是为了检查新的订单是否会在每一个刻度上打开 。 OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES ); if(OrderSymbol()==Symbol()) { if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ) { i=OrdersTotal() ; if (i<2) { tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red); Alert ("OP_BUYSTOP", GetLastError( )); tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' ); Alert ("OP_SELLSTOP", GetLastError( )); i=OrdersTotal(); } } } 这是你的代码,我没有做任何修改 你写道:"如果你选择蒂克特订单和魔法符号的订单,并且订单总数 小于2,那么订单将被放置。 Dimka-novitsek 2011.05.17 10:30 #3882 谢谢你!!!。我很抱歉,我肯定写的是胡说八道。 Sersad 2011.05.17 10:37 #3883 drknn: 没有代码,就很难说。很有可能,EA是为四位数编写的,但模拟账户是五位数。你要明白,如果我们设置,例如,10个点的止损,那么这对于5位数的EA来说,和4位数的1个点是一样的距离。如果我们将设置止损单的最小允许距离设定为,例如3点,那么在一个五位数的市场上,这将是30点,而不是3点。服务器会很好理解地拒绝在五位数上设置10点止损的订单的命令。但原因可能是不同的。你看,你问过别人为什么他们的车不能启动。如果不打开引擎盖,听一听汽车对试图启动的反应,人们是无法告诉你原因的。 我试着用欧元兑美元运行一个策略测试器,并用几种货币来执行它,欧元兑美元、英镑兑美元、美元兑日元,但它没有工作。我在发送买入/卖出订单 时使用了Point,所以它应该对所有符号都有效。我最不明白的是,为什么测试器显示了结果,但EA却没有在模拟账户上开仓。在什么情况下会出现这种情况? 无论如何,感谢你的回答,我将在晚上公布代码。 Artyom Trishkin 2011.05.17 10:39 #3884 Dimka-novitsek: 对不起,我在这里写了一些乱七八糟的东西,如果你能告诉我,我哪里完全是羊肠小道。 。 所有的人:))))))))))))))))))) 让我们从头开始。 //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int tiket, tikett; int i=0, R1=0, R2=0, A=1; double volume=0.1; double price=PRICE_OPEN; // R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss; int start() { //---- OrderSelect (tiket, SELECT_BY_TICKET, MODE_TRADES); if(OrderSymbol()==Symbol()) { if (OrderMagicNumber()==1000 || OrderMagicNumber()==2000) { i=OrdersTotal(); if (i<2) { tiket=OrderSend(Symbol(), OP_BUYSTOP, volume*A, price+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red); Alert ("OP_BUYSTOP", GetLastError( )); tikett=OrderSend(Symbol(), OP_SELLSTOP, volume*A, price-otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' ); Alert ("OP_SELLSTOP", GetLastError( )); i=OrdersTotal(); } } } //---- return(0); } //+------------------------------------------------------------------+ 最初,两个变量被初始化为零。 int tiket, tikett; 那么第一行代码就是我们选择票务订单的地方。 OrderSelect (tiket, SELECT_BY_TICKET, MODE_TRADES); 这里的变量票是零。也就是说,我们试图选择一个票价为零的订单。这样做,我们甚至没有阅读帮助,因为在按票据选择时,池子参数被忽略了,我们仍然指定MODE_TRADES。这不是一个错误--在这种情况下,它是一个额外的参数,被简单地忽略了。相应地,具有零票的订单没有被选中 - 它不存在... 然后所有的东西都放在嵌套条件中;第一个条件是。 if(OrderSymbol()==Symbol()) ...如果所选订单的符号与当前图表的符号相符...而且,由于没有选择任何顺序,我们将安全地从start()到达出口,而不做任何事情。 我可以向你保证...再往前走,你有同样有趣的,但......。拨弄一下也没什么意思。 首先是搜索已经开立的头寸或已经设定的挂单。 好运。 Dimka-novitsek 2011.05.17 10:43 #3885 ilunga: 这是你的代码,我没有做任何修改 你已经写了,如果你选择了这个符号和这个魔法的tiket订单,并且总订单少于2个,就会下订单。 啊,不,这是正确的,当你开始一个少于两个的订单时,会有两个挂单,在下一个嘀嗒声中,有两个挂单,什么也没有发生。 我的脑子里一定有某种危机。 Artyom Trishkin 2011.05.17 10:51 #3886 Dimka-novitsek: 啊,不,这是正确的,当你开始一个少于两个的订单时,两个挂单被放置,在下一个tick上有两个,什么也没有发生。 我的脑子里一定有某种危机。 我已经一步一步地告诉你,你在哪里有危机... PapaYozh 2011.05.17 11:17 #3887 Sersad:我在欧元兑美元上运行了一个策略测试器,试图在几种货币上运行执行,欧元兑美元、英镑兑美元、美元兑日元--它在任何地方都不起作用。我在发送买入/卖出订单时使用了Point,所以它应该对所有符号都有效。我最不明白的是,为什么测试器显示了结果,但EA却没有在模拟账户上开仓。在什么情况下会出现这种情况?无论如何,感谢你的回答,我将在晚上公布代码。 关键是,点值 是不同的。 Sersad 2011.05.17 11:30 #3888 PapaYozh: 这就是问题所在:点值不同。 点值在不同的报价中有所不同,但其本质对于所有带有任何小数位数的报价都是一样的--它是最小的价格阶梯。 这就是为什么我用Ask-30*Point而不是Ask-0.003作为止损的事实来否定drknn的 评论。 "很有可能,EA写的是四位数,而模拟账户是五位数。你看,如果你设置了,比如说,10点的止损单,它在5位数的EA上的距离和4位数的EA上的1点是一样的。如果我们将设置止损单的最小允许距离设定为,例如3点,那么在一个五位数的市场上,这将是30点,而不是3点。很明显,服务器会直接拒绝设置止损为10点的订单的命令......"。 double Point - 当前工具在报价货币中的点的大小。 [删除] 2011.05.17 12:30 #3889 一句话的建议。 我写了一个简单的脚本来输出最小止损/止盈水平的数值,单位是点。 int start() { int min=MarketInfo(Symbol(),MODE_STOPLEVEL); Alert(min); return(0); } 输出为零。这是该参数的标准值吗? --- 2011.05.17 12:31 #3890 fx_max: 我写了一个简单的脚本,输出最小允许的止损/止盈水平的数值,单位是点。 int min=MarketInfo(Symbol(),MODE_STOPLEVEL)。 它的输出为零。这是该参数的标准值吗? 不 1...382383384385386387388389390391392393394395396...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
当EA什么都不启动时,它只是为了检查新的订单是否会在每一个刻度上打开 。
这是你的代码,我没有做任何修改
你写道:"如果你选择蒂克特订单和魔法符号的订单,并且订单总数 小于2,那么订单将被放置。
没有代码,就很难说。很有可能,EA是为四位数编写的,但模拟账户是五位数。你要明白,如果我们设置,例如,10个点的止损,那么这对于5位数的EA来说,和4位数的1个点是一样的距离。如果我们将设置止损单的最小允许距离设定为,例如3点,那么在一个五位数的市场上,这将是30点,而不是3点。服务器会很好理解地拒绝在五位数上设置10点止损的订单的命令。
但原因可能是不同的。你看,你问过别人为什么他们的车不能启动。如果不打开引擎盖,听一听汽车对试图启动的反应,人们是无法告诉你原因的。
我试着用欧元兑美元运行一个策略测试器,并用几种货币来执行它,欧元兑美元、英镑兑美元、美元兑日元,但它没有工作。我在发送买入/卖出订单 时使用了Point,所以它应该对所有符号都有效。我最不明白的是,为什么测试器显示了结果,但EA却没有在模拟账户上开仓。在什么情况下会出现这种情况?
无论如何,感谢你的回答,我将在晚上公布代码。
对不起,我在这里写了一些乱七八糟的东西,如果你能告诉我,我哪里完全是羊肠小道。 。
所有的人:)))))))))))))))))))
让我们从头开始。
最初,两个变量被初始化为零。
int tiket, tikett;
那么第一行代码就是我们选择票务订单的地方。
OrderSelect (tiket, SELECT_BY_TICKET, MODE_TRADES);
这里的变量票是零。也就是说,我们试图选择一个票价为零的订单。这样做,我们甚至没有阅读帮助,因为在按票据选择时,池子参数被忽略了,我们仍然指定MODE_TRADES。这不是一个错误--在这种情况下,它是一个额外的参数,被简单地忽略了。相应地,具有零票的订单没有被选中 - 它不存在...
然后所有的东西都放在嵌套条件中;第一个条件是。
...如果所选订单的符号与当前图表的符号相符...而且,由于没有选择任何顺序,我们将安全地从start()到达出口,而不做任何事情。
我可以向你保证...再往前走,你有同样有趣的,但......。拨弄一下也没什么意思。
首先是搜索已经开立的头寸或已经设定的挂单。
好运。
这是你的代码,我没有做任何修改
你已经写了,如果你选择了这个符号和这个魔法的tiket订单,并且总订单少于2个,就会下订单。
啊,不,这是正确的,当你开始一个少于两个的订单时,会有两个挂单,在下一个嘀嗒声中,有两个挂单,什么也没有发生。
我的脑子里一定有某种危机。
啊,不,这是正确的,当你开始一个少于两个的订单时,两个挂单被放置,在下一个tick上有两个,什么也没有发生。
我的脑子里一定有某种危机。
我在欧元兑美元上运行了一个策略测试器,试图在几种货币上运行执行,欧元兑美元、英镑兑美元、美元兑日元--它在任何地方都不起作用。我在发送买入/卖出订单时使用了Point,所以它应该对所有符号都有效。我最不明白的是,为什么测试器显示了结果,但EA却没有在模拟账户上开仓。在什么情况下会出现这种情况?
无论如何,感谢你的回答,我将在晚上公布代码。
关键是,点值 是不同的。
这就是问题所在:点值不同。
点值在不同的报价中有所不同,但其本质对于所有带有任何小数位数的报价都是一样的--它是最小的价格阶梯。
这就是为什么我用Ask-30*Point而不是Ask-0.003作为止损的事实来否定drknn的 评论。
"很有可能,EA写的是四位数,而模拟账户是五位数。你看,如果你设置了,比如说,10点的止损单,它在5位数的EA上的距离和4位数的EA上的1点是一样的。如果我们将设置止损单的最小允许距离设定为,例如3点,那么在一个五位数的市场上,这将是30点,而不是3点。很明显,服务器会直接拒绝设置止损为10点的订单的命令......"。
一句话的建议。
我写了一个简单的脚本来输出最小止损/止盈水平的数值,单位是点。
int start()
{
int min=MarketInfo(Symbol(),MODE_STOPLEVEL);
Alert(min);
return(0);
}
输出为零。这是该参数的标准值吗?
fx_max:
我写了一个简单的脚本,输出最小允许的止损/止盈水平的数值,单位是点。
int min=MarketInfo(Symbol(),MODE_STOPLEVEL)。
它的输出为零。这是该参数的标准值吗?
不