Приветствую читателей!
Практически пол года не писал новых статей и не публиковал новые видео с тематикой своего самого интересного, сложного и успешного изобретения «Робот Сетка».
Во-первых, взялся за доработку большого количества функций данного робота. Стоимость доработки у меня не высокая, на данный момент 1000р./час. Четыре года назад была стоимость 300р./час. Оплата моего труда, как программиста выросла в три раза, при росте цен чуть менее в 2 раза (по моей оценке 82% с 01.01.2020). Однако программирование, всё так же, является маленьким, незначительным хобби, на фоне основного бизнеса в виде небольшого магазинчика товаров для дома и ремонта.
Во-вторых, в упомянутом выше бизнесе, требовалось моё вмешательство. Бизнес вырос за последние годы. Взял нового сотрудника, своего друга, но дело не пошло, оказалось этого не его. Дружеские отношения не изменились – это главное. Месяц назад взял сотрудницу на место друга. Вроде, всё получается. Буду стараться максимально делегировать свои задачи и, тогда, появиться больше времени на программирование.
Вся работа организована через алгоритмы, которые идентифицируются комментариями (Поручение). Возможна работа одновременно с разными алгоритмами. Например, пользователь выставляет заявку с комментарием «1» — выставляется стоп-лосс и тейк-профит на расстоянии 0.5%. Выставляет заявку с комментарием «2» — выставляется стоп-лосс и тейк-профит на расстоянии 1%. Таких алгоритмов может быть бесконечно много. Достаточно один раз настроить и пользоваться готовыми условиями выхода из позиции.
Всем привет, только учусь работать с QUIK и LUA, возникла проблема с выводом баланса.
Вот скрипт:
function main()
Firm_ID = «MC0139600000»
client_code = «4105TE2»
moneyRu = getMoneyEx(Firm_ID, client_code, «EQTV», «SUR»,0)
TradeBalance = moneyRu.currentbal/2
message('Баланс RUB = '..moneyRu.currentbal)
if(FakeBalance>0)
then
message('Баланс RUB = '..moneyRu.currentbal)
else
message('Баланс для покупки = '..TradeBalance)
end
end
Выдает ошибку attempt to index a nil value (global 'moneyRu')
Буду очень благодарен если кто-нибудь подскажет в чем проблема.
Продолжаю улучшать Робот Сетка LUA.
Очередной задачей была добавление возможности выставления заявок в центр спреда.
Задача особенно актуальна в свете новых правил Московской Биржи, где мейкерские (лимитные) заявки освобождаются от биржевой комиссии.
Я всегда пользовался стратегией фронтраннинга, т.е. вставал впереди конкурента.
По просьбам трейдеров решил добавить возможность выставлять заявки в центр спреда.
На первый взгляд достаточно взять цены спроса и предложения из таблицы Текущие Торги в QUIK и посчитать «(bid+ask)/2», но не так всё просто.
Когда мы выставляем свою заявку, мы сами создаём новые цены спроса или предложения, т.е. конкурируем сами с собой. Спред будет сужаться до выполнения заявки по рынку.
Возможен вариант брать встречную котировку и вычитать (добавлять для продажи) из неё отступ в пунктах.
Н-р, для покупки формула будет выглядеть так: «ask-point*1». Цена спроса (bid) в формуле не участвует, поэтому наша заявка будет зависеть только от цены предложения.
Всем привет!
В данной статье хотел показать интересный подход формирования отчета из QUIK, который выдается в формате файла HTML и который можно посмотреть любым браузером.
В своем канале на Дзен, я показывал как можно получать информацию скриптами QLUA:
— как переносить информацию в Эксель;
— как записывать информацию в файл;
— как отражать информацию в собственной таблице QUIK.
Все эти способы достаточно ограничены в части оформления выдачи результатов. Если же нужную информацию переносить в файл HTML, то там мы практически ничем не ограничены и можем отображать нужную информацию любыми шрифтами, цветами и пр.
В качестве пример, я покажу скрипт, который запросит все доступные фьючерсы и выдаст их в файл в виде таблицы.
Для начала нам потребуется функция QLUA — getClassSecurities.
Данная функция выводит список всех бумаг указанного класса. В нашем случае команда getClassSecurities(«SPBFUT») выдаст нам список всех доступных фьючерсов. В результате мы получим одну строку с кодами бумаг, разделенные запятыми.