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

 
大家好,!!!!!
问题:如何找到最近的亏损订单?
原则是什么?是公开价格的订单还是有其他的方式?????
 
VOLDEMAR:
原则是什么?订单开盘价???或是否有其他方式????

订单利润()
 
drknn:

订单利润()
什么?OrderProfit() 你能不能说得更具体一点?
 
artmedia70:

你把这个库连接到EA。在代码的最开始,在连接了标准库之后再写。

在EA中,在start()函数中,对库中的函数进行调用,编译EA不是 库。


我按你说的做了一切,现在在编译EA时,它给出了无法打开程序文件的提示,并指向我的函数名称那一行。#include <GetExstremumZZZPrice.mqh>。
 
VOLDEMAR:
什么?OrderProfit() 你能说得更具体些吗?
在for()循环中,开始按顺序 浏览订单,但要从最后 使用OrderSelect()函数 和MODE_HISTORY参数。一旦你使用OrderProfit()函数找到一个亏损的订单,就调用break()。你已经找到了你要找的东西!
 
解释一下OrderCloseBy 是什么,很明显一个订单是不同的,它的作用是什么?
 
T-G:
解释一下OrderCloseBy 是什么,很明显一个订单是不同的,它的作用是什么?
它在价差上有小的节省。
 
splxgf:
这样就可以节省一点差价。

粗略估计,正好是两倍。
 
VOLDEMAR:
什么?OrderProfit() 你能不能说得更具体一点?

我们声明一个数据时间类型的变量(例如Ord_Time),并立即将其设置为零。我们声明一个整数变量,例如Ticket,然后也清除它。然后我们创建一个循环,循环浏览历史上的所有订单。下一个订单已经选定。如果其收盘时间高于(或等于)Ord_Time变量中的时间,并且OrderProfit()小于0,则Ord_Time变量=OrderCloseTime(),Ticket变量=OrderTicket()。作为这个循环的结果,Ticket变量将包含最后一个亏损订单的票据,或者是零,如果历史上根本没有亏损订单。
 
drknn:

声明一个日期时间变量(如Ord_Time)并立即将其设置为零。我们声明一个整数变量,例如Ticket,并将其也设置为零。然后我们创建一个循环,循环浏览历史上的所有订单。下一个订单已经选定。如果其收盘时间高于(或等于)Ord_Time变量中的时间,并且OrderProfit()小于0,则Ord_Time变量=OrderCloseTime(),Ticket变量=OrderTicket()。作为这个循环的结果,Ticket变量将包含最后一个亏损订单的票据,或者是零,如果历史上根本没有亏损订单。

为什么把事情搞得这么复杂?

运行以下脚本。

int start()
{
   for (int Pos = OrdersHistoryTotal()-1; Pos >= 0; Pos--)
      if(OrderSelect(Pos, SELECT_BY_POS, MODE_HISTORY))
      {
         Print(OrderTicket(), ": ", TimeToStr(OrderCloseTime()));
      }
}

我写了上面的解决方案。我们只需要在这段代码中插入一行。