Pull to refresh

Comments 35

Я прочитал авторитетную книгу

Подскажите пожалуйста, что за книга? Тоже пишу торговых роботов, которые «торгуют задним числом». Я читал Элдера и Швагера, пока-что, все стратегии основываются на них. Результат одной из стратегий (тестировал на 5-ти годах, дневные цены) на скрине. Первое число — сколько заработано денег. Покупается и продается всегда одна акция. image
Джек Швагер, «Технический анализ». У Швагера, да и у многих других, скромно упомянуты форвардные тесты (иначе говоря, вневыборочное или слепое тестирование, blind testing). Вы подвергали вашу стратегию форвардным тестам? Успешно? Если да, тогда, конечно, есть повод для оптимизма…
По поводу форвардного теста — затрудняюсь ответить однозначно, попробую объяснить.

Я вообще не использую «статичные» параметры для стратегии. Все параметры рассчитываются динамически, в момент, когда я спрашиваю свою стратегию — «могу я купить/продать акцию компании TICKERNAME в этот день?»

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

Возможно, конечно, я чего-то не понимаю и делаю все не правильно =)

Не, не, не, вы очень правильно всё не понимаете, у меня тоже с этого начиналось и это хороший путь, но велик соблазн оставить всё как есть, как-бы глупо оно не казалось.
Дело в том, что рынок, не есть какой-то стационарный физический процесс параметры которого плавно плавают. Там всё меняется достаточно резво, и если вы каждый раз делаете подгонку с ограниченным горизонтом, то в её результатах отразится «состояние рынка» и ваша ТС какой-бы кривой она не была, не разобьётся о новые «события» а попытается утилизировать их…
… другое дело, что временной лаг, и способы его снижения начинают выходить на сцену, и с сущностью происходящих на бирже процессов всё равно придётся разбираться
Спасибо за ответ. На счет временного лага и времени вообще — это действительно проблема. Там, где я живу, вообще нет ни какого интернета, кроме 4G. Ни о какой внутридневной торговле, на мой взгляд, с таким доступом и речи быть не может. Именно по этому я пишу все стратегии только для среднесрочной торговли, когда сделка по одной компании не может пройти чаще, чем раз в день.
Должен признать, только что нашел ошибку в стратегии, из за которой результаты торговли были слишком хорошими. После исправления общий доход по всем компаниям упал на 20%.

Вот уж ни когда бы не подумал, что наткнусь на такую ошибку… Пока была — радовался, исправил — грустно =) image
Её сложно назвать авторитетной. Почитайте E.P.Chan-а, это всё же ближе к реальности, чем технический анализ.
Интересный материал. Я тоже занимаюсь торговыми роботами, но успех пока не очень большой.
Я тоже занимался роботами. Но не пробовал там применить Adaboost. Может быть очень перспективно. Кто-нибудь здесь применял adaboost к торговым роботам?
Не слышал о AdaBoost в алготрейдинге. Опишите подробней предполагаемую реализацию… Что есть объект? Робот с его параметрами? По какому критерию классифицировать объекты..?
Adaboost применяется в computer vision для детектирования лиц. В интернете полно статей на эту тему, если не найдете сами в гугле — могу кинуть ссылку. Там есть такое интересное понятие — weak classifier. Об объектах — там нет ограничений. Это скорее надстройка к существующим алгоритмам, чтобы увеличить их точность
Я читал об этом алгоритме. Вопрос — как именно вы хотите его применить к алготрейдингу… Классифицировать кортежи параметров по критерию доходности, например?
1 определяете множество извлекаемых параметров
2 определяете множество weak classifier ов, которые основаны на этих параметрах
Пример: разница moving average и курса больше 5? Yes no
3 по алгоритму adaboost ищете множество оптимальных weak classifier ов, причем у каждого будет свой вес
4 в результате получаете strong classifier выдающий сигнал к покупке
Логика понятна. В теории, оно, может и лучше, чем простое объединение неких индикаторов,
типа такого.

Сугубое IMHO: так как рынок зависит от великого множества факторов, которые не вывести из временного ряда цен, то попытка проводить классификацию, взяв ценовой ряд (ряды) как входные данные, вы будете постоянно сталкиваться с «ошибкой выжившего».

В фильме про бухгалтера Уго Фантоцци его босс, играя в казино, скомпоновал несколько weak classifiers — факторов, сопровождавших его удачу. В итоге подчиненному (Уго) пришлось стоять у кресла босса, держа руку под задницей начальника, и не переставая пить минералку…

На месте босса мог бы быть робот, использующий AdaBoost.
А вот если тот же алгоритм, но не от техники, а от данных с фундамента… теоретически, почему бы и нет?
я сам не пробовал Adaboost на торговых роботах, на тот момент я был с ним не знаком. это все нужно проверять. тут я вижу основной плюс в том, что можно автоматизировать выбор «существенных» weak classifiers, основываясь на истории. кроме того, adaboost не ограничивает выбор этих классификаторов, можно брать все, что угодно, включая прошедшие новости. это огромная работа, кто знает может и есть в этом смысл

не совсем понял, что значит «с фундамента». по сути этот adaboost сводится к обработке огромных объемов данных и извлечение каких-либо индикаторов, имеющих хотя бы слабую корреляцию с сигналами купить/продать
UFO just landed and posted this here
фундамент = фундаментальный анализ
т.е., взять, к примеру: цены на энергоносители, процентные ставки ЕЦБ — ФРС, количество заявок на пособие по безработице…

я предлагаю сместить акцент на такого рода информацию, как входные данные для AdaBoost и других алгоритмов data mining. Так как по одной цене цену не предсказать (IMHO)
я лично не делал фундаментальный анализ, поэтому поддержать разговор не могу. какие именно входные данные будут иметь реальный эффект — это надо реальных и успешных трейдеров спрашивать, или наблюдать за ними
Вы приложили определенные усилия… планировали написать что-то универсальное, API + GUI + коннектор к бирже для разработки, тестирования и онлайн-трейдинга?
Когда то у меня была похожая задача. В итоге написал собственный торговый терминал. Только этот терминал оказался не востребован…
Да, попытался сделать нечто универсальное. На самом деле больше приследовал цель самообучение, сделать продукт залить на гит, что было масштабируемо, понятно и работало.

В конце концов добился, что алгоритм не уходит в минус. НО в минус можно уйти с самого начала, когда например купил и курс пошел вниз… Хотя в долгосрочной перспективе, на растущем рынке все должно работать и приносить прибыль.

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

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

Возможно ли создать успешный в долгосрочной перспективе алгоритм торговли, использующий ТА — для меня, это вопрос веры. Вы, получается, «атеист». Я, скорее, «агностик». Хотя, ближе к «атеисту».
«В итоге написал собственный торговый терминал» я могу дать совет в плане маркетинга, если это нужно. наши программисты недооценивают себя, вполне возможно, что Вам не хватило самооценки для продвижения
Лестно прочитать :) Скорее, я не справился с объемом работы, для того, чтобы из разряда поделок для ограниченного круга пользователей перевести в продакшн, заинтересовать продуктом потенциальных клиентов, т.е., брокеров и ДЦ. На рынке трейдингового софта соотношение конкуренции и маржи не очень выгодное для разработчика, кмк.
А почему такие длинные периоды для тренировки? Год исторических данных? Не получатся слишком уж средние параметры, которые для текущей ситуации на рынке совсем не подходят? Не лучше ли тренировать на более коротких отрезках — пара недель-месяц или два?

Допустим в 2009 золото росло постоянно, если бы бот выставлял более высокие takeprofit, то в течении года удвоил бы как минимум средства. А сейчас такие параметры были бы уже опасными.
Ну, применительно к задаче — оптимизировать робота и получить 100500 прибыли, это один вопрос. В контексте топика, наверное, важнее другое: сильно ли скажется на результатах оптимизации длина интервала истории тестирования робота? Попробую проиллюстрировать…
Все в том же коде, я проводил бэктест робота на первых 30 днях 2017 года, XAUUSD.
Оптимизация 3-х параметров 4-я методами дала следующие результаты:
ГА 88.50
град. спуск 75.57
Монте-Карло 78.34
«морской бой» 64.50

Снова лидирует «генетический алгоритм».
Можно посмотреть, как изменится график (поверхность) ЦФ для 2-х параметрической оптимизации робота… Но, по-хорошему, тогда уж стоит экстраполировать мои тесты алгоритмов оптимизации не только на разные продолжительности истории для бэктеста робота, но и на разные комбинации параметров. К примеру, зависимость ЦФ от параметров TakeProfit и StopLoss заметно отличается от зависимости ЦФ от периодов скользящих средних.

Да и одним торговым алгоритмом ограничиваться не стоит…

Короче говоря, я хотел взять какой-то показательный пример. Всего не охватить. Допустим, конкретно для торговли, не для ответа на вопрос — «какой алгоритм параметрической оптимизации торгового робота имеет лучшую сходимость», интервал в один год, это много.
Но, из того, что я посчитал, тенденция сохраняется — ГА пока лидирует
UFO just landed and posted this here
omnichanel вы много написали, кмк, в саркастическом ключе.

Ваз задело определение фундаментальный, применительно к анализу? Вроде как я Д'Артаньян а моя аудитория — фраера?

Не было у меня такого посыла. Пожалуйста, оставьте свой агрессивный тон (или мне показалось?)

Все (от домохозяйки до профессора математики), кто хоть раз влезал в болото спекуляций, в сомнительное предприятие под названием Forex, знают два устоявшихся, повсеместно используемых среди трейдеров, определения:

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


Грубо говоря, сторонник ТА сыпет фразами типа «повышенная волатильность пары в завесе облаков Ишимоку», на что сторонник ФА отвечает фразами «но недавнее высказывание Бена Бернарке… баррель нефти брент...»…

Надеюсь у вас не осталось сомнения в том, что я имел в виду под фундаментальным анализом? Я, скорее, сторонник «фундамента». Но это вопрос веры. В адрес адептов «техники» я ничего оскорбительного здесь не писал.
UFO just landed and posted this here
К вашему вопросу, как перевести макроэкономические показатели в данные, удобные для алгоритмов, подобных тем, что применяют в ТА, грубо говоря, в графики…

1) помимо временного ряда цен, к примеру, EURUSD, которым я, допустим, торгую, дополнить входные данные рядом котировок S&P 500, нефти (Brent, WTI) ..., котировками торгововзвешенных индексов доллара / евро… Все эти данные можно найти и скачать, при желании, без особого труда, в открытых источниках.

2) есть замечательная вещь — «экономический календарь». Публикуют ее многие брокеры. К примеру, вышли данные по количеству повторных заявок на пособие по безработице в США. В этой новости будут 3 числа: предыдущее значение, ожидаемое значение, новое значение показателя. Все эти значения легко распарсить из HTML-таблицы на сайте брокера. А если не жалко средств, можно подписаться на аналитику Reuters, CME — Globex… и получать эту информацию по запросу / по API, в удобном для анализа виде.

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

Интересно было пробежатся по тексту. Надо перечитать основательно

Считали как отразится комисию от сделок и НДФЛ на прибыль?

Sign up to leave a comment.

Articles