Избранное трейдера Everlast
Продолжаю бесплатный период своего робота.
Наибольший интерес вызвали торговые системы арбитража.
Публикую долгожданное большинством видео QUIK. Робот Сетка. ТС «Арбитраж».
Хочу отметить, что представленный пример с разницей акций Сбербанк-Сбербанк-ап представлен для общего понимания.
Робот может реализовать не только парный арбитраж.
Возможно реализовать портфельный арбитраж, можно использовать любые торговые инструменты в QUIK, можно использовать фронтраннинг, котировать другие инструменты с хеджированием и многое другое.
Заявки на разработку роботов не рассматриваю, т.к. пишу для себя и торгую на бирже тоже для себя.
Описание торговой системы «Арбитраж».
Возьмём два инструмента: Сбербанк об. по 137.18 и Сбербанк пр. по 131.85. Известно, что некоторые инструменты коррелируют между собой, т.е. цены двигаются в одном направлении. Однако, есть небольшие отличия в движении этих активов. Можно торговать эту разницу.
Фьючерс MX находится в бэквордации, а фьючерсы на акции в контанго, появилась идея создать локирующую конструкцию с целью получить прибыль от форвардной разницы.
На момент написания (данные меняются быстро) декабрьский фьючерс MX находится в бэквордации -0.76%.
Декабрьские фьючерсы на акции взял для примера 5 с наибольшим весом (более правильно использовать наибольший список – 10 и более). Данные состава индекса из: https://smart-lab.ru/q/index_stocks/IMOEX/
Получилась такая таблица:
Из расчёта на 1 млн. рублей на каждую ногу нам нужно продать декабрьские фьючерсы на акции ЛУКОИЛ в размере 294705₽. Аналогично, продать другие фьючерсы на акции, согласно доле в портфеле из таблицы.
Далее, нам нужно купить фьючерс MXI в размере 44 контракта, т.е. на 1 млн. руб.
После этого ждём экспирацию. В последний день разбираем конструкцию, чтобы не пустить на поставку фьючерсы на акции.
Финвиз один из самых удобный инструментов для поиска акций. Он позволяет отбирать акции по заданным условиям из тысяч компаний на фондовых рынках США — NYSE, NASDAQ, OTCBB, AMEX. Множество трейдеров ежедневно используют данный сайт.
Сначала, вам нужно определиться с ценой акций, которые вы хотите торговать. Также, необходимо выбрать объем для нужных соотношений. Под разные стратегии, эти критерии могут варьироваться. Поэтому, желательно под каждую стратегию использовать свой фильтр. Мы возьмем самые основные фильтры которые вы сами сможете подстроить под свои предпочтения. Сохраните данную статью и фильтры у себя, а также начните экспериментировать со своими параметрами.
Вы можете использовать как фундаментальные данные, такие как EPS, ROI и другие. А также, технические параметры цены, паттернов (формаций), скользящие средние и другие параметры.
Расширенная форма оператора for
В расширенной форме оператора for для последовательного получения значений переменной цикла используется вызов итератора. Цикл завершается, когда итератор возвращает nil.
Примечание
Под итератором понимается любая конструкция, позволяющая перебирать элементы некоторого набора. При каждом обращении к итератору он возвращает очередной элемент набора. В Lua итераторы обычно реализуются в виде функций.
Расширенная форма оператора for имеет следующий вид:
for var1, var2, …, varN in <explist> do
… — тело цикла
end
где:
var1, var2, ..., varN — список переменных, получающих значения на каждом шаге цикла. Список может состоять из одной или нескольких переменных, разделённых запятыми. Первую в списке переменную называют управляющей переменной цикла. Когда эта переменная получает возвращённое итератором значение nil, цикл завершается. Остальные переменные на ход выполнения цикла влияния не оказывают;
<explist> — список выражений, разделённых запятыми. Обычно список состоит из единственного выражения — вызова функции-фабрики итераторов. Такая функция возвращает функцию-итератор, состояние и начальное значение управляющей переменной цикла.
Скрипты на языке Lua
Написанный на Lua скрипт не имеет какой-либо специальной функции, с которой начиналось бы его выполнение. Скрипт можно рассматривать просто как набор команд (инструкций), который выполняется, начиная с первой инструкции.
Скрипт может быть как очень простым, состоящим всего из одной команды, так и весьма сложным, содержащим десятки, сотни и даже тысячи инструкций. Следующие друг за другом инструкции могут разделяться точкой с запятой (;). Однако это требование не является обязательным, поэтому весь приведённый ниже код является корректным с точки зрения синтаксиса:
a = 1; b = 2
a = 1 b = 2
a = 1;
b = 2;
a = 1
b = 2
Работа с переменными в Lua
Переменные используются для хранения значений в процессе выполнения скрипта.
Имена переменных в Lua
Именами (идентификаторами) переменных в Lua могут быть любые последовательности из букв, цифр и символа подчеркивания, начинающиеся не с цифры.