Избранное трейдера trader
Всем привет! Наконец-то я закончил работу над своей первой настоящей, правда еще консольной, программой, с помощью которой можно скачать все исторические данные (свечки OHLCV) с различными таймфреймами по всем акциям Мосбиржи. И вроде достаточно простая задача, но отняла достаточное количество времени. И кажется я все больше начинаю понимать как программировать, хотя осознаю, что знаний в безграничном python катастрофически не хватает. Тем не менее получилось сделать то, о чем не мог себе представить еще месяц назад. Открывая сейчас код программы начинаю чувствую на подсознании, что не все так страшно, как было совсем недавно.
Итак, в конце года я писал о том, как с помощью Algopack можно вытащить справочную информацию о всех акциях Мосбиржи. Был написан мой первый небольшой и достаточно простой скрипт использующий библиотеку moexalgo. И я обозначил планы дописать его с целью добычи всех исторических данных.
Сказано – сделано. В итоге получилась, как я считаю, вполне полноценная программа.
Расскажу про трюк, которым улучшаю доходность своих торговых ботов.
Называется он «Risk Limit».
1. Смысл Risk Limit в замене фиксированного риска на риск меньшего размера, но с применением консервативного множителя после убытка.
2. Ключевая особенность в наличии жёсткого предела, выше которого риск не поднимется. Этот предел также должен оставаться в зоне низких рисков.
Объясню на примере.
Представим, в каждой сделке мы рискуем фикс 2% от депо. Хотим применить Risk Limit!
📍 Делаем это так:
• Снижаем риск до 1%.
• После каждой убыточной сделки применяем множитель х1,2.
• После первого профита возвращаемся к 1%.
• Верхним пределом устанавливаем 3% и больше не рискуем ни при каких обстоятельствах! Данный процент мы закладываем вплоть до первого профита.
Получившаяся линейка рисков с округлением до десятых выглядит так:
1%, 1,2%, 1,4%, 1,7%, 2,1%, 2,5%, 3%.
Какие преимущества по сравнению с фиксированным риском в 2%?
1️⃣ Стартовый риск ниже, а значит, ниже плечо, комиссионные сборы, прочие сопутствующие расходы.
Сегодня:
Работа с биржевым стаканом через getQuoteLevel2
Особенность нумерации в стакане заявок терминала квик
Работа через функцию обратного вызова OnQuote
Примеры работы со стаканом из скрипта
Сравнение реализации одного алгоритма через разные функции
Из таблицы текущих торгов мы можем получать большой перечень данных, в т.ч. по лучшим ценам спроса и предложения, из которых желающие получат спрэд по выбранному инструменту. Однако иногда нужно заглянуть именно в биржевой стакан. Это, например, пригодится нам далее при выставлении заявок.
Работать с биржевым стаканом можно через getQuoteLevel2 и функцию обратного вызова OnQuote.
Функция getQuoteLevel2 возвращает 2 массива котировок (bid и offer) и 2 значения: количество бидов в стакане (bid_count) и количество офферов (offer_count). Чтобы нам не было скучно разработчики терминала решили последних 2 параметра передавать в виде строки, поэтому при работе их нужно перевести в числа (через tonumber).
Массивы bid и offer содержат цены (price) и количество (quantity) по каждому уровню заявок стакана. Их также нужно будет предварительно перевести в число.
Приветствую.
Готов поделиться опытом работы с российскими коннекторами прямого доступа к московской биржи (MOEX). Я довольно долго искал коннекторы для прямого доступа на московскую биржу Fix/Fast, Plaza2, Twime на C#, в итоге пришлось все написать самому :)
Я пробовал использовать готовые решения (закрытые библиотеки), которые предлагает к примеру S#. Там очень часто появляются ошибки, которые могут не исправляться просто годами. Во-вторых, непонятно, что происходит внутри и огромные задержки по скорости отправления заявок. Исходные коды стоят довольно дорого и в конце неизвестно то же, что будет тебя ждать.
Поскольку я сам программист, пришлось написать эти коннекторы самому.
От перепутья коннекторов, технологий и пересечения, какой подходит под какие задачи вы офигеете.
И честно скажу полный хаос также твориться и в описании документации к этим подключениям у самой биржи.
С одной стороны высокий барьер входа это хорошо и позволяет реализовывать простые арбитражные схемы на российском рынке, что нельзя было бы сделать к примеру на других рынках. Но с другой стороны — это просто ад и кошмар. Все запутано, документация крайне не дружелюбна, нормальных примеров нет.
НКЦ выполняет функции клиринговой организации и центрального контрагента на рынке ценных бумаг в целях обеспечения поддержания стабильности на обслуживаемом рынке, снижения транзакционных издержек (неттинг) и кредитного риска контрагента.
Для поддержания требуемого уровня надежности НКЦ введена система риск-менеджмента, состоящая в том числе из:
Данная система позволяет НКЦ выполнять свои обязательства перед добросовестными участниками клиринга в случае дефолта одного или нескольких участников.