Третья статья про то, как готовить наборы данных для тестов. В первой поговорили про пропуски свечек в данных. Во второй о времени начала и конца набора. Сейчас поговорим о том, как делать наборы данных с разных бирж в одном.
В любых вариациях межбиржевых арбитражей.
Сеты могут качать данные только с одной биржи. Однако тестировать межбиржевой арбитраж нужно одновременно на нескольких площадках. Да и в парном арбитраже это может пригодиться, включая таковые на индексе:
Мы уже говорили про пропуски данных на малоликвидных инструментах. Теперь надо обратить внимание на листинг и делистинг бумаг с площадки. Если не уделить данному вопросу внимание, это поставит под вопрос возможность тестирования стратегий, ориентированных на индекс.
Скачивая большие пакеты данных и выбирая бумаги по принципу «качаем все», вы неизбежно натолкнётесь на ситуацию, когда тикер был только что введён на биржу или уже снят с торгов.
Это видно в OsData в колонках «Start» / «End» / «Load %»:
Сегодня будем учиться собирать индекс в OsEngine по автоформуле. Посмотрим на интерфейсы и поговорим про общую концепцию.
Собирать будем его в тестере. При этом помните, в реале всё плюс минус то же самое.
В прошлой статье на тему мы скачали с Вами два сета данных. Сегодня нам понадобятся данные по Российскому рынку. А именно нефтянка. Будем строить секторальный индекс, взвешенный по объёму:
Напоминаю, нефтянку качали при помощи OsData с сервера MoexDataServer (IIS):
Сегодня будем учиться собирать индекс в OsEngine. Пока по своей формуле. Посмотрим на интерфейсы и поговорим про общую концепцию.
Собирать будем его в тестере. При этом помните, в реале всё почти то же самое.
Для начала нам понадобятся два сета данных — для крипты и секторальные данные по Российской нефтянке.
Нефтянку качаем с сервера MoexDataServer (IIS):
В основном данная статья относится к процедуре выбора бумаг для индекса. Ибо, обладая автособираемым индексом и вычитав в данной серии статей о том, как это весело, многие не будут разбираться с объёмами, входящими в него бумаг, включая в индекс всё подряд. А делать как не нужно не нужно, ведь делать нужно так, как нужно. А как нужно? Поговорим в этой статье.
У меня три новости в связи с этим:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <form name="search"> <input type="text" name="key" placeholder="Тикер" id="key"/> <input type="button" name="buttonChart" value="График" /> </form> <div id="printBlock"></div> <canvas id="chart" width="4000" height="300"></canvas> <script> const keyBox = document.search.key; const keyButton = document.search.buttonChart; function DrawChart(prices,minPrice,maxPrice,maxVolume,ZZ){ var chart = document.getElementById("chart"); if (chart.getContext) { var ctx = chart.
Данный график предполагается закладывать в основу при поиске стационарности и коинтеграции между двумя ценовыми рядами. Мы же в торговле от индекса будем его использовать для определения точек ускорения расхождения между сериями данных для генерации точек входа и выхода.
В статьях про парный трейдинг мы рассматривали коинтеграцию и стационарность более подробно. Если интересно, можно приобщиться: (https://smart-lab.ru/company/os_engine/blog/943864.php)
Расчёт его такой:
И мы подбираем такой мультипликатор, чтобы стандартное отклонение было минимальным.
В интерфейсах для парного арбитража выглядит вот так: