这有什么不对吗? - 页 5 1234567 新评论 Владимир Тезис 2011.11.29 19:19 #41 sss2019: 哇,谢谢你,我认为这种方法更有通用性。顺便问一下,如何在EA中声明订单已被打开,据我所知,OrderSend只发送订单票。也许,这可以用OrderSelect来实现? 在初始化块之前,我们声明一个变量,它将携带订单票。比如说。 int 票。 在start()函数中,在调用OrderSend() 之前,我们写道。 票=-1。 由于OrderSend()函数返回订单的票据,那么我们检查Ticket变量是否大于0,那么订单就已经下达了。否则,我们就没有订单--见OrderSend参考--那里写到,如果不能设置订单,该函数将返回值=(-1),而不是一个刻度。在下一个嘀嗒声中,由于该变量首先被初始化为值=-1,并且没有设置顺序,该变量将保持负值,直到代码结束。而且这种情况一直持续到有新的订单出现为止。 asasusa 2011.11.30 05:50 #42 你能不能给我看一个例子,因为我很难受。 Владимир Тезис 2011.11.30 08:59 #43 sss2019: 你能不能给我看一个例子,因为我很难受。 #property copyright "" #property link "" int Ticket; //+------------------------------------------------------------------+ //| Блок инициализации | //+------------------------------------------------------------------+ int init(){ return(0); } //+------------------------------------------------------------------+ //| Блок деинициализации | //+------------------------------------------------------------------+ int deinit(){ return(0); } //+------------------------------------------------------------------+ //| Старт работы советника | //+------------------------------------------------------------------+ int start(){ Ticket=(-1); if(если есть торговый сигнал){ Ticket=OrderSend(); } if(Ticket>0){// тикет более нуля - ордер встал // выполняем какие-то действия } return(0); } //+------------------------------------------------------------------+ //| Пользовательские подпрограммы | //+------------------------------------------------------------------+ asasusa 2011.11.30 10:17 #44 为什么Ticket=(-1);在括号里? 这是什么乱七八糟的东西,订单是开放的,票据仍然是-1。 //+------------------------------------------------------------------+ //| Test.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int MaFastPeriod = 30; extern int MaSlowPeriod = 90; extern int StopLoss = 25; extern int TakeProfit = 50; int Ticket; int init() { } int deinit() { } int start() { Ticket=(-1); double MyPoint = Point; if(Digits == 3 || Digits == 5) { MyPoint = Point * 10; } double MaFast0 = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0); double MaSlow0 = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0); if(OrdersTotal() == 0 && MaFast0 > MaSlow0 && Ticket==(-1)) { Ticket=OrderSend(Symbol(),0,0.1,Ask,30,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"CommentA",0,0,Green); return(Ticket); } Alert("Ticket = ",Ticket); return(0); } NADYA 2011.11.30 12:04 #45 你为什么要写 所以程序没有进一步发展,你也不会收到警报 return(Ticket);? NADYA 2011.11.30 12:05 #46 事实证明,只有在根本没有开仓 信号的情况下才会弹出警报窗口,而且必然会显示-1 asasusa 2011.11.30 12:18 #47 因此,一旦一个订单将其号码分配给Ticket变量,就不需要用return来输出,该变量在下一个tick上不会再被删除? asasusa 2011.12.01 05:21 #48 是否可以同时开几个订单?例如,像这样 if(условие выполнено) { OrderSend() OrderSend() OrderSend() } Всеволод 2011.12.01 05:31 #49 sss2019:是否可以同时开几个订单?例如,像这样 它可能不会那样工作,因为第一个请求会被服务器处理,而后面的请求会得到一个错误。最好是使用你自己的带有错误处理 的订单。 PapaYozh 2011.12.01 05:53 #50 sss2019: 是否可以同时开几个订单?比如说像这样? 你不能一下子就做完。 只有连续的。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
哇,谢谢你,我认为这种方法更有通用性。
顺便问一下,如何在EA中声明订单已被打开,据我所知,OrderSend只发送订单票。也许,这可以用OrderSelect来实现?
在初始化块之前,我们声明一个变量,它将携带订单票。比如说。
int 票。
在start()函数中,在调用OrderSend() 之前,我们写道。
票=-1。
由于OrderSend()函数返回订单的票据,那么我们检查Ticket变量是否大于0,那么订单就已经下达了。否则,我们就没有订单--见OrderSend参考--那里写到,如果不能设置订单,该函数将返回值=(-1),而不是一个刻度。在下一个嘀嗒声中,由于该变量首先被初始化为值=-1,并且没有设置顺序,该变量将保持负值,直到代码结束。而且这种情况一直持续到有新的订单出现为止。
你能不能给我看一个例子,因为我很难受。
为什么Ticket=(-1);在括号里?
这是什么乱七八糟的东西,订单是开放的,票据仍然是-1。
return(Ticket);?
是否可以同时开几个订单?例如,像这样
是否可以同时开几个订单?例如,像这样
是否可以同时开几个订单?比如说像这样?
你不能一下子就做完。
只有连续的。