新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1634

 
makssub #:

写个例子吧,因为我已经有点糊涂了。如果不是太麻烦的话。谢谢

在循环中搜索订单。

if (OrderOpenPrice()<previous_value)
   {
   previous_value=OrderOpenPrice();
   nearest_order=OrderTicket();
   }

在循环之前,初始化previous_value=DBL_MAX a nearest_order=0

 
Taras Slobodyanik #:

在订单循环中。

在循环之前初始化previous_value=DBL_MAX a nearest_order=0。

正是如此。谢谢你。作品

 
Taras Slobodyanik #:

在订单循环中。

在循环之前初始化previous_value=DBL_MAX a nearest_order=0。

DBL_MAX是分类的)。
 
Valeriy Yastremskiy #:
DBL_MAX是分类的)。

主要的事情是工作)

如何找到具有最大OrderOpenPrice的OP_BUY并确定其OrderProfit。
,我不能把它们放在一起,一切都通过屁股工作...如果你能马上给我一个例子)谢谢)

 
makssub #:

主要的事情是工作)

如何找到具有最大OrderOpenPrice的OP_BUY并确定其OrderProfit。
,我不能把它们放在一起,一切都通过屁股工作...如果你能马上给我一个例子)谢谢)

previous_value=0;

if (OrderOpenPrice()>previous_value)
   {
   previous_value=OrderOpenPrice();
   profit_order=OrderProfit();
   }
 
MakarFX #:

我只想说,我已经全部完成了。

但你让它变得更加紧凑。我会采纳你的建议)。

谢谢

 
如何在mql5程序中处理一个文件而不把文件写入磁盘,而是只在RAM中工作,以加快速度。我想把数据从一个mql5程序转移到我电脑上的一个程序。有没有可能在没有网络功能的情况下做到这一点?它不一定是一个文件、一个数组或一个变量,它甚至更好。我只知道两种方法,Python集成模块和Web socket,还有其他方法吗?
 

我在OnDeInit()中通过循环删除了所有对象(箭头表示信号条和一个按钮)。

const int obj_total=ObjectsTotal();

Print("ObjectsTotal ",obj_total);

for(int i=0 ; i < obj_total ; i++){
 Print("ObjectName ",ObjectName(i),", i = ",i);
 ObjectDelete(ObjectName(i));
}

我知道有ObjectsDeleteAll(),但如果我通过一个循环来做,只有一半的对象被删除。其实这里是循环的工作,我不明白为什么会发生这样的情况。

2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 20
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 19
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 18
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 17
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 16
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 15
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 14
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 13
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 12
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 11
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName button1, i = 10
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0008, i = 9
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0006, i = 8
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0004, i = 7
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0002, i = 6
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0000, i = 5
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0008, i = 4
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0006, i = 3
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0004, i = 2
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0002, i = 1
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0000, i = 0
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectsTotal 21
 
Nerd Trader #:

我在OnDeInit()中通过循环删除了所有对象(箭头表示信号条和一个按钮)。

我知道有ObjectsDeleteAll(),但如果我通过一个循环来做,只有一半的对象被删除。实际上,循环是这样的,我不明白为什么会发生这种情况。

删除时的循环应该是相反的。

for(int i=obj_total-1; i>=0; i--)

这不仅适用于删除图形对象,而且一般适用于删除终端列表中的任何对象。

 
Nerd Trader #:

我在OnDeInit()中通过循环删除了所有对象(箭头表示信号条和一个按钮)。

我知道ObjectsDeleteAll(),但如果我通过一个循环来做,仍然只有一半的对象被删除。实际上,这里是循环的工作方式,我不明白为什么会发生这种情况。

但如果你尝试这样做--只需要把所有的名字都写上

string   m_name[]= {"button1","ArrowUp0008","ArrowDown0008","ArrowUp0006","ArrowDown0006"};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(int i=0; i<ArraySize(m_name); i++)
     {
      ObjectDelete(0,m_name[i]);
     }
//---
  }
//+------------------------------------------------------------------+