Избранное трейдера Ramil Shahattudinov

по

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 и совместной работе с кодом.



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

Qlua: введение.

Cерия статей по языку QLua и алгоритмической торговле для тех, кто хочет автоматизировать свою работу на финансовых рынках, освоить написание скриптов, индикаторов, торговых советников и роботов для терминала Quik.

В 2022 году ЦБ выпустил презентацию «Портрет клиента брокера». В ней указано, что в РФ всего 0,03% клиентов используют алгоритмическую торговлю.

Qlua: введение.


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

У меня нет задачи популяризировать эту тему, скорее помочь тем, кто будет идти той же дорогой. Дело в том, что открытой информации по qlua и алгоритмической торговле через Quik в сети немного: есть несколько сайтов энтузиастов, где кусочками выложены разные полезности, часть из этой информации порой уже устаревшая (работает только на более ранних версиях терминала), есть несколько коммерческих проектов (продажи роботов, либо обучения) там информация актуальная, но за неё нужно платить. Есть интересные библиотеки, но отдельные (например, какие-то библиотеки визуального интерфейса) могут отваливаться с появлением новых версий квика.



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

Получение тикеров торгуемых бумаг через getClassSecurities

Благодаря наводке @quant_trader (за что отдельное спасибо!), переписал свой первый скрипт из поста https://smart-lab.ru/blog/916765.php по выгрузке из терминала всех торгуемых бумаг. Теперь всё выполняется штатными средствами с помощью getClassSecurities.

Далее второй скрипт (из поста выше) выгружает из торгового терминала под закрытие дня (под закрытие основной, либо вечерней сессии — можно устанавливать, я делаю обе выгрузки) необходимые данные по всем бумагам списка.

Особенности запроса. Если ввести:

sec_list = getClassSecurities("TQBR")<br />message(sec_list)

то терминал выдаст строку, где через запятую будут все тикеры, при этом видим, что список не полон, обрывается на RTSB:

Получение тикеров торгуемых бумаг через getClassSecurities

Как выяснилось, это связано только с ограничением самого терминала на вывод строки (не более 899 символов).

При этом если посмотреть длину строки, то будет видно, что символов больше:

sec_list = getClassSecurities("TQBR")
message(tostring(string.len(sec_list)))

выдаст 1281

Разбив строку по запятым получим весь массив тикеров для дальнейшей работы:



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

Выгрузка данных на конец дня по всем акциям Московской Биржи

Иногда бывает необходимым проанализировать не отдельную бумагу, а рынок в целом.

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

Получить котировки на конкретную дату можно через сайт Московской Биржи (https://www.moex.com/ru/marketdata/#/mode=groups&group=4&collection=3&boardgroup=57&data_type=history&date=2023-06-27&category=main), но это не очень удобно т.к. требуется либо парсить (для чего нужен уже нетривиальный уровень в программировании), либо вручную выдергивать эту страницу, например в excel (тем, кто попробует выгрузить всё по кнопкам скачать Excel / CSV биржа предложит воспользоваться платной подпиской для получения данных).



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

Регистрация Thinkorswim

Всех приветствую.

Сделал видеозапись пошаговой инструкции, как зарегистрировать себе платформу Thinkorswim.



Для чего мне нужна демоверсия платформы:


Во-первых, могу строить профиль позиции.

Во-вторых, могу увидеть полное наименование тикера, для проверки маржинального обеспечения на сайте cmegroup.com

 

Инструкция:

1. papermoney.thinkorswim.com/platform/index.html#!/pmregister
2. Выбираем No
3. Генерируем данные с сайта www.fakenamegenerator.com/
4. Указываем свою почту Google
5. Скачиваем и устанавливаем приложение papermoney.thinkorswim.com/platform/index.html
6. Вводим логин и пароль во вкладку Paper Money


⚡Систематический риск⚡


⚡Систематический риск⚡🔸Систематический риск, также известный как недиверсифицируемый риск, риск волатильности или рыночный риск, влияет на рынок в целом, а не только на конкретную акцию или отрасль.
Отражает влияние экономических, геополитических и финансовых факторов.

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

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

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

Торговый Lua скрипт Cubigator для Quik.

Торговый Lua скрипт Cubigator для Quik.
Запустил торгового робота собственной разработки на языке Lua. Буду выкладывать сделки и результаты месячной торговли. Можно наблюдать онлайн его работу в телеге t.me/fxtradesignal
Коротко о стратегии. Робот торгует по тренду при пробитии суточного уровня, при сломе тренда ловит разворот, при отсутствии тренда и сигнала на разворот торгует в канале. Тейк-профита нет. Используется трейлинг-тейк. Будет трейлить хоть до бесконечности. Закрывает позицию когда картинка ломается. Стоп небольшой, зависит от уровней и волатильности. Никаких индикаторов принципиально не используется. В расчет берутся только уровни и волатильность инструмента. Таймфрейм M1, расчет данных проводится раз в минуту, соответственно минутные хвосты не обрабатываться, также стоп и тейк срабатывают по закрытию свечи. Инструмент фьючерс Si, но может работать и на любом другом.

Текущая версия показывает тестовые результаты: декабрь 13757 пункт, январь 6583 пункта, февраль 5945 пункт, март 1219 пункт.


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

Инструменты трейдера. Блокнот.

    • 04 апреля 2023, 18:02
    • |
    • Agasfer
  • Еще

Первое с чего начинается разработка стратегии – это идея. От чего она возникла это другой вопрос. Может прочитали статью в журнале или увидели интересные паттерны на графике и решили их проверить на прибыльность. Идею надо формализовать, когда вход /выход, фильтры, индикаторы и т.п. И тут возникает вопрос в каком удобном виде все это описать?

И тут вариаций на тему множество, бумажные блокноты, Word, заметки Google или онлайн дневники.

Наверное большинство начинало с бумажного рукописного текст. Я до сих пор иногда записываю идеи для торговых систем в блокнот, а потом это уже переношу в One Note. Эта привычка осталось со школы и института, когда не было современных телефонов и ноутбуков и все записывали в конспекты. Я и книги предпочитаю читать в бумажном виде, особенно по торговле. Удобней делать закладки и возвращаться к ним если нужно что-то просмотреть еще раз.

Но со временем возникла проблема объема накопленного материала и удобство его хранения. Статьи из журналов приходилось распечатывать, к ним уже делать записи и все это создавало большой объем макулатуры.



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

Показатели и коэффициенты, что они показывают и чем полезны?

🎓 Обучающий пост

EBITDA ( Earnings before Interest, Taxes, Depreciation and Amortization) – это прибыль до вычета расходов по выплате процентов, налогов, износа и амортизации. Благодаря этому показателю инвесторы могут сравнить эффективность двух разных компаний по их основной деятельности. Чем выше данный показатель – тем компания эффективнее работает.

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

P/E (Цена/прибыль) – данный коэффициент связывает цену акций компании с ее прибылью на акцию. Высокий коэффициент означает, что акции компании переоценены или инвесторы надеется на высокие темпы роста прибыли в будущем.

ROE (Рентабельность собственного капитала) – считается показателем прибыльности корпорации и того, насколько она эффективна в получении прибыли. Чем выше ROE, тем эффективнее руководство компании в получении прибыли и роста компании.



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

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