Группа "Стол заказов MQL"

Рейтинг 2155



РЕКОМЕНДУЮ



Добавить в советник

Здравствуйте Андрей. Добавьте пожалуйста в советник MT4 пять знаков e- PSIeVirtualTrader1_25.zip (18 Kb) без убыток и трелинг стоп. Спасибо.
  • 0
  • Просмотров: 2028
  • 1 июня 2017, 17:03
  • ID1972
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
сов
01 июня 2017
01 июня 2017

Брокер для ваших роботов, 15 лет на рынке

Комментарии (4)

0
Как хоть он работает, для чего предназначен?.. Ничего ведь нет в ТЗ кроме большого объема чужого кода.
avatar

  35  AM2 Сообщений: 16529 - Андрей

  • 1 июня 2017, 17:40
0
Советник своей работой где-то заменяет работу с отложенными ордерами, а где-то действует хитрее… На чарте, на котором запущен данный советник, рисуем горизонтальную или трендовую линию и присваиваем ей название, если хотим открыть BUY ордер — в соответствии с названием Name_BUY_Line или, если SELL, соответственно Name_SELL_Line. Что вы подразумеваете STOP или LIMIT ордер — советник сам разберётся. Если ордер STOP-вый, то ордер будет открыт при пересечении данного уровня, если LIMIT, то советник сначала фиксирует факт пересечения ценой этого уровня, а затем ждёт разворота цены. Работает только с одной линией на графике на котором запущен.
Для чего это нужно — дублировать то, что и так нормально работает? Во-первых, это вселяет в трейдера уверенность, что цена «случайно» не зацепит его отложенный ордер тенью свечи и не развернётся в обратную сторону… Во-вторых, в случае, LIMIT ордеров, ордер будет открыт только после разворота цены. Работа с отложенными ордерами не позволяет настроить очень важный параметр (имхо) — проверку на условия срабатывания в определённый момент (дискретно), а не на каждом тике. Проверка в данном советнике реализована через параметр NewBarInPeriod:
extern int NewBarInPeriod = 1; // <= 0 — работаем на начале периода нового бара, -1 — работаем на каждом тике
Хочу особо подчеркнуть, что графический интерфейс управления ордерами давно и неоднократно прописан программистами, в том числе и в кодах, выложенных в Code Base. Дублировать чужой труд не стояло в моей задаче!!! Для того, чтобы почувствовать разницу открытия ордера при пересечении линии по текущей цене (не однократно реализованное), я вывел в условия как Variant_Send = 0 и вот скрин работы по этим условиям:
а мои условия на открытие ордеров прописаны в Variant_Send = 1 и вот скрин по этим условиям:

Почувствуйте разницу! Я добивался того, чего я добивался (а не отличия с ранее сделанным) — это мой способ уйти от ложного срабатывания\шума (называйте как хотите), который присутствует в любом не линейном процессе.
Что реализовано в данном советнике:
* Открытие рыночных ордеров по линиям на чарте;
* Открытие ордеров по 2-ум настраиваемым тактикам (Variant_Send):
 Variant_Send = 0 — при пересечении уровня открываем по текущей цене ордер по названию линии (как обычный отложенный ордер, только виртуальный);
 Variant_Send = 1 — при пересечении уровня: STOP-ордера открываем по текущей цене, LIMIT открываем после того, как цена развернётся и выйдет за пределы «видимости» уровня (OpenPrice +- Reliable_Area).
** Открытие ордеров по 3-ём настраиваемым тактикам (кроме линий BUY, SELL добавляем тип линий UNI):
 Variant_Send = 0 — при пересечении уровня открываем по текущей цене ордер по названию линии (как обычный отложенный ордер, только виртуальный);
 Variant_Send = 1 — при пересечении уровня: STOP-ордера открываем или после неоднократного пересечения уровня (Time_Validation), или после выхода цены за пределы «видимости» уровня (OpenPice +- Reliable_Area), LIMIT-ордера открываем после разворота цены и выхода её за пределы «видимости» уровня;
 Variant_Send = 2 — при пересечении уровня, а затем выходе цены за пределы «видимости» уровня, открываем ордер по ходу движения цены: если цена пересекла верхнюю границу — BUY, если нижнюю — SELL.
* Открытые ордера имеют свой уникальный номер (MagicNumber);
* Следит за максимальным количеством открытых «своих» ордеров на символе.
** Любое количество линий (уровней). Линии выше цены — UP, линии ниже цены — DW;
** Работа с виртуальными стопами от 1 пп. (и обычные и виртуальные);
** Динамически рассчитываемая «зона видимости» ордера;
* Ведение подробного лога своих действий (отключаемо);
** Анти-реквотная система открытия ордера (многократное повторение при ошибке);
** Звуковое сопровождение событий (отключаемо);
* Контроль ошибок работы кода;
** Трал уровня открытия STOP-ордеров (на откат);
* Трал уровня открытия LIMIT-ордеров;
* MM (v.1.22) — было такое пожелание.
* Работа с «чужими» отложенными ордерами (Integration_ON = TRUE). Советник (v.1.23) считывает информацию с ближайшего к цене отложенного ордера, рисует соответствующую линию, а ордер удаляет.

** Функции, реализованные во второй версии советника (для интересующихся — через личку).
P.S. Для проверки работы советника в тестере реализовано автоматическое рисование линий. И вам ни кто не запрещает вручную в тестере порисовать линии.
P.P.S. Добавил к ранее сделанному:
 добавил (по просьбе) к ранее используемой горизонтальной линии OBJ_HLINE (Variant_Line = 0) и трендовую линию OBJ_TREND (Variant_Line = 1);
 небольшой графический интерфейс (OBJ_LABLE двигаются позволяя останавливать/запускать работу советника, а также переименовывать линию по наименованию Label) — для его работы предпочтительнее запускать советник в цикл (WhileTrade_ON = TRUE);
 после открытия ордера (срабатывания уровня), линия инактивируется, и чтобы её активировать, её нужно сдвинуть;
 по просьбе «не заморачиваться» с названием линий вынес в настройки советника их наименование (Name_BUY_Line и Name_SELL_Line);
 Реализовал просьбу Sancho77 по тралу уровня открытия LIMIT-ордеров (v.1.21).
И вот как это выглядит на графике (красная стрелка «вниз» — это начало работы уровня) (см.нижний рисунок);
 Для реальной торговли не обойтись без MM (для Batuceiro) (v.1.22);
 Добавил возможность работы с «чужими» отложенными ордерами (v.1.23).
 Исправил некоторые неточности (v.1.25).
avatar

  6  ID1972 Автор Сообщений: 101

  • 1 июня 2017, 17:52
+1
avatar

  35  AM2 Сообщений: 16529 - Андрей

  • 1 июня 2017, 21:36
0
Спасибо!
avatar

  6  ID1972 Автор Сообщений: 101

  • 1 июня 2017, 22:35

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Загрузка...