Постов с тегом "Торговые системы": 324

Торговые системы


Quik - лучший терминал для MOEX.

    • 09 января 2020, 22:36
    • |
    • 3Qu
  • Еще

К сожалению, я не шучу. Quik мне активно не нравится. О недостатках Quik — неудобный, глючный, периодически подвисающий на абсолютно пустом месте в самый неподходящий момент, и пр., и пр. Даже оставив в нем всего несколько самых необходимых окон и инструментов, избавиться от его глючности не получится. Уж, за более чем 10 лет, разработчики Quik могли бы его довести до ума, но воз и ныне там.

Видел и пользовался терминалами много лучше — с полным C-API, оч удобные и лишенные каких либо существенных недостатков — на них и работал аж до 2013 г. Это были самопальные термналы брокеров, для которых, к тому-же, было написано много вспомогательного софта. К сожалению, к 2013 г терминалы безнадежно устарели, благодаря апгрейдам становились все хуже, и, в конце концов, были сняты брокером с эксплуатации. Вся проделанная работа по написанию софта пошла прахом, и для работы предстояло выбрать другой терминал и/или брокера.
Коннекторы сразу не подошли. Остался выбор из 3-х терминалов c возможностью программирования или подключения внешнего софта — Quik, TRANSAQ, и МТ5.
TRANSAQ: есть только у одного брокера Финам. Если Финам откажется от Transag или поменяет версию терминала на несовместимую, то весь вспомогательный софт предстоит переделывать заново. Спсибо, я это уже проходил.) Кроме того, Transag есть толькоу Финам, и изменить брокера становится невозможно — опять надо будет все переделывать.
МТ5: имеется для МОЕХ у ограниченнного числа брокеров. Строго говоря, биржевым терминалом не является, и судя по форуму MQL, проблем с биржей у него выше крыши. Я так понимаю(оценочное суждение), фирма MQ попыталась вывести МТ5 на биржу, ничего с этого не получила, и завязала с этой деятельностью. Да, такой хоккей нам тоже не нужен.
Quik — старенький, плохонький, глюковатенький, но имеет всю необходимую функциональность, и все нужные возможности. Имеется практически у всех брокеров — смена или добавление брокера не вызовет проблем. В одночасье не исчезнет, что могут себе позволить терминалы оганиченного применения — Transaq, и тот же МТ5.
Отсюда следует, что Quik — лучший терминал для биржи MOEX для большинства пользователей, особенно для тех, кто пользуется каким либо вспомогательным софтом — индикаторы, торговые системы, системы анализа и пр.
Жаль, что я этого не понял раньше, не пришлось бы весь софт переписывать с нуля.

  • обсудить на форуме:
  • QUIK

Супер ускорение расчета индикаторов

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

Например, был ценовой ряд из 6-ти элементов:

1.104, 1.102, 1.105, 1.106, 1.103, 1.101 

Найдем его интегральное представление (начнем с нуля):

0.0, 1.104, 2.206, 3.311, 4.417, 5.52, 6.621

Чему будет равно SMA за последние 3 элемента? Достаточно посчитать разницу: 6.621 - 3.311 и разделить ее на 3.

SMA(3) = (6.621 - 3.311)/3 = 1.103

Убедимся, что SMA(3) найдено верно. 

(1.106 + 1.103 + 1.101)/3 = 1.103

Таким образом можно найти SMA с любым периодом, совершив всего навсего одну операцию вычитания и одну операцию деления. Это позволит гораздо быстрее получить набор значений индикаторов типа SMA, RSI, STD_DEV.
Вроде все хорошо, НО НАДО ПОМНИТЬ, что если использовать тип данных с плавающей точкой, то у нас будет накапливаться ошибка. Поэтому ценовой ряд лучше сначала преобразовать в целочисленный тип. Для этого достаточно для 5-ти значных котировок умножить цену на число 100 000.

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




О вероятностях и Байесе.

    • 19 декабря 2019, 17:39
    • |
    • 3Qu
  • Еще
На днях был пост Оксана Разяпова  "Про вероятности". В нем предполагалось что рыночные ситуации разруливаются теоремой Байеса.
Был также ответ А.Г. -«Интересно, как Вы Баейса посчитаете, если не знаете точные значения вероятностей из Ваших же формул.» 
Ну, во первых, большинство ситуаций при анализе рыночных рядов Байесом никак не «разруливаются» — все вероятности на уровне 0.5.
И во вторых. Тем не менее при анализе ВР Байес неплохо работает при проверке статистических гипотез. Однако такие гипотезы должны быть изначально, и далеко не факт, что каждая из них при проверке даст что-либо отличное от 0.5. Но, если гипотеза окажется верной, то значения вероятностей 0.6-0.7 вполне достижимы, что вполне достаточно для практических целей. Если повезет с гипотезой, то на ней можно и реальную ТС построить.
Ну, а параметры есть откуда брать. Считается Байес в Python — пакет scikit-learn, например. И в этом пакете не только Байес, но и много других методов.
Как просто и быстро связаться с Python, и как проверяются стат гипотезы я вкратце писал в своих предыдущих топиках.



Коммуникации Quik Lua с внешним миром.

    • 14 декабря 2019, 20:42
    • |
    • 3Qu
  • Еще

Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.

Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Применение Машинного Обучения в Торговых Стратегиях

    • 13 декабря 2019, 19:20
    • |
    • 3Qu
  • Еще
В прошлом посте  Мода на Машинное Обучение мы выяснили, что Машинное Обучение (МО) может решить только конкретные задачи, т.к. единственное чем занимается, так это подбором решения под заранее известные ответы, но делает это оч качественно. Посмотрим, где в ТС можно найти такие задачи.
Пусть у нас возникла идея замечательной ТС. Мы накидали на график всяческих индикаторов, ну, и прям видно — вот оно, счастье. Начали долго и муторно писать логику входов в сделку и пр. Параметры индикаторов и их сочетания неизвестны, логику еще продумывать надо, количество if зашкаливать начинает — эт только на глаз все хорошо и просто.
Подождите, так нам нужно найти всего лишь некоторый набор математических выражений для описания нашей стратегии, а это как раз задача для МО, и, по идее, МО должно с такой задачей хорошо справиться.
Итак, берем нашу стратегию, пишем несложную логику в общих чертах описывающую нашу стратегию — получаем как-бы упрощенный вариант стратегии. С помощью этой логики (упрощенной стратегии) выделяем интервалы обучения и генерируем обучающие последовательности. Подготавливаем данные — приводим все это к виду понятному МО. Обучаем на этих данных МО, проверяем на независимых данных — получаем готовую стратегию. Естественно, упрощенную логику (стратегию) оставляем как часть стратегии, ограничивающую область применения МО.
Собственно, сэкономили на написании логики стратегии.
Ну, а будет работать такая стратегия или нет — это уже зависит не от МО, а от идеи самой стратегии. Естественно, предполагаем, что как готовить данные, обучать-проверять — это мы хорошо знаем и все правильно делаем.

Мода на Машинное Обучение.

    • 12 декабря 2019, 19:33
    • |
    • 3Qu
  • Еще

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

Машинное обучение (МО) сейчас является очень популярной темой, и им не занимается только ленивый. В наличии масса готовых к употреблению библиотек — нейросети, леса-деревья, Байесы, и пр. и пр. Осваивается все это за пару недель и применяй — не хочу. Однако, результаты такого применения в трейдинге как правило нулевые или около того. Без толку, но, хотя-бы хорошо провели время,) узнали много нового и интересного.
Отрицательные результаты объясняюся тем, что методы МО — это не более чем математическое выражение или их набор формируемый в процессе обучения. При этом МО старается как можно точнее подогнать мат. выражение(я) под ответы представленные в обучающей выборке. Т.е., в принципе, методология МО ничем не отличается от банальной подгонки решения под имеющийся ответ. В студенческие годы, если что-то не сходилось, оч помогало умножить или разделить, скажем, на корень из Пи или корень из двух. Вот, и МО делает абсолютно тоже самое. И мы занимаемся тем же самым, когда подбираем параметры индикаторов, входов, тейков и стопов для получения от стратегии максимальной прибыли, и, надо сказать, с тем-же результатом — вся эта подгонка работает только на том отрезке, где мы подобрали, и никак на реальном рынке. К чести МО отметим, что методы МО гораздо лучше и эффективней чем мы занимаются подгонкой, и на интервале обучения получат классную ТС из практически всего, что вам придет в голову. Только реально работать это не будет.(
Таким образом, для типовых методов построения торговых систем применение МО не дает и не может дать ровным счетом ничего, и применение МО в подобных системах не имеет смысла. Можно не дергаться, такие задачи МО не решает.
Ну, и выводы:
МО следует применять для задач, имеющих решения, которые можно получить подгонкой под ответ. Для решения других задач методы МО не предназначены.
Такие задачи и следует искать для применения МО при разработке ТС. И если вы их найдете, это может сэкономить вам массу времени и сил. Подобных задач, кстати, великое множество, но с этим лучше обратиться к специальной литературе.





TsLab. Контроль исполнения лимиток.

Друзья! Не понятно, как ТсЛаб контролирует исполнение лимитных заявок. Возьмем у примеру такой скрипт(ниже скрин). Робот покупает по фиксированной цене, затем продает по другой фиксированной цене. Теперь вопрос, а что будет, если после окончания торгового дня, он не доберет позицию, или закроет, но не полностью? Выставит-ли он новую заявку на следующий день, уже с учетом частичного исполнения? 
Буду очень благодарен за объяснение!)
TsLab. Контроль исполнения лимиток.


  • обсудить на форуме:
  • TSLab

Структура и элементы автоматической торговой сиситемы!

Всем привет.

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



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

Как проверь инвестиционные стратегии?

    • 01 октября 2019, 01:41
    • |
    • Gregori
  • Еще

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

Посчитать допустим историческую доходность при таком алгоритме:
1. если цена не выше чем на n(допустим 10) процентов от минимума  и акция входит в  топ k% по недооцененности   (суммарная стоимость акций относительно денежного потока или допустим относительно стоимости имущества компании), то покупать. Суммарный объём таких акций составят NN%
2. Если дивидендная доходность растёт в течении x лет и доходность относительно текущей цены акций выше на y% чем инфляция или скажем доходность по ОФЗ, то покупаем.

Тут же подбор различных активов портфеля по принципу дополнения (что бы снизить общую волатильность). Можно конечно по книжкам  действовать. И всё же хочется ещё и протестировать. Понятно предсказать как в следующие 10 лет будет никто не может. но хоть посмотреть как было в последние 100- хоть какие то ошибок возможно избегу так.



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

....все тэги
UPDONW
Новый дизайн