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

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

Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 25 След.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Виталий написал:
И что не так? В этой либе мне нужно использовать CLR, там будут формы. Как сам факт поддержки CLR (без каких-либо вызовов) влияет на выгрузку библиотеки?

Как минимум - вот оно коренное отличие вашей DLL от моей, а вовсе не версия QUIK.
Ну и видимо передавайте привет .NET и особенностям ее работы.

Цитата
Виталий написал:
(без каких-либо вызовов) влияет на выгрузку библиотеки?

Вы может и не вызываете, но раз хотите .NET - оно там очень могуче напрягается, чтобы вам его предоставить.
Вам наверное будет не сложно пока отключить использование .NET и проверить.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Anton написал:
Код
   < CLRSupport >  true  < /CLRSupport >   
вместо тысячи слов.

Слона-то я и не заметил!  :shock:
Кто как решает вопрос с заявками/сделками?
 
Чета ржу  :lol:
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Виталий написал:
Но повторю еще раз: версия квика у вас не та. У меня 8.10.1.1 - они могут отличаться. Чего я не понимаю, так это почему молчат представители поддержки официальной?! Их как-то нужно призывать по особому в тему?? По мне так уже давно могли бы что-то написать.

И? Я не знаю зачем вы используете именно эту версию.
Вам ничего не мешает быстро проверить на 8.9

Цитата
Виталий написал:
Чего я не понимаю, так это почему молчат представители поддержки официальной?! Их как-то нужно призывать по особому в тему?? По мне так уже давно могли бы что-то написать.

Выгрузка / не выгрузка DLL - это последнее, что заботит реальных пользователей торгового терминала, даже если они используют какие-то готовые библиотеки. Так что, по-моему, это "проблема" приоритета из нижней десятки всех тех тысяч реальных проблем, которые есть в QUIK.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Ровно такой же скрипт сделал у себя для тестов
У меня DLL выгружается (QUIK 8.9) - после запуска и остановки скрипта могу DLL удалять, заново переписывать и т.д. (проверяю просто переписыванием поверх, буквально VS не собирает на то место, откуда запуск)
Но проверяю на другом коде DLL.
Если дойдёт руки - попробую буквально вашу DLL собрать
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Код
path = getScriptPath() .. "\\central-core.dll"
package.loadlib(path, "luaopen_central_core")()

local m = central_core.DoSomething();
message(tostring(m))

function main()
    while (true) do
        sleep(100)
    end
end


У вас луа-скрипт корректно не останавливается. Что ж вы хотите-то?
Как в Lua получить название вкладки терминала?
 
https://quik2dde.ru/viewtopic.php?id=329

Код
w32 = require("w32")

-- Возвращает handle главного окна QUIK или 0 при ошибке
-- Если запущено несколько терминалов - выбирается тот QUIK, из которого запущен наш скрипт
function GetQuikMainWindowHandle()
    local hQuikWnd = 0
    while true do
        hQuikWnd = w32.FindWindowEx(0, hQuikWnd, "InfoClass", "")
        if hQuikWnd == 0 then
            break
        end
        local t,WinProcId = w32.GetWindowThreadProcessId(hQuikWnd)
        if WinProcId == w32.GetCurrentProcessId() then
            break
        end
    end

    return hQuikWnd
end

-- Тестовая функция создания пользовательского окна с таблицей
function CreateTableWindow(caption)
    local t_id = AllocTable()   
    AddColumn(t_id, 0, "1", true, QTABLE_INT_TYPE, 15)
    AddColumn(t_id, 1, "2", true, QTABLE_INT_TYPE, 15)
    local t = CreateWindow(t_id)
    SetWindowCaption(t_id, caption)
    InsertRow(t_id, -1)
    SetCell(t_id, 1, 1, "<<" .. caption .. ">>")
end

-- Основной код

hQuikWnd = GetQuikMainWindowHandle()

-- получим handle окна вкладок, далее все операции по переключению вкладок будем совершать с этим окном
hTabWnd = 0
if hQuikWnd > 0 then
    hTabWnd = w32.FindWindowEx(hQuikWnd, 0, "SysTabControl32", "")
    if hTabWnd ~= 0 and not w32.IsWindowVisible(hTabWnd) then
        -- Если окно вкладок найдено, но отображение вкладок отключено - сбросим в 0
        hTabWnd = 0
    end
end

if hTabWnd > 0 then
    -- Если вкладки в терминале отображаются
    -- Сохраним индекс текущей активной вкладки
    local prevIdx = w32.TabCtrl_GetCurFocus(hTabWnd)

    -- Определим и выведем через message() наименование активной вкладки на момент старта
    -- (индекс активной вкладки сохранён ранее, так что здесь получаем / отображаем имя просто так)
    -- w32.TabCtrl_GetItemText() вызываем только с 1 параметром, т.к. нас интересует имя активной вкладки
    local activeTabName = w32.TabCtrl_GetItemText(hTabWnd)
    if activeTabName then
        -- т.к. явно проверили, что имя вкладки получить удалось (оно не nil)
        -- просто отображаем его без tostring()
        message("Активна вкладка: " .. activeTabName)
    end

    -- Получим индекс вкладки с именем "Графики" (если такая существует)
    local idxGr = w32.TabCtrl_GetItemIndexByText(hTabWnd, "Графики")
    if idxGr >= 0 then
        -- Если вкладка "Графики" найдена
        -- переключимся на неё и создадим таблицу на ней, получив имя
        w32.TabCtrl_SetCurFocus(hTabWnd, idxGr)
        -- Получим название текущей активной вкладки (только что на нее переключились)
        local txt = w32.TabCtrl_GetItemText(hTabWnd)
        -- Используем tostring(), т.к. TabCtrl_GetItemText при ошибке возвращает nil
        CreateTableWindow("Вкладка '" .. tostring(txt) .. "'")
    end

    -- Получим общее количество вкладок
    cnt = w32.TabCtrl_GetItemCount(hTabWnd)
    for i = 0, cnt-1 do
        -- Переключаемся поочередно на каждую вкладку и создаем таблицу с именем вкладки
        w32.TabCtrl_SetCurFocus(hTabWnd, i)
        -- Получим название вкладки
        -- т.к. получаем название текущей активной вкладки (только что на нее переключились),
        -- то второй параметр можно не указывать; но здесь оставлен второй параметр для тестов
        local txt = w32.TabCtrl_GetItemText(hTabWnd, i)
        -- Используем tostring(), т.к. TabCtrl_GetItemText при ошибке возвращает nil
        CreateTableWindow(tostring(txt))
    end

    -- Переключимся назад на исходную вкладку
    w32.TabCtrl_SetCurFocus(hTabWnd, prevIdx)
else
    -- Если вкладки в терминале не отображаются
    CreateTableWindow("Вкладки отключены")
end
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Виталий написал:
Второй момент, вы не описываете поведение в 8.10.

На ftp arqa нет этой версии. Я не знаю где вы её взяли, поверить возможности нет.
Quik 8.5 не освобождается память
 
Цитата
Виталий написал:
Видимо, не была или была не полностью. Вот описание  https://forum.quik.ru/messages/forum10/message50829/topic6030/#message50829

Ветка, на которую вы ссылаетесь - вообще про другое абсолютно.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Виталий написал:
Только не говорите, что еще нужен код библиотеки, чтобы уверовать в некорректность выгрузки    

Во-первых, безусловно нужен. Про него вас и спрашивали изначально.

Во-вторых, я проверил на простейшей библиотеке
https://github.com/swerg/simple-lua-c-dll

на простейшем скрипте с использованием этой библиотеки:
luacdll = require("luacdll")
message(tostring(luacdll.GetCurrentThreadId()), 1)

QUIK 8.6 -- после того, как скрипт отработал - dll-файл библиотеки остаётся заблокированным, т.е. dll не выгружена корректно.
QUIK 8.9 -- после того, как скрипт отработал - dll-файл библиотеки НЕ остаётся заблокированным, т.е. dll выгружена корректно, dll-файл с библиотекой можно переписать / удалить, не закрывая QUIK.
Оповещения пользователя в Квик, Оповещения (алерты), на соблюдение заданных условий на торговых инструментах
 
Цитата
просто вы являетесь монополистом на данном рынке

А как же МТ5 ? А как же Transaq ?
Помощь в написании скрипта отправки данных по сделкам из QUIK к нам на сайт, выгрузка данных
 
Цитата
nikolz написал:
автор темы указал, что надо транслировать сделки клиента.

Бурная фантазия - это хорошо. Но не всегда.
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
 
Цитата
s_mike@rambler.ru написал:
Свеча является закрытой тогда, когда появилась новая.
А не бывает такого, что приходит значение по предыдущей свече после прихода значений по новой?
Получение подтаблицы в отдельную таблицк
 
Цитата
Виктор написал:
в переменной подтаблицу, соответственно Si и Ri.

В переменную две подтаблицы Si и Ri ? или как надо?
Я не понял.
getMoneyEx иногда выдает nil., Интересно почему?
 
Цитата
Владимир написал:
Anton, Серьёзно?! Ох, как прав был Лавров...

Про тех, кто не читает документацию вообще и в частности про то, и как передаются параметры в Lua? Да, с этим полностью согласен.
фаил настроек
 
Тогда я ничего не понял в исходном вопросе, извините, был неправ.
Один компьютер и несколько брокеров
 
Но за "рекламу" сотрудники поддержки будут высказывать нормальным полезным реальным пользователям, а не роботам машам.
Как определить абсолютный путь к исполняемому файлу lua?
 
STRING getScriptPath()
Функция возвращает путь, по которому находится запускаемый скрипт, без завершающего обратного слеша («\»). Например, C:\QuikFront\Scripts
фаил настроек
 
Цитата
Roman Azarov написал:
перенести данный файл в папку с терминалом (если потребуется - подтвердить замену существующего (в таком случае, вся информация в заменяемом файле будет удалена)) и перезагрузить терминал.

А у спрашивающего, возможно, включена галка "Сохранять настройки в файл при выходе".
Вот он удивится-то, когда после запуска терминала ничего не изменится :)

Кстати, Roman Azarov, ваше сообщение написано так, что можно подумать, что под "данный файл" подразумевается alerts.dat, о котором написано чуть выше. Хотя вы явно не его имели ввиду.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
 
Цитата
Старатель написал:
Вопрос: как вы осуществляете нагрузочные тестирования в боевых условиях и проводите ли их вообще?

www.google.com/search?q=московская+биржа+нагрузочное+тестирование
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
Цитата
Александр Кашников написал:
вообще мимо, за нас платит брокер, которому мы платим толпой.

Нет, не мимо. Договор с брокером - вот с брокера и требовать.
Таковы юридические реалии этого мира.
Статистика по числу реализованных предложений
 
Цитата
Вадим написал:
в атмосферу равноправного сотрудничества,

Ты деньги уже занёс в кассу? ну для равноправного сотрудничества, чтобы не быть на уровне попрошайки. Или так, чисто языком чесать?
Статистика по числу реализованных предложений
 
Еще один недоросль учит как надо вести безнес. Даже не смешно уже.
Особенно, конечно, умиляют применяемые штампы. Это ж не твои мысли, чувак, это штампы, которых ты нахватался от твоих друзей-школьников по уровню развития. Ну ладно друзья, это их проблемы, но почему ты не растёшь над ними?
Развитие Trans2Quik
 
Цитата
Юрий Z написал:
Моё исходное предложение про API терминала (по аналогии  с этим ), вы же предлагаете, что-то не актуальное.

Но вы даёте ссылку вовсе не на API, а на список функций встроенного языка программирования.
А оно уже есть, называется QLua.

Кстати, а что в этом самом QLua не хватает вам из указанного списка? Чего там принципиально нет?
Почему за торговую сессию по инструменту SBER объем продаж не равен объему покупок?, Механика рынка
 
Цитата
Иван написал:
Anton, а разве таблица обезличенных сделок + экспортированные стаканы из QUIK не дадут в сумме этот самый полный ордерлог?

В стакане вы не видите отдельные заявки. Только суммированный объем по всем заявкам с одной ценой.
Если записать все изменения стакана - то примерно лог ордеров получится, но и то не полный, т.к. в стакан транслируются на абсолютно все изменения, там данные поступают лишь с определённым интервалом (хоть и маленьким). Если за время между интервалами выставили 10 заявок и сняли 5, то "дельта" стакана вам даст дельту между новыми и снятыми заявками, а не реальный объем всех этих реальных заявок.
Решение как реализовать шаблоны графиков и индикаторов, которое так много просят.
 
Цитата
Денис написал:
з.ы. Мне не смогли помочь на этом ресурсе с отключением маржинальной тороговли. Жаль что ТП Квика настоль не компетента. Помог же мне пользователь квика на яндекс дзене. Для того чтобы, отключить маржинальную торговлю, надо в настройках запретить использование заёмных средств.

Чушь. Вас обманул "пользователь квика на яндекс дзене".
Запретить самому себе маржинальную торговлю настройками терминала вы не можете.
Максимум что вы можете - это вести расчеты в терминале "только на собственные средства", такая настройка есть, да. Но ни к какому запрету она отношения не имеет, вы по прежнему можете выставлять заявки с использованием заёмных средств брокера, хотя расчет доступного количества в терминале осуществляется лишь в рамках ваших собственных средств.

PS
А вы что же, не продаёте с шорт??
Прошу подсказать идею, что можно реализовать в расширении для QUIK написанном на 1С Предприятие 8, Хобби. Увлечения в свободное время.
 
Вопрос один: нафига козе боян?? Что нового даёт этот инструмент в сравнении с QUIK?
Впрочем, объяснение мы видим в начальных строках по ссылке.

Однако,
Зачем сужать видение своего мира строго в рамках 1С и продажи конфигураций, причем называя это "хобби" (т.е. буквально лишь те 2 составляющие разноцветного окружающего мира, какие вы и так видите и так каждый день) - вот что не понятно.
Вопрос философский.
Помощь в написании скрипта отправки данных по сделкам из QUIK к нам на сайт, выгрузка данных
 
Мне лень читать в ВТБ, а в Финам попалось быстро
http://zaoik.finam.ru/broker/regulations
Берем документ "23.11.20 актуально с 26.11.20.pdf"
http://zaoik.finam.ru/Files/documents/disclosure/finam/broker/regulations/2010_­%D0%A0%D0%B5%D0%B3%D0%BB%D0%B0%D0%BC%D0%B5%D0%BD%D1%82%20%D0­%B1%D1%80%D0%BE%D0%BA%D0%B5%D1%80%D1%81%D0%BA%D0%BE%D0%B3%D0­%BE%20%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B8%D0%B2%D0%B0­%D0%BD%D0%B8%D1%8F%2023.11.20%20%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%­20%D1%81%2026.11.20.pdf

см. пункт 22.2, особенно второй абзац пункта 22.2.2.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
Цитата
Kolossi написал:
16. Как привязать таблицу к конкретной вкладке?

https://quik2dde.ru/viewtopic.php?id=329
getParamEx добавляет 000000 после запятой Quik 8.7.1.3
 
Сама "проблема" обсуждается давно
https://forum.quik.ru/forum10/topic5319/
getParamEx добавляет 000000 после запятой Quik 8.7.1.3
 
Цитата
Artem написал:
Не могу понять, что произошло. Последний раз баловался Qlua еще на 7 Квике и таких проблем не припомню.
Запускал два Квика от разных брокеров, один 8.10, другой 8.7 и везде одно и тоже

Ответ как обычно в вашем вопросе.
Между квиком 7.x и 8.5 изменилась версия Lua, теперь она 5.3
И в ей такое вот умолчательное конвертирование float в строку.

Цитата
Artem написал:
Код
      d0(currentPrice)
      message(currentPrice)

Надо заменить на
Код
currentPrice = d0(currentPrice)
message(currentPrice
Как установить поддержку сокетов в скриптах QUIK ?
 
Отличаются режимами сборки
Для /MD  требуется еще установленный Microsoft Visual C++ Redistributable соответствующей версии (в зависимости от версии Visual C++, в котором собирали). Ну либо установленный MS Visual C++ соответствующей версии.
Кто как решает вопрос с заявками/сделками?
 
Цитата
Владимир написал:
Ну что, так никто ничего и не посоветует?  

Писателю десятка бестселлеров с богатейшим опытом разработки мега-систем в детских игрушках грешно советовать.
Так что уж как-нибудь сам выгребайся.
Помощь в написании скрипта отправки данных по сделкам из QUIK к нам на сайт, выгрузка данных
 
А в вашем договоре с брокером точно нет запрета на публикацию данных из QUIK? Уверены?
Функция getParamEx не выгружает параметры LONGNAME и SHORTNAME
 
См. справку
"Таблицы, используемые в функциях «getItem», «getNumberOf» и «SearchItems»"
Таблица:
securities - Инструменты

В ней то, что вам нужно
Вопросы, не требующие ответов
 
В 8.6 goto работает, проверено.
QLua: OnFinalize
 
Support QUIK, вы же зарегистрируете пожелание?
Расширить список функций обратного вызова
 
Цитата
_sk_ написал:
Есть потребность в отключении слушателей по таймауту (а не когда придёт очередной коллбэк)

"Отключить слушателей по таймауту (а не когда придёт очередной коллбэк)" абсолютно эквивалентно "в начале колбека проверить надо ли уведомлять этого конкретного слушателя или таймаут его уведомлений истёк".      В целом вся эта машинерия выглядит через чур запутанной, потом же сами концов в ней не найдёте... "Почему этот слушатель не сработал? то ли по тайм-ауту отключили, то ли колбека не было, то ли просто что-то пошло не так." "Архитектурно-правильно".... но это так, мысли вслух
Вопросы, не требующие ответов
 
Цитата
Latrop написал:
квику эта участь похоже не грозит. В России это называется - адаптация. Что явно разрешено даже по закону, если

Всегда обожал слушать адептов "цивилизованного рынка", которые уже в во втором предложении пишут "но воровать можно, если не поймают".
Расширить список функций обратного вызова
 
Цитата
swerg написал:
Кстати, 1) есть у меня

Сорри, имелось ввиду 2) есть у меня
Расширить список функций обратного вызова
 
Цитата
_sk_ написал:
Надо всё это для того, чтобы можно было выполнять в потоке коллбэков  регулярные задачи, которые удобнее и архитектурно правильнее делать там,  а не в main.

Архитектурно правильно (в тех рамках, что мы имеем) как можно меньше нагружать колбеки основного потока, вынося всё что возможно в main(). Некоторые еще и несколько потоков делают, этакие множественные main(). Или даже в отдельный процесс.
А потому всё же хотелось бы услышать что это за такие "архитектурно правильные задачи", которые нельзя вынести в main().
Расширить список функций обратного вызова
 
Цитата
Anton написал:
SendMessage (а как иначе)

Через PostMessage, конечно
Кстати, 1) есть у меня (ну почти, сделал, не подумал зачем это может понадобится, выкинул, но восстановить не сложно)
QLua: OnFinalize
 
"Давно" и "8.7" как-то никак не вяжется :) Но способ здравый, да. Спасибо! сломается он только в очередной версии запросто, но всё же вариант
QLua: OnFinalize
 
Требуется событие в QLua, которые бы вызывалось в основном потоке и вызывалось бы всегда гарантированно при завершении скрипта. Рабочее название: OnFinalize
Сейчас такого события нет. OnStop вызывается только при нажатии на кнопку.
При ошибке выполнения скрипта (не синтаксического разбора) хорошо бы бы тоже его вызывать с передачей соответствующего признака

Пожелание такое на форуме совершенно точно было, но сейчас его на удивление даже найти не удаётся.
Что слышно про его реализацию?
Расширить список функций обратного вызова
 
1) Вам main() зачем дадена?
Код
main()
   while run do
      sleep(1000)
      DoMyFunc()   -- вот и "таймер" раз в секунду
   end
end


2) А зачем? что плохого в выполнении в нужного кода опять же в main() ?
Привязка скрипта на lua к конкретному компьютеру, Ограничение возможности запуска скрипта
 
Общие идеи понятны:
1) Компиляция скриптов
2) Упихивание чего-то нужного в DLL

Ну а дальше гуглим ваш вопрос, убрав из него Lua, скрипт и прочие специфичные для QUIK слова
Обсудим диалог на Lua?
 
Диалога не получилось.
Помогите с luasocket для QUIK 8.3.2.5 и старше
 
Цитата
Анатолий написал:
как известно начиная с версии 8.3.2.5 в квике версия луа повысилась до луа 5.3

А вот тут, кстати, ошибка.
В QUIK 8.3 - Lua 5.1 (но x64 платформа)
Lua 5.3 началась только в QUIK 8.5
Может в этом у вас проблемка и причина неработоспособности?
Ошибка создания заявки. [GW] "Превышен лимит отправки транзакций для данного логина."., Учебный сервер выдает ошибку: Ошибка создания заявки. [GW] "Превышен лимит отправки транзакций для данного логина.".
 
Цитата
Олег написал:
А какое ограничение стоит на демо стенде и при реальной торговле (для общего развития)?

На демо вы только что узнали - "в минуту 1800 транзакций"
А на реальных торгах - это проблема вашего брокера как обеспечить вам и другим участникам торговлю без такого сообщения. Зачем вам об этом печалиться.
Ну либо спросить у конкретного брокера.
Помогите с luasocket для QUIK 8.3.2.5 и старше
 
А что в скрипте-то вашем написано?
Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 25 След.
Наверх