Михаил Понамаренко (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Дубликатор сделок QUIK-QUIK LUA, Новинка!
 

  В середине 2015-го года я сделал простую, но достаточно функциональную утилиту для копирования сделок на языке программирования QPILE, потому, как новый язык программирования QLUA тогда имел много багов и недоработок. Программа оказалась популярна среди частных управляющих, как альтернатива сервисам автоследования COMON, EasyMANi и пр.

  С течением времени появлялись новые пожелания по доработке существующего дубликатора. Однако, в связи с отсутствием возможности перестановки и удаления заявок на срочном рынке для языка QPILE, пришлось написать совершенно новую программу.

   Почти четыре месяца назад, 18 декабря, начал разработку новой программы для копирования сделок для QUIK. Предыдущую программу на QPILE я написал менее, чем за месяц. Сначала рассчитывал сделать за пару месяцев, но проект оказался сложнее раза в два, чем предполагал. Ушло более 100 часов работы над программным кодом. Потом, часов 10 на описание. Пишу программы не каждый день и в своё удовольствие.

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

  Чем же лучше стала новая программа?

  В новой программе появилась возможность работать с двумя алгоритмами проскальзывания. Например, для покупки, выставляем заявку ниже цены предложения на 5 пунктов, если заявка не исполняется через 60 секунд, выставляем заявку на цену аск и она исполняется сразу. Такие два сценария были продуманы давно, но их нельзя было реализовать в QPILE для срочного рынка.

  Естественно, улучшено управление. Улучшен автоматический сканер всех открытых позиций при старте программы.

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

  Можно, конечно, попробовать сделать копирование сделок через сеть Интернет, чтобы можно было управлять счётом прямо у клиента на ПК, но особого спроса на эту опцию я не увидел. Поэтому, отказался от этой возможности в новой версии.

💾 Страница программы Дубликатор сделок QUIK-QUIK LUA

▶️ Канал YouTube

▶️ Канал RuTube

➤  Канал Telegram

Пассивная заявка в sendTransaction(), Как правильно заполнить
 
Не удалось добиться выставления пассивной заявки:
- Тестовый сервер ARQA.
- Брокер Финам, FUTSPREAD (календарные спреды).
Просьба продолжить список.
Пассивная заявка в sendTransaction(), Как правильно заполнить
 
Протестировал возможность выставления пассивных заявок через QLUA у разных брокеров: Финам, Сбербанк, ВТБ.
Есть разница в запросах между фондовой и срочной секцией.
У ВТБ на фондовой секции нет возможности выбора "Только пассивная" при выставлении заявки вручную, выставить через QLUA тоже не удалось.
Фьючерсы работают в пассивном режиме у всех брокеров, но вечные фьючерсы у меня выставляются только с использованием фиксированного метода "ACTION=NEW_ORDER".
Отслеживать параметр пассивности заявки можно в "Таблице заявок", столбец "Passive only": "Standard" - только пассивная, "Not passive" - не пассивная.
Привожу примеры карманов транзакций на основе которых настроил своего "Робот Сетка LUA".

Фондовая секция.
TRANS_ID=1;
CLASSCODE=TQBR;
ACTION=Ввод заявки;
Торговый счет=L01+00000F00;
К/П=Продажа; -- или "Купля"
Тип=Лимитная;
Тип по цене=По разным ценам;
Тип по остатку=Только пассивная; -- для ВТБ не работает (заменить на Поставить в очередь)
Тип ввода значения цены=По цене;
Назначение заявки=По умолчанию;
Тип события активации заявки=Обычная заявка;
Режим=TQBR;
Инструмент=GMKN;
Цена=138.90;
Лоты=1;
Примечание=***/;
Объем заявки=0.00;
Код внешнего пользователя=;
Время активации=;
Доп. инфо=;
Фирма торгового счета=;

Срочная секция (кроме вечных фьючерсов).
TRANS_ID=2;
CLASSCODE=SPBFUT;
ACTION=Ввод заявки;
Торговый счет=***;
К/П=Покупка;
Тип=Лимитированная;
Класс=SPBFUT;
Инструмент=GKH5;
Цена=1350;
Количество=1;
Условие исполнения=Только пассивная;
Комментарий=***/;
Переносить заявку=Да; -- если используется перенос, то заполняем Дата экспирации
Дата экспирации=20250228;
Код внешнего пользователя=;
Брокер ВТБ. Недоступна торговля на срочном рынке при начале сессии., Очень неприятная проблема для алготрейдинга.
 
Приветствую!
Проблему удалось решить установкой времени подключения к серверу.
Уже, почти месяц ни одного сбоя.
Было 6:00, установил 6:35.
Видимо, в 6:00 была конкуренция на подключения и сервер выдавал справочники не полностью.
Система-Соединения...
Брокер ВТБ. Недоступна торговля на срочном рынке при начале сессии., Очень неприятная проблема для алготрейдинга.
 
Вот такое сообщение приходит при попытке отправить транзакцию:  Указанная транзакция по указанному классу не найдена: "SPBFUT".
Т.е. QUIK вообще забывает утром, что у него есть срочный рынок.
Брокер ВТБ. Недоступна торговля на срочном рынке при начале сессии., Очень неприятная проблема для алготрейдинга.
 
Брокер ВТБ.
Если QUIK был запущен ранее,то с началом утренней сессии, выставление заявок на срочном рынке недоступно.
Проблема решается отключением/подключением сервера QUIK.



Данная проблема возникает примерно раз в неделю.
Но. очень неудобна, т.к. QUIK работает круглосуточно на удалённом сервере.
Роботы не могут совершать сделки на срочном рынке.
Впервые была замечена после открытия ИИС.
У других брокеров такой проблемы не наблюдаю.

Думаю, как временное решение, перезапускать или переподключать QUIK каждое утро через скрипт или планировщик.
Но этот "костыль" применять не хочется.

Что делал?
1. Менял все доступные сервера ВТБ.
2. Экспериментировал с настройкой "Очищать данные при смене даты" на "Локальной машине", на "Сервере".
3. Проверял настройку счетов. Все счета добавлены (также при недоступности торгов на срочном рынке)
4. Переустанавливал QUIK, загрузив файл настроек .wnd.
5. Писал в поддержку ВТБ, обещали решить ещё месяц назад, но проблема не решена.

Просьба помочь с решением проблемы.
Автоматический парковщик средств для QUIK
 

  Хотели робота, который закрывает все сделки в плюс? Такой есть у меня. Речь пойдёт о стратегии «Парковщик средств». Тестирую с начала года, результатом доволен. До использования робота у меня постоянно валялись несколько сотен тысяч рублей для резерва на покупку акций или других роботов. При ставке более 15% мне показалось это непозволительной роскошью и я создал эту простейшую стратегию. И, так, встречайте!

                                                 

  Описание.

  Торговая система позволяет автоматически размещать свободные средства на счёте в фонды ликвидности, ОФЗ и в прочие долговые инструменты. Например, если остаток средств больше 100т.р., робот купит на сумму, которая более 100т.р., необходимое количество паёв фонда ликвидности. Если остаток средств будет менее 100т.р., например, 190т.р., робот продаст купленные паи на 10т.р., чтобы привести счёт к свободному капиталу 100т.р. Размер свободного капитала указывается для комфортной работы других роботов или ручной торговли собственными стратегиями. Если иная торговля не предусматривается, можно указать свободный капитал, условно, 10т.р. и робот будет докупать паи или ОФЗ при пополнении счёта или поступлении дивидендов.

  Идеальным инструментом для парковки средств в моём случае, на момент написания, является фонд ликвидности ВТБ (LQDT), т.к. мой основной брокер ВТБ не взимает брокерскую комиссию по этому инструменту. Аналогичные фонды есть у других брокеров.

  Биржевая комиссия не взимается по мейкерским сделкам, поэтому робот был настроен на работу с лимитными заявками по противоположным ценам. Есть возможность выставления в центр спреда и пр.

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

  Если имеется два счёта, например, обычный и ИИС, можно использовать робот одновременно на нескольких счетах.

  Ввиду универсальности робота, возможно выставление заявок по определённым алгоритмам: фронтраннинг, цены по индикаторам, условия по индикаторам и условиям и т.д., что может быть актуальным для качественной покупки облигаций.

🎞️ Видео Торговая система «Парковщик средств»:

 Другие стратегии данного робота, которые могут Вас заинтересовать.

   «Сетка» - максимально навороченный комбайн для создания сеточных торговых систем на любых индикаторах и инструментах.

   «Арбитраж» - максимально навороченный комбайн для создания арбитражных и корзинных торговых систем на любых индикаторах и инструментах.

   «Ассистент» - универсальный торговый ассистент, который может выставлять не только стоп-лосс и тейк-профит, но и управлять выставленной заявкой, а также, открывать и закрывать ваши позиции по любым условиям и индикаторам, доступным в QUIK.

  «Спреды акций» - пример арбитража на лимитных заявках между фьючерсом на акцию и акцией.

💾 Страница программы Робот Сетка LUA

▶️ Канал YouTube

▶️ Канал RuTube

➤  Канал Telegram

🌐 Сайт https://pmntrade.ru

Робот Сетка. Арбитраж фьючерс-акция, Скрытый «грааль»
 

Настало время представить одну из самых успешных и «не убиваемых» торговых систем.

Ранее, я публиковал подобную систему только для покупателей робота, но описание было недостаточным и слишком общим. Соответственно, было много просьб опубликовать материал с подробным описанием.

Сложность системы я оценил 5 из 5, поэтому, если Вы не хотите напрягать свой мозг, лучше сразу закройте эту страницу. Будьте готовы к ошибкам, потерям на счёте, а также, нескольким дням изучения (возможно в пустую).

Торговая стратегия включает в себя основы арбитража и маркетмейкинга.

Торговля на финансовых рынках – самый конкурентный способ заработка. Это очень хорошо будет видно после понимания алгоритма этой системы.

Представленный вариант использования далеко не самый удачный. Арбитраж фьючерса и акции ГМК Норникель слишком очевиден и популярен, чтобы на нём можно было бы зарабатывать. Поэтому, выбрать более свободную поляну для сбора урожая Вам придётся самостоятельно.

Удобство реализации стратегии в роботе (юзабилити) не самое удачное. Например, можно было просто указывать процент без огромной формулы. Но максимальная универсальность робота важнейший фактор. Рано или поздно, потребуется добавление какой-либо возможности и Робот Сетка LUA, скорее всего, будет готов к её реализации.

Описание.

·         Тип: арбитражная, сеточная

·         Сложность: 5/5

Данная торговая система «Спреды акций» реализована на лимитных заявках.

1.       После указания количества входа, робот выставит три заявки по фьючерсу с отступами от расчётной цены с указанной процентной ставкой годовых, например, 21%.

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

3.       Далее, будут выставлены зеркальные заявки тейк-профит по фьючерсам с отступом в процентах годовых, например, 16%.

4.       Если заявка тейк-профит по фьючерсам исполнится (уменьшится общее количество позиции по фьючерсам), робот кратно уменьшит количество по акциям.


Преимущества торговой системы.

✅ Благодаря работе лимитными заявками возможен дополнительный заработок на неликвидности (ловле шпилек и широких спредах предложения-спрос).

✅ Благодаря работе лимитными заявками биржевая комиссия зачастую не взимается (мейкерские сделки).

✅ Возможно использование алгоритмов работы в стакане: фронтраннинг (поиск крупного объёма и выставление заявки перед ним), выставление в центр спреда предложения-спрос.

✅ Систему с постоянно выставленными лимитными заявками можно использовать для различных арбитражных идей: фьючерс-фьючерс, корзина фьючерсов-спот, корзина фьючерсов-фьючерс и т.д.

👉 Для прибыльной работы торговой системы важно иметь низкие брокерские комиссии. Например, 0.03% для акций и 0.08 р. для фьючерсов на сделку (вход и выход это две сделки).

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

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

Дополнительно.

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

Индикатор арбитраж PRO: http://pmntrade.ru/indikator_arbitrage_pro.html.

Пример формулы для получения расчётной цены для фьючерса из цены акции:

(GK- GKh*q.LotSize.GKZ4)/(GKh*q.LotSize.GKZ4)*100/q.DaysToMatDate.GKZ4*365, где:

GK – идентификатор графика фьючерсов (указывается на графике: дв.кл.лев.кн.мыши на названии графика/индикатора-Дополнительно-поле Идентификатор-ввести название, не являющееся паттерном, например, "GK ");

GKh – идентификатор графика акций (указывается на графике);

q.LotSize.GKZ4 – количество лотов в фьючерсе;

q.DaysToMatDate.GKZ4 – дней до экспирации фьючерса.

Утилита «Супер таблица» + «Спреды акций»: https://pmntrade.ru/super_table.html

Позволяется увидеть текущий спред фьючерс-акция. Для стратегии особенно важен столбец «Спред % год».


Дневник трейдера и учёт инвестиций для QUIK, История позиций, журнал сделок, дневник трейдера
 

Пожалуй, самая незаменимая в моей торговле разработка Утилита для QUIK «История позиций». Придумал в 2009-м, запрограммировал на QPILE, затем перевёл на QLUA. Программу писал для себя, не под заказ и по своим идеям. Продажи данной программы никогда не отличались большим количеством и стабильностью. Поэтому, считаю её самой недооценённой из десятков своих разработок. Попытаюсь донести полезность утилиты из реальных примеров использования.

Недавно выпустил обновление 20241024.

✅ Учёт комиссий для фондовой секции теперь разделён на биржевую и брокерскую.

✅ Учтена разница комиссий мейкерских и тейкерских заявок.

На скрине видно, как распределяются комиссии биржи и брокера. Сверил с отчётом брокера – всё сходится. Программа сразу рассчитывает и выводит информацию о комиссионных затратах. Напомню, в терминале QUIK информация о биржевой комиссии урезана, а брокерская и, вовсе, недоступна.

                                                 

✅ Учёт информации о позиции без ограничений.

Мне, как инвестору, очень важно видеть покупки акций пакетами. Например, в период коронавирусного кризиса, на фоне «вертолётных денег» QE, логика мне подсказывала, что, долларов станет больше и на один доллар можно будет купить меньше. Решил инвестировать в акции Полюс золото. Покупал пакетами. Так вот, информацию по этим позициям я мог наблюдать все эти годы. Для меня важный момент - это срок владения. Т.е. я продаю только пакеты, которые куплены более 3 лет назад, чтобы не платить НДФЛ. Вот, недавно продал эти пакеты акций. На скрине видно все мои пакеты покупок. Есть даты покупок, доход в %, доход в рублях, общий накопленный доход от всех пакетов. Дивиденды можно добавлять в таблицу вручную.

 

✅ Подходит как трейдеру, так и инвестору.

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

Чтобы отделять трейдинг и инвестирование, к заявкам инвестиционных позиций я добавляю комментарий (поручение) «инв…». Таким образом, используя внутренние фильтры программы, я всегда могу вывести отдельно статистику по инвестированию и по трейдингу отдельно. Причём, внутри трейдинга, могу отдельно вывести статистику по отдельным торговым стратегиям.

Продемонстрирую результаты одной из самых интересных стратегий последних месяцев. Я заметил существенную бэквордацию (фьючерс дешевле акции). У меня уже были куплены акции Сегежи ранее. Я продал акции и купил фьючерсы (переложился). Сейчас доход +12040р. или почти +10% за 39 дней. К экспирации переложусь обратно. Но, суть не в стратегии, а в том, насколько удобно вести учёт, применяя Историю позиций.  Да, можно записывать цены позиций вручную, пересчитывать на калькуляторе или в EXCEL – но это всё неудобно.

 

💾 Страница программы Утилита для QUIK «История позиций»

▶️ Канал YouTube

▶️ Канал RuTube

➤  Канал Telegram

🌐 Сайт https://pmntrade.ru

Таблица для QUIK Спреды акций бесплатно
 

Представляю свою новую программу Утилита для QUIK «Супер таблица».

Утилита предназначена для создания различных таблиц в торговом терминале QUIK. Пользователь может самостоятельно получать различные значения таблиц QUIK, проводить расчёты и выводить результат в Супер таблицу (аналог MS EXCEL). В комплекте готовый пример "Спреды акций":


Как можно использовать спреды фьючерс-акция?

✅ Зарабатываем процентную ставку (синтетическая облигация).

Находим наибольший годовой процент. Покупаем акции, продаём фьючерсы равного объёма. К экспирации разница нивелируется. Например, на момент написания «iСофтлайн» показывает хороший результат 26.11% годовых.


                                                 

Есть минусы стратегии.

1.       Стоимость акции + ГО фьючерса снижают доходность. Так ГО по S0Z4 сейчас 878.22.

1252+878.22=2130.22 замороженных средств;

38.20/2130.22*100/44*365=14.87% реальные проценты годовых.

Некоторые брокеры уменьшают ГО фьючерсов при использовании их в синтетической облигации.

2.       При малом сроке экспирации доля высока доля издержек.

(0.37+0.45)*2=1.64 брокерская комиссия за вход и выход (акции 0.03%+фьючерсы 0.45₽)

(0.37+0.37)*2=1.48 биржевая комиссия за вход и выход (тейкерские заявки)

2+3=5 спреды (рассматриваемые инструменты не отличаются ликвидностью)

1.64+1.48+5=8.12 общая комиссия

(38.20-8.12)/2130.22*100/44*365=11.71% более реальные проценты годовых (с учётом издержек)

Когда останется менее недели до экспирации, издержки станут выше прибыли.

3.       Налог НДФЛ.

(38.20-8.12)*0.87/2130.22*100/44*365=10.19% более реальные проценты годовых (с учётом издержек и налога)

Можно использовать ИИС.

Чтобы получать интересную доходность, нужно:

- выбрать брокера с уменьшенным ГО;

- иметь низкие комиссии, выбирать ликвидные инструменты и работать лимитными мейкерскими заявками;

- работать на ИИС.

✅ Зарабатываем на ошибочных ожиданиях.

Находим наименьший годовой процент.


 

Разбираемся в причинах, это может быть:

- ожидаемые дивиденды;

- эмиссия акций;

- перепроданность.

Ожидаемые дивиденды.

Смотрим дивиденды для PLZL на сайте «Доход» или в таблице для QUIK «Дивиденды».


 

Видим, что 2024.12.12 есть прогноз по дивидендам. Срок выплаты до экспирации PZZ4. Далее, посчитаем, верно ли котируется фьючерс.

15250*10*0.21/365*44=3860 спред расчётный при ставке 21% без учёта дивидендов (из таблицы Спреды акций)

1301.75*10=13017.5 дивиденды для объёма фьючерсов (фьючерс дороже акции в 10 раз)

13017.5*0.87=11325.22 дивиденды для объёма фьючерсов с налогом (налог с дивидендов спишут обязательно)

3860-11325.22=-7465.22 спред расчётный при ставке 21% с учётом дивидендов

-7053-(-7465.22)=412.22 разница между реальным и расчётным спредами

Получается, что фьючерс торгуется на 412.22₽ дороже, чем должен.

412.22/(152500+27856.68)*100=0.22% разница в спредах от замороженных средств.

Вывод: спред «PZZ4-PLZL» рассчитывается верно, возможности заработать нет.

Кстати, весь расчёт выше можно уместить в одну ячейку утилиты «Супер таблица».

Но не всегда всё очевидно. Например, в период коронавирусного кризиса 2020, была высокая вероятность невыплаты дивидендов по акциям Сбербанк. Рынок уже заложил дивиденды и фьючерс был в бэквордации. Я продал акции и купил фьючерсы. Таким образом, мне удалось зафиксировать дивиденды. Дивиденды были отменены, фьючерс перешёл из бэквордации в контанго, я продал фьючерсы и вернул купленные акции. Справедливости ради, я забрал немного меньше расчётных дивидендов, т.к. рынок заложил вероятность невыплаты, но недостаточно.

Эмиссия акций.

Фьючерс - это прогноз стоимости акции с добавленной процентной ставкой на момент экспирации. Эмиссия акций, т.е. «размывание» доли акционера, приводит к уменьшению стоимости. По акциям Сегежа ожидается эмиссия, рынок фьючерсов уже заложил, что акция будет дешевле. «Счастливые» владельцы акций Сегежа могут продать свой пакет акций и купить фьючерсы. Независимо от исхода, к экспирации, такая «перекладка» даст прибыль. Но не все брокеры дадут вам удержать фьючерс до конца ВТБ брокер закрывает контракты до экспирации.


 

Перепроданность.

Т.к. объёмы фьючерса меньше, его легче «продавить» в цене. Так, например, 24.02.2022 акции стоили ~130, а фьючерс ~85. Продать акции было сложно, т.к. были постоянные «планки». Я купил фьючерс SRM2 ниже 90, и продал его после возобновления торгов по 130. Хотя можно было остаться долгосрочным покупателем акций Сбера условно по 85.

💾 Страница программы Супер таблица (LUA) (бесплатно до 01.12.2024)

▶️ Канал YouTube

▶️ Канал RuTube

➤  Канал Telegram

🌐 Сайт https://pmntrade.ru

Копирование сделок., Копирование сделок.
 
Утилита для QUIK "Дубликатор сделок QUIK-QUIK"
http://pmntrade.ru/double_trades_quik-quik.html
Последние обновления:
20241029 – Добавление. Возможность дублирования всех сделок всех инструментов без необходимости указывать каждый.
20241029 – Добавление. Возможность указания проскальзывания в процентах.
Утилита для QUIK Дивиденды, Версия 2024.
 
Сделал очередное обновление для своей разработки "Утилита для QUIK Дивиденды".
В новых версиях появилась возможность переходить на страницу по акции на Смартлаб одним кликом, а также возможность увидеть все свои собственные предполагаемые дивиденды по акции или общее ожидание на предстоящий год.
Также, добавил возможность бесплатного использования до середины июля и на демо счёте ARQA без ограничений.



1.      Отображение предполагаемой доходности дивидендов на текущий момент. Таблица получает текущую цену акций и рассчитывает на основе полученных данных Доходность выплаты от дивидендов, а также отображает расчёт собственных ожидаемых дивидендов.

2.      Подсветка данных по параметру Доходность выплаты. Если упорядочить по сталбцу "Доходность", таблица утилиты выглядит так:

3.      Использование базы доходности ИК «Доходъ» http://www.dohod.ru/ik/analytics/dividend. В таблице используются аналитические данные ИК «Доходъ». Зайти по ссылке можно прямо из таблицы, нажав дв.клик.пр.кн.мыши на номере строки таблицы.

4.      Возможность сортировки данных по различным параметрам: Доходность выплаты, Дата закрытия реестра (оценка), Капитализация, млн. USD, DSI (индекс стабильности дивидендных выплат) и т.д. Удерживая CTRL, нажмите на название любого столбца таблицы утилиты лев.кн.мыши.

5.      Быстрый доступ к необходимым файлам и ссылкам:

дв.клик.лев.кн.мыши – открыть файл Дивиденды.csv,

дв.клик.пр.кн.мыши на номере строки– открыть страницу http://www.dohod.ru/ik/analytics/dividend,

клавиша «i» – открыть страницу программы.

Просто нажимайте клавиши на активной таблице скрипта. Теперь нет необходимости искать файлы и ссылки.

6.      Возможность быстрого перехода на страницу выбранной акции на сайте https://smart-lab.ru по кнопке [ SmartLab ].

7.      Возможность обновления данных базы в реальном времени. Обновить информацию можно самостоятельно. 1). Откройте страницу http://www.dohod.ru/ik/analytics/dividend (дв.клик.пр.кн.мыши на номере строки)и файл Дивиденды.csv (дв.клик.лев.кн.мыши). 2). На странице сайта выделите и скопируйте строки с данными. 3). Вставьте данные в файл  Дивиденды.csv используя конечное форматирование 4). Удалите лишние столбцы 5). Сохраните файл в формате CSV с подтверждением. 5). Данные в таблице утилиты обновятся сразу.

8.      Возможность копирования в EXCEL всей таблицы утилиты Дивиденды. 1). Нажмите одновременно Ctrl+Shift+C на активной таблице утилиты. 2). Создайте файл EXCEL. 3). Вставьте данные в созданный файл.

9.      Возможность добавления дополнительных новых акций в базу. Просто добавьте в файл Дивиденды.csv строки с необходимыми акциями, указав их код бумаги.

🤖 Страница программы Утилита для QUIK Дивиденды

▶️ Канал YouTube

➤  Канал Telegram

🌐 Сайт https://pmntrade.ru

Подсобите новичку с расчетом средней по фьючерсу., Как (где) взять инфо по сделкам на фьюче за несколько дней
 
Утилита для QUIK "История позиций" (LUA) решает данную и множество других задач учёта не реализованных в QUIK.  
После длительной работы QUIK: os.clock() =-0.001
 
Ясно, спасибо. Тогда os.clock() лучше не использовать или добавить костыль для фикса -0.001.
Если повторится попробую второе.
После длительной работы QUIK: os.clock() =-0.001
 
QUIK 11.0.3.1 работал без перезапуска четыре недели.
os.clock() =-0.001
Перезапустил QUIK всё стало на свои места.
Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 
Продолжаю делать описания разных возможностей "Робот Сетка". Расскажу о ТС «Ассистент».

Описание.
  Основной принцип работы прост: пользователь выставляет заявку, робот её «подхватывает», поддерживает, выставляет стоп-лосс и тейк-профит. Есть, также возможности создания алгоритма входа позицию по индикатору QUIK, времени, определённому параметру из таблиц QUIK и т.д. А, так же, возможность, работы в режиме хеджера, например, для арбитражной стратегии, когда пользователь совершает сделку по одному инструменту, а робот её «видит» и выставляет заявку по другому инструменту.

  Вся работа организована через алгоритмы, которые идентифицируются комментариями (Поручение). Возможна работа одновременно с разными алгоритмами. Например, пользователь выставляет заявку с комментарием «1» — выставляется стоп-лосс и тейк-профит на расстоянии 0.5%. Выставляет заявку с комментарием «2» — выставляется стоп-лосс и тейк-профит на расстоянии 1%. Таких алгоритмов может быть бесконечно много. Достаточно один раз настроить и пользоваться готовыми условиями выхода из позиции.


Загрузка.

  1. Загрузка вкладки. Пр.кн.мыши на названии любой вкладки QUIK-Загрузить вкладку из файла-переходим в папку [QUIK]\lua\Робот Сетка\Стратегии-выбираем файл вкладки Ассистент.tab-Открыть.
  2. Замена инструмента. Пр.кн.мыши на таблице Текущие торги (CRTL+E) — Редактировать таблицу – выберите инструмент – Добавить – Да. Далее, можно воспользоваться привязкой инструмента, якорем справа вверху. После нажатия на якорь в таблице Текущие торги, появится якорь на графике, стакане котировок и др. таблицах. Робот использует только таблицу Текущие торги и график. Таблицы и график могут располагаться на других вкладках.
  3. На запущенной таблице робота (не важно на какой он вкладке): нажать [НАСТРОЙКИ]-Меню-Открыть-[QUIK]\lua\Робот Сетка\Стратегии\Ассистент\Ассистент.csv.
  4. По умолчанию, параметр «Количество входа в позицию» равен 0. Для начала торговли рекомендуется указать минимальное количество.

Примеры настроек.

Стоп-лосс и тейк-профит в процентах (Стратегии\Ассистент\Ассистент 1.csv)

Стоп-лосс и тейк-профит по индикатору Канал цены (Стратегии\Ассистент\Ассистент 2.csv)

Фронтраннинг (опережение в стакане котировок) (Стратегии\Ассистент\Ассистент 3.csv)

Котирование опционов центрального страйка по биржевой теоретической цене (Стратегии\Ассистент\Ассистент 4.csv)

Трейлинг-стоп от цены открытия позиции (Стратегии\Ассистент\Ассистент 5.csv)

Тайм-трейлинг-стоп от цены открытия позиции в пунктах (Стратегии\Ассистент\Ассистент 6.csv)

Тайм-трейлинг-стоп от цены открытия позиции в процентах (Стратегии\Ассистент\Ассистент 7.csv)

Арбитраж (хеджирование) на основе количества (Стратегии\Ассистент\Ассистент 8.csv)

Арбитраж (хеджирование) на основе объёма (Стратегии\Ассистент\Ассистент 9.csv)

Айсберг-заявка (Стратегии\Ассистент\Ассистент10.csv)

Стоп-лосс и тейк-профит в процентах (Стратегии\Ассистент\Ассистент 1.csv)

  Указываем «Количество входа в позицию».

  Выставляем лимитную заявку (или входим по рынку) покупки с комментарием «1» или продажи с комментарием «2». После исполнения заявки будут выставлены стоп-лосс и тейк-профит в процентах.

  Если позиция будет закрыта по рынку раньше, стоп-лосс и тейк-профит снимаются.



Комментарий для заявок: 1,2

   Указаны шаблоны через запятую. В примере их два, но может быть неограниченно.

Код инструмента: ?assist

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

Тип заявки для входа: b,s

   Под шаблоном «1» будут выставляться лимитные заявки покупки, под шаблоном «2» — продажи.

Количество входа в позицию: 0,0

   Указано количество для каждого шаблона, если указать другое количество, то робот скорректирует на указанное.

Цена входа в позицию: 0

   Когда цена указана «0» робот не переставляет заявку входа, оставляет её по цене, указанной пользователем.

Стоп-лосс: 1%

   После входа в позицию, на расстоянии 1% от цены входа, будет выставлена условная стоп-заявка стоп-лосс.

Цена тейк-профит: 1%

   После входа в позицию, на расстоянии 1% от цены входа, будет выставлена лимитная заявка тейк-профит.

Проскальзывание стоп-заявок: 0.1%

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

Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 
Цитата
Serge123 написал:
>  Робот торгует на моём реальном счёте без вмешательств на удалённом сервере VPS. Результатом работы доволен.

Хотелось бы посмотреть видео, в котором вы заходите на свой брокерский аккаунт и показываете результаты работы за последнеи 3 года...
Вот, смотрите  :lol: :
Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 
Выставление заявок в центр спреда
Продолжаю улучшать Робот Сетка LUA http://pmntrade.ru/robot_setka_lua.html.

Очередной задачей была добавление возможности выставления заявок в центр спреда.

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

Я всегда пользовался стратегией фронтраннинга, т.е. вставал впереди конкурента.

По просьбам трейдеров решил добавить возможность выставлять заявки в центр спреда.

На первый взгляд достаточно взять цены спроса и предложения из таблицы Текущие Торги в QUIK и посчитать «(bid+ask)/2», но не так всё просто.

Когда мы выставляем свою заявку, мы сами создаём новые цены спроса или предложения, т.е. конкурируем сами с собой. Спред будет сужаться до выполнения заявки по рынку.


Возможен вариант брать встречную котировку и вычитать (добавлять для продажи) из неё отступ в пунктах.

Н-р, для покупки формула будет выглядеть так: «ask-point*1». Цена спроса (bid) в формуле не участвует, поэтому наша заявка будет зависеть только от цены предложения.

Но идеально правильный вариант брать котировки из стакана, заглядывать в таблицу заявок, вычитать своё количество и, только потом, считать центр, в уже очищенном от своего количества, стакане.

Вот такая, на первый взгляд, лёгкая задача.
Пример расчёта индекса Московской биржи, Инструкция по созданию в QUIK
 

Довольно часто у меня спрашивают, как создать свой индекс акций или портфель. Решил сделать инструкцию.

1.      Создаём копию индекса Московской биржи из акций.

- Вес акций можно взять https://www.moex.com/ru/index/IMOEX/constituents/ или https://smart-lab.ru/q/index_stocks/IMOEX/. Рекомендую второе, т.к. МБ даёт только скриншот таблицы, а на SMART-LAB можно скопировать таблицу выделением в EXCEL. Хотелось бы выгрузку в *.csv, но и за это СПАСИБО.


Важно запомнить, вес бумаг постоянно меняется. Чем больше дорожает бумага относительно остальных, тем больше её вес. Также, возможно удаление биржей бумаг из индекса и добавление новых.

- Находим примерный минимальный объём на депозите для реализации. Для этого делим цену каждой акции на коэффициент веса и берём максимальное число.

Например, для акций «Транснф ап» получим:

122300 / (0.55 / 100) = 22 236 363 р.

Где:

122300 – цена акции Транснф ап;

0.55 / 100 – вес в % делим на 100, получаем коэффициент.

Но, даже ₽22млн. Не даст идеального повторения индекса.

Чем больше сумма на депозите, тем больше точность повторения индекса.

Например, если в распоряжении счёт ₽100млн., индекс повторить легко. Просто берём количество акций необходимое для реализации веса. Для акций «Сбербанк» получим:

100 000 000 * (14.82/100) / 235.29 = 62986 акций

Где:

100 000 000 – депозит;

14.82/100 - вес в % делим на 100, получаем коэффициент;

235.29 – цена акции «Сбербанк».

Единственное, нужно учитывать количество лотов. Для акций «Сбербанк» это 10 акций, поэтому, нам нужно купить 62986 / 10 = 6298 лотов.

2.      Создаём мини индекс Московской биржи из основных акций.

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

- Выбираем 5 акций с самым большим весом. Например,

Сбербанк       14.82%

ГАЗПРОМ ао 14.64%

ЛУКОЙЛ         14.54%

ГМКНорНик   6.23%

Новатэк ао     5.07%

- Получаем сумму процентов:

14.82+14.64+14.54+6.23+5.07=55.3

В общем-то, данный расчёт говорит, что мы будем повторять индекс чуть больше, чем на 55%.

- Определяем вес каждой акции для нашего мини индекса.

Получим коэффициент компенсации. На него нужно.

100 / 55.3 = 1.8083

Теперь достаточно просто умножить вес каждой акции на коэффициент компенсации.

Сбербанк       14.82%*1.8083=26.80%

ГАЗПРОМ ао 14.64%*1.8083=26.47%

ЛУКОЙЛ         14.54%*1.8083=26.29%

ГМКНорНик   6.23%*1.8083=11.27%

Новатэк ао     5.07%*1.8083=9.17%

- Вычисляем количество лотов для каждой акции.

Например, для акций «Сбербанк» при депозите 100 000р.

100 000 * (26.80/100) / 235.29 / 10 = 11 лотов

3.      Создаём график собственного индекса в QUIK

Штатного индикатора в QUIK нет, но я написал универсальный индикатор Арбитраж PRO при помощи которого можно решить задачу.

Я подготовил архив с готовой вкладкой для QUIK, где индекс уже создан:

https://disk.yandex.ru/d/jkhnhdgLsjZ2Wg

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


- Привязываем графики к индикатору. Для этого нажимаем лев.кн.мыши на названии графика-Дополнительно-указываем Идентификатор (можно скопировать из названия). Названия идентификаторов нам потребуются далее. Аналогично нужно задать для остальных инструментов. Можно в этом же окне, выбирая слева инструмент.

- Загружаем индикатор Арбитраж PRO в новую область нашей диаграммы. В

Поле «Выражение» задаём идентификаторы с весами и складываем их:

Сбербанк*26.8+ГАЗПРОМ*26.47+ЛУКОЙЛ*26.29+ГМКНорНик*11.27+Новатэк*9.17

Можно сразу перевести в коэффициенты, но динамику это не изменит.

Сбербанк*0.268+ГАЗПРОМ*0.2647+ЛУКОЙЛ*0.2629+ГМКНорНик*0.1127+Новатэк*0.0917

4.      Нормализуем наш мини индекс.

Например, нам нужно сравнить наш мини индекс с IMOEX.

- Добавляем график IMOEX в область индикатора. Для этого нужно кликнуть именно на область индикатора, аналогично примеру выше, добавить новый инструмент IMOEX, важно убрать галочку «Поместить в новую область». Скорее всего, получим малоинформативный график с большой разницей между значениями индексов.

- Теперь нам нужно найти сближающий коэффициент. Например, мы хотим видеть график, на котором наш индекс приравнен к IMOEX на текущий момент расчёта. Для этого берём последнее значение нашего мини индекса и делим его на значение IMOEX:

318389.35/2630.87=121.02

Далее, нам нужно разделить значение нашего мини индекса на сближающий коэффициент:

(Сбербанк*26.8+ГАЗПРОМ*26.47+ЛУКОЙЛ*26.29+ГМКНорНик*11.27+Новатэк*9.17)/121.02

 

Получили более адекватный график, говорящий нам, что в последнее время наш индекс уступает IMOEX. Это произошло из-за отставания ГМКНорНик, Новатэк, ГАЗПРОМ. Сбербанк не смог вытащить эту компанию. Вес каждой акции пересчитывается индикатором Арбитраж PRO на каждый бар отдельно в зависимости от цены.

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

297392.87/2154.12=138.05

(Сбербанк*26.8+ГАЗПРОМ*26.47+ЛУКОЙЛ*26.29+ГМКНорНик*11.27+Новатэк*9.17)/ 138.05

 

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

Наш индекс: 297392.87

IMOEX: 2154.12

 

Теперь нажимаем лев.кн.мыши на названии графика-Дополнительно-ставим галочку «Процентное изменение»-вводим значение индикатора/графика на момент отсчёта-подтверждаем.

 

Аналогично поступаем с другими данными диаграммы, в нашем случае с графиком IMOEX. Получаем такой график:

К слову, возможность QUIK «Процентное изменение» позволяет создавать множество интересных графиков. Значение этих графиков может быть подхвачено роботами, например, моим Робот Сетка LUA.

Без всяких дополнительных индикаторов, QUIK способен показать вот такой график:

Маркеры рассылки, Новый неизвестный параметр в Информационном окне
 
Обратил внимание на новый неизвестный параметр в Информационном окне - Маркеры рассылки.
В инструкциях информации нет, поэтому есть вопросы:
1. Как он формируется и для чего можно использовать.
2. Как вызвать из LUA.
Опытным путём выявил, что маркер, во время загрузки терминала принимает значения :0, а после загрузки всех таблиц :1.
Это может быть полезно для правильного старта скрипта, когда нам известно, что все таблицы подгрузились.

 
Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 

Продолжаю бесплатный период своего робота.
Наибольший интерес вызвали торговые системы арбитража.
Публикую долгожданное большинством видео QUIK. Робот Сетка. ТС «Арбитраж».
Хочу отметить, что представленный пример с разницей акций Сбербанк-Сбербанк-ап представлен для общего понимания.
Робот может реализовать не только парный арбитраж.
Возможно реализовать портфельный арбитраж, можно использовать любые торговые инструменты в QUIK, можно использовать фронтраннинг, котировать другие инструменты с хеджированием и многое другое.
Заявки на разработку роботов не рассматриваю, т.к. пишу для себя и торгую на бирже тоже для себя.

Описание торговой системы «Арбитраж».

Возьмём два инструмента: Сбербанк об. по 137.18 и Сбербанк пр. по 131.85. Известно, что некоторые инструменты коррелируют между собой, т.е. цены двигаются в одном направлении. Однако, есть небольшие отличия в движении этих активов. Можно торговать эту разницу.

👉 Создадим график разницы цен Сбербанк об.-Сбербанк пр.  137.18-131.85=5.33. Назовём его «арбитражный график», и далее, будем ориентироваться на него.

👉 Теперь можем торговать арбитражный график, как обычный инструмент.

 — Если нужно КУПИТЬ арбитражный график, то ПОКУПАЕМ 1-ый инструмент, 2-ой продаём.

 — Если нужно ПРОДАТЬ арбитражный график, то ПРОДАЁМ 1-ый инструмент, 2-ой покупаем.

Т.е. направление 1-го инструмента равно направлению арбитража.



👉 На Московской бирже доступны Календарные спреды на фьючерсы, позволяющие реализовать арбитраж без использования этой стратегии. Для работы на календарных спредах можно использовать стратегии «Сетка», «Канал цены», «Мувинг» и др.

Преимущества и недостатки арбитражных торговых систем.

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

✅ Вероятность заработка на арбитражном графике выше, чем на обычном. Это связано с дополнительным воздействием корреляции. Например, купив что-то недооценённое, и продав что-то переоценённое, вероятность увеличивается в два раза. Т.к. действуют две неэффективности одновременно.

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

Получить дату закрытия реестра по дивидендам
 

✅ Для получения наименований переменных, можно использовать экспорт через DDE с включенной опцией формальных заголовков.

✅ Параметр доступен не у всех брокерских компаний. Например, у Открытие Брокер столбец доступен, но значений нет.

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

 
QUIK 10, Ошибки, зависания и пр.
 
Спасибо Вам большое! Проверил, работает без зависаний.
QUIK 10, Ошибки, зависания и пр.
 
Имеем:
☑️ QUIK 10.0.0.181
☑️ Win10 x64
⛔ Зависаем через 10-600 сек. при запуске незатейливого скрипта:
Код
function main() -- Функция, реализующая основной поток выполнения в скрипте. Для ее выполнения терминал QUIK создает отдельный поток.
   is_run = true -- включение бесконечного цикла
   while is_run do -- повторяющийся цикл, пока is_run = true
         _tab = getItem("depo_limits", 1)
      sleep(50) -- приостановка выполнения скрипта в мс. зависает и при 1000, только реже
   end -- выход из цикла: повторяющийся цикл, пока is_run = true
end -- выход из функции: main
Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 

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

В начале 2021-го года я опубликовал полноценную версию робота для бесплатного пользования в целях тестирования, т.к. не хотелось продавать «сырой» продукт с ошибками. Тестирование продлеваю уже полтора года.

👉 Робот торгует на моём реальном счёте без вмешательств на удалённом сервере VPS. Результатом работы доволен.

👉 Ошибок всё меньше, но есть над чем работать.

👉 Для кого этот робот? Робот не для тех, кто ждёт кнопку «Бабло». Да, есть возможности загружать готовые стратегии, но необходимо разбираться, что для чего и, как работает. Это отличная игрушка исключительно для тех, кто любит разбираться и думать.

👉 Почему планирую продавать, а не сам зарабатываю своим роботом на рынке? Я зарабатываю на рынке своим роботом, но дополнительный доход не помешает.

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

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

Страница программы: http://pmntrade.ru/robot_setka_lua.html

Видеопрезентация: https://youtu.be/AFsLYLmfRx4


▶️ Канал YouTube

➤ Канал Telegram

Групповое добавление инструментов в таблицу.
 
Я уже почти четыре года жду https://forum.quik.ru/messages/forum8/message30387/topic3563/#message30387
Групповое добавление инструментов в таблицу.
 
Как вариант реализации можно сделать групповое удаление.
1. Выделяешь строки в таблице ТТ (CTRL+лев.кн.мыши, это уже реализовано)
2. Перетаскиваешь за пределы таблицы ТТ (сейчас удаляется только одна строка).
Сбербанк getInfoParam("SERVER"), Выводится некорректное строковое значение
 
Да, действительно так. Сверил в http://arbatova.ru/recode.html
Функции конвертирования для LUA из DOS (866) в Win-1251, я так понимаю, нет.
Будем пока называть "Сбербанк" - "‘Ѓ…ђЃЂЌЉ".
Сбербанк getInfoParam("SERVER"), Выводится некорректное строковое значение
 
Сбербанк getInfoParam("SERVER") выводит €’‘ QUIK ‘Ѓ…ђЃЂЌЉ
Какая кодировка и есть возможность конвертировать?
Заранее спасибо!
QUIK 8.13 индикаторы перестали загружаться из подпапок., Раньше было лучше...
 
Цитата
swerg написал:
Не смог найти ветку на форуме, но точно помню, что писал в поддержку предложение запускать из папки LuaIndicators только файлы  *.lua
Они отписались, что в 8.13 это реализовали... Явно отсюда ноги растут.

Простите меня, люди!  

А еще обнаружил поиском такую ветку форума с запросом 2-х летней давности:  https://forum.quik.ru/forum10/topic3758/  (это не моё!!)
Сергей, будьте осторожны в своих желаниях!  :lol:  Попросите поддержку вернуть поиск в подпапках, но исключать дубли индикаторов. Такой вариант всех устроит.
Неполные лоты валюта. Коды класса и инструментов
 
Цитата
Михаил Понамаренко написал:
Код инструмента   Код классаAFXCURR1   USDRUB_TOMAFXCURR1   EURRUB_TOM
Ошибочка вышла:
Код класса   Код инструмента
AFXCURR1   USDRUB_TOM
AFXCURR1   EURRUB_TOM
QUIK 8.13 индикаторы перестали загружаться из подпапок., Раньше было лучше...
 
Начиная с QUIK 8.13 все файлы индикаторов нужно помещать исключительно в [QUIK]\LuaIndicators.
Ранее, было удобно располагать каждый индикатор в отдельной папке, т.к. индикатор может иметь свои рабочие файлы, инструкции, библиотеки и т.д.
Теперь, же приходится всё держать в LuaIndicators.
Можно ли вернуть удобную возможность?

 
Неполные лоты валюта. Коды класса и инструментов
 
У брокера Открытия иначе.

Неполные лоты
Код инструмента   Код класса
AFXCURR1   USDRUB_TOM
AFXCURR1   EURRUB_TOM

Торжество самодеятельности брокеров.

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

function main() -- Функция, реализующая основной поток выполнения в скрипте. Для ее выполнения терминал QUIK создает отдельный поток.
   is_run = true -- включение бесконечного цикла
   local is_stop_orders, is_orders, is_trades, is_money_limits, is_depo_limits, is_futures_client_limits, futures_client_holding, is_assets, is_last, is_chart
   while is_run do -- повторяющийся цикл, пока is_run = true
      if isConnected() == 1 then -- если есть подключение к серверу
         if is_stop_orders == nil and getNumberOf("stop_orders") > 0 then
            message("Таблица стоп-заявок="..tostring(os.clock()),1) -- системное сообщение
            is_stop_orders = true
         end
         if is_orders == nil and getNumberOf("orders") > 0 then
            message("Таблица заявок="..tostring(os.clock()),1) -- системное сообщение
            is_orders = true
         end
         if is_trades == nil and getNumberOf("trades") > 0 then
            message("Таблица сделок="..tostring(os.clock()),1) -- системное сообщение
            is_trades = true
         end
         if is_money_limits == nil and getNumberOf("money_limits") > 0 then
            message("Позиции по деньгам="..tostring(os.clock()),1) -- системное сообщение
            is_money_limits = true
         end
         if is_depo_limits == nil and getNumberOf("depo_limits") > 0 then
            message("Позиции по инструментам="..tostring(os.clock()),1) -- системное сообщение
            is_depo_limits = true
         end
         if is_futures_client_limits == nil and getNumberOf("futures_client_limits") > 0 then
            message("Ограничения по клиентским счетам="..tostring(os.clock()),1) -- системное сообщение
            is_futures_client_limits = true
         end
         if is_futures_client_holding == nil and getNumberOf("futures_client_holding") > 0 then
            message("Позиции по клиентским счетам="..tostring(os.clock()),1) -- системное сообщение
            is_futures_client_holding = true
         end
         if is_assets == nil and getPortfolioInfoEx("MC0139600000", "35158", 2).assets ~= nil then -- требуется ввод параметров!
            message("Клиентский портфель="..tostring(os.clock()),1) -- системное сообщение
            is_assets = true
         end
         if is_last == nil and getParamEx2("TQBR", "SBER", "last").result == "1" then -- требуется ввод параметров!
            message("Текущие торги="..tostring(os.clock()),1) -- системное сообщение
            is_last = true
         end
         local chart = getCandlesByIndex("chart", 0, getNumCandles("chart") - 1, 1)[0].close
         local chart = getCandlesByIndex("chart", 0, getNumCandles("chart") - 1, 1)
         if chart ~= nil then
            chart = chart[0]
            if chart ~= nil then
               chart = chart.close
            end
         end
         if is_chart == nil and chart ~= nil then
            message("График="..tostring(os.clock()),1) -- системное сообщение
            is_chart = true
         end
      end
      sleep(1) -- приостановка выполнения скрипта в мс.
   end
end
Первоначальные настройки индикаторов из LUA
 
Присоединяюсь к просьбе.
Несколько лет назад моё пожелание записали. )
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Поймал сегодня утром терминал на долгой загрузкой заявок.
Соедиение прошло в 5:58:23, а все, 1494 заявки подгрузились более, чем через 4 минуты.
При этом, некоторые таблицы,например, Клиентский портфель, были пусты.
Это наводит на мысль: «если Клиентский портфель доступен, таблица заявок загрузилась полностью.



 
Валюта ILS на Санкт-Петербургской бирже
 
Кто-нибудь подскажет, что это значит.
Судя, по коду израильский шекель. )
На сайте биржи валюта USD.
Check Point Software Technologie
https://spbexchange.ru/ru/stocks/inostrannye/Instruments.aspx



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

Потом пытался повторить обновлением данных, но фокус не прошёл.
Таблица загрузилась за пару секунд.

Теперь я понял, в чём дело, когда брокер утром включает сервер,
подключаются все запущенные терминалы клиентов.
Соответственно, сервер брокера не может отдать быстро эти данные,
т.к. одновременно, много желающих их получить.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Таблица Текущие торги загружается одна из первых, поэтому если она загрузилась, это не значит, что загрузилось всё остальное.
Практическим опытом узнал, что последним загружается график, который находится первым в списке выбора графиков.
Например, график SiM1 загрузится позже RIM1.
Хотелось бы узнать совет поддержки.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Можно просто сделать так:
Код
      if ToNumber2(string.gsub(getInfoParam("CONNECTIONTIME"), '%:', '')) < 10 then -- если терминал на связи не более 10 сек.
         sleep(10000) -- пауза 10 сек. (ожидание заполнения таблиц)
      end -- выход из условия: если терминал на связи не более 10 сек.
Но данные могут загрузиться, как быстрее, так и позже.
Может у кого есть более подходящее решение?
ParamRequest и getParamEx2, Как получить актуальные данные через getParamEx2?
 

1.    Инструмент и параметр есть в таблице: параметр status доступен в getParamEx2, ParamRequest=true. Всё верно.

2.    Инструмент есть в таблице, параметра status нет (приходит «» вместо «торгуется»): параметр не доступен в getParamEx2, ParamRequest=true (почему true?)

3.    Инструмент и параметр был в таблице, но потом удалён из таблицы: параметр доступен в getParamEx2, ParamRequest=true (запоминает до обновления справочников Система-Заказ данных…-Перезаказать данные-Торговые данные текущей сессии или новой сессии, перезапуск QUIK, не прекращает получение параметра, несмотря на отсутствие его в таблице)

Два вопроса.

1.    ParamRequest – не работает должным образом, т.к. принимает true при отсутствии данных?

2.    «Умный заказ» данных и заказ данных на основе открытых таблиц из прошлых версий ничем не отличаются?

Поддерживаю острую необходимость запроса параметров из LUA, независимо от открытых таблиц (по аналогии Subscribe_Level_II_Quotes).

Получить имя исполняемого скрипта., Возможно?
 
Цитата
s_mike@rambler.ru написал:
В oninit передается путь к скрипту
Код
OnInit(script_path)
 message(tostring(script_path), 1) -- отладка скрипта
end

Спасибо, выдаёт полный реальный путь с именем файла к компилированному скрипту.
Запаздывание OnOrder, Телега неумолимо бежит впереди лошади
 
Пока использую и коллбеки и таблицу. Работа с коллбеками намного быстрее. Думается, что коллбек возникает именно из таблицы заявок, а не из полученных от сервера данных.
Получить имя исполняемого скрипта., Возможно?
 
Обнаружил, что debug.getinfo(1).short_src для компилированного файла выдаёт его путь и имя до компиляции.
Есть способ узнать имя для компилированного файла?
Запаздывание OnOrder, Телега неумолимо бежит впереди лошади
 
Здравствуйте!
1. Заявка исполняется.
2. В массиве таблицы эта заявка уже со статусом Исполнена.
3. После приходит коллбек.
Разве коллбек не имеет приоритет по скорости?
Как запретить QUIK добавлять инструменты самостоятельно?, Кто-то подкидывает в Текущие торги торговые инструменты по своему усмотрению, как бездомных котят..
 
Да, спасибо, огромное!
Думаю, вы меня спасли от ежедневного ритуала удаления лишних инструментов.
Как запретить QUIK добавлять инструменты самостоятельно?, Кто-то подкидывает в Текущие торги торговые инструменты по своему усмотрению, как бездомных котят..
 
История такая. Крик души. Перешёл в QUIK 8.9 от брокера Открытие. Сначала всё нравилось, кроме двух гигабайт в оперативке. Но через некоторое время стал замечать, что с каждой новой сессией, в моём QUIK, в Текущих торгах стали появляться какие-то экзотические торговые инструменты  :shock:. Эти инструменты, за свой небольшой, 15-летний опыт, я ни разу не торговал, и, тем более, не добавлял в Текущие торги. Сначала, в список подозреваемых попала кошка, которая могла бессовестно пройтись по клавиатуре. Но, через несколько дней таких добавлений, подозрения с кошки были сняты, а в QUIK уже было самовольно добавлено более сотни инструментов. Так же, мне подкинули OZON, который я чуть-ли не купил по 3600р.
Теперь вопросы.
:?:. Кто виноват (брокер, QUIK или пользователь)?
:?:. И, что делать, как с этим дальше жить?
:!: Заранее благодарю за спасительный ответ!

 
Использование памяти скриптами Lua
 
Вчерашний тест, можно сказать, успешный: 54 тысячи заявок, 14 тысяч сделок, расчёт кода робота каждые 500мс, затраченной памяти 2Гб. Но главное - ни одного зависания. Всё очень быстро и точно (в сравнении с QPILE).
В реальной торговле в таком режиме использовать не собираюсь и затраты памяти будут не существенные. Поэтому вопрос не критичный, скорее для возможного улучшения работы.
Но это первый день краш-теста.
Использование памяти скриптами Lua
 
Основные пожиратели памяти - функции QUIK. Но могу ошибаться, т.к. только начал оптимизацию. Может, где-то и накапливаемый массив есть.
nikolz, обратите внимание на мой код в начале темы. При каждом вызове безобидной getInfoParam("SERVERTIME") приходится жертвовать 3 байта памяти. Вот этот момент меня больше всего интересует. В моём коде аналогичные вызовы, только в десятки или сотни раз больше.
Использование памяти скриптами Lua
 
Сегодня выпустил своего простенького робота сеточника на демо-счёт. Пока трудится без капризов, но потребление памяти, с учётом, что робот практически не накапливает данные впечатляет. Мусоровоз приезжает систематически, но загружает не весь мусор.
Страницы: 1 2 3 След.
Наверх