初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1303

 
afsmerinostra:

好时光。

请帮助我找到一个错误...我在脚本中从指标缓冲区 复制条形值(BarsCount),然后围绕数值进行循环,检测信号并将其打印到Print();这似乎很简单,但并不那么容易......除了过零线,我得到了所有我想要的信号。

也许这在脚本中是不允许的? 我附上了代码和日志的截图......非常感谢!我想这是一个很好的例子。

只有通过将前一个数组索引的值与零相比较,以及将当前数组索引的值与零相比较,才能定义交叉。也就是说,原来在零度以上,现在变成了零度以下。或者反过来说,原来比较低,现在变高了。

而且一定要通读文档,看看如果tlse if是如何工作的。

如果你的代码中包含一个条件,所有后面的条件都不会被处理。

 
Alexey Viktorov:

交叉点只能通过比较前一个数组索引为零和当前索引为零来定义。即原来在零度以上,变成零度以下。或者反过来说,原来比较低,现在变高了。

而且一定要通读文档,看看如果tlse if是如何工作的。

如果你的代码中包含一个条件,所有后面的条件都不会被处理。

我是对的,我把交叉条件移到了代码的开头,结果都成功了。谢谢你!
 
afsmerinostra:
关于检查相对于零的水平,一切都很正确。 我把交叉条件移到了代码的开头,一切都正常了。谢谢你!

一般来说,你需要清理else,只有当条件是互斥的,重叠的是独立的条件时才需要它们。

 
大家好!!你能告诉我出了什么问题吗?
//+------------------------------------------------------------------+
//|                                                 Signal_Line.mqh |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
class Signal_Line
  {
private:

public:
                     Signal_Line();
                    ~Signal_Line();
   bool              Signal_Short(double &Trend_Line_UP[][], int UP);
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal_Line::Signal_Line()
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal_Line::~Signal_Line()
  {
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|     Метод проверки флагов событий цены относительно линий тренда                                                             |
//+------------------------------------------------------------------+
bool Signal_Line::Signal_Short(double &Trend_Line_UP[][], int UP)
  {
   if(Trend_Line_UP[UP][3]<iClose(_Symbol,0,0))
      return(true);
  }
//+------------------------------------------------------------------+
 

它说:你为什么不同意返回这个值

bool Signal_Line::Signal_Short(double &Trend_Line_UP[][], int UP)
  {
   if(Trend_Line_UP[UP][3]<iClose(_Symbol,0,0))
      return(true);
//---
   return(false);
  }
 
Vladimir Karputov:

它说:你为什么不同意返回这个值

完全正确!!!哦,我的天哪))))。

 
Vladimir Karputov:

它说:你为什么不同意返回这个值

谢谢你!!!。

 
在mql4中,有一些函数

OrderCloseTime()。

anddatetimeOrderOpenTime(); 对于已经平仓的头寸,我如何在mql5中以编程方式获得这些数据?也就是平仓的开仓和平仓的时间?

 
bahtiyar:
在mql4中,有一些函数

OrderCloseTime()。

anddatetimeOrderOpenTime(); 对于已经平仓的头寸,我如何在mql5中以编程方式获得这些数据?即开仓和平仓的时间

在交易的历史中按头寸ID选择,在交易的属性中,有一个开仓和平仓。不仅是时间,还有价格和关闭的原因以及其他东西。
 

你能给我一个提示吗?这个条目。

var1=(var<10)?1:0;

它意味着什么,如何解释它,使用的选择。参数。