Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1260

 
Valeriy Yastremskiy:

Немного не понял, а как отследить момент закрытия позиции, кроме как на каждом тике делая запрос по состоянию позиции? Это конечно не все позиции опрашивать, но все равно на каждом тике запрос.

Внимательно изучайте документацию.

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 
Yevhenii Levchenko:
Это не проверяется на каждом тике. Если есть сигнал, начинается проверка и открывается сделка. И все :)

В mql4 за неимением кухарки *** дворника. А вопрос был об mql5

 
Alexey Viktorov:

Внимательно изучайте документацию.

Спасибо. Если ордер заменить на приказ легче понимать. Не увидел, что исполнение ордера-приказа это сделка. В общем сложно написано и реализовано.))) 
А так да. В мт4 OnTradeTransaction() нет.
 
Valeriy Yastremskiy:
Спасибо. Если ордер заменить на приказ легче понимать. Не увидел, что исполнение ордера-приказа это сделка. В общем сложно написано и реализовано.))) 
А так да. В мт4 OnTradeTransaction() нет.

Вам лучше постараться принять ту терминологию что есть, а не подменять своей. Со временем привыкните и будете понимать в зависимости от того о каком языке разговор. Даже наоборот, в МТ4 рыночный ордер лучше называть позицией. Это многие понимают как надо.

 
Alexey Viktorov:

Вам лучше постараться принять ту терминологию что есть, а не подменять своей. Со временем привыкните и будете понимать в зависимости от того о каком языке разговор. Даже наоборот, в МТ4 рыночный ордер лучше называть позицией. Это многие понимают как надо.

Тайные понимания))) тейк пррфит и стоплосс это ордера. Приказы было бы понятней. Путаница и идёт от мт4 где ордер это и приказ и сделка и позиция. Поэтому в мт5 я говорю ордер, а подразумеваю  приказ)
 

как проинициализировать такую структуру?

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

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

как проинициализировать такую структуру?

4 по 5. Синтаксис не знаю. Вроде как в 2мерном массиве должно быть по логике.
 
Fast235:

как проинициализировать такую структуру?

никак ( только каждое поле структуры по одному )

нужно размеры массивов устанавливать, для этого можно конструктор написать, но будет проблема - синтаксис не позволят массив структур с конструктором создать

решение - вместо структуры использовать класс и использовать указатели, тогда можно в конструкторе класса проинициализировать размеры массивов, ну и данные можно в них скопировать


Valeriy Yastremskiy:
4 по 5. Синтаксис не знаю. Вроде как в 2мерном массиве должно быть по логике.
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

Спасибо. Фигурные скобки)))) не массивов синтаксис)