Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
e-PSI@VirtualTrader_v.1.25 - эксперт для MetaTrader 4
- Просмотров:
- 8218
- Рейтинг:
- Опубликован:
- 2011.04.27 10:25
- Обновлен:
- 2014.04.21 14:55
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Советник своей работой где-то заменяет работу с отложенными ордерами, а где-то действует хитрее... На чарте, на котором запущен данный советник, рисуем горизонтальную или трендовую линию и присваиваем ей название, если хотим открыть 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).
Советник, торгующий на малых таймфреймах на основе инидакторов RSI и MA.
2MA+StdDevСоветник, построенный на пересечении двух MA и подтверждении сигналом StdDev
Ну вот дописал новую версию советника как многие и просили.
Multi Time Frame EnvelopesMTF-Env-2B создан по просьбе нескольких трейдеров, который создан по образу и подобию индикатора Nik_PSAR_2B