Pull to refresh

Comments 30

Конечно, вы можете скачать программу и провести аналогичные исследования самостоятельно, все совершенно бесплатно. Контакты доступны в моем профиле.
UFO just landed and posted this here
Сейчас как раз работаю над этим! Пока не могу определиться с цветом для кнопки, в перспективе планирую добавить возможность перевода денег сразу на несколько счетов, на случай, если один из счетов переполнится)
Я — плохой человек, жадный. И я никогда не опубликовал бы реально работающую стратегию, алгоритм, советник. Я бы сам на них зарабатывал и никому бы не дал. Поэтому я крайне скептически отношусь к любым публикациям такого рода.

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

Выгодней программу продавать? Убедительней было бы, если процент с прибыли брали, полученной торгами через программу.

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

почему? риски нужно уметь оценивать и перекладывать на других.
Простой вопрос — сколько заработали? можно в процентах.

Сделайте пример анализа реальной котировки (желательно у которой высокий потенциал большого роста=))

Поскольку тестирование и оптимизация все равно производятся на исторических данных, то нет никакой гарантии что выбранные стратегии будут прибыльными в будущем. Ситуация в каждом выбранном инструменте для торговли с течением времени может существенно поменяться.
Ну думали ли вы производить выборку и оптимизацию не на исторических данных а на случайных?
Будущее предсказывать занятие бессмысленное и неблагодарное, гарантий никаких нет. Задача оптимизации не подогнать результаты под определенный исторический диапазон, а найти и подтвердить системную неэффективность на рынке. Для это и существует Walk Forward, чтобы устранять подгонку.
Оптимизировать на случайных данных тоже самое, что толочь воду в ступе. Вы подгоните, потом Walk Forward вам скажет, что это подгонка. В чем смысл?
Когда рынок меняется ваши стратегии так же должны меняться. Вместе с рынком должен перестраиваться ваш портфель торговых алгоритмов.
Я имел ввиду не одну случайную последовательность под которую оптимизируется система, а серию. К примеру, у нас есть стратегия с заданными параметрами мы пропускаем через нее 1000 случайных несвязанных последовательностей, если система прибыльна на всех последовательностях то такая система имеет полное право на жизнь.

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

Как стратегия может быть прибыльной на случайных данных?- это главный вопрос. Если исходить из поиска неэффективностей то наверное нет, не может. Но, к счастью, рынок тем и хорошо что он допускает разные подходы и взгляды.
Кто как только не торгует! Некоторые успешно торгуют и по фазам луны) Случайность штука хитрая, допускает, что можно всю жизнь успешно торговать и это все равно останется случайностью. Вспоминается опыт проводимый профессором Нолан в Беркли «Сила случайности».
А какие исторические данные вы используете? Я к тому что стратегия, прибыльная на тестовых данных, обычно убыточна в реальности, даже если потом ее же запустить на реальных данных, которые были во время реального запуска — и она вдруг останется прибыльной. тесты и реалии — сильно отличаются.

Если классические свечи (open,close,min,max,volume), обычно другие (я имею в виду level2 биржи конечно) не доступны либо очень дорогие, то во время торговли можете столкнуться с классикой форекс-бирж — проскальзывание и не полностью закрытые ордера, когда по графику рынок зашел ниже вашего стопа, но он почему то не сработал… а причина элементарна — графики bid/ask не обязательно параллельны, особенно в моменты резких движений (подавляющее количество стратегий добавляют фиксированную комиссию, равную ширине спреда), мало того, в зависимости от ваших объемов реальный спред может увеличиваться, как результат — не полностью закрытые позиции.

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

И это я еще молчу, какие алгоритмические ухищрения брокер может добавлять между вами и рынком.
1) Данные использую от проверенных провайдеров, например, IQFeed.
Тесты от реальности могут отличаться по множеству причин. В основном это различия в моделях тестирования и исполнения. Например, большинство тестировщиков могу заглядывать в будущее, что в реальности исключено. Или различия в последовательности генерации событий, отсутствие задержек, комиссий и т.д. Даже самое мизерное расхождение может сильно отразиться на результатах. В SoftAlgoTrade код торговой стратегии единый для всех режимов торговли и в принципе отсутствует возможность заглядывания в будущее, так как модель полностью событийная.

2) Для тестов использую тики, они дают более точные результаты. Тестирую обязательно с задержками, частичным исполнением, комиссией и проскальзыванием. См. Режимы исполнения заявок.

3) Если вы торгуете на форекс кухне, то чего вы от них ждете? Конечно, вас прокинут при первой удачной возможности. Если хотите торговать валютой используйте проверенных брокеров — IB, LMAX и т.д. А еще лучше торгуйте на фондовых и срочных рынках.
3)…

Заинтересовался LMAX — почитал сайт, которому доверяю (forexfactory), отзывы весьма смешанные про эту компанию как брокера: https://www.forexfactory.com/showthread.php?t=266866&page=92

Просто для инфы…

А еще лучше торгуйте на фондовых и срочных рынках.


А можете порекомендовать FOREX Spot, чтобы не «кухня» была, но не LMAX? )
Вряд ли я смогу вам дать толковый совет, так как сам форекс не торгую.
В основном работаю с фьючерсами на срочном рынке, там регулирование получше будет.
Ок.

Кухни наше все. Без нескольких десятков тысяч зеленых выйти на прямой доступ (с учетом стоимости и комиссий), либо на валютные фьючерсы в США затруднительно.

Забыли…

По поводы ваших статей хотел сказать, хорошо, мне нравится! Идея стохастического поиска с вырезанием подпространства кажется разумной. Walking Forward тоже вещь правильная.

Хотел подбросить идею, хотя продукт и так навороченный, как я понял, но идея стоит того. Как кто-то писал, несколько последовательностей надо подать стратегии. Я разовью эту идею. Это один из milestones, или говоря по-нашему, важных шагов построения стратегии. Монте-Карло симуляция исходов. Нужна для анализа исхода торговли при смещенных туда-сюда точках входа в рынок. Очень нужна, если сигналов генериться больше, чем сделок. И пока одна сделка в рынке открыта, другие сигналы не реализованы. Таким образом, вместо одной реализации последовательности сделок, мы смотрим на несколько (десятки-сотни).

У меня получались примерно такие картинки: https://drive.google.com/open?id=0B_Au3ANgcG7COFg5a3A5dXJRZ1E

И справа я моделирую плотность фактора восстановления. Получают медиану, квантили нужные. Делаю статистические выводы о состоятельности стратегии.

Это можно делать на валидационном отрезке, в моем случае он один и расположен в будущем.
Отличная идея!
Подобный подход должен дополнительно повысить качество разрабатываемых торговых стратегий. Нужно будет как-нибудь проверить.
Монте-Карло симуляция исходов помогает сделать выводы об ожидаемых показателях на реале.

Вывод может звучать примерно так:

с вероятностью 0.99 через 2 года система будет с прибылью > 0%;

с вероятностью 0.5 через 3 года система будет с прибылью > 50%, с профит-фактором >= 2.

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

Если не «монтекарлить» — я сам обычно не монтекарлю, когда подбираю параметры — то можно просто поделить на 2 прибыль и умножить на 2 просадку. Это будет нижняя оценка. И реал будет где-то между тестером и нижней оценкой. ИМХО…
хм, тики с объемами? учитываете проскальзывания и задержки… интересно, тестер часть торговой платформы или ваш собственный? учитывая необходимость проведения многомерной оптимизации, есть возможность его распараллеливания? или даже запуска на GPU?

p.s. стратегии, заглядывающие в будущее, это даже не смешно :)
Все программы платформы моя разработка) Особенность комплекса в единой архитектуре. После тестов код торговой стратегии не нужно дорабатывать под конкретный коннектор, можно сразу отправлять в торговлю. Сейчас присутствует коннектор к Московской бирже, скоро будет доступен коннектор к IB. В рамках одной стратегии можно одновременно торговать через несколько коннекторов и т.д.
Без многопоточности никак, все и так распараллено по максимуму. GPU не заточен под итеративные задачи, к сожалению, здесь традиционные CPU лучше справляются.
по моему мнению GPU тут более чем идеален, стратегия в виде opencl main метода, параметры которого — оптимизируемые параметры стратегии, для оптимизации просчитываем все возможные значения алгоритма стратегии, организуя последовательно во времени, полученные данные загружаем в видеокарту — и запускаем вычисление сотен или даже тысяч комбинаций параметров. Так как данные из памяти читаются последовательно (эмуляция торгов проходит почти наверняка линейно во времени) — то пока внутренние переменные и входные параметры стратеги помещаются в кешпамять карты (толи 16кб толи еще сколько, надо изучать подробнее) — вычисления будут утилизировать мощности видеокарты почти по максимумую.

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

В качестве целевой функции вы можете использовать любой из показателей — коэффициенты Шарпа и Сортино, матожидание, просадку, PnL и т.д.
Просто тот же Шарп не всегда информативен и во многом зависит от общего количества сделок.

И да, «25-50% от общего объема пространства вариантов» это, мягко говоря, очень много

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

Sign up to leave a comment.

Articles