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

 
Igor Makanu:

как вариант откройте https://www.mql5.com/ru/code/16006

и посмотрите реализацию у @fxsaber

или просто подключите указанную библиотеку и перенесите код советника из МТ4 в МТ5, в 99% случаев ничего подкручивать не придется, все будет работать как и в МТ4 

И пусть знаний не прибавится...
 
Artyom Trishkin:
И пусть знаний не прибавится...

знания? это не нужные знания для разработки ТС или для трейдера!

Вы же не пишите для себя драйвер для управления жестким диском --> API --> Ваша программа? Вы просто используете возможности платформы и языка программирования и не более - все в 2 клика (пару строк) получаете

то, что в MQL5 замудреная  скучнейшая реализация работы с ордерами это факт,

увы, эта тема просто не интересна - как открыть ордер , как узнать состояние ордера, как узнать цену и время закрытия ордера (про CTrade я в курсе, частично расковырял исходники) - это элементарнейшие действия которые должна выполнять торговая платформа в 2 клика и все это не должно вызывать вопросов

ЗЫ: не прошло и 5 лет? как были добавлены в MQL5 функции iTime(), IClose() .... это в догонку, торговая платформа, которая не умеет ни обращаться к истории инструмента ни выставлять ордера в 2 клика, в первый год вся кодобаза ломилась от "чудесных реализаций" как прочитать историю торгового инструмента в 2 клика.... ладно, заезженная тема

 
Igor Makanu:

знания? это не нужные знания для разработки ТС или для трейдера!

Совершенно верно. Для разработки стратегии, как в общем-то и вообще трейдеру это абсолютно не надо. Точно так-же не надо и знания mql4.

Это надо программисту. И только в том случае если он хочет понимать что он делает и может сверить полученный результат с ожидаемым.

Не так давно мне пришлось править чужой советник: по условию ТЗ позиция в определённый момент должна быть закрыта по безубытку. На самом-же деле советник открывал позицию, тут-же её закрывал и ставил новую, которую уже закрывал в соответствии с правилами.

Посмотрев пару часов на это безобразие, я предложил написать советник с нуля. Не ваш-ли это советник был?

 
Alexey Viktorov:

Посмотрев пару часов на это безобразие, я предложил написать советник с нуля. Не ваш-ли это советник был?

однозначно мой! ))))) - я сопровождаю свои коды как минимум месяц, но обычно все с первого раза работает, хотя возможны не точности ТЗ, но это не сдача работы, это текущая работа. Правлю часто чужие коды, но это отдельная история, времени очень много уходит и результта не известен - сразу предупреждаю об этом

если завораживает низкоуровневое программирование, так сказать "копаться в кишочках" - продолжайте, есть стандартная библиотека CTrade от разработчиков, она должна делать весь необходимый минимум для работы пользователя

 
Igor Makanu:

однозначно мой! ))))) - я сопровождаю свои коды как минимум месяц, но обычно все с первого раза работает, хотя возможны не точности ТЗ, но это не сдача работы, это текущая работа. Правлю часто чужие коды, но это отдельная история, времени очень много уходит и результта не известен - сразу предупреждаю об этом

если завораживает низкоуровневое программирование, так сказать "копаться в кишочках" - продолжайте, есть стандартная библиотека CTrade от разработчиков, она должна делать весь необходимый минимум для работы пользователя

Так владелец этого чудо-кода так-же как и его писатель, не знали о такой тонкости, что позиция открывается и тут-же закрывается. Вот и никаких претензий нету.

А вообще я с вами согласен. Что-то совсем разработчики мышей не ловят. То умышленно баги плодят, по высказываниям одного персонажа он замучился эти баги отлавливать. Теперь вот никак не сделают одну единственную команду типа "Косить бабло". И никакого программирования знать не надо. "Не царское дело в *** колупаться. Прикажу и ***" вот как-то так звучат ваши слова.

 
Alexey Viktorov:Так владелец этого чудо-кода так-же как и его писатель, не знали о такой тонкости, что позиция открывается и тут-же закрывается. Вот и никаких претензий нету.А вообще я с вами согласен. Что-то совсем разработчики мышей не ловят. То умышленно баги плодят, по высказываниям одного персонажа он замучился эти баги отлавливать. Теперь вот никак не сделают одну единственную команду типа "Косить бабло". И никакого программирования знать не надо. "Не царское дело в *** колупаться. Прикажу и ***" вот как-то так звучат ваши слова.

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

ну и про Ваш перфоманс - все языки всегда "обрастают" библиотеками, разработчики библиотек часто простые программисты- пользователи, но это не мешает этим библиотекам быть популярными и сделанными очень качественно, если сумеете выбраться из "песочницы" MQL - прогуляйтесь по GitHub , я под С# постоянно нахожу готовые библиотеки, которые экономят время на разработку

 
Vladimir Karputov:

Прямой аналогии нет. Позиция состоит из сделок. Хотите точные данные именно по позиции - сначала необходимо из торговой истории собрать позицию обратно. 

Поэтому Вам лучше работать с понятием "сделка". 

Вообще реализация очень сильно зависит от ответа на вопрос: "Зачем?". То есть сначала точно опишите что хотите и для чего.

Получить профит сделки в пунктах. В МТ4 это делалось так: 

( OrderClosePrice() - OrderOpenPrice() )/Point;
 
secret:

Получить профит сделки в пунктах. В МТ4 это делалось так: 

Прибыль СДЕЛКИ получить нельзя. Сделка может быть:

ENUM_DEAL_TYPE - Тип сделки

ENUM_DEAL_TYPE

Идентификатор

Описание

DEAL_TYPE_BUY

Покупка

 DEAL_TYPE_SELL Продажа

***


Вам нужно получить информацию по закрытой ПОЗИЦИИ (полноценная позиция состоит минимум из двух СДЕЛОК: вход и выход). Для этого:

  • по торговой истории соберите позицию из торговой истории и проверьте её полноценность (напоминаю, что позицию можно собрать из СДЕЛОК) - используйте свой свойство сделок DEAL_POSITION_ID.
Контрольное слово здесь "соберите позицию из торговой истории и проверьте её полноценность". 
 
Vladimir Karputov:

Понятно. Спасибо) Весьма странная терминология в МТ5.

Интересно, почему разработчики не сделали готовые свойства позиции в истории. В МТ4 же было.

 
secret:

Понятно. Спасибо) Весьма странная терминология в МТ5.

Интересно, почему разработчики не сделали готовые свойства позиции в истории. В МТ4 же было.

Очень хорошо, что сделали так. Есть доступ ко всей истории изменения любой позиции. В четверке всё свалено в ордер. А ордер - это лишь приказ на исполнение. В пятерке же - приказ-сделка-позиция.