Избранное трейдера S&P

по

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

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


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

О математике в трейдинге

Прочитал у известного персонажа вот такое заблуждение 

Эффективность математики только в поиске закономерности рыночного движения — паттернов которые способны реально материализовать вашу прибыль.

Написана полная ерунда. Позволю себе процитировать фразу, с которой я начинал свой курс «Алгоритмическая торговля. Научный подход» :
Математика в общем случае не даст Вам ответа на вопрос КАК ДЕЛАТЬ? Но она даст Вам ответ на другой важный вопрос ЧТО ДЕЛАТЬ, А ЧТО НЕ ДЕЛАТЬ?

Что из этого следует? А то, что математика не может быть «эффективна» в поиске паттернов, она лишь может точно сказать: найденные Вами паттерны — это реальные закономерности или чушь собачья.

Как правильно заметил мальчик BuyBuy в своём топике: самый простой способ это сделать, это проверить свои паттерны на качественно (!) смоделированом случайном блуждании и если окажется, что и там все лучше самой доходной пассивной стратегии, то значит это чушь собачья.

Как сделать качественное случайное блуждание для последовательности свечей реального актива?

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

Опыт доработки QLua-скриптов для QUIK 8.5.2

    • 15 мая 2020, 16:29
    • |
    • _sk_
  • Еще
В новой версии терминала QUIK 8.5.2 произведён апгрейд языка Lua для написания торговых скриптов с версии 5.1 до версии 5.3. Это нужно для того, чтобы корректно обрабатывать 19-значные номера заявок и сделок на срочном рынке МосБиржи. Типа number в Lua 5.1 не подходит: там все числа хранятся как double, соответственно целые числа до 2^53 = 9 007 199 254 740 992 записываются без потери точности, а 19-значные номера заявок и сделок будут больше этой границы.

Версия Lua 5.3 обратно несовместима с Lua 5.1. Я почти не использовал внешние библиотеки и для меня было два важных изменения: отказ от module (это было сделано в версии 5.2) и введение целочисленной арифметики (версия 5.3).

Для избавления от использования module пришлось переработать много кода, хотя изменения были несложные. Приведу пример. Раньше был такой код Arrays.lua для работы с массивами:

--
-- Выполнение действий с массивами.
--

local pairs = pairs
local type = type

module(...)

--- Создать копию массива (таблицы)
-- @return копию массива (таблицы)
function copy(array)
    local copy_array = {}
    if type(array) ~= "table" then
        return array
    end
    for k, v in pairs(array) do
        if type(v) == "table" then
            copy_array[k] = copy(v)
        else
            copy_array[k] = v
        end
    end
    return copy_array
end

--- Узнать, начинается ли индексация в массиве с нуля или с единицы.
-- @return 0 или 1
function base(array)
    if array[0] ~= nil then
        return 0
    else
        return 1
    end
end

--- Вычислить число элементов в массиве.
-- @return число элементов в массиве
function size(array)
    local n = 0
    for _, _ in pairs(array) do
        n = n + 1
    end
    return n
end

--- Проверить пустой или нет массив.
-- @return true/false
function isEmpty(array)
    for _, _ in pairs(array) do
        return false
    end
    return true
end

--- Получить первый индекс массива, где ничего не записано. Поиск начинается с 1.
-- @return первый индекс массива, где ничего не записано
function firstEmptyIndex(array)
    local i = 1
    while array[i] ~= nil do
        i = i + 1
    end
    return i
end


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

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



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

Немного элементарной математики

Наверное всем известно, что разница со спотом и фьючерсом сейчас где то 8-10$. Продажи нефтяных компаний идут по споту. В прошлом году, самая эффективная российская компания имела удельную ебида на баррель добычи где то 18 баксов, ну или очень грубо 1000-1200 р. Спот юралс сейчас 16.
При текущих ценах на нефть и даже восстановлении — цена спот будет 25-30 долларов.
При такой цене удельная ебида — 1-2, 2 у самых крутых. Или 100 рублей (грубо).
1000/100=10. Или как говорят физики — разница в порядок.
Итого, только за счет цен(без объема) ебида рухнет в 10 раз (при текущем курсе)
Вы все еще надейтесь что пронесет и все будет хорошо?
Следующими на выход пойдут сервисные компании, потом трубы и все по цепочке.
Парни, все только начинается.
Кто будет покупать компании с EV/EBITDA >20? Никакой нормальный нерез не будет это делать, политика инвестирования не разрешает, его тупо укатают в пол за это.

Новичкам. Опционы и Гауссово (нормальное) распределение.

    • 25 апреля 2020, 17:35
    • |
    • KarL$oH
  • Еще
Всем привет.

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

Волатильность — это то, что отличает торговлю фьючерсами от опционов. Кто не знает как работает волатильность, по каким законам она живет, не сможет работать с опционами. Там, где волатильность, там есть и теория вероятности, а там, где теория вероятности — сидит определенный математический аппарат.

Именно в этой точке гуманитарий опускает руки, потому что не может разобраться как работать с моделью Блэка-Шоулза, не знает элементарных понятий из теории вероятности, не знает как работает Гауссово распределение.

Будем двигаться понемногу, сегодня разберемся именно с Гауссовым распределением, я покажу на пальцах что это такое и уже потом будем постепенно углубляться в модель Блэка-Шоулза (да-да, уважаемые новички, без понимания как работает эта модель вы будете терять деньги на опционном рынке).

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

QUIK 8.5 важно для алготрейдеров на Lua

Вышел QUIK 8.5 качаем и тестируем тут ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.1_upd.zip

Ключевое это поддержка идентификатора заявок и сделок 19 десятичных знаков+переход на Lua 5.3.5 x64

Отличия Lua 5.1(5.2) от 5.3 можно глянуть например тут http://antirek.github.io/luabook/incompatibility.htm

Подробнее про необходимость перехода и кому переходить тут https://forum.quik.ru/forum1/topic5117/

С 25 мая на бирже будет переход на идентификатор заявок 19 знаков, поэтому из Lua нельзя будет работать с заявками на срочном рынке.

P/S Модератор перенеси в раздел алготрейдинг

Возможности новой версии
1. Реализован функционал быстрого фильтра в таблицах. Для активации \ деактивации быстрого фильтра используется пункт «Включить быстрый фильтр» \ «Выключить быстрый фильтр» контекстного меню, открываемого для заголовка самого левого столбца таблицы. Данный функционал позволяет фильтровать информацию в таблицах QUIK с наглядным отображением критериев фильтрации.



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

Дойче Банк запускает бесплатный видеокурс на русском языке “Finmath for Fintech”

    • 08 апреля 2020, 22:13
    • |
    • Jonah
  • Еще
Технологический Центр Дойче Банка молодцы, несут знания в массы (бесплатно). Это тизер, скоро будут первые лекции.


Технологический Центр Дойче Банка запускает бесплатный видеокурс на русском языке — “Finmath for Fintech”. Хотите разобраться, какие математические модели лежат в основе опционов, облигаций и свопов?

Эксперты в области финтеха помогут! Из курса вы узнаете:

• Как вычислить справедливую цену финансового инструмента
• Какие существуют риски, связанные с инвестированием в инструменты
• Примеры прикладных задач, с которыми сталкивается финтех

Видеолекции будут выходить каждую неделю, следите за новостями в соцсетях компании.

Дойче Банк запускает бесплатный видеокурс на русском языке “Finmath for Fintech”


Большой бэктест стратегии Momentum на ММВБ. Или почему покупать акции на отскок – плохая идея?

Привет, новая неделя – новый бэктест факторной стратегии на Мосбирже. В прошлый раз была проверена стратегия Value через мультипликаторы P/E и P/BV https://smart-lab.ru/blog/609357.php В этот раз мы проверили стратегию Momentum на российских акциях.

Суть ее очень проста – покупаем акции, которые сильнее всего выросли за последние 6 месяцев и шортим акции с худшей динамикой цены за тот же период. Стратегия получается рыночно нейтральной (в теории, на самом деле — корреляция с рынком очевидна) и если у такого лонг-шорт портфеля есть положительная доходность, то мы можем сказать, что на Мосбирже есть моментум эффект.

Воспользовавшись поиском по Смартлабу можно найти несколько интересных исследований по моментуму (если что-то упущено, пожалуйста, дайте ссылку в комментариях) – «Есть ли сила в моментуме» от at6 https://smart-lab.ru/blog/596080.php и «Как обогнать индекс (пример выигрышной торговой стратегии)» от AlexChi https://smart-lab.ru/blog/499362.php



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

Общий финансовый анализ на Python (Часть 3)

    • 05 апреля 2020, 12:51
    • |
    • Aleks
  • Еще

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

Сначала немного теории:

О линейной регрессии

Линейная регрессия используется в качестве прогнозирующей модели, когда предполагается линейная зависимость между зависимой переменной (переменная, которую мы пытаемся предсказать) и независимой переменной (переменная и/или переменные, используемые для предсказания).



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

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