Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1298

 

Добрый день, коллеги. Не могу найти ошибку в коде. Метод .Magic() класса CPositionInfo выдаёт правильное значение, если сделку открывать напрямую в коде советника через класс Trade.mqh.

Если же открывать сделку через тот же Trade.mqh, но вызванный в другом классе, то в коде советника метод  .Magic() выдаёт 0. Почему так?

Код прилагаю.

Файлы:
MQL5.zip  5 kb
 
Ildar Yusupov:

Добрый день, коллеги. Не могу найти ошибку в коде. Метод .Magic() класса CPositionInfo выдаёт правильное значение, если сделку открывать напрямую в коде советника через класс Trade.mqh.

Если же открывать сделку через тот же Trade.mqh, но вызванный в другом классе, то в коде советника метод  .Magic() выдаёт 0. Почему так?

Код прилагаю.

Код не открываю)

Значит во втором варианте Magic не используется, внимательно посмотрите код

 
Ildar Yusupov:

Добрый день, коллеги. Не могу найти ошибку в коде. Метод .Magic() класса CPositionInfo выдаёт правильное значение, если сделку открывать напрямую в коде советника через класс Trade.mqh.

Если же открывать сделку через тот же Trade.mqh, но вызванный в другом классе, то в коде советника метод  .Magic() выдаёт 0. Почему так?

Код прилагаю.

Архив даже не смотрел.

Алгоритм всегда такой: создаёте 'm_trade' - object of CTrade class. Если хотите чтобы он торговал по своему Magic - обязательно делаете

   m_trade.SetExpertMagicNumber(InpMagic);

- то есть нужно для объекта торгового класса установить этот самый Magic.

 
Vitaly Muzichenko:

в мт5 такого нет

я все по старинке, ни как не отвыкну...

 
Vladimir Karputov:
 m_trade.SetExpertMagicNumber(InpMagic);

Да, так и делал, оказывается я допустил логическую ошибку изза чего метод не вызывался. Спасибо за ответ.


Ещё один вопрос: как внутри метода класса (в файле .mqh)  вызвать другой метод этого же класса? 

Конструкция не работает:

void CTradeMT45::CloseAll(int OrderType) {

CloseOrder(ticket);

}

void CTradeMT45::CloseOrder(ulong ticket){

}
 
Ildar Yusupov:

Да, так и делал, оказывается я допустил логическую ошибку изза чего метод не вызывался. Спасибо за ответ.


Ещё один вопрос: как внутри метода класса (в файле .mqh)  вызвать другой метод этого же класса? 

Конструкция не работает:

Совет такой: забудьте напрочь слово "ордер" (разрешается применять только "отложенный ордер") и у Вас сразу вся логика станет на место.

 
Vladimir Karputov:

Совет такой: забудьте напрочь слово "ордер" (разрешается применять только "отложенный ордер") и у Вас сразу вся логика станет на место.

Вместо Ордера правильней в мт5 использовать слово Приказ. Хотя это близкие по сути слова.

 
Valeriy Yastremskiy:

Вместо Ордера правильней в мт5 использовать слово Приказ. Хотя это близкие по сути слова.

А ещё в MetaTrader 5 есть маркет-ордер. Нельзя вот просто так взять, и отказаться по "религиозным" причинам от того, что является неотъемлемой частью ордерной системы торговой платформы.

Есть в МТ5 ордера. И они отображаются в истории. И даже несут информацию, которой знающий человек будет пользоваться во благо себе.

Просто нужно лучше знать как всё устроено, а не принимать в штыки название того, что именно так и называется - ордер. Это торговый приказ. Он является родоначальником остальной цепочки метаморфоз, приводящих к позиции. А отложенный ордер - это уже иная сущность. Его тоже можно причислить к ордерам - "ордер по условию" так сказать...

При исполнении ордера появляется маркет-ордер, и уже он трансформируется в сделку, порождающую позицию, либо её изменение. Если мне не изменяет память - давно не просматривал всю историю с цепочками событий от приказа до закрытия позиции. Но когда разбирался с этим досконально, то, если мне сейчас не изменяет память, то всё именно так и происходит: ордер -- маркет-ордер -- сделка -- открытие/изменение/закрытие позиции.

И, да - это не близкие по сути слова, а перевод с английского на русский. Ордер == Приказ

 
Artyom Trishkin:

А ещё в MetaTrader 5 есть маркет-ордер. Нельзя вот просто так взять, и отказаться по "религиозным" причинам от того, что является неотъемлемой частью ордерной системы торговой платформы.

Есть в МТ5 ордера. И они отображаются в истории. И даже несут информацию, которой знающий человек будет пользоваться во благо себе.

Просто нужно лучше знать как всё устроено, а не принимать в штыки название того, что именно так и называется - ордер. Это торговый приказ. Он является родоначальником остальной цепочки метаморфоз, приводящих к позиции. А отложенный ордер - это уже иная сущность. Его тоже можно причислить к ордерам - "ордер по условию" так сказать...

При исполнении ордера появляется маркет-ордер, и уже он трансформируется в сделку, порождающую позицию, либо её изменение. Если мне не изменяет память - давно не просматривал всю историю с цепочками событий от приказа до закрытия позиции. Но когда разбирался с этим досконально, то, если мне сейчас не изменяет память, то всё именно так и происходит: ордер -- маркет-ордер -- сделка -- открытие/изменение/закрытие позиции.

И, да - это не близкие по сути слова, а перевод с английского на русский. Ордер == Приказ

Видимо косноязычен. Не призываю ни в коем разе к замене понятий. Всего лишь для правильного понимания заменять слова. И при объяснении использовать замену. А пользоваться существующими понятиями.

В качестве перевода в трейдинге используется. А в русском ордер это приказ к исполнению в производстве. Ордер на отпуск продукции обычно.

 
Valeriy Yastremskiy:

Видимо косноязычен. Не призываю ни в коем разе к замене понятий. Всего лишь для правильного понимания заменять слова. И при объяснении использовать замену. А пользоваться существующими понятиями.

В качестве перевода в трейдинге используется. А в русском ордер это приказ к исполнению в производстве. Ордер на отпуск продукции обычно.

Приказ на исполнение в производстве, называется наряд. В некоторых местах называли наряд-заказ, наряд-задание…

На отпуск продукции всегда была только накладная. А ордер обычно выписывали на арест… или обыск… Вам какой выписать)))))))))

Правда не всё так страшно… Ещё выписывали ордер на получение жилплощади. У меня было два таких…