Доброй ночи, коллеги!
Представим себе в меру опытного и образованного трейдера.
Ну т.е. он уже поторговал, так что понимает, что результат его торговли чаще всего непредсказуем. И уже начитался книжек про рынок, которые обычно не окупают свои деньги и не дают гарантированных рецептов заработка.
Допустим также, что человек имеет высшее техническое образование, так что способен не только сложить 2 и 2, но и (возможно, с трудом) вспомнить, чему его учили в ВУЗе.
В таком случае этот человек (чистое IMHO) начнет исследовать возможность заработка на рынке систематически.
(на этом месте Клуб Любителей Чуйки и Секту Ручного Трейдинга убедительно прошу выпилиться по собственному желанию. Обещаю, специально для вас я опубликую отдельный пост).
Как мне кажется, план исследований может быть таким:
1. Решаем задачу получения профита при известном будущем (самое простое, чисто для тренировки).
В случае торговли по рынку (маркетными заявками) тут все предельно просто — нам достаточно знать знак приращения цены на будущем интервале (торговом периоде) и этого абсолютно достаточно.
В случае торговли лимитными ордерами (с маркапом или без) нам нужно знать нечто большее, так что даже знания знака и изменения цены на следующем баре нам абсолютно недостаточно, вернее, более обширное знание даст нам возможность получать доход в разы больший, нежели просто информация о следующем баре.
Допустим, мы решили этот (простой вроде бы, curve fitting и все дела) вопрос, так что можно двигаться дальше.
Дальше нас поджидает следующий вопрос.
2. Аппроксимация полученных значений идеального индикатора каким-то функционалом (все это при полном знании будущего).
Попробую перевести это на русский язык.
Вот мы знаем, что на следующем баре нужно покупать (см. п. 1). Но в нашей торговой системе за это отвечает какая-то функция (неважно, аналитическая или кусок программы), которая на основе предыдущих цен (+- объемы торгов, +- новости) говорит, покупать или продавать. Т.к. мы уже знаем идеальное решение (направление сделки при знании будущего), то мы хотим, чтобы наша функция в большинстве случаев давала правильный ответ.
Это задача аппроксимации, или регрессии, или сфера применения ИИ (это сейчас модно).
На самом деле задача аппроксимации ряда оптимальных значений индикатора рядами предыдущих приращений цен — это просто такая задача регрессии. Значительная часть ИИ — это тоже отчасти задача нелинейной регрессии.
На этом этапе основную проблему я вижу в том, что самый модный метод регрессии (МНК — метод наименьших квадратов) применительно к рыночным кейсам является наименее удачным. Видимо, великий Гаусс открыл его, смотря на звезды, а не на биржевые котировки. Есть и другие способы, но по своему кругу общения абсолютно уверен, что 99.9% трейдеров используют МНК и еще 0.1% минимакс.
Допустим, что и эту задачу мы решили. Наша система чаще всего попадает в оптимальный знак индикатора (при известном будущем). Тогда мы переходим к 3-му, самому сложному вопросу:
3. Задача продолжения системы/индикатора в будущее.
Напомню — мы уже умеем получать оптимальную стратегию на интервале при наличии полной информации. И уже имеем систему, которая делает хорошие торговые выводы, используя только информацию из прошлого (не заглядывая в будущее). Что мы должны делать на новом торговом интервале со свежими данными? Ведь здесь мы в будущее уже не заглянем...
Это, на самом деле, самый сложный (и дискуссионный) пункт.
Форумы и книжки говорят, что если система какое-то время работала хорошо, то определенное время она и дальше поработает неплохо.
Адепты подхода WFT (почему не WTF?) предлагают схему 3-1 (три квартала работали в плюс — ждем положительный четвертый квартал).
В реале все это ересь, не имеющая никакого обоснования. Обычно все происходит в точности наоборот — система всегда начинает косячить и работать в минус за пределами окна оптимизации. Чем длиннее окно оптимизации — тем больший факап нас ожидает за его пределами.
Тут есть 2 варианта действий:
1. Придумать свою модель рынка и в ее границах решить любую задачу
(проблема в том, что если модель плохо соответствует рынку, то вас ждет неизбежный убыток)
2. (мой подход) Искать семейства стабильных индикаторов/торговых стратегий
Ну т.е. попытаться найти работающие в плюс индикаторы, которые при любой форме оптимизации медленно меняют свои параметры с течением времени.
Это сложный, кастомный вариант действий. Подробнее расписывать не хочу, т.к. будет много формул.
Как вы решаете вопрос ожидания прибыли в будущем, коллеги?
1. Поколбасили месяц в плюс, завтра еще больше наколбасим!
2. Я протестировал свою систему на Сбере на 12 мес. периоде. Теперь на биткойне всех порву!
3. Я использую ММ и получаю профит независимо от прибыли моей стратегии!
4. Я молюсь, торгую и боюсь… Потом смотрю на счет, боюсь, молюсь и торгую...
5. Что-то еще?
С уважением
Только п.3. почему именно — независимо...
Все зависимо.
Стратегия/система дает сигнал, далее ММ и фильтры.
Зачем идти по тупиковому пути, пытаясь предсказать будущее поведение цены? На этом погорело несколько миллионов трейдеров. Займитесь моделью рисков и вам полегчает в разы…
Берем массив систем С1… Сn, массив инструментов И1… Иn и желательно массив исторических периодов Д1… Дn (но можно для начала брать один период минимум за 3-5 лет, чтобы захватить кризисы)
Далее тестируем С*И*Д. Получаем массив результатов.
Из этого массива делаем 2 вывода:
1. Какие системы более устойчива в тестах
2. Какие инструменты хуже всего торгуются на разных системах. Их выкидываем из будущих торгов.
Далее играемся с параметрами лучших систем. Ищем систему наиболее стабильную и менее зависящую от параметров.
На торги запускаем системы с облаком параметров.
вот вот я уже какой год им здесь это пытаюсь пояснить нет все равно черточки чертят и прочее на графиках и думают что рынок пойдет по их сценарию
Что такое 3-5 лет на общей картинке в 9999 лет? Обучим «систему» 10 «закономерностям» из 2000… Лучше подождать когда рынок нарисует массив OHLC за 9995 лет и можно будет заработать следующие 4 года. Но это не точно.
Я вам даже могу авторитетно заявить, что котировка начала движения актива, уже содержит информацию о уровнях поддержки-сопротивления, и времени возможного разворота. Дальше просто смотрим как развивается модель.
Геометрия, йопт… Вы можете представить, как трейдер инвест.компании или банка сидит над графиком с транспортиром и линейкой?
P.S. — какой же вы темный и дремучий! В наш век кибернетики, давным давно написаны правильные индикаторы для практически всех торговых платформ. Многие из них бесплатные. Берете и пользуетесь.
Первая — все параметры взяты из цены котировки.
Вторая — статический шаблон.
Третья — от прошлого движения.
Значит я буду первым. Запомните детишки, у кого с мозгами в порядке автоматизирует то, что можно автоматизировать! Со 100% результатом.
И на эти грабли наступают 99.9% алготредеров.
А взять и найти закономерности ручками, а потом уже реализовать в виде кода, на такое способен наверное один из 100.000 если не один из миллиона.
1. Про лимитные и рыночные ордера. Рыночные ордера не надо вообще рассматривать, у нас плановая работа, а не аврал. С лимитками вообще все технически просто. Создаем систему исполнения ордеров (отдельно). В зависимости от ликвидности данного инструмента и типичного сайза, легко оценить издержки на исполнении. И далее заложить в расчеты. Слона надо есть по частям.
2. Нет и не может быть идеального индикатора на все рынки. Обычный индикатор ОБЫЧНО дает некоторый плюс, который в основном прожирается торговыми издержками. Поэтому проще скомбинировать 2 индикатора, в крайнем случае три. Больше — риск переоптимизации резко растет. Да, при поиске простых индюков МНК вообще не нужен. Достаточно найти статистически значимую альфу в доходности, более- менее наличную во всех частях временного ряда.
3. Рано или поздно системы перестают работать просто потому, что меняется данный рынок, плывут издержки и так далее. С технологической точки зрения здесь уже надо иметь дело с некоторой метасистемой. Которая оперирует уже набором готовых систем и имеет правила формирования портфеля из этих систем. Совсем другая по смыслу и подходу задача.
P.S. При таком, я бы сказал, инженерно-математическом подходе, в единой модели рынка нужды нет (вспоминаем Лапласа про Бога — я в этой гипотезе не нуждаюсь).
Или взять еврика, лет 20 назад тренд внутри дня на 40-60 пунктов, это был мегатренд… А сейчас это норма.
Но мат. модели не изменились.
Верю, что на главных мировых валютах (форекс) все благостно. Но так не всегда и не везде.
Допустим существует некая «модель рынка», скрытый алгоритм, то каким образом она рассылает сигналы в головы трейдеров, управляет ими?
Просто очень часто когда трейдер получает результат близкий к случайному 0,0,1,1,0,1,0,1… он её выкидывает. Но когда трейдер немного её подкручивает (подгоняет) и получает 0,0,1,1,0,1,1,1… всё это грааль и механизм ценообразования! А как же нули?
Самая простейгая альфа это несправедливость цены.
И в чем проблема сделать обратную связь в алгоритме? Которая стабилизирует ну просто все. Т.е это простейшее самоочевидное техническое решение
Другое дело, что можно сделать алгоритм, который сам «подкручивает» систему, хоть каждый день, хоть каждый год, как пожелаете.
P.S. А гарантий на систему Вам все равно никто не даст.
3 сделки в день. Но этого достаточно для 10-20% в месяц)))
Каждый индикатор имеет в своей основе определённые формулы и уравнения на основе математических манипуляций с ценой, временем и объёмами, когда они доступны.
Проще говоря, индикатор — это графическое представление решения какого-либо уравнения или даже системы уравнений на основе цены и времени.
Таких уже готовых индикаторов — полным-полно в каждом торговом терминале. При желании можно посмотреть даже те формулы и уравнения, на основании решений которых они строятся.
Если не удаётся найти заветный «грааль» на основе одного индикатора — грузить на график или вставлять в советник (робот) ещё и ещё.
Но это именно то, чем десятилетия заняты практически все массы трейдеров, у которых, порой, уже саму цену на графике не видно, так там всё загромождено всякого рода индикаторами.
секта-Клуб Любителей Чуйки и Ручного Трейдинга)
Я скажу просто: любая система, основанная на прошлом, отлаженная и оптимизированная, уступит 60%-ному знанию будущего.
Ты ж, по трезвому сюды не заходишь...
Мальчик… бой… дитя… дитятко...
Хоть бы, определился...
Ох, и несуразный же ты получился, всё-таки...
Токмо по пьяне и пишешь…
Только алкоголь спасает мою нежную психику от травм, которые ей регулярно наносит контент на СЛ.
Сегодня — исключение. Я не пью и просто отвечаю на комментарии
С уважением
Исключения...
Живи по Жванецкому: «Отойди, не стой во всём этом!».
И не читай СЛ!
Если индикатор это полином невысокой степени, то что мешает нагенерировать их и найти оптимальный на данной истории? Мне чуйка подсказывает, что в результате откажется, что не существует достаточно стабильного полинома. То есть небольшие изменения исходного ряда или диапазона кардинально меняет лучший полином, а те, что были лучшими, стали худшими.
PS: вот написал это и подумал, а может ли такое быть для ряда ценовых приращений, каждое из которых все же как-то ограничено? Какими свойствами должен обладать ряд, чтобы мой неутешительный вывод был справедлив?
Однако не все так просто. Оптимальный полином не удается подобрать по Монте-Карло. И МНК здесь бессилен, к сожалению.
С уважением
Проблема в том, что оно никогда не гладкое
Приращение эквити = приращение цены на след. баре * знак(индикатор)
Попробуйте продифференцировать функцию sign )))
С уважением
P.S. В всех задачах рыночной оптимизации используется совсем другой инструментарий, нежели в учебниках
>Проблема в том, что оно никогда не гладкое
Значит надо сгладить! :) Я не занимаюсь алготрейдингом, просто показалось, что сделать из цены, индикаторов и эквити непрерывные функции и потом по ним заниматься оптимизацией может быть проще.
>Приращение эквити = приращение цены на след. баре * знак(индикатор)
Наверное, все же Приращение эквити = приращение цены на след. баре * знак(размер позиции)
>Попробуйте продифференцировать функцию sign )))
Не вижу проблемы. Производная везде 0, кроме точки 0, где она не определена. Но в точке 0 нам вычислять нечего, так как это означает, что позиции нет и эквити тоже нет.
Я писал про торговлю плоским лотом, когда размер позиции всегда постоянен
Считать, что если индикатор = 0, то позиции нет, не очень удобно. Аналитическое выражение будет редко обращаться точно в 0 — и это не повод тут же закрывать позу, а потом переоткрывать.
Возьмем вместо sign функцию sgn, которая имеет значения только 1 и -1 (для удобства положим sgn(0)=1, но можно и наоборот). Она ничуть не сложнее функции sign.
Тогда приращение эквити = d(n)*sgn(id(n))
где d(n) — приращение цены на баре n
id(n) — значение индикатора перед наступлением бара n
Рассмотрим простейший нетривиальный индикатор от 2-х последних известных приращений цены
id(n) = A*d(n-1)+B*d(n-2)
Если Вы считаете, что все так просто — напишите формулу для оптимальных A и B, при котором эквити (сумма приращений эквити) будет максимальна.
Или хотя бы приведите короткую методику расчета для определения A и B численным образом
С уважением
>Или хотя бы приведите короткую методику расчета для определения A и B численным образом
Я попробую, проба пера, не судите строго.
Глядя на id(n) = A*d(n-1)+B*d(n-2) сгенерируем n прямых (гиперплоскостей) вида A*d(n-1)+B*d(n-2) = 0. Они разделят плоскость на регионы, количество которых равно сумме биномиальных коэффициентов вида binomial [n, i], где i пробегает от 0 до 2 (количества коэффициентов индикатора). В каждой такой области sgn(id) это константный набор значений. Останется взять представителя (A,B) из каждого региона, найти эквити и выбрать лучший.
Количество областей растет очень быстро. Для 2х коэффициентов и 1000 баров будет около полумиллиона. 1000 баров и 3 коэффициента уже 160 миллионов. Но это справедливо только если все гиперплоскости различны. На практике, возможно, все будет совсем не так плохо.
Но я просил Вас не об этом.
Я просил Вас о гладком решении этой задачи.
Вы, вроде, написали, что с дифференцированием функции sign/sgn проблем не будет, с оптимизацией — тоже...
С уважением
Насколько я понимаю, автор неявно предполагает, что знак ID определяет, будем мы в лонге или в шорте?
Тогда мы спокойно можем свести задачу к одномерной, просто нормируя
a=a/(a*a+b*b)^0.5 b=b/(a*a+b*b)^0.5 и после этого единичную окружность поделим на зоны плюса и зоны минуса.
id это функция 2х последних баров, она предсказывает приращение на следующем баре. Далее на открытии бара встаем в позу фиксированного размера и закрываем ее в конце бара. Кажется такая идея.
Диссертации пишут те, кто пытается предсказать будущие цены
Я же гоняюсь исключительно за прибылью
С уважением
Вот только приращение цены — это следующий бар (на него мы никак повлиять не можем)
А направление сделки — это наш индикатор, зависящий от прошлого
Так что прогнозирование приращения эквити перпендикулярно прогнозированию следующего приращения цены
Вернее, при работе маркетными ордерами мы должны хорошо прогнозировать будущие большие движения цены и сколь угодно плохо — малые.
Если же речь идет о работе лимитными сделками — то там формула для эквити занимает половину листа формата А4. И рассуждения на пальцах не проходят.
С уважением
А про лимитные сделки — похоже это только для вашей системы критично (ну и для hft еще), потому что средняя сделка ниже издержек.
Весь остальной мир поступает проще — просто немного фильтрует базар, и средняя сделка становится выше издержек) без всяких четырехэтажных формул. Результат не сильно хуже, а головняка меньше. Ну, впрочем, кто на что учился, да)
В хорошем смысле этого слова
Но наступит отлив — и всем станет видно, у кого х@й длиннее )))
С уважением
для нас отдельный пост)))
ага, я канешн прикалываюсь, когда дилетанты начинают рассуждать о вещах, в которых не разбираются… но для бай-мальчика это будет полное фиаско.
Я обиделся и к вам не приду...
С уважением
Александра, принимай поздравления!
пойду плакать....
Не достоин он рыданий твоих…
я сильная!
я не знаю… после такого у меня может случиццо нервный срыв...
Наоборот!
Воодушивишься на подвиги!
Токмо, слишком там, не подвигуй… блюди меру!
Лучше медленно, но — верно!
ой, точно))
в этом спешка точно не нужна))
када не тверёзый бывал...
По трезвому у него не получилося.
Но, а народ то, народ как ведётся...
Этот неопределившийся, пургу гонит вовсю, а народ принимает за чистую монету....
Мальчугана? Или народ тутошний?
не заметил? ))
оказалось — не, не ошибся.
пойдут обострения.
Но в это время в инете их нет)
Давай им посочуствуем… а что ещё?
— Индикатор «смотрит в будущее на 1 бар» =>> расчётное окно индикатора смещается каждый раз с появлением новых данных.
— Индикатор «смотрит только историю» =>> расчётное окно фиксировано, параметры стационарны.
— Из своего торгового опыта, вполне смотрится некоторая комбинация двух выше описанных индикаторов.
Только я ничего не понял
Для меня стационарный индикатор — это тот, коэффициенты (параметры) которого постоянны. Нестационарный — который меняет их со временем.
Так, все индикаторы классического ТА стационарны
Индикатор, у которого коэффициенты также являются функциями приращений цены — нестационарен.
С уважением
Возьмем простое среднее арифметическое или моментум
Как его коэффициенты изменятся со сдвигом окна?
С уважением
Или моментум фиксированной длины x(n)-x(n-k)
С уважением
Повторяю для меня стационарность или нестационарность — это постоянство расчетной функции или ее модификация со временем
Данные всегда новые — появился свежий бар — его надо обработать, иначе утеряем важную информацию
С уважением
Я своим полиномом описываю любую вычислимую функцию за счет дискретности цены и ограниченности ее изменения на истории
С уважением
Для этого надо искать экстремум среди всех возможных функций
Вполне возможно, что конкретно среди ЕМА нужного нам экстремума нет (и его там в самом деле нет)
С уважением
Не работают они в плюс на долгосроке
С уважением
Просто у меня тест от 2.5 млн. минутных баров
Покажи мне набор из МАшек, который на этом массиве будет работать в некий разумный плюс — и я сразу изменю свою точку зрения
С уважением
— размер окна истории относит текущую цену актива к цене n периодов назад, т.е. одного Моментума на минутках с периодом 2 достаточно для работы на 1М и 2М периодах;
— моментум пересекает «0» снизу вверх — МТС покупает, сверху вниз — продаёт;
— добавляем к МА-шке Моментума стандартные методы сглаживания, возврат к среднему и т.п.
— зарабатываем (бирам комиссионные).
Другими словами существует одна правильная МА-шка для успешной работы в заданых начальных условиях.
Однако предложите мне любую формулировку исполнения ордера для непрерывных цен (или хотя бы механизма его исполнения при отсутствии дискретной сетки).
Или нарисуйте простейшую формулу для маркетной эквити в случае непрерывного времени (для дискретного она тривиальна).
С уважением
Я больше скажу, никаких «непрерывных цен» не существует в природе, любая лента принтов любого инструмента демонстрирует это с пугающей очевидностью
Нам нужна дискретная сетка, чтобы интегрировать маркетную эквити и понять, когда менять цену в лимитном ордере
Она может быть равномерная по времени, с равным количеством тиков в периоде, фантазийно агрегированная по Мандельброту etc.
Я экспериментировал с разными сетками — никакой существенной разницы не заметил ни для маркетной, ни для лимитной эквити.
Непрерывные цены для торговли — это бред, да. Ну или упражнение для студентов и аспирантов в области стохастического исчисления.
С уважением
Вообще, задача агрегации данных сводится просто к сохранению всей требуемой информации на периоде агрегирования при приемлемом объеме выходных данных (если нас устраивает объем несжатого потока котировок, то и агрегировать незачем). Какую информацию мы получаем из «минутных графиков»? Что на абсолютно конском по длине периоде у нас было 4 сделки с известной ценой. И неизвестно сколько (хоть и известен суммарный их объем) с ценой, которая точно попадает в интервал между самой высокой и самой низкой ценой из этих четырех. Мне сложно сказать, что можно из этого вытянуть. Может, что-то и можно
Ну, скажем так, ровно столько же, сколько и из тиков
Более того, для оптимальной работы лимитками нам нужна не вся информация OHLC (или тиковая) — а очень ограниченный ее кусок.
Я назвал их массивами Alpha и Beta. Формулы есть в моем топике «Конкурс на 50000 рублей», переписывать лениво.
С уважением
Про «очень ограниченный кусок» — это, конечно, так.
Но они не нужны ни для расчета лимитной эквити, ни для ее оптимизации.
К счастью (сложный) расчет показывает, что нужна только возможность или невозможность исполнения ордера на покупку/продажу на баре. А для этого нужен минимум информации.
С уважением
нужна только одна информация — мог исполниться выставленный ордер на покупку/продажу или нет?
Для этого не нужна цена Open (она подглядывает в будущее, т.к. формируется через 1 тик после начала формирования бара), а нужны всего 2 числа:
high(n) — close(n-1) и close(n-1) — low(n)
Если для ответа на поставленный выше вопрос нужна еще какая-то информация — подскажите, плз, буду очень признателен.
С уважением
1) просто открывает сделки по таймеру раз в минуту в случайном направлении
или
2) Информацию, на основании которой она открывает сделки, она получает не на основании анализа потока рыночных данных (неважно, агрегированного каким-либо образом или нет)
ТС каждую минуту выставляет лимитный ордер на покупку или продажу по цене со смещением от цены закрытия последнего бара на основании весьма сложного анализа относительно длинной предыдущей истории HLC (1024 бара).
С уважением
Кстати, почему именно полином, а не прямой подбор к-тов на этой тысяче точек? Потому что к-тов полинома берете много меньше?
Это разные вопросы и я сейчас запутаюсь
1. 1024 коэффициента — это то, что сейчас работает в продакшн. Индикатор линейный по C и нелинейный по H и L (к полиномам это не имеет отношения, просто метрики такие). Ну и он нестационарный — его коэффициенты пересчитываются каждые 5000 баров
2. Полиномы используются в теоретических исследованиях (пока). Т.к. в работе лимитками они (пока) не обгоняют линейные нестационарные лимитные индикаторы, про убыточность работы по маркету плоским лотом на коротком таймфрейме я писал выше
С уважением
Почему именно столько. Кстати, сколько минут в Вашей торговой сессии, или у Вас она непрерывная?
P.S. Ну, если Вы рискуете запутаться, представьте себе, какой у нас бОшках туман возникает, когда Вс читаем.
Просто больше не надо, сейчас хватает и меньше
Раньше больше использовал
По крипте сессия 24/7, по форексу (LMAX) перерыв с 01:00 Сб по 23:00 Вс по Москве
С уважением
1) игнорированием факта, что процессов более одного
2) нестабильностью масштаба
Это глубокое убеждение, разумеется, может быть ошибочно :)
В т.ч. потому, что в маркетном случае (где есть непрерывный поток ценовых отсчетов, неважно, периодический или нет) есть такие же проблемы с дрейфом параметров торговых систем.
Просто там субоптимальные или оптимальные системы на интервале устроены значительно проще, так что и проблемы удается проще решить.
С уважением
По объему, по пороговому смещению от предыдущей точки, по предустановленным уровням. Получалось примерно одно и тоже. В удобстве теряем, в доходности не выигрываем.