Избранное трейдера MrD

по

КВИК-->Lua-->Python. Трансляция данных из КВИКа в Питон в реальном времени

Всех с пятницей — самоизолятницей!
Представляю общественности Python-сервер (в 9 строк кода) для получения данных из КВИКа в Питон через луа-скрипт в режиме реального времени.
Для примера приведу получение тиковых данных по SIM0.
Нам понадобятся следующие ингредиенты.
1. Понятное дело КВИК, версии ниже 8 или 8.5.2 и выше.
2. Питон Jupyter Notebook (Anaconda 3)
3. Луа-скрипт, взятый из Jatotrader (в нем буквально изменено пару строк)
Как работает сервер можно посмотреть в этом видео (1 мин. 38 сек.) Ну и по правилам хорошего тона, естественно сам текст ниже.


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

Экспорт данных Quik -> DDE -> Ваша программа.

    • 26 мая 2020, 13:56
    • |
    • 3Qu
  • Еще

После написания топика «Quik, DDE, Excel» [1], где была поставлена задача вывода данных доски опционов не непосредственно в Excel, что является очень неудобным для конкретных приложений, а в свой DDE-сервер. Свой DDE-Сервер обладает тем преимуществом, что данные из него можно направлять куда угодно, и как угодно.

С тех пор прошло 3 дня. Черновая болванка программы уже написана, отлажена, работает, и выполняет все возложенные на нее задачи. Как я опрометчиво обещал, проект DDE-Сервера будет предоставлен всем желающим [2](см. список ссылок). Проект выполнен на C++ в среде VS2017. DDE-Сервер на данном этапе выполнен в виде консольного приложения, и все что он делает, это выводит получаемые из Quik по DDE данные на консоль. В принципе, он должен работать с любой таблицей Quik, но делался под вывод доски опционов.

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



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

Еще раз о заработке на случайном блуждании - коллекция экспонатов

Доброй ночи, коллеги!

Ну вот и я стал нормальным человеком попал в ЧС к Константину «старый дед» Смирнову.
А все после вполне себе безобидного комментария, что если (его) метода показывает заработок на случайном блуждании, то ее надобно отправить в мусор. Комментарий был удален, но не сразу (дед думал), а я немедленно попал в ЧС.

С вопросом о возможности заработка на случайном блуждании мы разобрались в цикле из 2-х статей довольно давно. Напомню:
— на арифметическом случайном блуждании заработать невозможно
— на геометрическом случайном блуждании оптимальная стратегия имеет имеет линейно растующую эквити (что тоже не айс)

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

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

Quik, DDE, Excel

    • 21 мая 2020, 12:16
    • |
    • 3Qu
  • Еще
Напомню, что обмен по DDE придуман в далеком 1995 году, еще для Windows 3.1.  DDE считается сильно устаревшим методом обмена данными и практически не поддерживается современными приложениями. Остался один Quik, который цепляется за DDE из последних сил.
Вывод по DDE в Excel еще и не удобен для обработки данных. Понадобилось мне, скажем, ввести дополнительно пару-тройку столбцов на опционную доску — в результате, в Excel все столбцы таблицы на листе сместятся, и всю адресацию ячеек листа Excel в программе надо будет переделывать заново.
В MS Access также имеется DDE-сервер, и есть возможность заполнять таблицы БД по DDE, однако Quik c Access по DDE работать не умеет.
В общем, решил, что экспорт таблицы из Quik по DDE надо запихнуть в таблицу базы данных (БД), и уже из БД программно работать с опционной доской. Что, кстати, гораздо удобней для любой таблицы Quik.
Хотел было через Lua — вроде все просто, Lua с таблицами работает. Ан нет, к доске опционов Lua доступа не имеет.
Наверное на С++ или C# связь по DDE надо делать.
И подумалось, а может у Смартлабовцев есть такие уже готовые рабочие решения, чего велосипеды изобретать? По крайней мере, для DDE (никогда программно с ним не работал), а в БД я и сам запихну, и если нужно поделюсь решением — здесь нет никаких ноу-хау.
Помогайте, граждане кто чем может.
  • обсудить на форуме:
  • Quik Lua

Идеальная "торговая система" А. Г. в реалиях нашего рынка

А. Г. интересную идеальную штуку описывает у себя в видео.

Прогоним эту систему без заглядывания в будущее на нашем рынке по следующим правилам:
Buy at open[m] if close[m-1]>OPEN[d] and HIGH*[m-1]+LOW*[m-1]>HIGH[d-1]+LOW[d-1].
Sell at open[m] if close[m-1]<OPEN[d].

Пояснения:
Расчеты делаются по минуткам opn, high, low, close.
m — текущая минута, которая только началась.
OPEN, HIGH, LOW это дневные значения. 
d — текущий день.
HIGH* и LOW* это максимум и минимум текущего дня с открытия и по завершившуюся минуту m-1.

Далее будут эквити без учета издержек.

Si (8% годовых при срсделке 0,01%):
Идеальная "торговая система" А. Г. в реалиях нашего рынка





























RI (22% годовых при срсделке 0,05%):
Идеальная "торговая система" А. Г. в реалиях нашего рынка

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

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

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

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

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

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



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

Zoppo - гений !!! По мотивам одноименной книги от Набиржеон

Доброе утро, коллеги!

Не успел я проснуться, как выяснил, что биржевой код взломан.
Это означает, что все мы (ну м.б. после окончания карантина) сразу становимся безработными. А это уже неприятно.

Познакомившись с трудами Zoppo/Набиржеон повнимательнее, я нашел в них пару умных мыслей. Собственно, только 2 эти мысли и были опубликованы )))

1. На коротких таймфреймах оптимальная стратегия очевидна
2. На длинных таймфреймах ее нет, и быть не может

Это уже совсем не такая абсолютная чушь, как тотальный взлом рынка. Мои личные исследования показывают, что на коротких таймфреймах действительно присутствуют супердоходные стратегии, которые стремительно теряют доходность при удлинении интервала квантования. При таймфрейме 10-36 часов эти extra fee уходят в никуда и мы приближаемся в хотелках к безрисковой ставке с некоей премией.

ОДНАКО: Активные (HFT?) стратегии несут в себе большие издержки. Довольно просто придумать стратегию (на любом активе), которая будет показывать идеальную эквити (Шарп больше 100, к примеру) при торговле без комиссий. При этом доход на сделку у типичной системы такого класса держится примерно на уровне половины спрэда, что полностью убивает потенциальную прибыль. Впервые такие плюшки я придумал в 1999, но, ввиду практически полной трейдинговой бесполезности, до сих пор использую их как некие индикаторы.

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

Моделирование Торговых Систем на 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 больше подходит для запуска и работы с уже отлаженными законченными программами.



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

Индикатор подвижности базового актива "на коленке"

Для интересующихся реализовала этакое «в лоб подобие» индикатора подвижности базового актива по материалу уважаемого В.Курбаковского. За разъяснениями лучше обращаться к автору формулы в его блог (вторая глава его труда об обобщенной модели ценообразования). Индикатор сделала, чтобы посмотреть связь движения IV и этой самой подвижности. Может кому-то будет полезен еще и такой угол зрения. 

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

Индикатор подвижности базового актива "на коленке"

Добавить в избранные скрипты на трейдингвью, а оттуда наложить на график и поиграться, можно тут

UPD: Ночью поддержка TradingView написала мне, что индикатор забанили потому, что у него русское описание. Поправить нельзя, только опубликовать снова с английским описанием, так что вот английская версия, если русскую удалят. Также дала возможность в английской версии назначать длину торгового дня — третья настройка Trading Session in Minutes. Пользуйтесь английской версией, пожалуйста

Починка websockets-криптоконнектора как повод поговорить о парадигме конкурентного программирования (питон)

В общем, решил как-то я написать websockets коннектор к одной криптобирже на С++. Решил, что неплохо было бы найти работающий простеникий коннектор и адаптировать его под себя. На С++ вообще ничего вменяемого найти не получилось, зато нашел нечто на питоне:
github.com/Crypto-toolbox/hitbtc
Штука показалась годной и стал я ее переводить на С++… Кстати, весьма полезное занятие оказалось — узнал определенные вещи из современных стандартов С++11/14, т.к. без них переводить питоновский код — много, долго и грустно)) И вот, в какой-то момент я подумал, что неплохо было бы проверить, а коннектор питоновский, который я взял за образец — он-то вообще работает?? Оказалось, что нет) Пакет websocket для работы с соединениями за 2 года устрарел и не работает, например, вот в этом месте:
self.conn = websocket.WebSocketApp(
            self.url,
            on_open=self._on_open,
            on_message=self._on_message,
            on_error=self._on_error,
            on_close=self._on_close
        )
пакет больше не экспортирует класс WebSocketApp, документацию вменяемую найти сразу не получилось и поэтому возникла потребность заменить websocket на что-то более актуальное. И это актуальное нашлось: websockets.readthedocs.io/en/stable/intro.html

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

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