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

по

Qlua: получение данных с графиков терминала.

Продолжаем погружение в основы qlua. 

Идентификатор инструмента
Получаем количество свечей через getNumCandles
Получаем свечные данных через getCandlesByIndex
Читаем данные с индикатора SMA
Данные с верхней и нижней линии Price Channel
Графики с таблицы текущих торгов
Сравнение получение данных через CreateDataSource и через getCandlesByIndex

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

Получение данных котировок с графика цены.

Для начала на самом графике цены необходимо установить идентификатор.

Создаем график в торговом терминале, нажимаем правую клавишу мышки, выбираем «Редактировать», выбираем график цен:

Qlua: получение данных с графиков терминала.

Проваливаемся во вкладку «Дополнительно», и присваиваем id, например: SBER_ID:



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

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

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

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

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

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

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



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

Почему важен мани-менеджмент. Cпециально для СмартЛаба.

Ежегодный пост о важности стратегии управления капиталом, для тех, кто его еще не читал.

Как всегда буду очень благодарен за лайки, это сильно мотивирует писать еще интересного.

 

Важнейшее отличие прибыльной прибыльной торговой стратегии от убыточной — правильно посчитанный мани-менеджмент. Знать когда открыть сделку и какую акцию покупать это хорошо, но это половина дела. Так же нужно знать в каком объёме заходить в сделку. И это знание важно, как минимум, НЕ МЕНЬШЕ знания о направлении.

 


Давайте проведём простой мысленный эксперимент, который проиллюстрирует этот тезис лучше чем миллион пояснений.

Представьте себе, что мы играем в монетку. Каждый раз ставим на орёл или решку 1 доллар. Угадали, забираем 2 доллара, проиграли — отдаём ставку. Всего у нас 100 долларов, делаем серию из 10.000 ставок.

Внимание, вопрос:

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

— до 10%

— от 10 до 30%

— от 30 до 60%

— от 60 до 90%

— больше 90%

Сделайте паузу, подумайте минутку и выберите свой вариант.



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

Продажи тяжелых грузовиков в США и экономический спад

Продажи тяжелых грузовиков в США и экономический спад


Коллеги из https://www.isabelnet.com/u-s-heavy-trucks-sales-vs-recessions/ пишут, что в прошлом пики на рынке грузовиков в США достигались накануне рецессий. И сейчас рынок на пике.

===
Соответствует нашим ощущениям.
1. По нашим данным рынок тоже вблизи исторических максимумов. (Мы отслеживаем продажи тяжёлых грузовиков, а коллеги приводят «тяжёлые+ средние»).
2. По нашим ощущениям (падение реальной денежной массы в США рекордными за много десятилетий темпами) рецессия должна вот-вот наступить.

Qlua: завершаем апгрейд советника.

Сегодня дополним наш алгоритм советника следующими пунктами:

1. Пропуск «поздних» сигналов на старте.
2. Обработка советником обрыва связи.
3. Сохранение сигналов и логов в файл.


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

В нашем скрипте сигналы по каждому инструменту (массив signal) ранее могли принимать значение:

0 – вне позиции по инструменту



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

Qlua: размещаем таблицу в скрипте, остановка скрипта при удалении таблицы, работа с цветом. Пишем своего советника (начало).

Продолжаем изучение qlua, cегодня:
Интегрируем таблицы в структуру скрипта qlua.
Удаляем таблицы через DestroyTable.
Останавливаем скрипт через IsWindowClosed.
Обработка события закрытия таблицы через коллбэк.
Работа с цветом SetColor, Highlight, SetSelectedRow.
Пишем простого советника.

В прошлый раз мы рассмотрели как с помощью qlua создать таблицу в торговом терминале и заполнить её информацией из таблицы текущих торгов. Но это была статичная табличка, чтобы её «оживить» нужно разместить операции с нашей таблицей внутри структуры скрипта в функции main.

Саму таблицу мы можем создать до цикла while и внести неизменяемые данные (в нашем случае тикер и наименование бумаги), а уже заполнить цифрами и обновлять внутри цикла. Пока будет работать скрипт таблица будет обновляться.

function OnInit()
  tikers = {"GAZP", "SBER", "VKCO"}
  progname = "mytable :"
  timeout = 5000
end

function OnStop()
  do_it = false
  message(progname.." Финиш.")
end

function main() 
  message(progname.


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

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

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

1. Получение биржевых данных через функцию getParamEx
2. Выгрузка списка параметров функции getParamEx через DDE из торгового терминала
3. Создание пользовательских таблиц в торговом терминале


Одна из особенностей работы через квик это то, что можно получать достаточно большой объем биржевой информации по интересуемым инструментам. Большинство других платформ для алгоритмической торговли и терминалов в РФ будут выдавать только цену открытия, максимум/минимум дня, последнюю цену, цену закрытия, объемы по инструментам и максимум еще 3-5 каких-то дополнительных пунктов. В распоряжении тех, кто использует qlua огромная матрица параметров таблицы текущих торгов.


Получить их можно через функцию getParamEx:

getParamEx(код класса актива, инструмент, параметр), где:

код класса: например в случае акций это «TQBR», а в случае срочного рынка «SPBFUT».
инструмент: тикер.
параметр – один из параметров для соответствующей группы инструментом (об этом подробнее ниже).


Функция возвращает таблицу со следующими полями:



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

Qlua: структура скрипта для торгового терминала, обработка обрыва связи и её возобновления, работа с файлами

Сегодня начинаем уже писать полноценные скрипты для терминала, а не отдельные блоки кода на lua.

Пройдем:

  • Структуру типового скрипта qlua с примерами.
  • Обработку скриптом «обрыва связи» с сервером и возобновления работы.
  • Работу с файлами: запись, перезапись и чтение файла.
  • getScriptPath, getWorkingFolder

Структура скрипта

В торговом терминале можно запускать небольшие примеры на lua, как мы это делали ранее, но если говорить о постоянно работающем алгоритме, а не о компактной программе, которая должна выполнить только несколько коротких действий, то минимальная структура скрипта для квика будет содержать следующие функции:

Qlua: структура скрипта для торгового терминала, обработка обрыва связи и её возобновления, работа с файлами

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

function OnStop – функция остановки скрипта, активируется при нажатии клавиши «Остановить» в панели скриптов терминала.

function main – основная функция, создает отдельный поток для выполнения скрипта. Обычно внутри main создается цикл для непрерывной работы, т.к. без него функция выполнит один раз весь код, который в ней прописан и скрипт остановится.



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

Qlua: основы, часть 1

Весь материал, который здесь и далее будет рассматриваться по qlua, работает на 10й версии квика. Вполне допускаю, что со временем какие-то функции разработчики перепишут и в новых версиях что-то нужно будет сверять c мануалами, уточнять хелпом и на форумах, но предполагаю, что а) эти изменения будут вводиться очень не быстро и б) синтаксис и основа при этом останутся без существенных изменений.

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

  • message
  • конкатенация
  • фильтрация по сообщениям в терминале
  • PrintDbgStr
  • комментарии
  • типы данных
  • type
  • операции с числами
  • операции со строками
  • операции с таблицами
  • условные операторы

 

message

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

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

Для корректного отображения русских букв необходимо выбирать котировку файла Windows-1251 (об этом также в прошлый раз мы уже говорили). Иногда по этой причине некоторые разработчики пишут только на английском весь вывод текста в терминал, чтобы не заморачиваться с кодировкой, в т.ч. при размещении на github и совместной работе с кодом.



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

Как делать прогнозы ВВП точнее Центробанка и правительства

Теория на практике: прогноз ВВП за две минуты. Используем «денежный светофор» и «таблицу умножения ВВП».

Два шага

Вы потратите всего две минуты. Алгоритм простой, из двух шагов.

1. Взять среднегодовой темп роста реальной денежной массы (РДМ) из графика «денежный светофор».

2. Посмотреть в «таблице умножения ВВП», какой рост ВВП соответствует такому росту РДМ.

Всё! Вы обладатель прогноза ВВП, которые не уступает, а чаще превосходит по своей точности прогнозы Центробанка или правительства.

Разберём на примере

Выполним эти два шага на конкретных данных на 1 июня 2023 года.

Денежный светофор

График «денежный светофор» ежемесячно публикуется в этом блоге. Например, в этой публикации от 6 июня 2023 года: https://dzen.ru/a/ZH9gYE64fhKw0MM7?share_to=link

  Как делать прогнозы ВВП точнее Центробанка и правительства 

Нас интересует подпись в конце синей линии: +11,7%.

Первый шаг алгоритма выполнен.

Таблица умножения ВВП

Таблица умножения ВВП приведена в закреплённом сообщении блога в Дзен. Вот в этой публикации, которая так и называется «Таблица умножения ВВП».



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

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