[Советник][Мартингейл-по-желанию]Stupido BTM

От Rigal, 31 мая, 2020 в Архив

Страница 1 из 2
Автор#1
Спойлер

 

Название советника: Stupido BTM (Beat The Market)
Год выпуска: 2020
Актуальные версии: 1.9
Терминал: MT4 (build 1220+)
Сайт разработки: https://tradelikeapro.ru/
Рекомендуемые валютные пары: любые
Таймфрейм: любой
Время торговли: круглосуточно
Рекомендуемый ММ: 0.01 лота на 1000$

Описание: 

Стратегия описана в блоге:  https://tlap.io/beat-the-market-strategy/

На форуме есть тема: /torgovye-sistemy/2/m15-beat-the-market-strategy/20421/

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

В результате родился вот этот советник.

Хочу сразу предупредить: количество настроек не для слабых духом.

Советник предоставляет пользователю свободу выбора стиля торговли: от тонкого скальпинга на отскоках от границ канала ТМА/Боллинджера/Envelopes, или по сигналам десятка других индикаторов, до сеточного, или мартингейлового высиживания до последнего цента депозита.

Выбор за вами.

У меня появлялись варианты сетов и того, и другого типа.

Я постепенно накидаю детали настроек как можно более подробно, не останавливаясь, тем не менее, не тривиальных деталях.

Для начала давайте разберемся с тем, как он работает в принципе.

В советнике есть три основных блока:

  • Блок Сигналов - используются индикаторы с явным сигналом (стрелочки, пересечение линий, выход за границы канала итд)
  • Блок Фильтрации - используются индикаторы с протяженным состоянием тренда (мувинги и им подобные индикаторы тренда)
  • Блок Сборки Профита (Stupido)

В первые два блока могут быть произвольно включены любые из десятка индикаторов, на основе которых этот советник построен.

На каждом тике советник сначала опросит Блок Сигналов. Любой из индикаторов может быть настроен генерировать:

 

  • Сигнал на открытие первого ордера (Entry), который в том числе может быть использован, как сигнал на закрытие в зависимости от текущего профита
  • Сигнал на открытие дополнительных ордеров (Add), который может быть использован, как сигнал снижения веса позиции в противоположном направлении
  • И то, и другое (Both)

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

То есть на выходе из сигнального блока мы имеем двухканальный сигнал: Entry и Add

Если Блок Сигналов выдал ненулевой результат, мы отправляем его в Блок Фильтрации, который опрашивает все фильтры, настроенные фильтровать соответствующий тип сигнала. Важно: если индикатор настроен фильтровать сигнал первого ордера (Entry), он не будет фильтровать сигнал доливки в сетку (Add).

Если хотя бы один из фильтрующих индикаторов не согласен с направлением сигнала, сигнал отбрасывается и не торгуется. В том числе, не считается сигналом закрытия!

Если сигнал-таки просочился через сито фильтров, мы проверяем, сколько у нас ордеров в рынке и где они расположены - и открываемся по Entry сигналу, если ордеров нет, или по Add, если соблюдена заданная дистанция.

Сборка  Stupido подробно описана в топике StupidoChallenger

В этом советнике она может быть декорирована учетом сигналов: 

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

Индикаторы:

Всем индикаторам можно задать индивидуальные таймфреймы. ТМА поддерживает один ТФ для сигнала и фильтра, раздельно настроить не получится.

 

TMA (считается на движке советника)

Может использоваться как в качестве источника сигнала (выход за границы канала, разворот за границами канала, вход обратно в канал итп), так и в качестве фильтра (цена в определенной зоне в процентах от ширины канала, канал имеет уклон в заданном направлении).

Все расчеты могут выполняться на последнем баре, или на текущем, по выбору.

 


image.thumb.png.02068a0385bf63f34fbe29eb480e6314.png
 

 

Beat The Market C New (Arrows)

Используется только как индикатор открытия (Entry).

 


image.thumb.png.17305b7393bdc2768e386b6935d6f86b.png
 

 

BBand Stop Alert

Может использоваться и как источник сигнала, и как фильтр

Сигналом является смена цвета

 


image.thumb.png.45932d36743d8a453e896f14a0129373.png
 

 

HalfTrend-1.02

Может использоваться и как источник сигнала, и как фильтр

Сигналом является смена цвета/появление стрелочки

 


image.thumb.png.15ea8c0362514f7ffaaa9ae55523066e.png
 

 

Gann T3 high-low activator + alerts + arrows 1.01

Только вход по стрелочкам

 


image.thumb.png.3f85fde00fb805bb966b3a142a1b46e0.png
 

 

Trend envelopes - multi pass moving average filter 1.01

Только сигнал - по смене цвета

 


image.thumb.png.22c057639724c68e96684d62a50c8295.png
 

 

Price Channel Stop (mtf+alerts)

Только сигнал

 


image.png.8f757dfe68f6d987b4dd9c2c16788ffd.png
 

 

Triple Exponential MA

Сигнал по пересечению, фильтр по взаимному положению двух линий ТЕМА на текущем баре

 


image.thumb.png.a908b26779424ee32df4105c98e30912.png
 

 

Support/Resistance Levels

Только сигнал на вход.

Сигнал двух типов: на пробой уровня (сигналит  на выходе из прямоугольника насквозь) и  на отскок от уровня (сигналит на возврате из прямоугольника внутрь).

По выбору можно использовать или игнорировать уровни, которые цена уже пробовала.

 


image.thumb.png.0c470b6a2625897a76577595dd80dd4c.png
 

 

Bollinger Bands

Только сигнал: выход за границы канала, разворот за границами канала, вход обратно в канал итп

Стандартный индикатор, без скриншотов

 

Relative Vigor Index

Только фильтр. Больше нуля - покупка, меньше - продажа

Стандартный индикатор, без скриншотов

 

Пример почти скальпингового сета от @ostapbender - детали в приложенном архиве

 


image.thumb.png.2c2a60acc66f7f936e863e169ed9beab.png
 

 

Советник требует серьезной работы над стратегией, оптимизации и обкатки методики.

Я по мере сил готов дорабатывать его с вашей помощью.

Всем профитов!

 

История изменений:

1.2

Поправил логику индикатора ТЕМА

1.4

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

Это помогает раздергивать разросшуюся сетку частями.

Имеет смысл только если включена частичная сборка (MinRecoveryLot > 0)

- Добавил сборку сессии по достижении совокупного профита, плавающего и закрытого - и, соответственно, элементы контроля на панели.

Кнопка "Trace" включает и выключает слежение. При выключенном слежении можно редактировать цель и при включении она подхватится.

По достижении цели все ордера закроются, цикл начнется заново.

В окошке под целью отслеживается текущий профит. Кнопка Reset  сбрасывает прогресс сессии, не закрывая ордера.

- Добавил кнопки закрытия всех ордеров в прибыли и закрытия в ноль. "В ноль" закроет все открытые ордера в прибыли и те ордера в просадке, совокупный минус которых меньше плавающего профита.

Обе кнопки добавлены для покупок, продаж и полного набора.

- При закрытии полной совокупности сделок по Buy, по Sell, или всех вместе, используется CloseBy, если количество сделок больше трех. К сожалению, закрытие частичных сборок по CloseBy пока не реализовано.

- Традиционный уже шильдик tlap

1.5

У меня было немного усложненное условие входа по ТЕМА, которое почему-то не всегда отрабатывало. Возможно, значение на текущем баре не гарантировано.

Я проверял, что на текущем баре одна тема выше другой, и (на предыдущем ниже, или же на предыдущем равно и на втором ниже).

Упростил. Сравниваю последний завершенный бар и бар до него.

Еще добавил вывода в лог: если переключить логгирование на debug, он теперь пишет, когда какой индикатор подает какой сигнал на вход и на доливку. Потом пишет, какие сигнальные решения приняты по всей совокупности индикаторов (если, например, у нас два противоположных сигнала от разных индикаторов, оба игнорируются).

А потом, если какой-то фильтр отфильтровал сигнал - он это тоже записывает в лог, указывая, какой фильтр.

Поможет разбираться.

Также поменял логику входа по ТМА. Теперь используются свечи того же ТФ, на котором считается ТМА.

 

StupidoBTMIndicators.zip166 скач. SBTM-test-Ostap.Bender.zip147 скач.

StupidoBTM_v.1.2.ex455 скач.

StupidoBTM_v.1.4.ex433 скач.

 

StupidoBTM_v.1.5.ex479 скач.

 

1.7

Поправил логику снятия/коррекции индивидуальных стопов

StupidoBTM_v.1.7.ex428 скач.

 

1.8

Добавлена логика закрытия всех совокупностей по CloseBy

StupidoBTM_v.1.8.ex422 скач.

 

1.9

Добавлен флаг - применять ли фильтры до принятия решения о закрытии противоположного направления, или после. 

В любом случае, фильтры будут применяться до принятия решения об открытии.

Значение по умолчанию сохраняет поведение предыдущих версий.

StupidoBTM_v.1.9.ex488 скач.

Изменено 6 декабря, 2020 пользователем Rigal

#2
6 минут назад, Rigal сказал:

Я просто сохраняю кусками. Там много писать, надо все индикаторы собрать-упаковать-описать... 

А с этими интернетами шутки плохи - у меня уже пару раз километровые посты прокакивались безбожно.

Первая строка поста текстовая или пустая - и содержимое набираемого поста (даже с цитатами) можно периодически копировать и сохранять в текстовом файле.

Набирать большие посты лучше в блокноте с сохранением набранного - и потом переносить в редактор постов.  Доразметить набранное потом несложно.

Если набираемый пост в редакторе слетел, надо без обновления вкладки попробовать войти в редактор - есть шанс на автовосстановление всего или части набранного.

При длительном наборе объемных постов никакая степень паранойи чрезмерной не будет! |da|:)

Автор#3
6 минут назад, Старик сказал:

Первая строка поста текстовая или пустая - и содержимое набираемого поста (даже с цитатами) можно периодически копировать и сохранять в текстовом файле.

Набирать большие посты лучше в блокноте с сохранением набранного - и потом переносить в редактор постов.  Доразметить набранное потом несложно.

Если набираемый пост в редакторе слетел, надо без обновления вкладки попробовать войти в редактор - есть шанс на автовосстановление всего или части набранного.

При длительном наборе объемных постов никакая степень паранойи чрезмерной не будет! |da|:)

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

Пока полет нормальный. Теперь пойдут архивы и примеры тестов

#5
11 минут назад, Rigal сказал:

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

Пока полет нормальный. Теперь пойдут архивы и примеры тестов

:) скриншоты я в блокнотик сохраняю прямыми ссылками типа https://fxpics.ru/images/2020/05/30/101079128_254107475833525_1418081274949533696_n.jpg_nc_cat108_nc_sid825194_nc_ocAQnbPZTJTi12dKzinImm_zyRbhOo_Ea9-nYW4EmmK-oqWV9lnOb2tglPMoISVbYyAQ4_nc_htscontent.fhrk2-1.jpg :grls:

 

Ладно, то мелочи...  Успехов!

 

-----------

 

Парни, именуем файлы тестов и архивов тестов внятно -- начиная с полного наименования бота/версии и валютной пары теста!

Если это огромный проект, то и жопа с от балды названными сетами/тестами тоже будет гигантская!!

Изменено 31 мая, 2020 пользователем Старик

#6
36 минут назад, Старик сказал:

Парни, именуем файлы тестов и архивов тестов внятно -- начиная с полного наименования бота/версии и валютной пары теста!

Если это огромный проект, то и жопа с от балды названными сетами/тестами тоже будет гигантская!!

Хорошо. Это просто пробный с диапазонами для заинтересовавшихся. Это никак не для торгов. 

Автор#7

@Semenov, присоединяйся к обсуждению

Автор#8

Поймал баг в реализации логики индикатора ТЕМА, поправил, версия 1.2 в шапке

#9
В 31.05.2020 в 15:41, Rigal сказал:

Пример почти скальпингового сета от @ostapbender -

А вот пример совсем другого подхода со стопами по обратному сигналу (MaxLossToCloseOnOppositeSignalPips=10000)

В 31.05.2020 в 15:41, Rigal сказал:

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

Спойлер

 

S_BB-M15--F_TMA-H4_example.png.fcf9dbbe6f646a7dfb77cc9e8ed593ca.png

 

Настройки и отчет во вложении. Это тоже не готовый сет, это пример работы советника.

 

Проект не простой, но для тех кто следит за развитием линейки Stupido не должно возникнуть сложностей. 

Надо пробовать. Я думаю, что у каждого может возникнуть свое видение использования этого бота и из разных подходов может родиться куча сетов с разными стратегиями.

sbtm-example.zip57 скач.

Изменено 2 июня, 2020 пользователем Semenov

#10

Обновил предыдущий пост. Добавил сет и отчет по нему. 

#11

Как-то не много желающих поработать над ботом. 

 

На досуге прогнал выложенный ранее сет по 28 парам, потом немного изменил и прогнал второй по 28 парам.

Всё это забросил в QuantumAnalyzer, выбрал лучшие пары и получилась корзинка с  Return/DD ration = 10.04 за 5 лет.

И это без оптимизации и практически без подбора параметров бота. 

Неужели не интересно?

 

Подробности приложил.

ЗЫ. Поскольку в сете используется стоп по обратному сигналу, то QA не сильно врет, а может и почти не врет.

Portfolio.pdf93 скач.

Автор#12

Новая версия добавлена в шапку. Изменения задокументированы.

#13
6 часов назад, Semenov сказал:

Как-то не много желающих поработать над ботом. 

 

На досуге прогнал выложенный ранее сет по 28 парам, потом немного изменил и прогнал второй по 28 парам.

Всё это забросил в QuantumAnalyzer, выбрал лучшие пары и получилась корзинка с  Return/DD ration = 10.04 за 5 лет.

И это без оптимизации и практически без подбора параметров бота. 

Неужели не интересно?

 

Подробности приложил.

ЗЫ. Поскольку в сете используется стоп по обратному сигналу, то QA не сильно врет, а может и почти не врет.

Бот реально сложный...

Не так много (скорее, очень мало) людей глубоко понимают индикаторы + понимают мартины + умеют по взрослому оптить/тестить...

И при этом еще и имеют привычку бескорыстно делиться наработанным...

У сложных ботов сложные судьбы...

 

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

А то 5.5 мгб ПДФ анализ есть, а использованных для его получения сетов нет...

В таком боте каждый пример сета людям для обучения/освоения бота в благо.

#14
9 часов назад, Rigal сказал:

Новая версия добавлена в шапку. Изменения задокументированы.

Привет.

Прошу поясни КАК работает нововведение: " .... Кнопка "Trace" включает и выключает слежение. При выключенном слежении можно редактировать цель и при включении она подхватится."

 

Правильно ли я понимаю что теперь реализован механизм выставления ТП (цели) вручную?

Автор#15
5 минут назад, DENYA сказал:

Привет.

Прошу поясни КАК работает нововведение: " .... Кнопка "Trace" включает и выключает слежение. При выключенном слежении можно редактировать цель и при включении она подхватится."

 

Правильно ли я понимаю что теперь реализован механизм выставления ТП (цели) вручную?

Нет, @DENYA

Как я написал, это сборка цели по совокупности открытого и закрытого профита.

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

Идея такая: мы задаем ему цель по паре в деньгах, по достижении которой мы хотим выйти из рынка.

Цель, как я уже писал, можно редактировать на лету.

 

Функция удобна тем, что:

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

Все расчеты ведутся строго в пределах символа и маджика.

Автор#16

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

Я, к сожалению, не могу придумать пока элегантного решения, которое позволило бы торговать множество пар с одного графика без потери возможности управления каждой парой в отдельности.

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

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

Изменено 6 июля, 2020 пользователем Rigal

#17
20 минут назад, Rigal сказал:

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

@Rigal, извините за вопрос, я на тему подписался, но времени так и не нашел протестировать (сезон - работаю). Скажите, а автоторговля всегда будет отключаться , или всё же есть варианты чтобы после закрытия работа советника заново начиналась сама автоматически?

Автор#18
8 минут назад, vxzone сказал:

@Rigal, извините за вопрос, я на тему подписался, но времени так и не нашел протестировать (сезон - работаю). Скажите, а автоторговля всегда будет отключаться , или всё же есть варианты чтобы после закрытия работа советника заново начиналась сама автоматически?

Вы можете не устанавливать цель - торговля не будет прерываться

#19
14 часов назад, Старик сказал:

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

А то 5.5 мгб ПДФ анализ есть, а использованных для его получения сетов нет...

В таком боте каждый пример сета людям для обучения/освоения бота в благо.

Пример я выложил и его производная для обучения/освоения или развития топика уже не имеет значения - идея одна и та-же. Не думаю, что измененный с 2 на 3 BB Deviation - это прорыв и новое знание.

Более того, хотелось бы увидеть другие варианты использования бота. На примере сетов, выложенных мной и ostapbender можно считать, что подходов может быть много.

 

Бот сложный и тяжело тестируемый. Без совместной работы над ботом, сетами, корзинами не обойтись. 

 

Нужно сообщество, нужно тестировать бота в тестере/на демо, нужно искать баги и предлагать усовершенствования. Когда есть инструмент, в котором мы уверены и который можем уверенно применять, тогда и сеты придут.

Изменено 6 июля, 2020 пользователем Semenov

Автор#20

Огромное спасибо комраду @Semenov за внимание к этому, пусть и непростому, но чрезвычайно многообещающему в качестве корзиночника по множеству пар, боту.

Выкладываю версию 1.5, внес правки с учетом замечаний и добавил инструментарий, который позволит лучше понимать, что бот делает под капотом сигнальной системы.

#21

Прогнал часть пар через тикстори, 2018 год, М1, стартовый банк 10к, сэт на евро доллар от @Semenov. Цель прогона аналогично: как ведут себя пары с этим сэтом и куда двигаться в опте этих пар.

Спойлер

 

34343434444444444.thumb.jpg.12784030ca72057ad8c14fd806d54e83.jpg

 

1.thumb.jpg.d0aae443446c6184bd3d80f85cb0a18a.jpg

 

2.thumb.jpg.975cf4aa24df9d442360f09fc879eb5a.jpg

 

3.thumb.jpg.0771ee69b56766160acf96b85ae305a8.jpg

 

4.thumb.jpg.adf00b5efb2bbbfa838c83f2ae05dda1.jpg

 

5.thumb.jpg.6ee8271a893a4bcbd411d2bc2caf32aa.jpg

 

 

P.s. Перепрогонял доллар фрк с таким же сэтом, начальный банк поднял до 25000. Оказалось, что просадка по этой паре доходила до ~9000. Поэтому при 10000 банка слив произошел.

Изменено 18 июля, 2020 пользователем BotPro

#22

@BotPro Если счет теста 5-ти значный, то (задаваемые в тестере) спрэды в тестах должны быть в 10 раз больше.

В бездолларовых кроссах умножить на 10 и потом еще на 3 - то есть в 30 раз.

Ваши тесты с фиксированным спрэдом 1-2 пункта 5-тизнак (при спрэдах на центах от 15 до 70 пунктов) дивная сказка, не имеющая никакого отношения к реальности.

Изменено 19 июля, 2020 пользователем Старик

#23

Решил протестить со стопом, он постоянно двигается за ценой, то есть не фиксируется по ордерам. Так и должно быть? 

Автор#24
В 26.09.2020 в 01:17, lekashkov сказал:

Решил протестить со стопом, он постоянно двигается за ценой, то есть не фиксируется по ордерам. Так и должно быть? 

Я не совсем понял эту фразу.

Стоп ставится совокупности ордеров, если я ничего не путаю

#25
В 14.10.2020 в 00:00, Rigal сказал:

Я не совсем понял эту фразу.

Стоп ставится совокупности ордеров, если я ничего не путаю

Стоп двигается вместе с ценой на расстоянии заданном в параметрах StopLoss. То есть цена не приблизится к стопу никогда, они ходят параллельно.

Страница 1 из 2

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

Перейти к списку тем
Форум · 2.0.20260627.0025