Блог им. 3Qu |Совершенствуем Exponential Moving Average (EMA). 2

    • 16 января 2021, 21:01
    • |
    • 3Qu
  • Еще
В топике Совершенствуем Exponential Moving Average (EMA) мы показали использование линейной и нелинейной обратных связей в применении к ЕМА. Как правильно отметили в части комментариев, в случае линейной обратной связи ЕМА просто превращается в другую ЕМА с меньшим периодом, и толку от такой ЕМА немного. И тем не менее, даже в этом случае, обратная связь демонстрирует то, что и должна была демонстрировать — цель достигнута и ошибка слежения за ценой уменьшилась.
Нелинейная же связь даже в случае с ЕМА работает нормально, и по факту адаптивно в зависимости от ошибки меняет период сглаживания. При больших значениях ошибки период сглаживания уменьшается относительно заданного Тс, при малых ошибках период сглаживания практически равен предустановленному Тс.
В общем, нам надо решить вопрос только с линейной обратной связи, и выбрать для этого в качестве исходного индикатора что-то посложнее ЕМА. Скажем фильтр низких частот (ФНЧ) 2-го порядка. Выражение для него будет иметь вид.

( Читать дальше )

Блог им. 3Qu |Совершенствуем Exponential Moving Average (EMA).

    • 16 января 2021, 00:04
    • |
    • 3Qu
  • Еще
На днях написал топик с описанием своей старой стратегии - Ретростратегия ретро ТС., снятой с эксплуатации в далеком 2014 г, которая, как оказалось, даже в упрощенном виде может работать и сегодня. Не собирался ее использовать, но в ходе обсуждений решил потратить на нее пару вечеров, восстановить по памяти до последней ее версии, и посмотреть, не стоит ли отложить текущие дела, и быстренько вывести ее на рынок.
В ходе восстановления пришлось также дорабатывать фильтры ФНЧ, простейшим из которых является ЕМА. Я дорабатывал свои фильтры, а вам покажу, что можно сделать с ЕМА, чтобы ее усовершенствовать и улучшить.
В комментариях к топику о ретростратегии упомянули некоего Jurik (jurikres.com) и его JMA. Думал, что он уже забыт, но, жив — курилка. То, что мы получим будет не хуже его индикаторов и подобрав периоды сглаживания можете сами в этом убедиться. Вообще, все поделки Jurikа — это где-то на уровне лабораторных работ студентов 4-го курса института по курсу ТАУиР. Наши сегодняшние тоже сложностью не отличаются, но может даже лучше, хотя бы потому, что не являются черными ящиками, и вы знаете как это устроено.

( Читать дальше )

Блог им. 3Qu |Классификация сделок в торговых системах 2 (пример).

    • 17 декабря 2020, 21:04
    • |
    • 3Qu
  • Еще
Был у меня топик  "Классификация сделок в торговых системах" — в общем, не зашел. Но некоторые плюсанули, вот, для некоторых и напишу пример конкретного применения. Рекомендую прочитать предыдущий, иначе можете не понять этот топик.
К счастью, у меня оказался рояль в кустах — вялотекущий проект системы прогнозирования котировок, вычисляющей прогноз изменения цены на интервале Т по значению и состоянию цены в момент t — dС(t+Т). Ну, и общая формула прогнозирующей системы:
                              dC(t+T) = C(t+T) — C(t),
где C(t) — цена в момент t.
График теста системы я показывал в комментариях к предыдущему топику вот он:

Классификация сделок в торговых системах 2 (пример).
По Х (Predict)  — прогноз изменение цены, по У (Real) — реальное изменение цены через время Т. Не обращайте внимание на значения осей, это не сами изменения цены, это нормированные к диапазону системы значения изменений цен.

( Читать дальше )

Блог им. 3Qu |Классификация сделок в торговых системах.

    • 14 декабря 2020, 20:54
    • |
    • 3Qu
  • Еще
Я в принципе не занимаюсь оптимизицией, как она обычно понимается, т.е. подбором параметров для получения высокой доходности. Я занимаюсь настройкой системы. Это, прежде всего, определение и уточнение границ области(ей), в которой производятся сделки и выход из них.
Для этого строятся всяческие графики, диаграммы и прочее, где отображаются сами сделки и их параметры.
Сделки разделяются на следующие классы:
1. системно правильные прибыльные
2. системно правильные убыточные
3. случайно прибыльные
4. случайно убыточные.
Сделки 1 и 2 производятся в рамках правил системы, и не требуют корректировки.
Сделки 3 и 4 производятся вне границ области, определенной системой, что требует уточнения логики системы с целью исключения этих сделок даже несмотря на их прибыльность.
Может также оказаться, что необходимо скорректировать область определения системы, и часть сделок 3 и 4 в последующем перекочуют в классификации в сделки 1 и 2.
Сделки классов 3 и 4 не всегда можно полностью исключить из системы, т.к. область определения может иметь достаточно сложную конфигурацию, и ее ограничение требует сложной логики. С этим, возможно, придется смирится.
Благодаря таким настройкам прибыль системы в итоге может даже уменьшится по сравнению с исходной, до настройки. Но мы тем самым почти гарантируем, что при следующих тестах, на других отрезках истории, и, в дальнейшем, на реале, прибыль останется стабильной.

Блог им. 3Qu |Карго-Культ в трейдинге.

    • 08 августа 2020, 19:22
    • |
    • 3Qu
  • Еще

Вы конечно знаете, что такое Карго-Культ, но, позволю себе напомнить.

В некую Банановую Республику продолжительное время поступает гуманитарная помощь развитых стран. В стране оборудуются аэродромы, куда приземляются самолеты со всякими ништяками — продовольствием, одеждой, товарами первой и второй необходимости и пр. Все счастливы.
В один прекрасный момент программа гум помощи заканчивается, и людям приходится самим заботится о себе. Они строят самолет из палок и веревок, ставят его на заброшенный аэродром, в надежде, что он привлечет железных птиц с ништяками. Потом вспоминают, что в хибаре сидел мужик в наушниках, и что-то говорил в микрофон, и тогда прилетали железные птицы. Аборигены собирают остатки брошенного оборудования, рисуют на ящиках шкалы и органы управления, назначают диспетчера, дают ему наушники из половинок кокосовых орехов и деревянный микрофон, и он часами говорит в него нечто подобное тому, что они слышали от диспетчера.
Словом, делают все тоже самое, что и проклятые пиндосы, но железные птицы по прежнему не летят на зов.
Это самый примитивный вариант Карго-Культа, но есть и более продвинутые и более цивилизованные его варианты.
Скажем, покупаем мы экскаватор, или угоняем самолет, и цап-царап, разбираем все это до винтиков, делаем чертежи, и пытаемся изготовить аналогичные изделия. Этот вариант уже лучше, — экскаватор может даже копать, а самолет летать. Но есть и недостатки — мы можем увидеть только внешнюю сторону, о технологиях изготовления мы можем только гадать, а можем даже и не догадываться о их существовании. Кроме того, для тех же самолетов, это будет отставание не менее чем на 10 лет.
Типичный пример Карго-Культа на гос уровне — тяжелый бомбардировщик Ту-4, полностью, вплоть до пепельницы и подстаканников, скопированный с американского



( Читать дальше )

Блог им. 3Qu |Рождение тестовых Граалей.

    • 17 июля 2020, 19:44
    • |
    • 3Qu
  • Еще

Недели две назад обещал ответить нашему коллеге на вопрос и написать на эту тему топик. Отвечаю и пишу.

Итак, нам пришла в голову просто бесподобная и очень простая идея Грааля. Мы имеем всего два индикатора с параметрами х1 и х2 соответственно. Их состояние описывается вектором X = [x1,x2], и в некоторой области Gv подмножества Х и находится наш Грааль, многие сделки в этой области в плюс. По крайней мере, мы так предполагаем, хотя где находится эта область и есть ли она вообще, эта Gv представляем весьма приблизительно, и мы, разумеется, хотели бы это выяснить. Рис.1.
Рождение тестовых Граалей.

В пространстве состояний X мы ограничили область нашего видения Грааля областью Gv, и в нее даже попал кусок настоящего Грааля G.
Запускаем оптимизацию системы по прибыли, положение и параметры области Gv меняются таким образом, что оптимизатор находит и выделяет настоящий Грааль G областью Gr в пространстве X.
Торговая система готова к употреблению.



( Читать дальше )

Блог им. 3Qu |Нейросети в торговых системах. 2.

    • 10 июля 2020, 15:35
    • |
    • 3Qu
  • Еще

В прошлом топике [1] мы разобрались с тем, что и как подавать на входы нейросети (НС). Теперь надо как-то сказать НС — «Горшочек, вари», предварительно рассказав, что конкретно и как именно надо «варить». Мыслей, в общем, нет никаких. Потому, давайте обратимся к классикам — Саймону Хайкину [2,c.33]:
Нейросети в торговых системах. 2.
Вот так вот, сразу и на первых страницах — «не могут обеспечить готовые решения», необходимо интегрировать в сложные ситемы", «относительно простые задачи, часть из которых может решаться НС». Книга конечно старая, но и наш MLP (Multilayer perceptron) в составе scikit-learn новизной не отличается. Этому MLP еще и простую, да конкретную задачу подавай, и вокруг него «сложную систему» городи. Как-то энтузиазма поубавилось.

Ладно, коли на вход нашего MLP уже подается временной ряд, пусть он нам определяет, хотя бы приблизительно, моменты входа в Лонг. А мы потом его проверим, и уточним эти моменты.
Теперь нашу НС надо как-то научить находить Лонг — показать НС как правильно и как неправильно. А мы сами-то знаем как правильно? Учителя фиговы. Это с кошечками-собачками хорошо — показывай себе, и пусть учится.
А давайте что-нибудь предположим, назовем какие-то входы в Лонг правильными, а остальные неправильными. Если мы предположили какую-нибудь ерунду, то НС просто ничему разумному не научится, и при дальнейшей проверке это быстро выяснится. А что-то предположить нам поможет интернет.
Кстати, это свойство НС, отличать фантазии от действительных закономерностей, уже вполне можно использовать для проверки каких-либо наших педположений о поведении рынка. Надо только рассказать о них НС, и она скажет, есть там что-то, с чем следует работать, или выкинуть это и забыть.
Однако, обратимся к интернету. Несколько лет назад наш коллега по несчастью занимался методами Машинного обучения (МО) с целью победить рынок. Он строил массу предикторов, подавал их на входы различных систем МО, и обучал по разметке Зиг-Зага. А что, неплохая идея, входы — лучше не придумаешь.
Вообще, если на минимуме Зиг-Зага загородить правую часть графика, как-то сомнительно, что вообще можно что-то сказать о дальнейшем движении. Да, и по ходу пьесы этот минимум будет постоянно перемещаться. Да и наш коллега долго и упорно менял предикторы и системы МО, потом все реже, реже, и вообще пропал из поля зрения. А на истории, конечно, Зиг-Заг — лепота.
Давайте сдвинем точку входа в Лонг немного вправо от минимума Зиг-Зага, где цена уже начала расти. Мы получим некую U-образную кривую цены, на которой НС хотя бы cможет построить линию регрессии. Не говорю, что это хорошая идея, но мы с помощью НС попробуем ее проверить. Что получим? — понятия не имею, я это делаю по ходу написания материала.
Разметку правильных входов для обучения можно сделать по Зиг-Загу, установив какой нибудь разумный порог от его минимума.
А разметку неправильных входов кто сделает? Опять обращаемся к [2,c.60].
Нейросети в торговых системах. 2.



( Читать дальше )

Блог им. 3Qu |Моделирование Торговых Систем на Python. 2.

    • 12 мая 2020, 10:29
    • |
    • 3Qu
  • Еще

Тем, кто не читал предыдущий топик этой темы, рекомендую для начала ознакомиться с ним [1].

В комментариях к предыдущему топику меня критиковали за неоптимальность кода Python. Однако, текст читают люди с совершенно разной подготовкой — от почти не знающих Python или знающих другие языки программирования, до продвинутых пользователей. Последние легко могут обнаружить неоптимальность кода и заменить его своим. Тем не менее, код должен быть доступен и новичкам, возможно не обладающим знанием пакетов и продвинутых методов. Поэтому, в коде я буду, по возможности, использовать только базовые конструкции Python, не требующие глубоких знаний, и которые могут легко читаться людьми, программирующими на других языках. Вместе с тем, по мере изложения, без фанатизма, буду вводить и новые элементы Python.
Если вы хотите как-то улучшить или оптимизировать код, приводите его в комментариях — это только расширит и улучшит изложенный материал.

Ну, а сейчас мы займемся разработкой и тестированием индикаторов. Для начала нам нужна простейшая стратегия с использованием МА — его и построим. Самой лучшей по характеристикам МА является ЕМА. Формула ЕМА:



( Читать дальше )

Блог им. 3Qu |Моделирование Торговых Систем на Python. 1.

    • 09 мая 2020, 19:31
    • |
    • 3Qu
  • Еще

Для моделирование ТС на Python, прежде всего нужен сам Python. Pythonы бывают очень разные.

Самый большой и длинный Python — Anaconda (https://anaconda.org/). Скачать дистрибутив Anaconda можно здесь — Индивидуальное издание -https://www.anaconda.com/products/individual.
Я работаю именно с Anaconda. Установив Anaconda мы получаем сам Python, уже установленные значительную часть нужных и ненужных пакетов с библиотеками Python, и несколько сред разработки. И все это сразу готово к работе, и нам, по большей части, уже не придется дополнительно устанавливать пакеты и среды.

Самый маленький Python последней версии 3.8.2. скачивается с сайта самого Python — https://www.python.org/. Это, практически, только сам язык, компилятор и минимальный набор пакетов. Сделать с ним практически ничего невозможно, и для работы придется постоянно устанавливать нужные пакеты. Среду разработки придется также устанавливать самостоятельно.
Этот Python больше подходит для запуска и работы с уже отлаженными законченными программами.



( Читать дальше )

Блог им. 3Qu |Как вы относитесь к перестраивающимся индикаторорам в торговых системах?

    • 11 апреля 2020, 21:32
    • |
    • 3Qu
  • Еще

Как вы относитесь к перестраивающимся индикаторорам в торговых системах?

Никак
Отрицательно
Допускаю их применение
Положительно, но не применяю
Положительно, применяю.
Всего проголосовало: 40
Дискуссии, если понадобится, потом, когда немного статистики наберется.

....все тэги
2010-2020
UPDONW