Kolossi (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 5 6 След.
Узнать цену покупки актива.
 
Цитата
Alexey Danin написал:
Здравствуйте.

Цитата
Kolossi написал:
А как насчет получения средней цены покупки по инструменту, точнее параметра "Балансовая цена" в таблице Состояние счета?
К сожалению, средствами QLUA данную таблицу не получить.

Однако параметры данной таблицы формируются на основе позиций клиента, которые отражены в соответствующих таблицах терминала, к которым в свою очередь можно получить доступ средствами QLUA.
Подробное описание полей Таблицы "Состояние счёта" находится в  Руководство пользователя QUIK v.9.7zip, 14.6 МБ  -> Раздел 3. Просмотр информации -> 3.5 Состояние счета.
Да не получается. Конечно я веду среднюю позиции средствами и возможностями скриптов. Как правило она совпадает с балансовой ценой, но стоит провести сделку мимо скрипта и весь результат можно кидать в помойное ведро. Поэтому возможность получать данные с этой таблицы хотелось бы иметь.
Узнать цену покупки актива.
 
Цитата
nikolz написал:
Цитата
Kolossi написал:
А как насчет получения средней цены покупки по инструменту, точнее параметра "Балансовая цена" в таблице Состояние счета?
Если Вы пытаетесь ответить на вопрос темы, то читайте внимательнее вопрос.
Если просто выпендриваетесь, то нахрена?
У часто пишущих по любому поводу стандартный симптом - когда не знаешь ответ нужно нахамить и все наладится ))
Узнать цену покупки актива.
 
Цитата
nikolz написал:
Цитата
Ренат написал:
getItem('firm_holding') .
Вы же хотите узнать цену сделки, так и читайте ее из таблицы сделок.
причем здесь позиция по инструментам?
и где Вы в позиции увидели цену?
Ну да, с ценой сделки козе понятно. )
А как насчет получения средней цены покупки по инструменту, точнее параметра "Балансовая цена" в таблице Состояние счета?
Хотелось бы узнать, где про ЭТО прчитать.
 
Цитата
nikolz написал:

В документации QLua в разделе: "Функции для работы с таблицами Рабочего места QUIK"
-------------------
написано:
-----------------
В таблицах Рабочего места QUIK, созданных с помощью скриптов на языке Lua,  
поддержаны следующие возможности :
 ..
  пользовательские фильтры,
 ...
 ===========================
А где там написано про  фильтры на Lua?  Созданная на Lua таблица поддерживает установку пользовательских фильтров.
Капризничаете. Дай вам волю так вы потребуете возможность убрать столбец с нумерацией и привязку таблицы к конкретному окну. Много вас таких, а разработчики серьезными делами заняты )))
Хотелось бы узнать, где про ЭТО прчитать.
 
Читать после нажатия правой клавиши мыши на заголовок столбца в меню "Фильтр по..."  
Работа с таблицами Квика
 
А, нашел. Забавно )
Работа с таблицами Квика
 
Цитата
nikolz написал:
В  друг откуда ни возьмись появилось...

в вызове функции  NUMBER AddColumn (NUMBER t_id, NUMBER iCode, STRING name, BOOLEAN  is_default, NUMBER par_type, NUMBER width)  в примере документации (приложение 1)  появляется функция формата:    t:AddColumn("test1", QTABLE_INT_TYPE, 10, format1 )
---------------
Предупреждать надо.
Это откуда дровишки? В документации LUA в файловом архиве и в файлах последней версии на arqatech.com/ru такого нет.
Подписка на стакан OnQuote в quik 9.7.1
 
Цитата
Nikolay написал:
OnQuote - это и есть доступный колбек. Объявленная глобально такая функция будет вызываться на каждый чих в стакане.
Т.к. таких изменение очень, очень много, и на каждое изменение вызывается с, то память и забивается, т.к.
getQuoteLevel2 возвращает две таблицы, две строки. А это не так и мало. И делается это так часто, что сборщик мусора просто не успевает.

Если Вам не нужны данные стакана в каждом срезе без пропусков, то в колбеке надо просто установить флаг, что есть новый стакан по инструменту, а в потоке main его прочитать.
Пардон, невнятно выразился. Полагаю что проблема не в OnQuote, в этом легко убедится убрав из функции getQuoteLevel2.
Подписка на стакан OnQuote в quik 9.7.1
 
Чисто из любопытства: функция забивает память без вызова только своим присутствием в коде?
Или в этой версии она стала функцией обратного вызова?
Помогите разобраться: почему не выставляется заявка на покупку?
 
Хвостовой ноль после вычитания на смотрели?
Снова AddLabel
 
Цитата
Kolossi написал:

Описание проблемы:
В случае прикрепления графика якорем к таблице текущих торгов функция AddLabel лепит метку согласно только идентификатору в текущий на графике инструмент. T.е. метка о сделке по любому тикеру выставляется в текущее окно графика.    В итоге в одном окне мешанина из меток разнообразных инструментов, а при переключения на нужные они отсутствуют.  В настоящее время способов автоматически правильно разносить метки на графики соответствующих тикеров нет. Единственный вариант какой я придумал - вручную открывать нужное окно и запускать скрипт который перебирает список UIDов меток относящихся к этому тикеру, поштучно удаляет ее и выставляет заново с другим uid что бы она появилась на текущем графике.
Замечу, что метки покупки/продажи выставляемые самим Квиком попадают в окно нужного инструмента автоматически.

Предложение:

1. Доработать функцию AddLabel возможностью выставлять метку на график в соответствии с параметром "тикер инструмента". При отсутствии параметра пусть лепит в текущее окно.

или

2. Дать возможность позиционировать средствами qlua указатель в таблице текущих торгов на нужный тикер с тем что бы  текущий график переключился на нужный инструмент. Тут наверное придется создать еще функцию получения текущей позиции укозателя.

Прошу рассмотреть данные предложения.
Обязуюсь честно напоминать о них ежегодно )
А что, пожелания теперь не рассматриваются и не регистрируются?
Снова AddLabel
 
Интересный вариант с индикатором. Только с возвратом к вопросу о повторном выставлении.
Снова AddLabel
 
Как говорится "у кого что болит"

Описание проблемы:
В случае прикрепления графика якорем к таблице текущих торгов функция AddLabel лепит метку согласно только идентификатору в текущий на графике инструмент. T.е. метка о сделке по любому тикеру выставляется в текущее окно графика.    В итоге в одном окне мешанина из меток разнообразных инструментов, а при переключения на нужные они отсутствуют.  В настоящее время способов автоматически правильно разносить метки на графики соответствующих тикеров нет. Единственный вариант какой я придумал - вручную открывать нужное окно и запускать скрипт который перебирает список UIDов меток относящихся к этому тикеру, поштучно удаляет ее и выставляет заново с другим uid что бы она появилась на текущем графике.
Замечу, что метки покупки/продажи выставляемые самим Квиком попадают в окно нужного инструмента автоматически.

Предложение:

1. Доработать функцию AddLabel возможностью выставлять метку на график в соответствии с параметром "тикер инструмента". При отсутствии параметра пусть лепит в текущее окно.

или

2. Дать возможность позиционировать средствами qlua указатель в таблице текущих торгов на нужный тикер с тем что бы  текущий график переключился на нужный инструмент. Тут наверное придется создать еще функцию получения текущей позиции укозателя.

Прошу рассмотреть данные предложения.
Обязуюсь честно напоминать о них ежегодно )
Метки в индикаторе, При перезапуске Квика получается наслоение меток
 
Цитата
Kolossi написал:
Я сохраняю UIDы меток выставленным скриптами в файл и потом если надо удаляю поштучно.
Это полезно еще при необходимосте перезапуска метки в случае прочих косяков.
Я имел ввиду вариант удаления меток не при закрытии Квика, а при повторном запуске.
К стати в приведенном коде OnDestroy() если в цикле for ...  поставить явно

local res=DelLabel(Settings.tag, Labels[i])
message(tostring(res).."/"..Settings.tag.."/"..tostring(Labels[i]))

сообщение выдаст правильные параметры?
Метки в индикаторе, При перезапуске Квика получается наслоение меток
 
Я сохраняю UIDы меток выставленным скриптами в файл и потом если надо удаляю поштучно.
Это полезно еще при необходимосте перезапуска метки в случае прочих косяков.
Отметки на графике QUIK средствами QLUA
 
Старатель, это я к тому, что в ответ на предложение сделать привязку метки к тикеру мне саппорт посоветовал  убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента".  После чего бардак с метками на графике успешно превращается в полный бардак.
Отметки на графике QUIK средствами QLUA
 
Цитата
Daniil Pozdnyakov написал:
Kolossi, здравствуйте.

Предлагаем в настройках графика в левом выпадающем списке в пункте "Диаграмма" убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента" и нажать "Применить".
Даниил, все таки  помогите пожалуйста разобраться убогому чем это
Вот убрал я эту галочку. График привязан якорем к таблице текущих торгов, стоит идентификатор "RZ".
В таблице текущих торгов выбран Газпром. В это время в скрипте срабатывает заявка по инструменту Сбербанк и скрипт выставляет метку с ценой и временем в график с идентификатором "RZ".  Куда она выставляется? При переключении графика на Сбербанк метки нет.  На графике Газпрома ее тоже нет. Но в системе по uid она находится.
Отметки на графике QUIK средствами QLUA
 
Цитата
Daniil Pozdnyakov написал:
Kolossi, здравствуйте.

Предлагаем в настройках графика в левом выпадающем списке в пункте "Диаграмма" убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента" и нажать "Применить".
Ага, заработало, спасибо.
Тогда подскажите еще галочку что бы из меню правой клавиши при наведении на метку созданную средствами qlua при выборе "удалить" удалялачь одна метка а не все.
Отметки на графике QUIK средствами QLUA
 
К разработчикам:

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

PS Знаю, сейчас мне покажут ссылку, где такое предложение одобрено разработчиками много лет назад и однажды будет реализовано. )) Но все же
Отметки на графике QUIK средствами QLUA
 
Кто-нибудь встречал типа архива графических файлов .bmp меток для Quik ?
Нужны стандартные треугольники куплено-продано.
Как сделать вывод сообщений скрипта?, Как сделать вывод сообщений скрипта при отключении сообщений квика
 
Аркадий, то что я написал касается создаваемого окна системных сообщений
Как сделать вывод сообщений скрипта?, Как сделать вывод сообщений скрипта при отключении сообщений квика
 
Если в окне сообщений поставить фильтр по типу сообщения (там их три) то можно оставить только messages скрипта

Пример для звука:
Код
w32 = require("w32")

function main()
    is_run=true
    while is_run do
        PlaySoundFile("c:\\QUIK_VTB_85\\MessTrader.wav")
        is_run=false
        sleep(500)
    end
end
function OnStop()
  is_run = false
end
-- функция проигрывания файла
-- вызов: PlaySoundFile("имя файла")
function PlaySoundFile(file_name) 
  w32.mciSendString("CLOSE QUIK_MP3") 
  w32.mciSendString("OPEN \"" .. file_name .. "\" TYPE MpegVideo ALIAS QUIK_MP3")
  w32.mciSendString("PLAY QUIK_MP3 ") 
end
Как узнать кол-во сделок на покупку и продажу определенной свечи LUA QUIK
 
Цитата
nikolz написал:

---------------------
Могу предложить следующий алгоритм.
общее число сделок берете из объема.
Если свеча закрылась ниже открытия то на продажу было больше чем на покупку.
По расстоянию от открытия до закрытия можете судить существенно больше или нет.
----------------------------
Считать по обезличенным сделкам можно, но бесполезно для торговли.
-------------------------------
Приведенный мною алгоритм соответствует  теории японских свечей, которая работает на практике.
----------------------
Учите теорию.
 Сражен глубиной мысли и математическими познаниями. Мастера хрустального шара нервно икают
Как узнать кол-во сделок на покупку и продажу определенной свечи LUA QUIK
 
Выбрать из all_trades нужный диапазон даты и времени  
Закладки
 
Цитата
swerg написал:
https://quik2dde.ru/viewtopic.php?id=329
Как разместить таблицу на нужной вкладке
Отличный костыль. Только после старта main() нужно давать очень приличную задержку что бы окно открылось там где надо при перезапуске квика. Особенно если такой скрипт не один.

А что-то мы в текущем году это пожелание еще не регистрировали )
Последовательность функций обратного вызова
 
То, что искал - фильтрация таблицы из OnStopOrder по полю linked_ordер.
Ну и наверное по битовому флагу исполнения заявки.

Всем ответившим спасибо!
Последовательность функций обратного вызова
 
Всем добрый день!

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

sendTransaction(...)( задание TRANS_ID) --> OnTransReply(...)(получение номера заявки order_num )-->OnTrade(...)(обработка исполнения заявки с номером  order_num)
Функцию OnOrder() тут не использую благо до сих пор не было необходимости.

Попытка сделать подобную схему для стоп-заявки типа тэйк-профит поставила в тупик - полученный от  OnTransReply при выставлении стоп-заявки order_num бесполезен т.к. после срабатывания условий тэйка  сервером выставляется новая заявка с новым номером  order_num который нужно как-то отфильтровать и получить.

Прошу у знатоков совета по оформлению последовательности функций обратного вызова для этого типа заявок.
Как закрыть форточку?
 
Цитата
Старатель написал:
https://forum.quik.ru/messages/forum10/message39685/topic1675/#message39685
Твоюжвбогадушумать :(
Как закрыть форточку?
 
Наверное я не точно сформулировал вопрос разработчикам и по этому не вижу ответа.
Вопрос:
 Почему после закрытия пользовательской таблицы (см. пример) функцией DestroyTable(skt_id), функция IsWindowClosed(skt_id) считает что окно таблицы по прежнему открыто?
Как закрыть форточку?
 
Код
      skt_id = AllocTable()
      CreateWindow(skt_id)
      SetWindowPos(skt_id, 500, 0, 800, 400)
      local iwc1=IsWindowClosed(skt_id)
      local dt=DestroyTable(skt_id)
      local iwc2=IsWindowClosed(skt_id)
      message(tostring(iwc1).."/"..tostring(dt).."/"..tostring(iwc2))
Пардон, криво пример вставил
Как закрыть форточку?
 
Сломал себе мозг пытаясь закрыть окно способом указанным в документации.
 Тестовый пример:
Скрытый текст
В итоге вывод message: false/true/false
Это нормально? Как его еще можно закрыть чтобы оно было закрыто?
Как из скрипта открыть окно на нужной вкладке?
 
Вася, это только начало длинного пути в который мы посланы разработчиками очень давно.
Не только с проблемой открытия таблицы в нужной вкладке, но и той что при перезапуске квика любая таблица открывается в последней открытой вкладке вместо нужной. Скоро отпразднуем 10-летний юбилей регистрации этих предложений.

Огромное спасибо Sverg и еще ребятам за то, что помогли частично закрыть эти проблемы.
Ниже функция которую я использую. Требуется библиотека w32
Код
function OpenTable(Name,kid,pos) -- функция открытия таблицы (kid) с координатами (pos) в нужной вкладке (Name)
   local mmes=""
   local hQuikWnd = GetQuikMainWindowHandle() -- handle главного окна QUIK
   local hTabWnd = 0 --  handle окна вкладок
      if hQuikWnd > 0 then
         hTabWnd = w32.FindWindowEx(hQuikWnd, 0, "SysTabControl32", "")
         if hTabWnd ~= 0 and not w32.IsWindowVisible(hTabWnd) then -- отображение вкладок отключено
            hTabWnd = 0
         end
      end
   if hTabWnd > 0 then --  вкладки в терминале отображаются
      local prevIdx = w32.TabCtrl_GetCurFocus(hTabWnd)  --  индекс текущей активной вкладки
      local idxGr = w32.TabCtrl_GetItemIndexByText(hTabWnd, Name) -- индекс заданной вкладки
      if idxGr >= 0 then -- вкладка найдена
         w32.TabCtrl_SetCurFocus(hTabWnd, idxGr) -- переключение на найденную вкладку
         local txt = w32.TabCtrl_GetItemText(hTabWnd) --  название текущей активной вкладки
         mmes="   Вкладка " .. tostring(txt)
         CreateWindow(kid)
         SetWindowPos(kid, pos.a, pos.b, pos.c, pos.d)
         w32.TabCtrl_SetCurFocus(hTabWnd, prevIdx) -- назад на исходную вкладку
      else
         CreateWindow(kid)
         SetWindowPos(kid, pos.a, pos.b, pos.c, pos.d)
         local txt = w32.TabCtrl_GetItemText(hTabWnd)
         mmes="   Вкладка не найдена. Текущая" .. tostring(txt)
      end
   else -- вкладки не отображены, открываем в текущей
      CreateWindow(kid)
      SetWindowPos(kid, pos.a, pos.b, pos.c, pos.d)
      mmes="   Вкладка текущая"
   end
   return mmes
end
Ошибка запуска скомпилированного файла
 
Цитата
Vladimir написал:
Всех благодарю за помощь. Заработало.
Vladimir, поделитесь как "Заработало".
По ходу пьесы налетел на эту проблему. Скрипты вроде по умолчанию запускаются в 5.3.5
getPortfolioInfoEx в девятой версии
 
Пардон, нашел баг в скрипте.
Звиняйте дядьки, админ потри эту ересь pls
getPortfolioInfoEx в девятой версии
 
  Может быть кто-то уже разбирался с этим?

Почему-то в девятке возвращаемое значение getPortfolioInfoEx(...,2).all_assets абсолютно не соответствует значению соответствующего поля ТекСредства таблицы  Клиентский портфель. В восьмерке такого не было (
Android X
 
Цитата
Kolossi написал:
Доброго дня всем.
Споткнулся на попытке запустить Quik Android X. Не устанавливается соединение с сервером webquik.vtb.ru.
С браузера на компе вебквик с этим логином и паролем работает. Попробовал достучатся до этого сервера с браузера смартфона - до формы входа дело не доходит, отлуп по таймауту.
Сменил браузер - та же байда, другие сайты открываются нормально.  Понятно, что что-то в настройках андроида. Может быть кто-то уже по этим граблям пробежался и подскажет где копать?
Вроде разобрался. В браузере был выключен ssl и битая версия webquik была взята с GetsApp
Android X
 
Доброго дня всем.
Споткнулся на попытке запустить Quik Android X. Не устанавливается соединение с сервером webquik.vtb.ru.
С браузера на компе вебквик с этим логином и паролем работает. Попробовал достучатся до этого сервера с браузера смартфона - до формы входа дело не доходит, отлуп по таймауту.
Сменил браузер - та же байда, другие сайты открываются нормально.  Понятно, что что-то в настройках андроида. Может быть кто-то уже по этим граблям пробежался и подскажет где копать?
Таблица алгоритмических заявок
 
Цитата
Sergey Hlynovskii написал:
Здравствуйте Kolossi,
Проверьте, пожалуйста, в тот момент, когда Вы наблюдаете данную картину в таблице алго-заявок, видны ли биржевые инструменты в списке доступных инструментов или нет?  
Да, видны
Таблица алгоритмических заявок
 
Цитата
Kolossi написал:
Наблюдается утром после коннекта с сервером брокера и до получения статуса сессии "открыта" (1)
Скрин пришлю завтра

на всякий случай ссылка на хостинг
https://hostingkartinok.com/show-image.php?id=45086c8ec3e4b4d25c402130084aaa54
Таблица алгоритмических заявок
 
Наблюдается утром после коннекта с сервером брокера и до получения статуса сессии "открыта" (1)
Скрин пришлю завтра
getParamEx "last" Возвращает 0 для фьючерсов
 
Точно так же c облигациями - пока после открытия не прошла хотя бы одна сделка last возвращает 0 и цена последней сделки в таблице текущих торгов стоит нулевая.
Таблица алгоритмических заявок
 
А можно узнать у уважаемых разработчиков по какой причине в таблице алгоритмических заявок утром до начала торгов по каждой заявке пустое поле "Инструмент сокр."? Какой смысл тогда заполнения остальных полей этой таблицы в это время?
Настройки и их сохранение.
 
Цитата
BlaZed написал:
Сталкивался с такой проблемой
https://forum.quik.ru/messages/forum1/message51971/topic6116/#message51971

Был косяк в версии 8.11.0.66, в 8.12 был исправлен
Так что либо обновиться, либо (если не желаете обновляться) перед закрытием программы, отключитесь и подключитесь к серверу заново, тогда настройки котировок сохранятся.
Спасибо. Потрясу бубном пока брокер не обновит версию.
Настройки и их сохранение.
 
Я чего-то недопонимаю в логике настроек переноса заказа данных в настройки (?).
Стоял фильтр заказа котировок. Снимаю галочку "фильтр инструмента" класса в
/Программа/Получение данных/Котировки и уверен что все хорошо. Однако при следующем входе галка на месте.
Ручное сохранение настроек эффекта не дает.   Версия 8.11
Получение тикеров инсрументов
 
Цитата
Артем написал:
getClassSecurities ( class )
Спасибо! Как-то я проскочил мимо нее в доках.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Цитата
Артем написал:
Kolossi, это неважно - размер датасорца меняется в момент завершения загрузки данных. При работе с колбеками тоже неважно - они явно указывают какая свеча была загружена.
Те вы утверждаете, что ds(Size) будет отличен от нуля только после завершения загрузки?
Получение тикеров инсрументов
 
Добрый день всем.

Подскажите, есть ли возможность получить с сервера в свою таблицу список ВСЕХ тикеров по конкретному классу?
Типа той которая используется в таблицах квика для настройки фильтров и тп.
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Как много ответов от умных людей. Читал, много думал.))
Может быть все можно будет сделать гораздо проще, если кто-нибудь скажет правду:
c какой свечи CreateDataSource начинает грузить данные - с нулевой или с последней?
запуск из работающего скрипта другого скрипта или скриптов
 
Цитата
swerg написал:
Цитата
Kolossi написал:
или привязку пользовательской таблицы к вкладке

https://quik2dde.ru/viewtopic.php?id=329
Спасибо! Завтра поверчу в необходимых вариантах и отпишусь.  Очень востребованный костыль )
запуск из работающего скрипта другого скрипта или скриптов
 
Цитата
Юрий С написал:
Цитата
Артем написал:
QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
Антон, НО в квике же это реализовано!!! Мы же вручную можем запустить несколько файлов(скриптов), и они могут работать параллельно!! Я только это имею ввиду, мне не надо распараллеливать задачи по процессорам, только лишь обратиться к ответственному за запуск модулю квика из своего скрипта передав ему путь и имя файла со скриптом, который я хотел бы запустить, точно так же как я это делаю через таблицу доступных скриптов. И запускай хоть с main,хоть с бесконечным циклом. Вот в чем задача.
Поддержу Юрия. Мне бы тоже хотелось запускать все свои скрипты при помощи одного. Как это делается в операционках при помощи .bat или .sh файлов. Однако я полагаю такая мечта несбыточна.
Может быть в следующих версиях мы увидим еще перенос какого-то параметра из одного пункта меню, однако полагаю что мне уже не увидеть даже иконки окна скриптов на панели или привязку пользовательской таблицы к вкладке. Жизнь коротка (
Страницы: Пред. 1 2 3 4 5 6 След.
Наверх