[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 261

 

伙计们,OrderSend函数 的参数10为无效的整数是什么意思,如何解决这个问题?

 
Pyxlik2009:

伙计们,OrderSend函数的参数10为无效的整数是什么意思,如何解决这个问题?

请给我一个出现这种情况的代码行

 
Pyxlik2009:

伙计们,OrderSend函数的参数10为无效的整数是什么意思,如何解决这个问题?


过期时间 应该是一个整数。
 
Roll:

过期时间应该是一个整数。
我在设置中甚至没有任何零碎的东西
 
sergey_r:
是的,但我的订单是在收盘前下的,我需要的是当前的价格。 如果当前的价格低于前一栏的低点...如果当前的价格已经低于前一个价格,那么就下单。

试试这个

if (Bid<iLow(NULL, 0, 1)


 
Pyxlik2009:
我在设置中甚至没有任何零碎的东西

请参考上述函数的第10个参数。把它设置为0。
 
paukas:
有这样一个剧本。当需要时,只需运行它。 。


问题的关键不在于执行一次行动。重点是,运行这个脚本,它将读取其设置的时间,而不是触发的时间。

因此,挂单触发的时间并没有保存在终端的任何地方。我只需要知道这个时间,如果能使用内置的MQL4函数PendingOrderFilledTime(),那就更理想了。在这种情况下,MT4本身会监控挂单,并向我提供准备好的结果。

因此,除了使用专家顾问或图表上的循环脚本外,我看不到任何其他解决方案。为什么我在这里问?也许,有人遇到过类似的问题,而且没有专家顾问或脚本,只用MQ4的手段就解决了。


LazarevDenis:

我不明白你为什么对EA不满意,你似乎不打算建立一个具有自我优化功能的复杂的神经网络交易系统,你只需要检查每一个刻度线,看看钟摆是否在工作,当它被触发时,你会在屏幕上得到一个文本信息或音频一个或两个,计算器可以处理这个任务,不要担心计算机或你只是有写作问题?

我在写作 没有任何问题。我不想用一个临时的工具来接收来自终端的信息。专家顾问是正面解决一个问题的方案。

如果每一项没有标准MQ4功能的任务都由专家顾问来解决,那么终端就会有这些功能。而且,在链条上制造更多的薄弱环节也是不好的。当你有很多开放的终端,而每个终端都需要一个EA,并检查它是否在那里,你同意这是不方便和不明智的。为EA的附件写一个检查并强迫它在那里运行是同样的事情,所以为什么要把事情复杂化,如果也许有人已经用现有的MQL4函数组合解决了这个问题?

 
Starting:
...也许有人已经用现有的MQL4函数的组合解决了类似的问题。
我读过了,不明白其中的逻辑。假设你需要的功能是可用的,你会如何使用它?无论如何,你将不得不在专家顾问或脚本中插入它。
所以,问题不在于没有特殊的功能(你也不能为每一个喷嚏感谢),而在于写一个符合你要求的代码的复杂性。
 
granit77:
我看过了,不明白其中的逻辑。好吧,假设有一个你需要的功能,你将如何使用它?反正你必须把它插入专家顾问或脚本中。所以问题不在于没有特殊功能(你也不能为每一个喷嚏感谢),而在于编写符合你要求的代码的难度。 。

使用方法很简单--我运行一个脚本,将最后一笔平仓交易 的数据与最早的开仓时间 写入。脚本触发的挂件在已关闭的订单行中造成混乱。在脚本启动的那一刻,它没有地方可以获得关于待定订单触发的数据,因为它们的触发日期在历史上是固定的,而不是它们完成的日期。


一个简单的例子。

待定订单 1于2011年1月1日确定

2011年1月2日,一个市场订单2被打开。

2011年1月3日,挂单1被触发,成为市场订单1,其OrderOpenTime()显示为2011年1月1日,尽管它实际上在2011年1月3日成为市场订单。

04.01.2011 市场订单2被关闭。

2011年1月5日,市场订单1被关闭。

在历史记录中,市场订单2的2011年1月2日的日期将被作为最新开放日期的最后一个封闭订单的开放日期。

实际上,最后一个关闭的挂单1的最新开放日期(触发)是2011年1月3日。

这就是问题所在,是否有可能获得订单触发的实际日期,以便在没有专家顾问监控账户的情况下,按照开盘日期正确排序已关闭的订单?


想象一下,你正在交易,你有挂单,是很久以前设置的。在这里你可以看到,其中一些触发了,然后在一段时间后关闭。但它们将按其 "蓬头垢面 "的投放时间来考虑,即使它们是一年前投放的,但今天才被触发和关闭。你想看看什么是真正在市场上最后打开或触发的,所以会最后给出,而不是曾经的一切与市场上那些真正最近打开的混在一起。谢谢你对我的问题的关注。

 

先生们,你们能告诉我,当我把这个计时功能插入我的EA代码中时,我在哪里犯了错误?

int init()
  {
  
bool isTradeTimeInt (int hb=05,int mb=50,int he=23,int me=00) 
    {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
   return(0);
  }

编译器只是用错误来淹没我。