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

 
leonerd:

Хорошо, я неправильно выразился. Давайте цитировать первоисточник:

Структура результата торгового запроса (MqlTradeResult)

В ответ на торговый запрос постановки ордера в торговую систему, торговый сервер возвращает данные, содержащие информацию о результате обработки торгового запроса в виде специальной предопределенной структуры MqlTradeResult.


p.s. где ж тут цитирование в редакторе? Мне в хтмл что ли лезть? Как неудобно-то.

После "Код (Alt+S)" идёт "Стиль". Нажимаем на стрелочку и видим "Цитата (Ctrl+3)"

 
Artyom Trishkin:

После "Код (Alt+S)" идёт "Стиль". Нажимаем на стрелочку и видим "Цитата (Ctrl+3)"

Это ужасно :)

 
leonerd:

Тут очевидно какой-то косяк логический. MqlTradeResult - результат торговой операции.

Т.е. если бы Result.price назывался Result.dealprice, то было бы все логически?

 
fxsaber:

Т.е. если бы Result.price назывался Result.dealprice, то было бы все логически?

Поле

Описание

retcode

Код возврата торгового сервера

deal

Тикет сделки, если она совершена. Сообщается при торговой операции TRADE_ACTION_DEAL

order

Тикет ордера, если он выставлен. Сообщается при торговой операции TRADE_ACTION_PENDING

volume

Объем сделки, подтверждённый брокером. Зависит от типа ордера по исполнению

price

Цена в сделке, подтверждённая брокером. Зависит от поля deviation в торговом запросе и/или от типа торговой операции

bid

Текущая рыночная цена предложения (цены реквоты)

ask

Текущая рыночная цена спроса (цены реквоты)

comment

Комментарий брокера к операции (по умолчанию заполняется расшифровкой кода возврата торгового сервера)

request_id

Идентификатор запроса, проставляемый терминалом при отсылке на торговый сервер

retcode_external

Код ошибки, которую вернула внешняя торговая система. Проставление и виды этих ошибок зависят от брокера и внешней торговой системы, в которую выводятся торговые операции


Есть deal и order. Есть volume, который для обоих. Почему же price только для deal? Ну можно сделать dealprice, но тогда нужно и dealorder поле. По-моему, просто в price должна быть цена ордера, если сделка не совершена, а ордер установлен.

 
leonerd:

Поле

Описание

retcode

Код возврата торгового сервера

deal

Тикет сделки, если она совершена. Сообщается при торговой операции TRADE_ACTION_DEAL

order

Тикет ордера, если он выставлен. Сообщается при торговой операции TRADE_ACTION_PENDING

volume

Объем сделки, подтверждённый брокером. Зависит от типа ордера по исполнению

price

Цена в сделке, подтверждённая брокером. Зависит от поля deviation в торговом запросе и/или от типа торговой операции

bid

Текущая рыночная цена предложения (цены реквоты)

ask

Текущая рыночная цена спроса (цены реквоты)

comment

Комментарий брокера к операции (по умолчанию заполняется расшифровкой кода возврата торгового сервера)

request_id

Идентификатор запроса, проставляемый терминалом при отсылке на торговый сервер

retcode_external

Код ошибки, которую вернула внешняя торговая система. Проставление и виды этих ошибок зависят от брокера и внешней торговой системы, в которую выводятся торговые операции


Есть deal и order. Есть volume, который для обоих. Почему же price только для deal? Ну можно сделать dealprice, но тогда нужно и dealorder поле. По-моему, просто в price должна быть цена ордера, если сделка не совершена, а ордер установлен.

Создайте петицию о включении Result.price для ордеров. И сделайте ее полноценной - потребуйте включения Result.expiration, второй цены для STOP_LIMIT отложек и т.д.


// Пока петиция не прошла
bool OrderSend_leonerd( const MqlTradeRequest &Request, MqlTradeResult &Result )
{
  const bool Res = OrderSend(Request, Result);
  
  if (Res && !Result.order)
    Result.order = Request.order;
    
  return(Res);
}

// Делаем за разработчиков их работу
#define OrderSend OrderSend_leonerd
 

Здравствуйте

при открытии ордера иногда появляется ошибка 4754-Ордер не найден

и все советник висит из за того что пытается открыть ордер

помогает только переустановка советника

для открытия ордера использую класс CTrade

подскажите что может быть?

 
Mikhail Rudyk:

Здравствуйте

при открытии ордера иногда появляется ошибка 4754-Ордер не найден

и все советник висит из за того что пытается открыть ордер

помогает только переустановка советника

для открытия ордера использую класс CTrade

подскажите что может быть?

А точнее можно? MQL5 Код, символ, таймрфейм. И место где вылазит эта ошибка. 

Без этих данных трудно что-то определенное сказать.

 
Есть ли в Codebase советник, где реализована функция "одна сделка на бар" ? (исключая советники , работающие по открытию бара)
 

в MQL5 в OnInit вызываю хендл индикатора так

diver_handle=iCustom(NULL,0,"ao_diver");

и этот вызов вешает терминал полностью.
Индикатор лежит в Indicators и никаких дополнительных input-параметров не требует.
Что может быть не так с этим вызовом?

 
Evgeny Dyuka:

в MQL5 в OnInit вызываю хендл индикатора так

и этот вызов вешает терминал полностью.
Индикатор лежит в Indicators и никаких дополнительных input-параметров не требует.
Что может быть не так с этим вызовом?

".ex5" укажите.

Причина обращения: