Блог им. Buybuy

НОВЫЙ КОНКУРС от 09.08.19 на разработку "худшей" торговой системы. Пока в пилотном (но не бесплатном) режиме

Добрый день, коллеги!

Дабы не забывать о трейдерской направленности ресурса, решил устроить конкурс на разработку ТС (торговой системы).

Поскольку «правильные» условия проведения такого конкурса пока неясны, запускаем пилотный проект сроком на 1 неделю.
В течение этого времени будем допиливать условия «взрослого» конкурса.
Ну, или если конкурс вообще не вызовет интереса — выкинем его в помойку и придумаем следующий.

Всем хорошо известно, что убыточная ТС — это совсем неплохо, т.к. она может быть в теории превращена в прибыльную, если все сделки делать наоборот (это неверно в общем случае, но пока такое допущение подойдет). Прибыльная система — это еще лучше. И только система, дающая стабильный результат в районе 0, наверное, неинтересна. Как говаривал С.Мавроди — «только 0 ни во что превратить нельзя».

Итак:

ДАНО: Минутки по EURUSD за весь 2018 г. Данные просьба брать с finam.ru для стандартизации.

ОГРАНИЧЕНИЯ ПО КЛАССУ ТС: Обычная плоская реверсивная
Обычная — без заглядываний в будущее и манипуляций внутри минутного бара
Плоская — без плечей и реинвестирования. Вся торговля идет одним лотом в $1,000,000
Реверсивная — система всегда в рынке (в покупке или в продаже). При смене позиции происходит переворот двойным объемом ($2,000,000)
УТОЧНЕНИЕ: Все открытия/закрытия происходят лимитными ордерами. Ордер начинает выполняться со следующей свечи. Без махинаций — если open(next bar) лучше, чем цена ордера, открытие происходит по цене ордера (ордер формируется «между» свечами).
ОГРАНИЧЕНИЕ ПО ПАМЯТИ: Не более 90 календарных дней. Т.е. не используем более старые данные для расчета новых

ЗАДАЧА: Найти ТС с минимальным уклонением от 0.
ТОЧНЫЙ КРИТЕРИЙ: max(abs(equity), t в 2018 г.) --> min
ФОРМАТ ПУБЛИКАЦИИ РЕЗУЛЬТАТА: Число в $, желательно меньше $1,000,000 ))) Например, $82,138

В пилотном режиме каждый участник пишет на любой платформе и публикует результат (число). Задача доказательства результата лежит на потенциальном победителе — он переносит стратегию в TSLab (можно путем импорта модуля на C#), но с открытым текстом. Результат проверяется.

Призовой фонд пилотника — 5 тыр. Если наберется 5 участников — перейдем во взрослый конкурс. Если не наберется — вручим приз победителю. Если участник окажется 1 — будем фильтровать трешевые результаты (больше $500,000 например).

ТЕПЕРЬ КАК Я ВИЖУ ВЗРОСЛЫЙ КОНКУРС:

ДАННЫЕ: EURUSD за  2017, 2018, 2019 гг (также минутки с finam.ru)
ЗАДАЧА: Найти оптимальную ТС по тем же критериям отдельно за 2017, 2018 и неполный 2019
ПРИЗЫ: По 10 тыр за 1-е место в 2017 и 2018, 5 тыр за 2019 (год неполный — подгонка проще)
ЕСЛИ ОДНА И ТА ЖЕ СИСТЕМА ПОБЕЖДАЕТ В 2-Х НОМИНАЦИЯХ (за 2 любые года) — ПРИЗ УДВАИВАЕТСЯ
ЕСЛИ ОДНА И ТА ЖЕ СИСТЕМА ПОБЕЖДАЕТ В 3-Х НОМИНАЦИЯХ (за все 3 года) — ПРИЗ УТРАИВАЕТСЯ
ВКРАТЦЕ: Хорошая робастная система имеет шанс заработать в конкурсе 75 тыр

По платформам и технике пока непонятно все — будем обсуждать в процессе пилотника. Пока так:
1. Конкурс длится 3 недели
2. Каждый пишет на чем хочет
3. Раз в неделю подводится промежуточный итого и выбираются 3 номинанта
4. Вопрос переписывания на TSLab и подтверждения результата лежит на самих номинантах
5. На следующей неделе не рассматриваются результаты хуже, чем у победителя предыдущей (как заезды в квалификации Ф1)
6. Любые предложения, замечания и дополнения приветствуются

ВСЕ. НА ЭТОМ КОНКУРСУ ОБЪЯВЛЕН СТАРТ. ИТОГИ ПИЛОТНИКА ПОДВЕДЕМ В ПТ, 16.08.19

С уважением
★2
75 комментариев
Ничего не понятно, но очень интересно.
avatar
Дополнять буду уже здесь.

1. Комиссии и проскальзывания отсутствуют.

С уважением
avatar
Мда...
Судя по отклику, интеллектуальный конкурс — это не в чужом дерьме копаться
avatar
Чем хуже, тем лучше?? Прикольный вариант, его часто, кстати, юзают, просто  не все осознают…
avatar
Eugene Logunov, уважаемый

Так предлагайте
Сам я не понимаю, как лучше это исполнить
Ну и не готов копаться в каждом отдельно взятом коде

Если зигзаг можно спрятать в коде — в чем тогда вообще смысл? На известных к моменту конкурса данных его ведь тоже можно построить?

С уважением
avatar
Eugene Logunov, Ок, компромисс

Для Вас лично делаем на R + Python. В этой связке я разберусь.
Зачем нужны комиссии и проскальзывания — не понимаю.

С уважением
avatar
Eugene Logunov, 

@будут вбиты даты переворота по зигзагу, который натянули на все известные данные@

ОГРАНИЧЕНИЯ ПО КЛАССУ ТС:без заглядываний в будущее
Eugene Logunov, так

OOS тестирование — это что это?
Подгонка на объеме 300 тыс — 1 млн отсчетов — это еще постараться надо

С уважением
avatar
Eugene Logunov, ясно

Но это применимо при условии, что такая «глобальная» оптимальная стратегия вообще существует.
Меня же и curve fitting полностью устраивает — хочется посмотреть на результат )))
Заглядывание в будущее не подходит, конечно (((

С уважением
avatar
Eugene Logunov, 
А проверять вы это как будете?

Если код будет засекречен, то проверить невозможно. Поэтому я и говорил что необходима текстовая логика системы чтобы любой желающий мог закодировать на своей платформе и проверить.
Дядя Ваня СпекулянтЪ, текстовая логика, к сожалению, почти также далека от итоговой реализации, как найденный на земле кусок кремния далек от интегральной микросхемы.
avatar
ch5oh, Антон!

Мы все же исходим из постулата, что все мошенники?
Или есть способы защититься от подглядывания в будущее?

С уважением

P.S. Поэтому мне и нравился больше вариант со сколь угодно сложной формулой на JS для копирования в Google Sheets
avatar

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


Причем дополнительным условием нужно сразу отсекать из призов все стратегии, которые покажут отклонение от нуля на уровне buy-and-hold или sell-and-hold.

 

PS И в данном случае согласен с Eugene Logunov: тестировать без учета комиссий затея бессмысленная. К сожалению, мы живем в мире где всем и каждому на ноги вешают гирьки, чтобы мы не так быстро прыгали.

avatar
ch5oh, с первым согласен

Со вторым — пока нет
Это задача скорее математическая, чем рыночная
Т.к. на рынке нет задачи не выиграть
И при чем здесь комиссии?

С уважением
avatar
Мальчик Buybuy, имея возможность совершать сделки без комиссий можно торговать в пределе на каждой свече, добиваясь в итоге требуемого поведения эквити (задачка об оптимальном управлении, помните?). Но стоит в эту страту добавить комиссию — данный тип формальных автоматов получит пробоину и пойдет ко дну.
avatar
ch5oh, все равно не понимаю

Я написал выше, что открытие/закрытие происходит лимитниками
Лимитник выставляется «между» свечами
Где простор для читерства?

С уважением

P.S. Комиссия убьет HTFшные стратегии. Этого бы не хотелось
avatar
ch5oh, 
 текстовая логика, к сожалению, почти также далека от итоговой реализации, как найденный на земле кусок кремния далек от интегральной микросхемы

Не понимаю. То есть, Вы не можете объяснить словами что написано в  коде торговой системы?

Дядя Ваня СпекулянтЪ, могу, но не буду. Точное воспроизведение словами кода ТС займет в 10 раз больше места, чем опубликовать готовый код на любом языке программирования высокого уровня. Поэтому эта деятельность теряет смысл.

 

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

avatar
ch5oh, когда-то, вроде еще не очень давно, была популярна поговорка что текст логики робастной системы должен умещаться на спичечном коробке ))
Дядя Ваня СпекулянтЪ, это уже мечта

У меня любимая робастная стратегия помещается на поллиста формата А4
Это только формулы, без логики

С уважением
avatar
Дядя Ваня СпекулянтЪ, не встречал такую поговорку ни разу. И считаю её мифом. Не, ну разве что если речь идет о ПЛИСе или флешке с исходниками. Тогда да.
avatar
ch5oh, 

считаю её мифом

Чисто для примера, не вдаваясь в подробности, первая попавшаяся ссылка на описание системы на смартлабе
https://smart-lab.ru/blog/506774.php

Для лонгов быстрая МА(5) должна пересечь медленную МА(20) снизу вверх и RSI должен находиться ниже уровня 50. 
Для шортов быстрая МА(5) должна пересечь медленную МА(20) сверху вниз и RSI должен находиться выше уровня 50. 
Стоп/Выход при обратном пересечении МА.

Это поместится на спичечном коробке?)
Дядя Ваня СпекулянтЪ, уточните пожалуйста термин «робастная». Я поначалу спутал его с термином «рабочая» она же «прибыльная».
avatar
ch5oh, 
Робастность  — это способность системы сохранять заданный запас устойчивости при вариациях ее параметров
https://yandex.ru/search/?text=%D1%80%D0%BE%D0%B1%D0%B0%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C&&lr=102557
Дядя Ваня СпекулянтЪ, мы о разном, теперь это очевидно. И я сильно сомневаюсь, что процитированная Вами система действительно «робастная».

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

С уважением.
avatar
ch5oh, Нет, о процитированной системе я вообще не в курсе. Это был просто как пример системы, как таковой.
Может уже все сбросимся, и начнем коллективным разумом тут торговать.

avatar
Михаил Prozz, Ок

Купил
Пока без стопа

С уважением
avatar
Михаил Prozz, а Вы умеете?
avatar
Eugene Logunov, ну не знаю, не знаю

Насчет подгонки ТС такого сорта на 1 млн. отсчетов — думаю, даже хорошая рабстанция с таким фокусом не справится. Причем с нативным кодом.

С уважением
avatar
Eugene Logunov, так я писал

Что проверяется не скомпилированный модуль, а текст ТС
Если не лень будет забивать пару-тройку тысяч констант в код — то Ок
Только видно это будет невооруженным глазом

С уважением
avatar
солью любой депозит за пять дней
avatar
Я понял! Все просто!

Проводить конкурс на разработку ТС нужно на форуме ФСБшников!
А расследования заказывать на Смарт-Лабе!

С уважением
avatar
давай лучше просто у кого круче за 10-20 лет тесты(эквити и параметры) по разным инструментам
avatar
GoodBargains, так я это и предлагаю

Подгон по старым данным
Просто критерий оптимизации — не максимальный рост эквити, а минимальный уход от нуля

С уважением
avatar
Прикол в том что заранее известно движение в 2018г поэтому написать сливаеющего бота проще простого
avatar
ves2010, гмммм

Без заглядывания в будущее?

С уважением
avatar
Eugene Logunov, так

А разве нельзя наложить ограничение на количество используемых в программе констант и переменных?

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

Не?

С уважением
avatar
Мальчик Buybuy, в теории достаточно одной константы, одного цикла и трех-четырех переменных)
avatar
wrmngr, плохо

Не подкован я в этом плане (((
Будем делать OOS
Пару креативных идей по борьбе с читерами я уже придумал )))

С уважением
avatar
Мальчик Buybuy, реально только OOS на будущих(реально) данных. Остальное будет читерство в той или иной степени, хотя формальные правила будут соблюдены
avatar
Eugene Logunov, Ок

1. Как корректно в данном случае реализовать OOS?
2. Сильно сомневаюсь на счет Фурье и 5 строк кода

С уважением
avatar
Eugene Logunov, это разумно

Будет ли кому-то интересен конкурс длиной 4 мес.?
Какой в таком случае должен быть приз?

С уважением
avatar
Мальчик Buybuy, призы Вы озвучили. Кто откликнется, тот откликнется. Если интереса не будет, это тоже ответ.
avatar
ch5oh, это понятно

Лучше сейчас узнать все мнения вместо того, чтобы начинать эти терки заново в след. Пт )))

С уважением
avatar
Eugene Logunov, масштабно. Квартал на проведение одного тура соревнований. =) Но формально это единственный действительно корректный способ делать честный OOS.
avatar
Eugene Logunov, или месяца все же достаточно?

33000+ минутных свечек

С уважением
avatar
Eugene Logunov, сорри — а в чем разница?

Для оптимальной ТС на выходе будет почти чистое СБ, т.е. уклонение за 4 мес будет всего в 2 раза больше, чем за 1
А у неоптимальной ТС и месяц ни шанса нет продержаться

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

Именно такую систему и требуется построить (см. выше)
И в ней есть конкретный смысл — правда, не прямой и не на ММВБ )))

С уважением
avatar
SergeyJu, в топике написано, что нужна система, которая не сливает и не зарабатывает — с результатом близким к 0 на любом временном окне. Это имхо прикольно
avatar
Eugene Logunov, попробуйте

Вангую — это плохо получится

С уважением
avatar
как я в отпуск в лес — так тут тепленькая пошла! вынуждена пропустить, но очень интересно дальнейшее развитие. Призовой фонд неважен. А без ТСЛаб никак? Я б откликнулась, но не отсюда (эх, даже показать никак — реклама кнопку сохранения закрывает, если фото вставлять)
avatar
tashik, для мобильного файерфокса есть блокировщики типа uBlock. Для хрома аналогичные должны иметься.
avatar
Мечел пирамидить на плечи норм)
avatar
Ошибка: Ваш рейтин слишком низкий, вы не можете отправить инбокс. Минимально необходимый рейтинг: 50



avatar
имя фамилия, уважаемый

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

С уважением
avatar
Мальчик Buybuy, 

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

Графиков столько программа сама по умолчанию рисует. Соот-но: синяя линия – «buy and hold», зеленая — профит от длинных позиций, красная – от коротких. Нас интересует суммарный результат, т.н. эквити — закрашенная область, зеленая – если мы в профите и красная если в убытке.

Чтобы выслать вам стратегию не хватило рейтинга, публиковать же в открытом доступе без согласования потенциального «владельца» не стал. Так понимаю, если вы напишите мне в ЛС, то я смогу ответить ссылкой на скачивание.

Стратегия собрана на «кубиках», поэтому для ее реализации и понимания, знания навыков программирования особо не требуется.

Для получения результата в долларах нужно конвертировать полученный результат. Стратегия показала за данный год результат 0.18% Прибыли. Соот-но следует умножить на стартовый капитал и поделить на 100.

avatar
Eugene Logunov, сорри — а где второй то?

Я что-то пропустил?

Есть желание поучаствовать от Tashik
Есть некие неформатные результаты от «имя фамилия» (3 графика, шкала результата не в долларах).
Сейчас попробуем понять, что это.
И, скорее всего, будем организовывать конкурс с OOS.

С уважением
avatar
Eugene Logunov, понял

Ну идея алгоритма — это не конкурсная заявка. Я, к примеру, понимаю, почему эта идея не работает, но не обязан доказывать это за свои деньги )))
«Имя фамилия» прислал непонятный неформатный результат. Запросил скрипт — будем поглядеть, что они имел в виду.

С уважением
avatar
ну так, на вскидку, без данных: на каждом закрытие дневной свечи полностью переворачиваем позицию. 
выхлоп: на тренде месим в ноль, на пиле сливаем (если не попадаем в резонанс).
пс: вообще в идеале переворачиваться надо не по времени, а по изменению цены актива, шаг=СКО.
ппс:… «тяжёлые хвосты» должны как-то влиять на размеры переворота (в %).
avatar
bozon,... 
шаг=ma*ско*sqrt(1+cov-0,25*a^2+b)
ma — скользящая средняя;
ско — среднее квадратическое отклонение логарифма ценовых приращений;
cov — ковариация;
а — «кривизна»;
b — «дрейф».
размер «окна» исторических данных везде одинаковый, «кривизну» и «дрейф» в принципе можно подобрать методом научного тыка 
avatar
Вопрос: требование реверсивности — принципиальное? Может ли система открываться в противоположную сторону — но не сразу, не тогда, когда закрывается предыдущая позиция? То есть если лонг-шорт-лонг-шорт будет соблюдено, но переворота двойным объемом не будет  при этом?
avatar
tashik, обязательное

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

С уважением
avatar

теги блога Мальчик Buybuy

....все тэги



UPDONW