Посоветуйте, как лучше сделать "лекарство от жадности"...

 

Прошу совета, каким путём можно решить задачу возникшую у меня.
Написал я неболшого простенького эксперта - трендовый, работает без индикаторов, тренд определяется по формуле из значений OPEN/CLOSE предыдущих свечей. Так получилось, что количество правильных определений тренда больше, чем ошибочных. Работает на любых таймфреймах с приемлемой погрешностью, наиболее точно на недельных (правда при переходе с одного таймфрейма на другой нужно менять значения задаваемых стопов). Трейлинг не используется. Получилось в работе (в тестере по истории с 2001 по настоящее время), что советник может быть прибыльным(по крайней мере у меня такое впечатление). Но есть естественное противоречие между попытками достичь максимальной прибыльности и максимальной безрисковости.
Если я прикручиваю к советнику всевозможные "тормоза" и "предохранители"  то на промежутке с 2001 по 2012 даёт прибыли всего порядка 800-900 % (оптимизацией, я думаю можно добиться большего, но для меня оптимизация и подгонка - слова-синонимы, поэтому я её не принимаю на веру).
Если снять часть "тормозов" и "предохранителей", можно получить результаты, как на прилагаемых картинках. Из положительных моментов могу отметиь, что на разных участках истории советник может выдавать сходные результаты при неизменных параметрах настройки. Но естественно присутствует и негативный момент - эпизодические "вылеты" с рынка, настолько стремительные, что традиционным "сливом"  это не назовёшь. При этом максимальное время непрерывной "жизни в рынке" за историю с 2001 получилось около полутора лет с приростом депозита до "вылета" порядка 1400%.
Я подумал, что несмотря на обязательную перспективу "вылетов", агрессивный метод торговли может дать в результате больше дохода, чем осторожный. Нужно только снимать часть прибыли, когда она уже значительная. Но тут следующая дилемма - а сколько это "хорошо", чтобы сказать хватит и закрыться....(и чтобы при этом "жаба не задавила"- а вдруг ещё тренд может принести большой подъём средств). А может лучше не закрываться а снимать прибыль малыми частями, пропорционально текущему эквити? Но как это реализовать без ручного управления? Куда девать эту сумму изъятия - надо сделать как-то, чтоб советник "не замечал" часть средств на счету, а работал только с какой-то их частью... Уточню такую деталь - советник открывает позицию по началу бара, поэтому когда прибыль уже зафиксирована закрытием позиции, а новая ещё не открыта, можно что-то замутить.
Если есть какие-то соображения на этот счёт поделитесь, может есть где готовые решения или рекомендации. Прошу сразу учесть мой уровень в программировании (мягко говоря не силён в кодописании) - MQL5-м пользуюсь, как младенец конструктором LEGO .

Файлы:
 
TesterWithdrawal() пробовали ?
 
molotkovsm:
TesterWithdrawal() пробовали ?
Как вариант для проверки идеи в тестере, частично подойдёт этот способ, но из минусов его есть пара - во-первых, в реале в автоматическом режиме без "ручного" участия снимать средства с депозита не получится (а хотелось бы найти решение, которое можно будет воспроизвести в реале); во-вторых, тогда при вылете из рынка (если лишние средства с депозита сняты), советник не сможет открывать автоматически новую позицию, пока депозит не будет пополнен (опять же в ручном режиме). Как-то так...
 
Wangelys:
Как вариант для проверки идеи в тестере, частично подойдёт этот способ, но из минусов его есть пара - во-первых, в реале в автоматическом режиме без "ручного" участия снимать средства с депозита не получится (а хотелось бы найти решение, которое можно будет воспроизвести в реале); во-вторых, тогда при вылете из рынка (если лишние средства с депозита сняты), советник не сможет открывать автоматически новую позицию, пока депозит не будет пополнен (опять же в ручном режиме). Как-то так...

"Снимайте прибыль" по выходным, должно получиться.

Но ваша проблема в другом - в размерах ТП, трейлинга, или в других параметрах управлением позициией.

 
komposter:

"Снимайте прибыль" по выходным, должно получиться.

Но ваша проблема в другом - в размерах ТП, трейлинга, или в других параметрах управлением позициией.

Продаете его?
 
aliester:
Продаете его?
Определенно.
 
komposter:

"Снимайте прибыль" по выходным, должно получиться.

Но ваша проблема в другом - в размерах ТП, трейлинга, или в других параметрах управлением позициией.

Это не проблема - я же сделал упор на то, что прибыльность советника для меня важнее. чем его гарантированное невылетание из рынка. При нормальных параметрах настройки он может не вылетая из рынка торговать(в тестере) с результатами за 10 лет порядка в 20-25 раз увеличивая депозит. Насколько я понимаю, такой результат в наше время не впечатляет (маловато будет, с учётом того, что риск такого рода операции всегда остаётся - 100% гарантий никто не даёт). При торговле советником (опять же уточню - в тестере) с заданными настройками повышенной рисковости торговли можно рассчитывать(надеяться) на хороший результат. Ведь вылетая с рынка советник в результате теряет по сути только стартовый депозит, а стратегия моего подхода в том, что возможно будет запускать его с малым размером стартового депозита (чуть ли не с 50 енотиков). Теперь по Вашей рекомендации - снимать часть депозита по выходным... Это не выход - советник работает без выходных(выходные для него просто пауза в рабочем цикле, типа команды Sleep в коде, очевидно в первом посте я не совсем точно эту мысль донёс, когда говорил о периоде между закрытием и открытием позиций). Тоесть, даже когда закрывается позиция, уже просчитаны параметры открытия следующей (он не бывает в режиме бездействия - всё время или продаёт или покупает, как и рынок, следит за движением рынка, для него нет понятия "неподходящих" торговых условий, даже во время флэта он успешно работает, беря по малу). Поэтому снятие части депозита может выбить его из колеи. А вот алгоритм действия советника, чтобы он заранее планировал изъятие части суммы из оборота (как и сам механизм такой процедуры в реале), я пока не придумал(в чём для меня и заключается основная проблема).
 
aliester:
Продаете его?
Покупаете? А если серьёзно, то его продать пока просто невозможно - "его" пока фактически нет, есть только торговая система, частично реализованная в неумело закодированных мною кусках кода.
 
komposter:
Определенно.
Напрасно иронизируете и без меня за меня "решаете". Как я уже сказал, продавать пока просто нечего. А вот после некоторых внесеных улучшений получившееся уже можно выставлять на следующий чемпионат (можете глянуть скрин, меня обнадёживает такой промежуточный результат... там правда торговля закончилась досрочно не по причине вылета с рынка, а по причине ограничения на сервере на максимальный размер лота). Так что есть ещё мне над чем поработать. А свежих идей пока увы....
Файлы:
EH1.png  261 kb
 
papaklass:
Интересно, как Вы собираетесь на реале совершить 183785 сделок за полгода, т.е. за 120 торговых дней? Простая арифметика показывает (183785 / 120 = 1532 сделки в день), что Вы занимаетесь ерундой.
Во-первых, как я уже сказал, это ещё не советник, а только попытка его написания, на картинке иллюстрация того, что (вероятно) в основу положен правильный торговый принцип. Если бы думал иначе, уже запустил бы в реале... А кроме того, что Вас смущает в количестве сделок? Какая проблема? Я не в ручную это буду делать, да и на сервере обработка автоматом...
 
Wangelys:
Это не проблема - я же сделал упор на то, что прибыльность советника для меня важнее. чем его гарантированное невылетание из рынка. При нормальных параметрах настройки он может не вылетая из рынка торговать(в тестере) с результатами за 10 лет порядка в 20-25 раз увеличивая депозит. Насколько я понимаю, такой результат в наше время не впечатляет (маловато будет, с учётом того, что риск такого рода операции всегда остаётся - 100% гарантий никто не даёт). При торговле советником (опять же уточню - в тестере) с заданными настройками повышенной рисковости торговли можно рассчитывать(надеяться) на хороший результат. Ведь вылетая с рынка советник в результате теряет по сути только стартовый депозит, а стратегия моего подхода в том, что возможно будет запускать его с малым размером стартового депозита (чуть ли не с 50 енотиков).

Нет, вы меня не поняли.

Старт "с 50 енотиков" - это равносильно:

  • Моделированию текущего эквити, исходя из заданного стартового депозита (50 уе);
  • Расчету размеров позиций и всего, что связано со свободными средствами, через моделируемое эквити;
  • Моделированию срабатывания стоп-аута.
Таким образом можно советника, периодически сливающего депозит, тестировать непрерывно. А по среднему превышению реальных средств над балансом в момент очередного старта после слива, можно судить об оптимальном размере "ТП" (размере снимаемой прибыли).

Я поэтому и сказал, что проблема в сопровождении позиций - нужен общий ТП (моделирование снятия прибыли), общий СЛ (моделирование стоп-аута), и советник будет пригоден к непрерывной работе. А уж запускать его можно будет и на "50 енотах" (если нет веры в корректность отработки кода на реале или не хочется непредвиденных сюрпризов).

 

И сделать это можно и в МТ5 и в МТ4.