Блог им. 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

С уважением
★3
Ничего не понятно, но очень интересно.
avatar

Евгений Т.

Дополнять буду уже здесь.

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

С уважением
avatar

Мальчик Buybuy

Мда...
Судя по отклику, интеллектуальный конкурс — это не в чужом дерьме копаться
avatar

Mike Dewar

Mike Dewar, Я пас, т.к. нужно переписывать под TSlab + тесты без комиссий и проскальзывания.

Кроме того, условия конкурса ничего не говорят про «стратегию», в которой будут вбиты даты переворота по зигзагу, который натянули на все известные данные. А уж сколько вариантов есть чтобы это спрятать…
avatar

Eugene Logunov

Eugene Logunov, уважаемый

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

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

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

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

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

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

ОГРАНИЧЕНИЯ ПО КЛАССУ ТС:без заглядываний в будущее
Дядя Ваня СпекулянтЪ, А проверять вы это как будете? Скажем, если «правильную» последовательность решений спрятать в здоровенный LFSR?

Без OOS тестирования скорее всего победит тот, кто хорошо спрячет заглядывание в будущее, либо сделает больше всего экспериментов (больше шансов подогнать стратегию под заданный критерий).
avatar

Eugene Logunov

Eugene Logunov, так

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

С уважением
Мальчик Buybuy, 
OOS тестирование — это что это?
OOS = out-of-sample. Тестирование на данных, которые стратегия не видела.
Подгонка на объеме 300 тыс — 1 млн отсчетов — это еще постараться надо
Если не ограничивать кол-во констант в коде — не так уж и сложно :)
avatar

Eugene Logunov

Eugene Logunov, ясно

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

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

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

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

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

ch5oh

ch5oh, Антон!

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

С уважением

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

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


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

 

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

avatar

ch5oh

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

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

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

ch5oh

ch5oh, все равно не понимаю

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

С уважением

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

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

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

 

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

avatar

ch5oh

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

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

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

ch5oh

ch5oh, 

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

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

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

Это поместится на спичечном коробке?)
Дядя Ваня СпекулянтЪ, уточните пожалуйста термин «робастная». Я поначалу спутал его с термином «рабочая» она же «прибыльная».
avatar

ch5oh

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

ch5oh, Нет, о процитированной системе я вообще не в курсе. Это был просто как пример системы, как таковой.
Eugene Logunov, так я писал

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

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

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

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

Не?

С уважением
Мальчик Buybuy, 
А разве нельзя наложить ограничение на количество используемых в программе констант и переменных?
Мне больше нравится идея с OOS.
Вот только его инициализация займет минимум несколько сотен строк текста и будет видна невооруженным глазом.
Возможно, чтобы обойти большинство честных участников хватит приближения динамики цены за 2018 год рядом Фурье с сотней коэффициентов (5 строк кода). Если появится кто-то шибко умный — добавить до 1000 коэффициентов.
avatar

Eugene Logunov

Eugene Logunov, Ок

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

С уважением
Мальчик Buybuy, 
1. Как корректно в данном случае реализовать OOS?
Например: разрабатываем на данных с 2019-01-01 по 2019-08-31, далее смотрим результат стратегии с 2019-09-01 по 2019-12-31 и по нему определяем победителя. Участники должны опубликовать код своей стратегии не позднее 2019-08-31.
avatar

Eugene Logunov

Eugene Logunov, это разумно

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

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

ch5oh

ch5oh, это понятно

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

С уважением
Мальчик Buybuy, Вопрос тут в соотношении между кол-вом усилий, риском и потенциальной прибылью. Если по условиям конкурса не требовать запускать робота на реальных деньгах, а определять результаты по результатом тестов (пусть даже OOS) — рисков никаких, помимо репутационных :D Если за участие не требовать никаких взносов — то конкурс будет интересен всем, чьи затраты времени окупаются в случае победы.

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

Если публиковать решения и результаты стратегии каждый день в течение 4 месяцев — тогда да, сложно :)
avatar

Eugene Logunov

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

ch5oh

Eugene Logunov, или месяца все же достаточно?

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

С уважением
Мальчик Buybuy, Решение за тем, кто возьмется всё организовывать. Мне больше нравится вариант с OOS длительностью 4 месяца, чем OOS длительностью 1 месяц.
avatar

Eugene Logunov

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

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

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

wrmngr

wrmngr, плохо

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

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

wrmngr

Чем хуже, тем лучше?? Прикольный вариант, его часто, кстати, юзают, просто  не все осознают…
avatar

Дмитрий Ш

Может уже все сбросимся, и начнем коллективным разумом тут торговать.

avatar

Михаил Prozz

Михаил Prozz, Ок

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

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

ch5oh

солью любой депозит за пять дней
avatar

Сергей Кружаев

Я понял! Все просто!

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

С уважением
avatar

Мальчик Buybuy

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

GoodBargains

GoodBargains, так я это и предлагаю

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

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

ves2010

ves2010, гмммм

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

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

SergeyJu

SergeyJu, 
Прикольнее создать систему, которая колеблется максимально близко к стартовой сумме.
По идее, из такой системы можно запросто построить зарабатывающую. Система в минусе — торгуем в соответствии с её сигналами (т.к. она будет пытаться заработать); система в плюсе — торгуем противоположно её сигналам (т.к. она будет пытаться слить).
avatar

Eugene Logunov

Eugene Logunov, попробуйте

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

С уважением
SergeyJu, ну как бы если система торгуется около нуля, то мартингейл выведет ее в профит легко
avatar

ves2010

SergeyJu, эх, какой же я косноязычный

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

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

tashik

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

tashik

tashik, для мобильного файерфокса есть блокировщики типа uBlock. Для хрома аналогичные должны иметься.
avatar

ch5oh

Мечел пирамидить на плечи норм)
avatar

McDuck

Ошибка: Ваш рейтин слишком низкий, вы не можете отправить инбокс. Минимально необходимый рейтинг: 50



avatar

имя фамилия

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

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

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

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

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

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

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

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

Итог — два участника?
avatar

Eugene Logunov

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

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

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

С уважением
Мальчик Buybuy, 
сорри — а где второй то?
Как я понял, всего два человека что-то представили:
— kachanov, опубликовавший пост с идеей алгоритма;
— «имя фамилия», со своим графиком в комментах выше.
avatar

Eugene Logunov

Eugene Logunov, понял

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

С уважением
ну так, на вскидку, без данных: на каждом закрытие дневной свечи полностью переворачиваем позицию. 
выхлоп: на тренде месим в ноль, на пиле сливаем (если не попадаем в резонанс).
пс: вообще в идеале переворачиваться надо не по времени, а по изменению цены актива, шаг=СКО.
ппс:… «тяжёлые хвосты» должны как-то влиять на размеры переворота (в %).
avatar

bozon

bozon,... 
шаг=ma*ско*sqrt(1+cov-0,25*a^2+b)
ma — скользящая средняя;
ско — среднее квадратическое отклонение логарифма ценовых приращений;
cov — ковариация;
а — «кривизна»;
b — «дрейф».
размер «окна» исторических данных везде одинаковый, «кривизну» и «дрейф» в принципе можно подобрать методом научного тыка 
avatar

bozon

Вопрос: требование реверсивности — принципиальное? Может ли система открываться в противоположную сторону — но не сразу, не тогда, когда закрывается предыдущая позиция? То есть если лонг-шорт-лонг-шорт будет соблюдено, но переворота двойным объемом не будет  при этом?
avatar

tashik

tashik, обязательное

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

С уважением

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
UPDONW