Spezifikation
Здравствуйте.
Нужна целостная мультивалютная библиотека торговых функций для МТ4.
Цель: разделить логику эксперта и непосредственно торговые функции (с пересчетами цен и обработкой ошибок).
UPD: Коллеги, я сам программист (не MQL). Все программисты пишут свои библиотеки (если нет подходящих готовых),
чтобы использовать готовый код, вместо написания в каждой программе нужного повторяющегося функционала.
Пожалуйста, рассматривайте это предложение как возможность продать то, что вы уже и так сделали для себя. Может быть с небольшими доработками.
Не выставляйте цену как-будто надо написать эту библиотеку с нуля.
Работа с SL и TP в пунктах (с автоматическим пересчетом в уровни цен внутри торговых функций).
Работа функций не должна быть привязана к конкретному символу или magic'y.
Установка уникальных magic'ов для ордеров на основе базового magic'a (и заполнение соответствующих внутренних массивов).
С автоматической коррекцией некоторых торговых ошибок (близкое открытие, близкие стопы. контроль лота)
Работа с одним уровнем цен (работа по Bid. Везде где используется Ask уменьшать значение открытия/закрытия ордера на величину спреда).
Нормализация чисел (в нужных местах в соотв. функциях).
Вспомогательные функции.
Получение списка торгуемых символов.
Расчет лотов по эквити (при достижении SL потери должны быть не более заданного процента от эквити на момент установки ордера).
Расчет прибыли в пунктах и деньгах по открытым и закрытым ордерам.
Статистический функции (потом или можно сразу если есть готовые наработки).
Расчет базового magic'a из торгуемого символа и задаваемого magic'a.
Обработка ошибок (близкая цена открытия для лимит- и стоп-ордеров, близкие стопы и пр)
Поиски ордера по базовому или индивидуальному magic'у или тикету.
Добавление в таблицы (массивы) вновь установленных ордеров.
И т.п.
Торговые функции
Постановка ордеров разных типов (отдельными для каждого типа ордеров функциями).
Изменение ордеров: уровней SL, TP. Для лимит- и стоп-ордеров - ещё изменение цены открытия и лота (с переустановкой ордера с тем же magic'ом). Тоже отдельными функциями.
Установка обратных ордеров (при достижении SL открытого ордера должен открываться стоп-ордер в обратном направлении, лот пересчитывается с учетом уменьшения эквити при достижении SL открытого ордера).
Многоуровневый трейлинг-стоп открытых позиций:
1) трейлинг до безубытка по тикам.
2) далее до определенной прибыльности (в пунктах) - по закрытым свечам ждем достижения первого уровня прибыли.
Первоначально SL (в пунктах) задается при установке ордера и равен первому уровню прибыли (конечно, тоже в пунктах).
Потом SL сдвигается на безубыток.
Т.е. тут имеется ввиду, что SL больше не подтягивается вверх, пока не будет достигнут первый уровень прибыли (в пунктах).
При закрытии ордера по SL до этапа 3 (т.е. по безубытку) - удалить обратный ордер.
3) При достижении первого уровня прибыли (в пунктах) - закрытие части лота.
При частичном закрытии лота в таблице (массиве) учета установленных ордеров надо заменить тикет у соответствующего ордера.
4) Дальнейший трал по закрытым свечам.
5) При достижении следующего уровня прибыли (в пунктах) - уменьшение дистанции до SL до нового значения (в пунктах) или по минимумам двух последних закрытых свечей (что ближе).
На этапах 4-5 - подтягивание обратного ордера (если он есть) на уровень открытия равный SL. Т.е. такой трейлинг-старт обратных ордеров.
На этапах 3-5 - пересчет обратного лота. Если расчетный лот на 25% больше или меньше (эквити могло уменьшиться из-за другого сова), чем текущий, то удаляется обратный ордер и выставляется новый с измененным лотом (со старым magic'ом).