Избранное трейдера ezomm

по

231028.Мухи и котлеты.Ч5. Лом РЕПОвальник и за что битва, Брат?

.

РЕМ: Чтиво выходного дня.
.

В этой части разберем следующие фишки системы доллара.

Найдем ответы на вопросы:

Откуда денежки в РЕПО?

За что бьются америкосы и при чем тут Китай, Россия и Германия?


.В  прошлой части Ч4  (копия Ч4 на СЛ) обсуждалась двухконтурная система бакса.Доллары которые циркулируютво внешнем контуре, за пределами США, мы  обозвали “Банановыми долларами”.Они  учитываются на корр счетах американских банков, корреспондентов всех остальных банков в мире, за пределами США.По оценкам  всего Банановых долларов во внешнем контуре обращения больше 30трлн, из которых3-5трлн нала,10трлн безнала, а остальные стерилизованы в акциях и облигациях США в виде “инвестиций” иностранцев.(Заметим, что Банановых долларов больше, чем агрегат М2 США 21трлн.)

.Всем известно также, что внешний контур пополняется на  80млрд в месяц (около 1 трлн в год) за счет дефицита торгового баланса США. То есть Честные Кормильцы со всего мира отправляют ежемесячно на 80млрд в США товаров, (где эти товары успешно перерабатываются в мусор),  а взамен получают записи на корсчетах на эту сумму.

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

Qlua: работа с заявками (часть 3).

Сегодня завершаем работу с заявками:

Функция OnTransReply
Функция OnOrder
Получение остатка по заявке, контроль исполнения полного объема
Таблица транзакций
Общая логика выставления лимитной заявки в стакане

В предыдущих примерах мы закладывали на обработку заявки небольшой таймаут (в пределах от 300 мс до 1 секунды), но правильнее отслеживать результат по коллбэкам, т.к. это время может быть и менее 300 мс, а может затянуться (по разным причинам) на секунды. Поможет нам в этом отслеживании функции обратного вызова OnTransReply и OnOrder.

Если отправляя заявку через sendTransaction мы на старте могли получить ошибку на стороне терминала (неправильно указанный торговый код/инструмент/класс рынка), то через OnTransReply мы получаем результат обработки нашей транзакции на сервере брокера (например ошибка при выставлении заявки из-за отсутствия подключения, либо у клиента нет прав на отправку транзакции конкретного типа, либо заявка не проходит по лимитам и пр.).

Функция OnTransReply возвращает ответ на транзакцию, выставленную средствами qlua.



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

Qlua: работа с заявками (часть 2).

Сегодня:

Узнаем общее количество заявок
Функции getNumberOf и getItem
Как пройтись циклом по всем заявкам
Вывод активных заявок
Снять скриптом заявку
Снимаем все активные заявки скриптом
Снимаем только заявки, выставленные конкретным скриптом


В прошлый раз мы научились
выставлять скриптом заявки в терминале, теперь можем поработать с ними.
Выставим скриптом 5 заявок на покупку и продажу от лучших цен
BIDи OFFERстакана заявок с шагом в 0,01.

 

Напишем функцию, которая будет выдавать нам необходимые цены (лучшую цену спроса и предложения) со стакана:

Qlua: работа с заявками (часть 2).

И возвращать -1, если предложения или покупки в стакане не найдены (стакан закрыт, либо нет торгов).

Тогда основной алгоритм в main будет выглядеть:



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

Скрипты для предобработки истории котировок из QUIK

    • 15 сентября 2023, 18:22
    • |
    • Jeeves
  • Еще

Если вы самостоятельно анализируете историю котировок с нашей MOEX (загружая данные в формате .csv из QUIK или откуда-нибудь их скачивая), то наверняка сталкивались с ситуациями различных ошибок и пропусков в данных, на поиск и обработку которых тратится много времени.

Поэтому решил я написать себе пару простеньких python скриптов, которые бы автоматически проверяли данные на пропуски и ошибки. Дальше, как обычно, все пошло по классике:

— У нас было 2 пакета ..., 75 таблеток ..., 5 упаковок ..., пол-солонки… и целое множество… всех сортов и расцветок, а также текила, ром, ящик пива, пинта… и… Не то что бы это был необходимый запас для поездки. Но если начал собирать ..., становится трудно остановиться.


Скрипты для предобработки истории котировок из QUIK


Что получилось в итоге:

cleaner.py

  • преобразует названия колонок к нормальному виду: чистит <> и приводит к нижнему регистру, например <TICKER> -> ticker
  • вычищает лишнее (SPBFUT, SPFB) из названия тикера
  • создает нормальный столбец datetime с временем в формате ISO


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

Qlua: работа с биржевым стаканом.

Сегодня:

Работа с биржевым стаканом через getQuoteLevel2
Особенность нумерации в стакане заявок терминала квик
Работа через функцию обратного вызова OnQuote
Примеры работы со стаканом из скрипта
Сравнение реализации одного алгоритма через разные функции

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

Работать с биржевым стаканом можно через getQuoteLevel2 и функцию обратного вызова OnQuote.

Функция getQuoteLevel2 возвращает 2 массива котировок (bid и offer) и 2 значения: количество бидов в стакане (bid_count) и количество офферов (offer_count). Чтобы нам не было скучно разработчики терминала решили последних 2 параметра передавать в виде строки, поэтому при работе их нужно перевести в числа (через tonumber).

Массивы bid и offer содержат цены (price) и количество (quantity) по каждому уровню заявок стакана. Их также нужно будет предварительно перевести в число.



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

Qlua: дополняем скринер акций статистикой, лидерами роста и падения.

Сегодня:

Добавляем статистику по акциям роста и падения.
Составляем TOP лидеров роста и падения.
Быстрый поиск акций по тикеру в терминале.

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

Напомню, что скринер выводил по тикерам акции, которые торгуются на Московской Бирже (за минусом бумаг с нулевыми объемами), и по ним через каждые 10 секунд проверял значение LASTCHANGE (% роста/снижения к закрытию прошлого дня) через getParamEx.

В первичной итерации скринер выглядел следующим образом:

Qlua: дополняем скринер акций статистикой, лидерами роста и падения.

Логично продолжить изменения скрипта и сделать расчеты, которые напрашивались, глядя на сам скринер: подсчитаем сколько бумаг торгуется в плюсе, сколько в «красной зоне». Также можно рассчитать средний процент роста/снижения всего по списку, плюс отдельно по растущим бумагам, отдельно по падающим.



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

Qlua: работа с лентой всех сделок (часть 2).

Сегодня завершаем работу с лентой всех сделок:

Различия данных ленты всех сделок и биржевого стакана.
Большие покупки и продажи в ленте сделок и динамика цены.
Альтернативные варианты поиск крупных игроков по ленте сделок.

Начало: https://smart-lab.ru/blog/935919.php


Еще раз про отличия ленты всех сделок и биржевого стакана – некоторые заявки могут исполняться очень быстро, их можно просто не заметить в стакане, но они точно отразятся в ленте. Какие-то заявки и движения в стакане могут быть для создания видимости крупных игроков, при этом они могут как отменяться как только цена начинает приближаться, так и очень оперативно переставляться. Лента сделок покажет реальную картину: какие объемы и по каким ценам прошли, какие проходят в текущем моменте.

Обычно при значительных покупках в ленте сделок мы можем наблюдать и рост цены. Например, используя скрипт, который мы рассмотрели в прошлой статье, это можно было наблюдать наглядно на графике Сбербанке (импульс роста в районе 12 часов):



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

Qlua: работа с лентой всех сделок.

Сегодня рассмотрим: 

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

Лента всех сделок (она же таблица обезличенных сделок, она же таблица всех сделок) — это тиковый массив сделок с одним или несколькими инструментами, в котором отражается информация по каждой сделке, в т.ч.: цена, объём и направление транзакции (покупка/продажа). Обычно для работы выбирается один инструмент, который отслеживается, реже 2 (например базовый актив и ближайший фьючерс на него). Встречал варианты, когда грузят сразу большой список, но в этом случае может сильно подвисать терминал.

Зачем нужна лента сделок: многие, пытаясь торговать внутри дня, проводят часы за медитативным наблюдением за биржевым стаканом. Однако стакан заявок это только намерение, далеко не все выставленные заявки перейдут в сделки. Более того иногда по некоторым акциям (2го и 3го эшелона) заявки в стакане могут активно «двигаться», создавая видимость, что в бумаге идет активная торговля, при этом, если открыть таблицу всех сделок, то будет видно, что реальных сделок практически нет.



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

Qlua: работа с метками, пишем торгового советника на индикаторах.

Сегодня рассмотрим:

Вывод текста на график
Вывод графических сигналов
Удаление меток с графика
Торговый советник на индикаторах
Удаление данных вечерней/утренней сессии с графика.

В торговом терминале почти нет графических инструментов, которых можно было бы задействовать через скрипт. Фактически разработчики оставили возможность использовать только индикаторы (неточность или ошибка в написании которых может подвесить весь терминал) и специальные метки, которые можно наносить на график.

И хотя сам терминал имеет возможность отрисовки различных линий, фигур, каналов, дуг, уровней, но из lua скрипта ничего этого до сих пор штатными методами не доступно. Разработчики оставили единственную возможность — вывод рисунка (bmp или jpg), поэтому желающий нарисовать, например, прямоугольник должен сперва его отрисовать где-то (или взять из библиотек рисунков), сохранить в нужном формате, и далее уже через метку поместить в конкретном месте графика. Вот такой вот «кружок авиамоделизма») Посмотрим как это работает.



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

Qlua: получение данных биржевых свечей с сервера брокера, обработка данных, пишем скрипт выгрузки котировок

Функция CreateDataSource
Получение количества свечек данных
Пауза для подгрузки данных
Получение по инструменту OPEN, HIGH, LOW, CLOSE, VOLUME
Обработка времени и даты
Закрытие источника данных
Примеры: получение данных последних 10 свечей, выгрузка новой минутной свечки после её закрытия, текущее значение простой средней SMA10 по минуткам
Простой скрипт выгрузки котировок

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

Более практичным вариантом является получение данных через функцию CreateDataSource, запрос осуществляется следующим образом:

ds, err = CreateDataSource(код класса, тикер инструмента, интервал)

Код класса: для акций «TQBR», для срочного рынка «SPBFUT».



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

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