Перейти к содержанию

[Советник] ХИМЕРА


Рекомендуемые сообщения

[Советник] ХИМЕРА Опубликовано (изменено)

ХИМЕРА



Год выпуска: 2014
Валютные пары: Любые
Таймфрейм: Любой (не принципиально)
Актуальная версия: v1

Описание:

Этот советник написан по мотивам видеоуроков из темы "Обучение языку MQL под Metatrader 4". Советник не использует индикаторов, поэтому таймфрейм не важен. Советнику нужно только движения цены, а они на всех таймфреймах одинаковые.

Вход в сделку: Советник на заданном расстоянии выставляет 2 отложенных ордера BuyStop и SellStop. Далее при движении цены происходит трейлинг отложенных ордеров вслед за ценой. Ордера "бегут" вслед за ценой на заданном расстоянии, но от цены "не убегают". Как только цена достигнет отложенного ордера, то открывается сделка.

Сопровождение сделок: В случае, если цена продолжает движение в направлении открытого ордера, то включается трейлингстоп. Если цена сменила направление, то применяется мартингейл-сетка.

Особенности:
[list type=decimal]
  • Для шага сетки можно применить корректирующий коэффициент. Следующее колено сетки открывается на расстоянии, равном расстоянию предыдущего шага, умноженного на коэффициент. Т.о. если коэффициент равен 1, то колена сетки открываются на одинаковом расстоянии, если коэффициент >1, то расстояния увеличиваются от колена к колену, если меньше 1, то уменьшаются. Таким образом я попытался компенсировать изменение волатильности.


  • Т.к. советник использут стратегию мартингейл, то для защиты от слива всего депозита предусмотрена защита. Советник следит за общим уровнем убытка сетки ордеров. Если общий убыток сетки превышает установленное количество %% от депозита, то сетка принудительно закрывается. Таким образом теряется не весь депозит, а только его определенный процент.


  • Предусмотрено автоматическое выставление локирующих ордеров для уменьшения просадки от сетки ордеров. Начиная с заданного колена сетки одновременно с ордером сетки выставляется локирующий ордер противоположного направления. Если номер колена, с которого нужно выставлять локи, больше, чем максимальное кол-во ордеров сетки, то локи не ставятся (это такой способ отключения этой функции). Локирующий ордер имеет стоплосс, при дальнейшем движении цены локирующий ордер переводится в безубыток. Так же к локирующему ордеру можно применить коэффициент. Если коэффициент равен 1, то локирующий ордер выставляется точно такого же объема, как и ордер сетки.


  • Каждая сетка ордеров должна иметь свой уникальный мэджик, поэтому советник ставится на один график на Long&Short.


  • Индивидуальные настройки для сделок на покупку и сделок на продажу.



  • В современном мире "химера" означает необоснованную, несбыточную идею. Со стандартными настройками советник свое название оправдывает.

    Защита от депозита работает как надо, защищая депозит от полного слива. Но в то же время именно эта защита и является основной причиной уменьшения депозита.

    Описание настроек:
    Спойлер


    "===================================";
    "ОБЩИЕ НАСТРОЙКИ СОВЕТНИКА";
    "===================================";

    Slippage = 5; // Проскальзывание

    "===================================";
    "НАСТРОЙКИ ОТЛОЖЕННЫХ ОРДЕРОВ";
    "===================================";

    "НАСТРОЙКА BuyStop";

    "Объем ордера (размер лота) BuyStop";
    LotBuy = 0.1; // Стартовый лот

    "Дистанция от текущей цены до ордера";
    OrderDistanceBuyStop = 15; // Дистанция, на которой выставляется отложенный ордер от текущей цены

    "НАСТРОЙКА SellStop";

    "Объем ордера (размер лота) SellStop";
    LotSell = 0.1; // Стартовый лот

    "Дистанция от текущей цены до ордера";
    OrderDistanceSellStop = 15; // Дистанция, на которой выставляется отложенный ордер от текущей цены

    "===================================";
    "НАСТРОЙКИ ТРЕЙЛИНГСТОПА ПЕРВОГО ОРДЕРА BUY";
    "===================================";

    "Уровень начала трейлингстопа";
    TrailingStartBuy = 30; // Уровень начала трала

    "Шаг трейлингстопа";
    TrailingStepBuy = 5; // Шаг трала

    "Уровень трейлингстопа";
    TrailingStopBuy = 30; // Размер трейлингстопа

    "===================================";
    "НАСТРОЙКИ ТРЕЙЛИНГСТОПА ПЕРВОГО ОРДЕРА SELL";
    "===================================";
    "Уровень начала трейлингстопа";

    TrailingStartSell = 30; // Уровень начала трала
    "Шаг трейлингстопа";

    TrailingStepSell = 5; // Шаг трала
    "Уровень трейлингстопа";

    TrailingStopSell = 30; // Размер трейлингстопа

    "===================================";
    "НАСТРОЙКИ СЕТКИ ОРДЕРОВ BUY";
    "===================================";

    "ТэйкПрофит для сетки ордеров Buy";
    TakeProfitBuy = 30; // Уровень тэйкпрофита

    "Коэф. увеличения объема следующего ордера";
    LotMultiplierBuy = 1.2; // Коэффициент увеличения размера лота при каждом шаге сетки ордеров

    "Шаг сетки ордеров Buy";
    StepBuy = 30; // Шаг сетки ордеров

    "Коэф. увеличения шага сетки";
    StepMultiplierBuy = 1.2; // Коэффициент увеличения шага сетки при каждом шаге сетки ордеров

    "Максимальное количество ордеров сетки";
    MaxOrdersBuy = 10; // Максимальное кол-во шагов сетки ордеров

    "Закрытие сетки по уровню убытка (в %% от депозита)";
    CloseGridPercentBuy = 20; // При достижении совокупного убытка ордеров сетки более указанного значения в %% от депозита сетка принудительно закрывается

    "Мэджик для сетки ордеров Buy";
    MagicBuy = 26051978; // Магик для сетки ордеров BUY

    "Комментарий для сетки ордеров Buy";
    CommentBuy = "Сетка ордеров Buy"; // Комментарий для сетки ордеров BUY

    "===================================";
    "НАСТРОЙКИ СЕТКИ ОРДЕРОВ SELL";
    "===================================";
    "ТэйкПрофит для сетки ордеров Sell";
    TakeProfitSell = 30; // Уровень тэйкпрофита

    "Коэф. увеличения объема следующего ордера";
    LotMultiplierSell = 1.2; // Коэффициент увеличения размера лота при каждом шаге сетки ордеров

    "Шаг сетки ордеров Sell";
    StepSell = 30; // Шаг сетки ордеров

    "Коэф. увеличения шага сетки";
    StepMultiplierSell = 1.2; // Коэффициент увеличения шага сетки при каждом шаге сетки ордеров

    "Максимальное количество ордеров сетки";
    MaxOrdersSell = 10; // Максимальное кол-во шагов сетки ордеров

    "Закрытие сетки по уровню убытка (в %% от депозита)";
    CloseGridPercentSell = 20; // При достижении совокупного убытка ордеров сетки более указанного значения в %% от депозита сетка принудительно закрывается

    "Мэджик для сетки ордеров Sell";
    MagicSell = 30111979; // Магик для сетки ордеров SELL

    "Комментарий для сетки ордеров Sell";
    CommentSell = "Сетка ордеров Sell"; // Комментарий для сетки ордеров SELL

    "===================================";
    "НАСТРОЙКИ СЕТКИ ЛОКИРУЮЩИХ ОРДЕРОВ SELL";
    "===================================";

    "Коэф. увеличения объема локирующего ордера";
    LotLockMultiplierSell = 1.2; // Коэффициент для локового ордера SELL

    "Номер колена, с которого начинать локирование";
    LockStartSell = 11; // Шаг сетки, с которого начинают выставляться локирующие ордера

    "Уровень стоплосса для локирующего ордера";
    StopLossLockSell = 20; // Уровень стоплосса для локирующих ордеров

    "Уровень безубытка для локирующего ордера";
    BreakevenLockSell = 30; // Уровень для перевода локирующего ордера в безубыток

    "Мэджик для сетки локирующих ордеров Sell";
    MagicSellLock = 301179; // Магик для сетки локовых ордеров SELL

    "Комментарий для сетки локирующих ордеров Sell";
    CommentSellLock = "Локирующий ордер Sell"; // Комментарий для сетки локовых ордеров SELL

    "===================================";
    "НАСТРОЙКИ СЕТКИ ЛОКИРУЮЩИХ ОРДЕРОВ BUY";
    "===================================";

    "Коэф. увеличения объема локирующего ордера";
    LotLockMultiplierBuy = 1.2; // Коэффициент для локового ордера BUY

    "Номер колена, с которого начинать локирование";
    LockStartBuy = 11; // Шаг сетки, с которого начинают выставляться локирующие ордера

    "Уровень стоплосса для локирующего ордера";
    StopLossLockBuy = 20; // Уровень стоплосса для локирующих ордеров

    "Уровень безубытка для локирующего ордера";
    BreakevenLockBuy = 20; // Уровень для перевода локирующего ордера в безубыток

    "Мэджик для сетки локирующих ордеров Buy";
    MagicBuyLock = 301179; // Магик для сетки локовых ордеров BUY

    "Комментарий для сетки локирующих ордеров Buy";
    CommentBuyLock = "Локирующий ордер Buy"; // Комментарий для сетки локовых ордеров BUY



    Бэктест:
    Спойлер


    Тест проводился на паре eurusd за период 2013.01.01 - 2014.01.01.
    Как видно из графика, за год 4 раза депозит был защищен от слива. Однако сам убыток от защиты превысил прибыль. Поэтому требуется подобрать такие настройки, чтобы прибыль в периоды флета была больше, чем потери во время тренда.

    Химера_v_1.ex4
    backtest_eurusd.gif

    Изменено пользователем Pavel888
    • Лайк 2
    Ссылка на сообщение
    Поделиться на другие сайты

    [Советник] ХИМЕРА Опубликовано (изменено)

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

    В качестве альтернативного входа в сделку добавил вариант по Bollinger Bands.

    В настройках есть способ выбора открытия первого ордера. Для переменной Enter нужно указать значение 1.

    Спойлер


    rem108 = "Способ открытия первой сделки";
    rem109 = " 0 - трэйлинг отложенных ордеров";
    rem110 = " 1 - по Bollinger Bands";
    Enter = 0;



    Далее идут стандартные настройки Bollinger Bands.
    Спойлер


    "===================================";
    "НАСТРОЙКИ BOLLINGER BANDS";
    "===================================";
    "Объем позиции";
    Lot = 0.1; // Лот
    "Период";
    period = 20;
    "Отклонение";
    deviation = 2;
    "Сдвиг";
    shift = 0;



    В принципе, советника можно ставить на любой таймфрейм. Чем он выше, тем меньше будет сигналов на вход. А для сетки таймфрейм уже становится неважен.

    Добавлено: 24-03-2014 09:14:17

    Тесты версии 2 за 2013 год на М15.

    Пара eurusd - максимальная просадка 20,7%
    Пара gbpusd - максимальная просадка 43,6%

    Добавлено: 24-03-2014 09:26:43

    Для gbpusd использовал тот же сет.

    В принципе, к ВВ нужно еще добавлять фильтры, чтобы как можно реже советник открывал сетки, а в основном тралил первые ордера. Тогда просадка будет еще меньше. Жду от вас ценных рекомендаций, чтобы добавить их в советник.

    P.S. Советник по умолчанию работает только на демосчетах. Если вдруг кто-то решится ставить на реал, то ...
    Спойлер


    закомментируйте в коде вот эту строку

    if (demo == true)


    Химера_v_2.ex4
    Химера_v_2.mq4
    eurusd_BB_m15_2013.gif
    gbpusd_BB_m15_2013.gif
    eurusd_bb_m15_2013.set

    Изменено пользователем Starker
    • Лайк 2
    Ссылка на сообщение
    Поделиться на другие сайты

    [Советник] ХИМЕРА Опубликовано (изменено)

    Я именно в билде 600 от Альпари редактирую и тестирую. Какие ошибки пишет?


    Добавлено: 26-03-2014 09:49:16



    P.S. Советник по умолчанию работает только на демосчетах. Если вдруг кто-то решится ставить на реал, то ...

    Спойлер


    закомментируйте в коде вот эту строку

    if (demo == true)




    Может ты тестер на реальном счету используешь? Тогда не будет тестироватся. Изменено пользователем Starker
    Ссылка на сообщение
    Поделиться на другие сайты

    Да на реале... закоментил... но чет ничего не идет... улыбается и все... а сделок нет... может что то кривовавото коментнул???

    • Лайк 1
    Ссылка на сообщение
    Поделиться на другие сайты

    [Советник] ХИМЕРА Опубликовано

    Т-95, извини. Я исправил в спойлере, что надо закомментировать. Сейчас все будет работать на реале.

    Ссылка на сообщение
    Поделиться на другие сайты

    [Советник] ХИМЕРА Опубликовано (изменено)

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

    Изменено пользователем T-95
    Ссылка на сообщение
    Поделиться на другие сайты

    [Советник] ХИМЕРА Опубликовано (изменено)

    По Bollinger Bands советник может открывать сделки как при пробитии границы, так и при отскоке от нее. Ордер на покупку открывается при пробитии верхней границы вверх или при отскоке от нижней границы вверх. Для ордера на продажу условия зеркальны.

    Для сделок, открываемых при отскоке я подобрал фильтр - CCI. Скоро приделаю его и выложу. Для сделок , открываемых при пробое, я не увидел возможность использовать CCI в качестве фильтра.


    Добавлено: 26-03-2014 15:06:53

    Насчет функций реверса и ММ я подумаю и сделаю. На первый взгляд это сложным не кажется.

    Добавлено: 26-03-2014 15:15:08

    А по RSI у меня вопрос к Вам, Т-95.

    В принципе, мой советник - это обычная сетка с мартингейлом (к тому же не самой удачной реализации наверное), каких на просторах интернета очень много. И подавляющее большинство как сигнал для входа в сделку используют RSI. Добавить его несложно, но зачем? Для коллекции условий на вход? Есть по отложкам, по ВВ, для кучи еще чего-то добавлять? Это уже не Химера будет, а Франкенштейн какой-то ))).

    А если Вы предлагаете RSI как фильтр, то напишите поподробнее, как это Вы видите.

    Например, Bollinger Bands сигнализирует, что можно открывать сделку на покупку при отскоке от нижней границы. Какое условие должны мы увидеть на RSI, чтобы подтвердить открытие или отфильтровать ложный сигнал BB?
    А запрограммировать это будет несложно.

    Добавлено: 26-03-2014 15:18:02

    Уже писал, но повторюсь еще раз. Уникальность этого советника не в мартингейле, а в способе входа в сделку. Чем правильнее вход, тем меньше вероятность построения сетки и ухода в просадку/слива. Я в поиске этих условий на вход, жду от вас предложений, обсуждений, критики. В общем диалога. Изменено пользователем Starker
    • Лайк 1
    Ссылка на сообщение
    Поделиться на другие сайты



    А если Вы предлагаете RSI как фильтр, то напишите поподробнее, как это Вы видите.

    Например, Bollinger Bands сигнализирует, что можно открывать сделку на покупку при отскоке от нижней границы. Какое условие должны мы увидеть на RSI, чтобы подтвердить открытие или отфильтровать ложный сигнал BB?
    А запрограммировать это будет несложно.



    Ну так допустим... цена подошла к нижнему каналу пробила его...у нас сработал бай... если добавим рсай, с хорошим периодом...то он вот эти ложные отскоки и растягивание сетки и будет фильтровать... тем самым мы добьемся более качественного входа... и более большего тп по траллу.... как то так...
    по поводу мартина... пока данный сов именно на нем и выезжает... мартин хорош когда центовые счета...
    у вас идея хорошая, правда я еще не совсем разобрался с сеткой.... локом... т.п..... но потенциал есть....
    к сожалению пока завал со свободным временем....очень хочу разобраться и понять логику...и подобрать интересные сеты...надеюсь на выходные
    Ссылка на сообщение
    Поделиться на другие сайты

    Для публикации сообщений создайте учётную запись или авторизуйтесь

    Вы должны быть пользователем, чтобы оставить комментарий

    Создать учетную запись

    Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

    Регистрация нового пользователя

    Войти

    Уже есть аккаунт? Войти в систему.

    Войти
    ×
    ×
    • Создать...