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

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

Страницы: 1 2 3 След.
Робот Сетка 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
 
Сегодня выпустил своего простенького робота сеточника на демо-счёт. Пока трудится без капризов, но потребление памяти, с учётом, что робот практически не накапливает данные впечатляет. Мусоровоз приезжает систематически, но загружает не весь мусор.
Событие закрытие терминала, OnClose() OnStop(flag)
 
Потребовалось кое-что сделать при событии закрытия терминала.
Но OnClose() и OnStop(flag) не выводит системные сообщения и не выполняет код внутри.
Если отключить qlua.dll в окне «Версии компонентов и плагинов», всё работает по инструкции.
Как можно объяснить такое поведение?
Код
function OnInit() -- Функция вызывается терминалом QUIK перед вызовом функции main().
   is_run = true
   return
end -- выход из функции: OnInit()

function main() -- Функция, реализующая основной поток выполнения в скрипте. Для ее выполнения терминал QUIK создает отдельный поток.
   while is_run do -- повторяющийся цикл, пока is_run = true
      sleep(1000)
   end -- выход из цикла: повторяющийся цикл, пока is_run = true
   return
end -- выход из функции: main()

function OnClose() -- Функция вызывается перед закрытием терминала QUIK и при выгрузке файла qlua.dll.
-- Под выгрузкой файла qlua.dll подразумевается отключение плагина QLua
-- в окне «Версии компонентов и плагинов» (см. п. 1.9. Раздела 1 Руководства
-- пользователя QUIK).
   message("OnCl ose="..tostring(1),1) -- отладка скрипта с выводом системного сообщения
end

function OnStop(flag) -- Функция вызывается терминалом QUIK при остановке скрипта из диалога управления и при закрытии терминала QUIK.
-- При остановке или удалении работающего скрипта Lua из диалога управления «Доступные
-- скрипты» параметр вызова flag принимает значение «1». При закрытии терминала QUIK –
-- значение «2».
   message("OnStop flag="..tostring(flag),1) -- отладка скрипта с выводом системного сообщения
   is_run = false
   return 5000
end
Оформление окон внутри терминала
 
...Но должна быть хорошая память на расположение таблиц. Когда рабочее пространство не меняется много лет, можно и в слепую нужную таблицу найти.
Оформление окон внутри терминала
 
Как вариант, можно отключить полосу с заголовком на таблицах всей вкладки.
Пр.кн.мыши на названии вкладки-Показать/убрать заголовок.
Использование памяти скриптами Lua
 
Спасибо за ответ.
Вот что у меня получилось.
1. Объявление локальной переменной не повлияло на затраты памяти.
2. Объявление переменной заранее не повлияло на затраты памяти.
3. Вызов штатной os.clock() не приводит к увеличению затраченной памяти.
Получается, что сделать максимально статичным использование памяти невозможно из-за её увеличения при повторном вызове штатных функций QLUA..
Использование памяти скриптами Lua
 
Интересен алгоритм использования памяти.
Ниже простой скрипт, который при каждом расчёте обращается к функции "getInfoParam". При запуске, в столбце "Память, КБ" = 41.04, и, с каждым новым расчётом, затраченная память увеличивается: 41.04, 41.07, 41.11...
Почему происходит увеличение используемой памяти, ведь данные не накапливаются?
Заметил, что в скриптах память увеличивается до определённого предела (примерно в 2 раза больше, чем при старте) затем сбрасывается до начального размера.
Возможно, где-то уже это обсуждалось, но не нашёл.
Код
function OnInit() -- Функция вызывается терминалом QUIK перед вызовом функции main().
   is_run = true
   return
end -- выход из функции: OnInit()
function main() -- Функция, реализующая основной поток выполнения в скрипте. Для ее выполнения терминал QUIK создает отдельный поток.
   while is_run do -- повторяющийся цикл, пока is_run = true
      ScriptTimeStart = getInfoParam("SERVERTIME") -- Время начала расчёта скрипта
      sleep(1000)
   end -- выход из цикла: повторяющийся цикл, пока is_run = true
   return
end -- выход из функции: main()
function OnStop() -- Функция вызывается терминалом QUIK при остановке скрипта из диалога управления и при закрытии терминала QUIK.
   is_run = false
   return
end
Демо-доступ и таблица "Позиции по клиентским счетам (фьючерсы)"
 
Нашёл отличие. В призраке limit_kind=-3.
Это на вашем сервере кто-то балуется, а таблица QUIK такое не отображает.
Из справки:
"Срок расчётов. Возможные значения: положительные целые
числа, начиная с «0», соответствующие срокам расчётов из
таблицы «Позиции по инструментам»: «0» – T0, «1» – T1, «2» –
T2 и т.д.
2 d_long STRING Эффективный"
Демо-доступ и таблица "Позиции по клиентским счетам (фьючерсы)"
 
Продолжу тему.
Я думал, не проснулся (вы тоже видите это?):

Вторая строка-призрак дублирует содержанием первую.
Легенда графика в QUIK 8.6, Легенда графика не отображается при добавлении нового графика на диаграмму.
 
В последних версиях QUIK, легенда графика не отображается, при добавлении нового графика на диаграмму.
Это не удобно, т.к, при добавлении новых графиков, не видно, какие именно индикаторы или графики используются.
Приходится включать отображение легенды для каждой области графика.
Понятно, что сделано это для экономии рабочего пространства, но неэффективно.
Куплю и раздам функции для LUA 5.3 x64, Нужны w32.dll lfs.dll qvcl.dll.
 
Нужно собрать:
w32.dll - для авто логина QUIK https://quik2dde.ru/viewtopic.php?id=78
lfs.dll - для работы с файлами
qvcl.dll - для создания визуального интерфейса https://quik2dde.ru/viewtopic.php?id=26
Эти функции будут и бесплатно, но без пинка, в неизвестном будущем.
Пинок в виде ₽10К (2+2+6) и народная слава гарантируется.
Ссылки на библиотеки выложу.
QPILE всё?, Роботы QPILE больше не будут торговать
 
К счастью, разработчики QUIK умеют читать мысли и пока я писал вопрос они уже ответили: https://forum.quik.ru/messages/forum1/message42519/topic5117/#message42519
"Проблемы работы с длинными номерами в QPILE (на любых версиях терминала). Для решения проблемы п. 7 следует реализовать Ваш алгоритм на языке  QLUA. При этом следует использовать версию терминала QUIK, которая на  момент публикации данного уведомления еще не вышла, но планируется к  выпуску до того, как данное изменение в торговой системе будет  внедрено."
Я прав. Хотя, вопрос был риторический. )
Буду потихоньку перекидывать алгоритмы на QLUA для версии QUIK, которая ещё не вышла.
QPILE всё?, Роботы QPILE больше не будут торговать
 
Учитывая переход на размерность идентификатора заявок и сделок до 19-ти символов, требуется обновления функционала QPILE.
Подробнее: https://forum.quik.ru/forum1/topic5117/
Но делать это никто не будет, т.к. поддержка QPILE приостановлена 6 лет назад.
В итоге, все роботы QPILE  больше не будут торговать.
Таблицы QPILE будут работать как и прежде.
Всё верно?
Брокер Открытие. Не работает MOVE_ORDERS., Ошибка: "Указанная транзакция по указанному классу не найдена: "SPBOPT"."
 
У брокера Открытие перестала работать возможность перестановки заявки одним запросом, через MOVE_ORDERS.
Аналогичная тема уже поднималась: https://smart-lab.ru/blog/590101.php, но брокер, похоже не знает, что это за ругательство "MOVE_ORDERS".
Версия QUIK 7.27.2.1, это последняя версия, на которую позволяет обновиться сервер Открытие.
Я вышел из положения путём отправки двойного запроса: удаления и выставления заявки.
Долблю сервер в два раза больше, за что прошу прощение.
Ещё и мои каждый день стали писать письма, мол моё ПО глючное.
Приходится высылать каждый день функционал с двойным запросом.
Поэтому, пишу письмо Вам, уважаемые разработчики.
Вы, по крайней мере, знаете, что есть такое  "MOVE_ORDERS".

Таблица обезличенных сделок. Открытый интерес., Как получить данные из QPILE?
 
Ясно, спасибо. Не мог разобраться то ли лыжи не едут, то ли я... Оказывается первое.
Таблица обезличенных сделок. Открытый интерес., Как получить данные из QPILE?
 
Цитата
Alexander Kopyatkevich написал:
Здравствуйте!
Уточните, пожалуйста, в самой таблице обезличенных сделок данные по этому параметру есть?
Так же, так как язык QPile регистрозависимый, попробуйте задать параметр большими буквами (то есть, должно быть OPEN_INTEREST).
Данные в самой таблице обезличенных сделок данные по этому параметру есть.
Пробовал и так:
GET_VALUE (GET_ITEM ("ALL_TRADES", i), "OPEN_INTEREST")
Другие параметры выводятся.
Таблица обезличенных сделок. Открытый интерес., Как получить данные из QPILE?
 
Цитата
Alexander Kopyatkevich написал:
Здравствуйте, Михаил Понамаренко.
Для таблицы обезличенных сделок параметр называется open_interest.
Сообщите, пожалуйста, open_interest не доступен в QPILE или что-то делаю не так?
Таблица обезличенных сделок. Открытый интерес., Как получить данные из QPILE?
 
TrdOpenInterest = GET_VALUE (GET_ITEM ("ALL_TRADES", i), "open_interest") 'открытый интерес
Не выдаёт данные. Проверил на последней версии 8.2.
Таблица обезличенных сделок. Открытый интерес., Как получить данные из QPILE?
 
Спасибо за ответ.
NUMCONTRACTS - это параметр таблицы Текущие Торги.
Нужен параметр из Таблицы обезличенных сделок.

 TrdOpenInterest = GET_VALUE (GET_ITEM ("ALL_TRADES", i), "?") 'открытый интерес
Таблица обезличенных сделок. Открытый интерес., Как получить данные из QPILE?
 
Таблица обезличенных сделок. Открытый интерес.
Как получить данные из QPILE?
В инструкции нет параметра и описания.
Количество лотов на валютном рынке
 
Спасибо, да, но там позиция, точнее объём в валюте депозита. Конечно, можно пересчитать поделив на стоимость лота. Получается, что на валютной секции лоты не транслируются.
Автоматическое поручение на перевод средств между площадками
 
Цитата
Anton написал:
Цитата
   s_mike@rambler.ru написал:
 эх... Вот было бы здорово...  Со счета фортс -  и прямо мне на счет... Красота!  
Что значит "было бы". Вся система ради этого и придумана. Ткскть  не прячьте ваши денежки .
На видео "грааль" спалил.
Страницы: 1 2 3 След.
Наверх