Друзья, всем доброго времени суток, продолжаю работать над приложением.
День N1 Начало разработки торгового панели для MetaTrader.
В предыдущем первом посте я немного рассказал о целя и о том что уже сделано.
Теперь потихоньку движемся дальше.
Столкнулся с проблемой работы прикладных окон, именно тех окон в которых располагаются кнопки, тексты и другие объекты.
Суть проблемы в том что создавать окна нужно с полного нуля и продумывать их поведение и разные ситуации. Например когда окно находится над другим окном, или когда трейдер не кликнул по окну а сразу потянул его в сторону. Каждое такое поведение должно быть четко описано в коде. Еще в первом дне, мне казалось что проблему я решил и четко запрограммировал работу окон, но не все так просто оказалось. Не смотря на то что MQL достаточно мощный язык, есть вещи которые реализовать не так просто.
Я убедился в этом скачав другие приложения с поддержкой прикладных окон, там вообще лютый треш, если окна друг над другом и кликнуть по кнопке верхнего окна то одновременно срабатывают кнопки и в окнах на заднем плане, и это даже в дорогих платных программах.
Для MetaTrader 5 написана торговая библиотека MT4Orders.
Начиналось так.
// Список изменений: // 03.08.2016: // Релиз - писался и проверялся только на оффлайн-тестере.
Сегодня библиотеке ровно пять лет. Продолжает развиваться. Перечислим ее достижения.
При настройке ТС есть два подхода
Первый случай хорош тем, что можно видеть величину мат. ожидания используемой закономерности. Казалось бы, что чем оно выше, тем лучше. Но когда речь заходит об реинвестировании робастой ТС с высоким потолком ликвидности, то может случиться так, что большее количество мелких сделок (в пипсах) выгоднее, чем меньшее количество сделок крупнее.
Например, в пипсах результат может быть одинаков у двух проходов. Но проход с бОльшим количеством сделок может стать предпочтительнее при реинвестировании.
Поэтому хорошо бы иметь критерий оптимизации для реинвестирования.
Взял такой: какая относительная прибыльность достигается при жестко заданной максимальной относительной просадке.
Господа, всех приветствую. Продолжаем изучение mql4. В прошлый раз мы познакомились с «Мастером MQL4», а так же программами и файлами, которые в нём можно создавать и разобрались, чем они друг от друга отличаются и какие задачи выполняют.
Сегодня я расскажу о трёх основных функциях, которые у Вас будут в каждом советнике. Эти функции называются OnInit(), OnDeinit(), OnTick() и являются обработчиками событий: инициализация, деинициализация и новый тик.
Если Вы попробуете создать шаблон советника в «Мастере MQL4», Вам будет предложено добавить и другие имеющиеся обработчики событий, но перечисленные функции являются базовыми, о них Вас даже не будут спрашивать. После получения пустой заготовки для советника, эти 3 функции уже будут в исходнике, после чего Вы можете их наполнить программным кодом.
В этом посте разберёмся, что следует размещать в каждой из функций и когда каждая из них выполняется.
Функция OnInit() выполняется первой, когда торговый терминал посылает событие init (инициализация). А делает он это в следующих ситуациях: запуск советника на графике, смена торгового символа или таймфрейма, перекомпиляция советника в MetaEditor’e, если его копия установлена на графике, изменение входных параметров советника из окна его настроек, а так же при смене счёта.