Найти тему

Использование команды message при написании скриптов на QLUA (часть 2)

Всем привет!

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

Как Вы могли понять из предыдущего выпуска – суть моего подхода состоит в том, что бы полученные сообщения скопировать в Эксель и там проводить анализ.

Свою идею я буду излагать на одном из своих примеров.

Я создал скрипт, который с определенным интервалом времени смотрит котировочные стаканы по нескольким инструментам и показывает спред. При этом он показывает несколько показаний по спреду. Сначала какой он есть, потом показывает спред за исключением некоторого объема.

То есть чистый спред – это разница в процентах между самым лучшим предложением покупки и самым лучшим предложением продажи.

Внешний вид котировочного стакана
Внешний вид котировочного стакана

Затем берется некоторый объем в лотах. В скрипте были объемы 10,20,30,40 лотов.

Из стакана исключается определенное количество лотов с лучшим предложением по покупке, такой же объем с лучшими предложениями по продаже. И между полученными данными высчитывается спред.

В данном скрипте строка с выводом сообщения выглядит так:

message("Analiz_spreda".."#"..tekuzhaja_bumaga.."#".."Спред при объеме: #"..bigValue.."# составляет #"..spred2);

давайте разберем эту запись и ее элементы.

Analiz_spreda – это текстовая добавка, позволяет отфильтровать сообщения от этого скрипта (об этом обсуждали в прошлом выпуске).

tekuzhaja_bumaga – это переменная, в которую помещаются коды различных бумаг. – SBER, VTBR и т.д. какие мы пропишем в скрипте.

bigValue – это переменная, в которую помещается объем лотов, исключая которые нужно определить спред.

spred2 – это переменная в которую помещен рассчитанный спред.

Обратите снимание на символы «#» в команде message(). Они помогут нам разделить данные для последующего анализа.

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

-3

Копируем эти сообщения и вставляем в Эксель.

Получим примерно следующее:

-4

Нас интересует строка с сообщениями, поэтому остальное можно удалить. Также удаляем первую строку с заголовками данных.

-5

Выделяем первую колонку, как показано на рисунке выше. Переходим в раздел «Данные» и жмем кнопку «Текст по столбцам» и выбираем «с разделителем».

-6

На следующем шаге убираем все позиции, ставим галочку в позиции «другой» и в поле рядом вписываем символ «#».

-7

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

Далее мы можем применять к ним фильтры, формировать сводные таблицы и делать различные анализы, которые позволяет делать Эксель.

В общем, как-то так. Заканчивая с командой message(), я повторю – это простая команда, но я посвятил ей два выпуска, что бы подробнее рассказать о возможностях, которые она предоставляет в части вывода и анализа данных.

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

Всем удачи – всем пока!

⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

📃 Краткое содержание данного канала.

➖➖➖➖➖➖➖➖➖➖➖➖➖

Landingcentr.ru - разработка сайтов для малого и среднего бизнеса.

⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆