Ошибки, баги, вопросы - страница 1694

[Удален]

А вот, кстати, и сам ответ разработчиков:

https://www.mql5.com/ru/forum/1111/page1424#comment_1981027 

Такой ответ устроит?! 

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • отзывов: 3
  • www.mql5.com
Форум трейдеров MQL5.community
Alexey Kozitsyn:

А Вы считаете, что в справке по всем остальным вопросам все детально изложено?

Когда-то писал собственный индикатор спреда, потиковый и значения в окне данных терминала не совпадали со значениям из индикатора (хотя, как мне показалось, больше совпадений было с максимальным спредом).

Да, если найдете другой ответ, опубликуйте пожалуйста здесь. 

Я не считаю, что в справке всё описано однозначно для понимания, по неясным местам я стараюсь задавать вопросы - так уже бывало ранее и справку после исправляли, и это нормально.
Alexey Kozitsyn:

А вот, кстати, и сам ответ разработчиков:

https://www.mql5.com/ru/forum/1111/page1424#comment_1981027 

Такой ответ устроит?! 

Дело не в том, что меня устроит или не устроит, я человек скромный. Дело в другом - нет понимания, что возвращает функция. Я ранее полагал, что возвращается среднее значение для свечи соответствующего ТФ и значения формируются терминалом.

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

Столкнулся с ситуацией - мой индикатор расчитал средний спред, максимальный спред, спред который встречается в 80% случаев, все значения взяты из истории (не в реалтайм). Полученные значения и близко не похижи на те, что показывает Обзор Рынка.

Кроме того, отсюда проистекает неприятный вывод - история не совпадает с тем, что показывает Обзор Рынка, собственно это подтвердилось в разговоре с одним известным швейцарским брокером. Таким образом, текущие торговые условя брокера не всегда представляется возможным протестировать адекватно в тестере.

У некоторых брокеров значения спреда реалтайм и в истории совпадают, а у некоторых нет. Из этого можно сделать очень неприятный вывод, в слух озвучивать не буду.  

Комментарии, не относящиеся к этой теме, были перенесены в "Значения спреда".

Надеюсь мой вопрос Владимир никуда не перенесёт...

Ситуация следующая.

Открываю позицию Sell, в истории отображается ордер Sell


а в структуре MqlTradeTransaction ENUM_ORDER_TYPE::ORDER_TYPE_BUY


Это фишка такая или опять я чего-то не понимаю?

Alexey Viktorov:

Надеюсь мой вопрос Владимир никуда не перенесёт...

Ситуация следующая.

Открываю позицию Sell, в истории отображается ордер Sell


а в структуре MqlTradeTransaction ENUM_ORDER_TYPE::ORDER_TYPE_BUY


Это фишка такая или опять я чего-то не понимаю?

А чему равен ORDER_TYPE_BUY? Распечатайте и убедитесь, что равно 0. То есть, нет там никакого ордера.
Alexey Viktorov:

Надеюсь мой вопрос Владимир никуда не перенесёт...

Ситуация следующая.

Открываю позицию Sell, в истории отображается ордер Sell


а в структуре MqlTradeTransaction ENUM_ORDER_TYPE::ORDER_TYPE_BUY


Это фишка такая или опять я чего-то не понимаю?

Для разного типа транзакций идёт разное заполнение полей структуры MqlTradeTransaction:

TRADE_TRANSACTION_DEAL_*

Для торговых транзакций, касающихся обработки сделок (TRADE_TRANSACTION_DEAL_ADD, TRADE_TRANSACTION_DEAL_UPDATE и TRADE_TRANSACTION_DEAL_DELETE), в структуре MqlTradeTransaction заполняются следующие поля:

  • deal - тикет сделки;
  • order - тикет ордера, на основе которого совершена сделка;
  • symbol - имя финансового инструмента в сделке;
  • type - тип торговой транзакции;
  • deal_type - тип сделки;
  • price - цена, по которой совершена сделка;
  • price_sl - цена Stop Loss (заполняется, если указана в ордере, на основе которого совершена сделка);
  • price_tp - цена Take Profit (заполняется, если указана в ордере, на основе которого совершена сделка);
  • volume - объем сделки в лотах.
  • position - тикет позиции, открытой, измененной или закрытой в результате исполнения сделки.
  • position_by - тикет встречной позиции. Заполняется только для сделок на закрытие позиции встречной (out by).

 как видите для TRADE_TRANSACTION_DEAL_ADD поле .order_type не заполняется.

Rashid Umarov:
А чему равен ORDER_TYPE_BUY? Распечатайте и убедитесь, что равно 0. То есть, нет там никакого ордера.

То-есть после открытия позиции в структуре MqlTradeTransaction order_type просто недоступен? Или не зависимо от чего-то просто 0?

Рашид, если не затруднит, для меня попроще можно ответ? Ну распечатаю, ну будет там 0, а как это понять?


Ну вот... Пока печатал, Владимир дал исчерпывающий ответ. Спасибо понял. Как всегда не дочитал документацию...

[Удален]
Karputov Vladimir:

Для разного типа транзакций идёт разное заполнение полей структуры MqlTradeTransaction:

 как видите для TRADE_TRANSACTION_DEAL_ADD поле .order_type не заполняется.

Кстати, это иногда вводит в заблуждение... почему, если значение не заполняется, его нельзя указать как WRONG_VALUE, например?
Alexey Viktorov:


Рашид, если не затруднит, для меня попроще можно ответ? Ну распечатаю, ну будет там 0, а как это понять?

В этом случае не нужно смотреть тип ордера - его там нет просто