Название советника: BasketTrader
Год выпуска: 2020
Версия: 2.25.1
Сайт продажи: некоммерческая разработка tlap.io
Валютные пары: множество, определяется структурой сетов (прилагаются 25 сетов на разные пары и стратегии)
Таймфрейм: не имеет значения, таймфрейм работы задается в индивидуальных сетах.
Рабочая группа:
Автор идеи и разработчик: @Rigal
Тестирование, оптимизация, идейное сопровождение и моральная поддержка: @valerii.badaev @wargod @japono4ka @egor8777
Я безмерно признателен всем участникам группы за их неоценимый вклад в эту продолжающуюся работу, равно как и всем участникам форума, принимающим активное участие в тестировании, оптимизации и отладке отдельных стратегий, которые опубликованы на текущий день.
Установка в терминал:
Распаковать приложенный архив в корневую папку терминала.
Архив содержит файл эксперта в папке MQL4/Experts и файлы настроек стратегий в папке MQL4/Files/BasketTrader
Запустить советник на графике, настроить желаемый риск, убедиться, что имя папки сетов "BasketTrader".
Откинуться на спинку кресла и погуглить, как у вашего брокера с выводом денег.
FAQ (ЧаВо):
Как убрать-добавить тот, или иной сет в корзинку?
Убирается просто: удалите соответствующий сет файл из папки MQL4/Files/BasketTrader и перезапустите советника.
ВНИМАНИЕ: открытые сделки этого сета перестанут сопровождаться полностью!
Добавить - по мере наборов новых сетов я буду выкладывать новые файлы, которые можно будет просто положить в эту папочку и перезапустить советника, сет автоматически подхватится, на экране отрисуется новая панель (если размер вашего экрана позволяет, у меня не все вмещаются)
Каков контракт наименования файлов в папке с сетами?
<ЗАРЕЗЕРВИРОВАННОЕ ИМЯ CТРАТЕГИИ>-<СИМВОЛ>-<ПРОИЗВОЛЬНЫЙ ИДЕНТИФИКАТОР СЕТА>.set
Все, что соответствует этому шаблону, советник попытается загрузить
Я наоптил новый клевый сет на стратегию ХХХ, могу я просто закинуть его в папку, поименовав как положено?
Да, но нет. Сет должен быть подготовлен к подгрузке в корзину. В нем обязательно зафиксировать все таймфреймы и допустимую просадку.
Я настоятельно рекомендую выложить сет в ветку, после чего мы его подхватим, верифицируем, подготовим к включению в корзину и выложим в набор.
Как задается максимальная просадка в сете?
Мы с командой пришли к общему мнению, что имеет смысл фиксировать стоп по сету на уровне 120% максимальной просадки в тесте с 2010-2012 года.
Именно этот лимит установлен во всех сетах в комплекте.
Все риски по сету рассчитываются исходя из этой просадки.
Где я могу ознакомиться с результатами тестирования тех сетов, которые присутствуют в текущей версии коржика, но отсутствуют в топике этой стратегии?
С недавних пор в архиве с каждой версии коржика поставляется ссылка на табличка Google Sheets. В ней можно глянуть всю информацию по интересующему вас сету. Результаты тестов выкладываются в ветке соответствующей стратегии.
Как работает система подсчета профита?
Каждый сет отрабатывает свои индивидуальные настройки, как будто вы разместили советник на отдельную вкладку. Вместе с этим, в рамках коржика ведется подсчет по конкретной валютной паре. Весь профит по закрытым ордерам и тем что в рынке суммируется. При достижении заданного вами уровня прибыли, все открытые ордера по текущей паре закрываются, счетчик сбрасывается и торговля начинается снова. Вы можете сделать сброс самостоятельно в любой момент, нажав клавишу reset на панели инструментов нужной валютной пары.
Поверх этого точно так же суммируется профит по всей корзине - здесь можно настроить цели в процентах, или деньгах с тралом по профиту. После закрытия по тралу все открытые сделки будут закрыты, сессия всей корзинки и сессии каждого символа будут сброшены и начнут накапливаться с начала.
Как в коржике выставить объем первого ордера, зависящего от объема текущего баланса и автоматически увеличивающегося с ростом депозита?
Если вы хотите выделить имеющимся сетам конкретный объем средств, выражающийся в % от депозита, то нужно сделать так: risk quantity type - Percen of balance (тип риска - процент от баланса); выставляете нужный % от баланса в поле risk quantity; параметр risk allocation metod (метод риска между стратегиями) выставляете как risk per strategy (риск на стратегию). Всё тоже самое, что вы делали раньше, только теперь удобнее и в автоматическом режиме.
У меня выставлен риск в 10% от депо на каждую стратегию отдельно. При поступлении сигнала сразу на 15 стратегий, сколько из них откроется?
Если ваш текущий депозит позволяет, то откроются сразу все 15, каждая своим лотом, согласно системе распределения рисков.
Если у меня текущий баланс 1000, размер риска указан в 10% от депо, а к коржику подключен сет с максимальной просадкой 160, то когда сет начнет работать?
В настройках коржика есть параметр Let sets exceeding risk model trade (включить сеты, которые не влезают в риск). В значении true у вас начнут торговать все сеты, оставленные в папочке Files/BasketTrader. Объем ордера в этом случае начнет расти с увеличением депозита, в зависимости от максимальной просадки каждого. В значении false такой сэт будет ожидать того момента, когда баланс станет 1600 и тогда он войдёт в рынок с лотом 0.01 при поступлении сигнала на вход.
Как мне увеличить размер допустимой просадки?
Трудно понять зачем вообще это делать. Каждый сет - часть оттестированной стратегии. Вдруг очень уж хочется - редактируйте через блокнот. Иначе утратятся значимые поля.
Что происходит с максимально допустимой просадкой при росте объема первого ордера?
На текущий момент она выставлена в 110% от исторической просадки в каждом сете. Просадка масштабируется по стартовому лоту. Более того, корж автоматически конвертирует лимиты в долларах в валюту депозита.
Описание и принцип работы:
Советник является конструктором, собирающим в себе множество индивидуально работающих стратегий разного типа.
Каждая стратегия поддерживает сборку отдельным советником, который может быть индивидуально настроен для работы на заданной паре и таймфрейме, протестирован в тестере стратегий и оптимизирован.
Полученные сеты оснащаются параметрами тестирования - такими, как максимальная допустимая просадка и рабочий таймфрейм - и сохраняются, наименованные в определенном формате, который позволяет советнику-корзине загрузить настройки и подключить сет в рабочий комплект.
Все без исключения стратегии поддерживают идентичный базовый набор функционала, такого, как планировщик времени, растягивание сетки (по сигналу и без), трал (индивидуальных сделок, или всей позиции, по свечкам, или простой трал), перевод в безубыток и так далее - и я с удовольствием прислушаюсь к вашим предложениям о том, чего, на ваш взгляд, может не хватать в базовом функционале.
Базовый функционал реализован один раз и идентично работает во всех стратегиях.
В каждой стратегии построена система сигналов и индивидуальная логика входов и выходов.
Корзинка дополняет функционал отдельных стратегий следующими важными функциями:
- Корзина торгует весь набор с одного графика в терминале. На старте она откроет все нужные ей графики, чтобы подгрузить недавнюю историю. Их можно закрыть, но лучше оставить. Эти графики могут также использоваться для установки других советников.
- Выбор риска. Поддерживаются несколько моделей распределения риска, в соответствии с максимальной зафиксированной исторической просадкой (и, соответственно, ограничением просадки по депозиту) в корзине. То есть, после того, как сеты финализированы и добавлены в корзину, распределением риска управляет сет корзины, централизованно. Поддерживается задание общего риска на всю корзину, либо риска на стратегию, либо риска на символ, а также несколько более сложных способов распределения риска. В процентах от депозита
- Централизованная сборка по цели сессии на символ. По достижении совокупным профитом по закрытым и плавающим сделкам определенной суммы, все сделки по символу будут закрыты, сессия будет обнулена и начата снова.
- Трал общего профита по корзине, совокупность закрытого и открытого профита
- Контроль конфликтов магиков в корзине - если два сета на одном символе содержат один и тот же магик, корзина оповестит вас об этом алертом, записью в журнале, и откажется загружать один из этих сетов.
-
Мониторинг состояния торгов на экране и управление этими торгами в реальном времени, можно потыкать кнопочки, чтобы
- отключить сет целиком
- запретить торги в заданном направлении
- задать лот явным образом, или вернуть управление советнику
- закрыть позицию по сету
- (В разработке) Контроль чувствительности портфеля к одному активу. Например, корзина будет позволять избежать одновременного входа множества стратегий в продажу по одной валюте
На текущий момент разработаны следующие стратегии:
Тестирующий советник этой стратегии выкладывался на форуме под кодовым названием Demons Run.
Стратегия торгует по тренду, на текущий момент нами финализированы 24 сета, из них 3 сета без сетки.
Сборка торгует на демо два месяца и на реале месяц.
- Qantum
Стратегия выкладывалась под одноименным названием. Один сет, пока не очень прижилась
- TIOImpulse
Оптимизация в процессе
Оптимизация в очереди
- Turtle
Ожидает
- Ultron
Не показала надежных результатов
- YMSArrows
Ожидает
- OClock
Несложная стратегия, основанная на повторяющихся паттернах рынка (примером является советник MonTag). Мы будем разрабатывать сеты по мере обнаружения закономерностей. На текущий момент одна в работе
- Tripler
Я работаю над переносом логики в оболочку стратегии
Внешний вид:
Описание настроек:
Настройки корзинки:
========= Strategy =========
Total risk percent - риск, в процентах от баланса
Risk allocation method - метод разделения риска между стратегиями
Max orders count per instrument (0 - no limit) - ограничение количества ордеров по инструменту
instrument session target, deposit currency - цель "сессии" по инструменту, в валюте депозита. По достижении этой цели все сделки по инструменту будут закрыты, счетчик сброшен в ноль и торговля продолжится.
Only symbols selected in market watch - подгружать сеты только для символов, выбранных в окне Market Watch. Если выбрано false - советник подгрузит все файлы, удовлетворяющие шаблону наименования и активирует в Market Watch недостающие символы
Symbol prefix, if any (e.g. ECN-) - префикс символа (например, если у вашего брокера EURUSD именуется ECN-EURUSD, укажите префикс "ECN-")
Symbol suffix, if any (e.g. .pro) - суффикс символа (например, если у вашего брокера EURUSD именуется EURUSDpro, укажите суффикс "pro")
== ProfitTrailing Settings ===
Profit trailing mode - режим трала профита, валюта депозита, или проценты от стартового депозита. Под стартовым депозитом понимается Equity на старте сессии.
Start trailing target - цель, в соответствии с выбором в предыдущем пункте
Max profit retracement - порция, на которую профит может откатиться после достижения цели, прежде, чем советник закроет все позиции. Множитель (доля). Скажем, 30% - это 0.3
Profit trailing step - шаг подтягивания трала профита. Скажем, ваша цель - 1000$ и откат 0.3. То есть, по достижении 1000$ советник начнет следить за профитом. Если профит опустится ниже 700$, он закроет все открытые сделки. Если будет расти больше тысячи - он будет подтягивать его указанными шагами. Скажем, при шаге 0.1, он переставит точку закрытия в 770$ в тот момент, когда общий профит достигнет 1100$
===== Trade Time Settings ====
Detect GMT automatically - определять настройки GMT автоматически
Broker GMT Offset - GMT смещение вашего брокера, если есть желание проставить настройки вручную
DST mode of your broker (or in TDS2) - контракт перехода вашего брокера на летнее время, если есть желание проставить настройки вручную
Folder with sets for strategies - папка в Files, в которой лежат сеты стратегий корзинки
Logging level - уровень логгирования
Общие настройки индивидуальной стратегии
StrategyTester Users Manual.pdf
Настройки новой библиотеки контроля времени в аттаче
Мониторинг:
Мониторинг в Роботесте
Советник версия 2.25.1, сеты/файлы для 2.25.1
Комплект:
Версия 1.2
Версия 1.3
Убрал алерт об отрицательном маджике
Поправил проблему первого старта, когда советник не взлетал в силу отсутствия глобальных настроек сессии
Версия 1.4
Добавлена принудительная загрузка истории (спасибо @the 7th Guest за кусок кода, который работает)
При первой загрузке он потратит заметное количество времени на старт. Повторные загрузки отрабатывают быстро
Советник будет переподгружать историю каждый час, со случайным разбросом по времени от символа к символу.
Если загрузка истории не удалась, он покажет алерт и запишет в журнале. Я бы не рекомендовал использование советника в этом случае - попытайтесь снять его и запустить снова.
Отдельным флажком помечена возможность загрузить чарт для символа, по которому провалилась загрузка.
Версия 2.0
В этой версии добавлена поддержка нескольких новых стратегий
Сеты на эти стратегии пока в работе
Изменена частота обработки сигналов: теперь советник делает 20 циклов в секунду, что должно обеспечить куда более точные входы (раньше он выполнял цикл в секунду)
Добавлено периодическое логгирование ключевых параметров производительности, включая время, которое занимает выполнение одного цикла по всем стратегиям.
Если советник не открывает сделок, то цикл занимает единицы миллисекунд.
Открытие сделок, понятно, удлинит до нескольких сотен, но среднее не должно сильно меняться - я бы ожидал не более 10мс в среднем. Буду мониторить на реале.
Стратегии перенесены на новую библиотеку задания времени - в комплекте прилагаются сеты, адаптированные под новые настройки.
Я переписал визуальное отображение: теперь символу отводится строка, под которой прячутся отдельные стратегии, их можно раскрывать:
Набор элементов управления не сильно поменялся. Кнопка с количеством стратегий позволяет перевести весь набор в режим "довести позицию и выйти из рынка) - то, что раньше делалось кликом по названию стратегии (и по-прежнему делается)
Если стратегии внутри символа частично переведены в режим выхода, кнопка станет оранжевой:
В противном случае она или зеленая (торгуем), или фонового цвета (выходим) - синхронно со стратегиями
Еще на панели символа можно изменить цель символа, включить/выключить слежение за целью (и закрытие по достижении), сбросить текущее состояние "сессии".
На индивидуальных панелях стратегии по-прежнему можно, сверху вниз:
- Переключить стратегию из режима "торгуем" в режим "выходим из рынка"
- Запретить/разрешить торговлю в заданном направлении
- Увидеть следующий лот в каждом направлении, поменять его вручную, вернуть управление лотом советнику
- Посмотреть сколько сделок открыто в заданном направлении и закрыть их все
- Увидеть, сколько всего лотов открыто в каждом направлении
- Увидеть, какова плавающая прибыль в каждом направлении
- Посмотреть совокупную плавающую прибыль и закрыть все по стратегии
- Статус
В архиве советник и сеты.
Версия 2.1
Добавлены стратегии для Кориандра (/laboratoriya-profitfx/24/sovetnik-strategija-korziny-koriandr/21715/)
Воодушевленный анализом Стаса @japono4ka (/laboratoriya-profitfx/24/sovetnik-strategija-korziny-koriandr/21715/?do=findComment&comment=468549) я добавил новый режим распределения риска. Не поленитесь, сходите и прочитайте результаты его анализа.
Идея такая: если у нас есть три сета по одной стратегии на одну пару, можно выделить им общую порцию риска, которая будет равнозначно распределена между такими сетами (обратно пропорционально их исторической просадке). Таким образом мы слегка диверсифицируем риски (за счет корреляции просадки между сетами не равной единице), не превышая максимальной просадки.
Приведу пример:
Скажем, у нас три сета кориандра на GBPUSD и мы хотим, чтобы их совместная просадка была не более 6%.
То есть, строго говоря, мы хотим дать 2% каждому сету.
Теперь можно выбрать вот этот пункт:
И заданный риск 6% будет распределен поровну между всеми сетами одинаковых стратегий в рамках одного символа.
Это также решает проблему сеточных сетов, которые могут с высокой вероятностью налететь на просадку на одном и том же тренде.
Маджики Кориандра распределены в диапазоне 82111-82113
В приложении версия и полный набор верифицированных сетов на сегодняшний день:
Версия 2.2
Поправлен баг в стратегии Devil, которая теперь использует обновленные цены при закрытии.
Для облегчения миграции, обновленная версия советника:
Обновленные сеты будут выкладываться по мере переопта, я позже соберу полную корзинку.
Версия 2.6
Поправил логгирование
Добавил версию на экран
Немного оптимизировал работу
Добавлена поддержка новых стратегий (Tripler, OClock)
Версия 2.8
- Добавлены стратегии InOut и другие
- Систематизированы сеты кориандра
- Добавлены все переопченные сеты девила на сегодняшний день (большинство из них еще не выкладывались в ветке)
- Добавлен реестр сетов (в архиве, PDF)
- Сеты разделены на две папки: те, что я включил в свой набор (Files/BasketTrader) и те, что я не стал включать - по разным причинам, большинство из них обсуждались в соответствующих ветках (Files/BasketTraderDiscarded)
- В верхней части панели отображается версия советника, подсвечивается красным, если советнику запрещено торговать
- Все недавние правки логгирования
- Все недавние усовершенствования логики закрытия, включающие исправленную проблему @ademen, когда брокер не сохраняет маджик при частичном закрытии и возвращает код неуспеха из операции CloseBy
- Добавлена цифровая подпись сетов: в сетах теперь можно менять только те параметры, которые не влияют на логику торговли. Это сделано, чтобы не было соблазна покрутить руками то, что было оттестировано и отстроено.
В архиве новая версия советника, оба набора сетов и реестр всех сетов со статистикой.
2.8.1
Как-то так получилось вчера, что несколько очень достойных сетов отфильтровались при упаковывании и не попали ни в архив, ни мне на VPS.
Я восполняю этот пробел - спасибо внимательным пользователям.
Я причесал немного реестр, упорядочил по имени файла и сверил с набором файлов в архиве - теперь все сходится.
Я выкладываю весь комплект, хотя сам советник не менялся.
2.8.2
Параметр Draw down limit, currency per min lot больше не включен в авторизуемый набор и может меняться в конечном сете
Предупреждение: сеты редактировать в блокноте! Сохранение сета из тестовой стратегии приведет к потере нескольких ключевых для сета полей!
В архиве, как обычно, полный комплект - сеты от предыдущей версии с этой версией работать не будут (поскольку изменилась сигнатура авторизации)
И немного опережая выход самой версии 2.9, реестр сетов с функциями распределения рисков, валидации сетов, расчета проектных просадок и доходности:
https://docs.google.com/spreadsheets/d/1lpIQUBO-r956_RLzkJigf9bgACsmq4O0huiKRXaBkmU/edit?usp=sharing
Документ нужно скопировать, вместе с комментариями.
После этого можно задать баланс счета, выбрать риски и способ их распределения, проверить, какие сеты вам не подходят по балансу, посмотреть, как меняется доходность и просадка в зависимости от выбранного риска и метода его распределения. Снимая, или добавляя галочку с соответствующего сета, вы убираете его из расчетного набора, или добавляете обратно.
По итогам можно привести папку Files/BasketTrader (или где у вас лежат сеты коржика в терминале) в соответствие с выбранным набором и задать коржу выбранные риски
Чего нет в 2.8.2, но уже есть в этом реестре:
2.13.1
Версия, в которой реализованы:
- новая логика выделения лота
- "безоткатный" режим ММ: лот не проседает при просадках
- опция задания риска в валюте - при использовании этой опции, риск остается статическим, не меняется с ростом депозита
- коэффициенты риска по типу стратегии
- конвертация стопа в деньгах в валюту депозита
- стратегия InOut2
- режим пропуска тиков в тестере (имеет смысл в стратегиях в соответствующих топиках)
- многочисленные оптимизации алгоритма
- автоматическое исключение из работы сетов, которые находятся в папке сетов, но "не втискиваются" в заданные риски. Эти сеты будут автоматически включены, как только начнут втискиваться с ростом баланса
- индивидуальные стратегии на экране теперь выстраиваются в несколько рядов, если в одном ряду места недостаточно
- профит по символу считается независимо от того, включена цель по символу и ее отслеживание, или нет
- стратегии поддерживают динамические цели
- в коммент ордера добавлен номер колена
- около 60 новых сетов, включая десятки сетов на дивергенцию, инаут2, триплер
В сборку вошли сеты от @Umberto и @Lorado
Реестр сетов доступен по ссылке https://docs.google.com/spreadsheets/d/1etlXLyWsBneHoT19YpDa8OpHCWLud9y2BnfjOBmSn7M/edit?usp=sharing - сохраняете себе копию и рассчитывайте свою конфигурацию
Версия советника 2.13.1 с принудительным закрытием
- по достижении лимита просадки
- по достижении цели в долларах
- по достижении цели в пунктах
Добавлена подгрузка стартового лота уже открытых сеток на перезапуске.
2.18
Новая версия с новыми стратегиями и новыми сетами.
Изменения:
- Инициализация LotManager стартовым лотом сетки - чтобы не менялся при перезапуске советника после изменений риска, или баланса
- Diver2
- Возможность запуска двух коржей в одном терминале
- Sheduler в тестере для пропуска дат - часть пакета тестов на устойчивость
- Принудительное закрытие сделок по достижению просадки и профита в пунктах
необходимо для брокеров с широким StopLevel, не позволяющим выставить стоп и тейк достаточно близко
Огорожено флажком, чтобы у всех остальных не включалось (избегать ненужных CloseBy ордеров)
- Ордера сетки открываются без тейков и стопов - после открытия они будут сведены воедино
В сборку также включены все последние изменения библиотек и десятки новых сетов.
Ссылка на реестр в корне архива.
2.21
Поправлен баг: советник мог закрыть открытую позицию по стопу при понижении риска.
Связано это было с тем, что он перепроверяет стоп на старте - и делал он это до того, как подхватывал лотность уже открытой сетки.
Выкладываю только файл советника, все сеты работают.
2.23
Новая сборка, включающая правки округленя лота (когда минимальный лот заметно крупнее шага изменения лота) и прочие важные и не очень правки, а также все последние сеты.
Ссылка на реестр, как обычно, в корне архива.
Версия поддерживает новую стратегию на диверах с фильтрацией по скользящим средним.
Также включены все тестеры стратегий свежей версии.
2.25
Поправлена проблема с лотностью и упорядочены скользящии средние в стратегии DivergenceMA
2.25.1
Версия для параноиков.
Эта версия не отправляет никакой статистики на сервер разработчика.
Можете переименовывать файл, как вам нравится.
Больше ничего не менялось.



