Финансовая Лаборатория
1.26K subscribers
60 photos
11 videos
2 files
238 links
Личные финансы, инвестиции, трейдинг
Download Telegram
TradeAPI_вакансия.docx
14.3 KB
Всем добрый день!

Финам ищет менеджера продукта для своей следующей версии Trade API. Вакансию прикладываю. Если интересно, то отпишитесь Андрею Хвану @haoshoku_haki.

Я на отдыхе до конца лета. Много работаю с идеологией, концептами и кодом. Постараюсь вас удивить в сентябре.
До осени еще пара недель, а я начинаю выкладывать код, над которым работал летом. Начнем с QuikPy. Глобальное обновление. Работает с:
- LUA 5.4.1
- Оригинальными скриптами QUIK#
- Текущей версией QUIK LUA 11.2

- По умолчанию QuikPy - Singleton. Это значит, что с QuikPy можно работать одновременно из нескольких скриптов. Для множественных подключений в коде можно вернуть создания экземпляров класса QuikPy для каждого подключения.
- Переписаны все примеры
- Bars.py выполнен в том же стиле, что и для AlorPy/FinamPy/TinkoffPy

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

Также если вы используете QuikPy в связке с BackTraderQuik, то подождите, когда я опубликую изменения в нем.
У Квика была странность с потерей подписок после отключения терминала от сервера. Сделал в QuikPy механизм подписок/отписок/восстановления подписок для стаканов и свечек. Примерно так, как сделано в AlorPy. Пользуйтесь на здоровье!

P.S. Telegram ввел особые статусы постов (звёзды). Попробую ими маркировать все интересные (и бесплатные) новинки. Для примера поставил звезду в прошлый пост. Если есть желание, то можете поддерживать посты этими особыми статусами.
Был вопрос про запуск нескольких скриптов в QuikPy одновременно. Это сделать просто:

Сначала заготовьте скрипты, которые на вход будут получать QuikPy

Напишите скрипт, в котором:
- инициализируете QuikPy
- вызываете скрипты как потоки с передачей QuikPy как параметр
- дожидаетесь их исполнения
- закрываете QuiikPy

На рисунках показан как достаточно лаконичный код запуска скриптов (находится здесь), так и результат исполнения. Видно, что сначала идет результат 1-го скрипта, затем 2-го, затем снова 1-го. Значит, они работают независимо друг от друга.
Большое обновление BackTraderQuik:
- Возможность указать счет в getcash/getvalue/buy/sell
- Получение новых бар по расписанию
- Сохранение бар в файл
На выходных сделал торговлю фьючерсов в BackTrader (BT) для QUIK и Алор.

Как это работает. По фьючерсам будут приходить в BT цены и объемы (лоты) с биржи без изменений. По ним можете строить индикаторы, условия. От цен считать цены входа/выхода. Когда будете отправлять заявки через buy/sell, то BT проверит цены на корректность (соответствие шагу цены и кол-во знаков после запятой), выставит на биржу. А вот в заявках и позициях уже будет цена за штуку в рублях. Лоты будут преобразованы в штуки.

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

Для торговли нужно обновить QuikiPy, BackTraderQuik, AlorPy, BackTraderAlor.
Наш трейдер Надежда хочет предупредить всех тех, кто будет разбираться с торговлей из QUIK через BackTrader со скриптом LimitCancel.py.

Обязательно проверяйте в чем вам присылает остатки брокер (на примере в красной рамке). В лотах или штуках. Например, Алор шлет остатки в лотах. Финам и БКС - в штуках.

Если перепутать, то можно или не поставить заявку, или поставить во много раз больше.

Будьте внимательны и читайте комментарии в коде! 😊
За записью видео в последние годы совсем забыл про старые добрые текстовые статьи. Новый сезон - прекрасный повод вернуться к основам. Тем более, был вопрос, как формировать список ликвидных акций для скринеров.

Отвечаю в новой статье здесь >>>

Старые статьи после рецензирования также буду перемещать в раздел Обучение. Чтобы весь материал не был разбросан по сайту, а находился в одном месте.
Уже говорил про то, что все бесплатные библиотеки ФинЛаба развиваются нашими уважаемыми трейдерами. Сегодня в библиотеку BackTraderQuik были внесены изменения, которые позволят даже при частых отключениях/подключениях QUIK быстро восстанавливать подписки и фильтровать уже отработанные бары.

Благодарю Антона и Надежду за помощь!

Текущую версию библиотеки вы всегда можете взять с GitHub здесь >>>
Когда мы работаем с QuikPy из нескольких потоков, которые интенсивно работают с запросами, то возможны ситуации, когда ответы от QuikPy или приходят не в тот поток, или не приходят вообще.

Чтобы этого не происходило, ввел несложную блокировку на функцию отправки запроса и приема ответа (на картинке).

Также поправил пример MultiScrips.py, чтобы дать нагрузку на QuikPy.

Благодарю Анастасию (МосБиржа) за постановку задачи.

QuikPy всегда доступен вам здесь >>>
В октябре будем заниматься Системой Джона Элерса. Последний год я не сильно вникал в его новые торговые техники, а там есть где развернуться! Тем более, что мы с вами тоже набрались уму-разуму, и кое-что сможем у Джона или поправить, или докрутить.

Начнем с того, что у меня было 15 статей в блоге. Но жизнь меняется. Часть видео удалила Vimeo, да и YouTube не всегда комфортен. Поэтому, я решил все посты оформить в виде статей-уроков. Поэтому, заглядывайте в раздел Система Джона Элерса: Статьи.

Первые 2 статьи уже ждут вас:
- Принципы циклов
- Почему у Джона Элерса торговые системы лучше ваших

Смотрите, изучайте!
Грааль, да еще и всего в 3 строки кода. Так умеет только Джон Элерс! 😄
Перенес все 14 постов про Систему Джона Элерса вот сюда.

Видео перенес в VK, поправил в некоторых постах текст и оформление.

Мне больше всего нравятся видео про дивергенцию и Фибо последовательность.

Читайте, смотрите, изучайте себе во благо!
Джон Элерс постоянно говорит о том, что рыночный сигнал - это розовый шум. Но вместо доказательств рассказывает про походку пьяницы.

Этим летом я формировал базу понимания, что есть рыночный сигнал, поэтому вопрос природы рынка встал и передо мной. Я решил вооружиться научными инструментами, и привести объективное доказательство того, что рынок - это розовый шум.

В результате получился одноименный курс из 12-и уроков, который выкладываю для всех в открытый доступ здесь >>>

Приятного обучения!
Я доказал, что рыночный сигнал - это розовый шум. Раз появилась сущность "шум", то нужно понять, что можно с шумом делать. Основные исследования исходили из того, что шум - паразитный сигнал. Все, что нужно сделать, это его удалить. Тем самым очищая сигнал, несущий смысловую нагрузку. У нас кроме шума ничего нет. Поэтому, его нужно научиться объективно оценивать, создавать (синтезировать) и выделять (анализировать). Чем и займемся. Мы выведем несколько формул. Объективно оценим чистый розовый шум. В завершении покажу, что изменение характера рынка - это далеко не случайность. О чем давно догадывался Ларри Вильямс, но показать удалось только сейчас. Это исследование выложено в курсе Система Игоря Чечета: Исследование шумов.

В исследовании шумов я опирался на концепцию построения EMA. У Джона Элерса была формула связи альфы EMA с критическим периодом, которую он транслирует во всех своих публикациях более 10-и лет. Я ничего не принимаю на веру, и решил сделать вывод этой формулы, опираясь на базу цифровой обработки сигналов (ЦОС). Могу сказать, что из-за "детской" ошибки раскрытия скобок, формула Джона Элерса не верна. Что и показал в курсе Система Джона Элерса: Правильный расчет EMA. Также приложил верную формулу. Поэтому, если вы использовали формулу альфы EMA через тригонометрические функции, то исправьте ее на ту, что привел в курсе.

С такой мощной базой вышел на новую "окончательную" оптимальную скользящую среднюю от Джона Элерса. Зная ЦОС, я усомнился в "идеальности" предложенной скользящей. Объяснил всё в курсе Система Джона Элерса: Оптимальная скользящая средняя. Шаг за шагом построил 4 типа скользящих средних, которые вы можете использовать в своих торговых системах в зависимости от задач.

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

Так и произошло с тригонометрической формулой зависимости альфы в EMA от периода у Джона Элерса. Ошибка была при раскрытии скобок. Смоделирую простым примером:

10 - 2 *(4 - 1) = 4

На первый взгляд всё просто. В скобках получим 3. Умножим на 2, получим 6. Вычтем из 10-и, получим 4.

Джон Элерс пошел другим путем, и попытался раскрыть скобки вот так:

10 - 2 * 4 - 2 * 1 = 0

Конечно, это неверно. Но именно эта ошибка, в итоге, привела к неверной формуле, которую более 12-и лет использует Джон.

Когда записывал для вас курс Система Джона Элерса: Правильный расчет EMA, то для проверки формулы построил АЧХ фильтра EMA. Очень удивился, что отсечка -3 dB была далеко за заданным периодом.

Тогда понял, что надо вывести формулу заново. Я не торопился. Разбил вывод формулы на части, чтобы самому не ошибиться в нюансах. Проверил на разных периодах через АЧХ. Всё работает как надо. Конечно, как обычно, все проверки, алгоритмы, код и формулы выложил вам в файле исследования в курсе.
В курсе Система Джона Элерса: Правильный расчет EMA мы заменили альфу (параметр периода) по моей правильной формуле. Была EMA, которая по периоду соотносилась с SMA. Стала EMA, у которой период является частотой среза. Это хорошо, но достаточно ли нам работать только с фильтрами 1-го порядка?

Для выделения белого шума и синтеза розового шума EMA вполне достаточно. Что показал в курсе Система Игоря Чечета: Исследование шумов. Но более качественную оценку с помощью EMA сделать нельзя. После применения EMA на розовом шуме снова получаем розовый шум. Сменить период - тоже не вариант. Характеристики будут те же, просто сместится частота среза.

Раз нельзя копать вширь, копаем вглубь. Фильтры 2-го порядка более качественно "режут" сигнал. То, что мы знаем как спектральное расширение в 6 dB на октаву, или, другими словами, фрактальность рынка, устраняется только с помощью фильтров 2-го порядка.

Один из таких фильтров представлен в курсе Система Джона Элерса: Оптимальная скользящая средняя. Джон там напутал знатно. Например то, что преобразование идет не только в частотной, но и во временнОй области. Т.е. фильтр нижних частот (в трейдинге известен как скользящая средняя) без задержки получить не удастся. В курсе я всё поправил как надо. В итоге, мы получим 4 скользящих средних 1-го и 2-го порядков, чтобы решить любую задачу в нашей торговой системе.