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

 
Valeriy Yastremskiy:

我不明白,除了在每个tick上查询头寸的状态,我怎么能跟踪头寸被关闭的时刻?当然,并不是所有的职位都被查询,但每一次打勾都有查询。

仔细研究文件。

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 
Yevhenii Levchenko:
它不是在每次打勾时都被检查。如果有信号,它就开始检查并打开一个交易。这就是全部 :)

在mql4中,由于缺少一个厨师,***看门人。该问题是关于mql5的

 
Alexey Viktorov:

仔细研究文件。

谢谢你。如果我们用命令来代替,就更容易理解了。我还没有看到,订单-订单的执行是一个交易。一般来说,它很难编写和实施。)
但是,是的。mt4中没有OnTradeTransaction()
 
Valeriy Yastremskiy:
谢谢你。如果用命令来代替,就更容易理解。我没有看到,执行订单-命令是一种交易。总而言之,它的编写和实施都很复杂。))
就像现在这样,是的。mt4中没有OnTradeTransaction()

你最好试着接受你所拥有的术语,不要用你自己的术语代替。随着时间的推移,你会习惯的,你会根据你所使用的语言来理解它。相反,在MT4中,市场订单最好被称为头寸。这就是许多人的理解方式。

 
Alexey Viktorov:

你最好试着接受现有的术语,而不是取代你自己的术语。随着时间的推移,你会习惯于它,你会根据你所谈论的语言来理解。反之亦然,在MT4中,市场订单最好被称为头寸。这就是许多人的理解方式。

神秘的理解))获利和止损是订单。命令会更清晰。混乱来自于mt4,在mt4中,一个订单是一个订单,一个交易和一个位置。这就是为什么我说mt5中的订单和指订单)
 

如何初始化这样一个结构?

struct Data
  {
   double            open[];
   double            high[];
   double            low[];
   double            close[];
  };

   Data rates[5]= {0.0,0.0,0.0,0.0}; //ошибка
 
Fast235:

如何初始化这样一个结构?

4至5。我不知道这个句法。按照逻辑,它似乎应该是在一个二维数组中。
 
Fast235:

如何初始化这样一个结构?

没办法(只对结构中的每个字段逐一进行)。

你需要设置数组的大小,你可以为此写一个构造函数,但会有一个问题--语法不允许你用构造函数创建一个数组的结构。

解决方案--用一个类来代替结构,并使用指针,你可以在类的构造函数中初始化数组的大小,数据可以被复制到其中。


Valeriy Yastremskiy:
4至5。我不知道这个句法。按照逻辑,它应该在二维数组中。
struct S
  {
   int a;
   double b;
  };

//+------------------------------------------------------------------+
void OnStart()
{
   S s[2] = {{1, 1.1},{9, 9.9}};
   ArrayPrint(s);
}
//+------------------------------------------------------------------+

2020.09.23 08:27:09.554 tst (EURUSD,H1) [a] [b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

 
Fast235:

如何初始化这样一个结构?

   Data rates[5]= {0.0,0.0,0.0,0.0}; //ошибка

初始化和归零之间是有区别的。如果调零,从你的尝试来看,是这样的

  ZeroMemory(rates);
 
Igor Makanu:

没办法(只对结构中的每个字段逐一进行)。

你需要设置数组的大小,你可以为此写一个构造函数,但会有一个问题--语法不允许用构造函数创建一个结构数组。

解决方案--使用类而不是结构,并使用指针,然后你可以在类的构造函数中初始化数组的大小,并且数据可以被复制到其中。


2020.09.23 08:27:09.554 tst (EURUSD,H1) [a] [b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

谢谢。圆括号)))),不是数组语法)
原因: