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

по

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%.

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

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

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



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

Мини-индекс VS IMOEX

Нашёл случайно интересную стратегию.

В прошлой статье Пример расчёта индекса Московской биржи я показал, как создать свой мини-индекс из 5-ти инструментов с наибольшим весом в индексе (Сбербанк*0.268+ГАЗПРОМ*0.2647+ЛУКОЙЛ*0.2629+ГМКНорНик*0.1127+Новатэк*0.0917).

Решил сравнить этот мини-индекс с IMOEX и очень удивился. Оказывается корреляция удерживается всю доступную историю в моём терминале с 2011-го года.

Ниже общий график в % с нулевой точкой на начало 2023 года. Видим мини-индекс (синий) то отстаёт, то опережает общий индекс (красный). До 2018 года мини-индекс отставал, но и нулевая точка тогда была бы другой.

 

 Мини-индекс VS IMOEX
  

 

Ниже 2020 год. В начале года мини-индекс опережал на 15%, а в октябре отставал на 14%. Если бы мы переложились из общего индекса (например SBMX ETF) в мини-индекс, то к концу года заработали бы дополнительно до +29%. Неплохая прибавка к +18% роста за год и 6% дивидендов.

 



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

Что означает изданный 10 мая указ о военных сборах: детальный разбор

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

Что означает изданный 10 мая указ о военных сборах: детальный разбор
Как говорится: «лайк, если узнал референс; ретвит, если вспомнил простые, но в то же время великие слова»

10 мая президент РФ подписал Указ о призыве на военные сборы в 2023 году. Обстановка нынче такая, что любое сочетание слов «призыв» и «военные» в одном предложении вызывает, скажем так, неоднозначные эмоции – поэтому мы решили подготовить отдельный FAQ по теме сборов.

Как обычно, квалифицированно подготовить материал мне помогал Кирилл Коршунов – руководитель практики «Мобилизационный консалтинг» в Адвокатском бюро КИАП. В апреле мы уже готовили с Кириллом две больших статьи по теме – если вы их в свое время пропустили, то рекомендую тоже ознакомиться:



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

Пишем торгового бота для акций

Перед прочтением этой статьи — ВАЖНО следующее: основная цель данной статьи заключается в том, чтобы показать как просто можно создать торгового робота, который может торговать российскими акциями или зарубежными акциями. Важно понимать, что создавая бота, вы лично несете ответственность за принимаемые им решения, инвестиционные операции и связанные с ними риски. Я не несу ответственности за решения, которые вы можете принять после прочтения этого материала. И я не даю никаких инвестиционных рекомендаций или советов. Не забывайте, что боты способны принести большие убытки, поэтому используйте их с осторожностью.

Пару слов обо мне

Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код:‑)

Выбор брокера и библиотек

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



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

Бизнес с нуля с ChatGPT

ChatGPT дали $100, чтобы он создал бизнес с нуля. Вот что из этого получилось:




Пользователь Twitter Джексон Фолл поделился интересной историей о том, как популярный чат-бот ChatGPT помог ему создать бизнес с нуля всего за несколько дней.

Фолл предоставил нейросети бюджет в $100 и попросил заработать как можно больше денег. При этом автор треда указал, что он может выступать связующим звеном для совершения нужных покупок и оформления документов. Чат-бот сразу же выдвинул довольно интересный бизнес-план, состоящий из следующих этапов:
  1. Приобретение домена и хостинга за $15;
  2. Выбор ниши из рекомендуемых — кухонные гаджеты, товары для животных, экологически чистые продукты. Создание контента и генерация реферальных ссылок на Amazon или участие в других партнёрских программах;
  3. Размещение статей и обзоров в соцсетях и на профильных форумах. Взаимодействие с аудиторией;
  4. Оптимизация под поисковые системы, подбор ключевых слов, настройка SEO.

ChatGPT также попросил своего «человеческого ассистента» отчитываться о ходе выполнения задач. Далее нейросеть придумала интересное название для домена и проверила его на возможность покупки. Первоначальный вариант EcoFriendlyFinds.com стоил $838, поэтому Фолл попросил более бюджетный домен и получил GreenGadgetGuru.com за $36 вместе с хостингом.

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

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