Лена написал: а там нечего показывать от слова совсем, цп не перегружен абсолютно, бездействие системы 90%, вам это что то гооврит?
Ну дело же не только в загрузке цп. Есть еще расход памяти, и рерусов GDI. Квичек их много жрет, особенно когда открыто много графиков. Судя по скрину у вас происходит именно это. Поэтому и просят показать сколько квичек выжрал памяти, и, желательно включить колонку c GDI.
Andrey Golik написал: СергейК, иконка, которая обозначена у Вас под номером 1 изменяться не будет, так как по сути своей является символом нашего ПО. А вот иконку под номером 2 нам удалось изменить с помощью изменения значка ярлыка.
Максим написал: Ну, хотя бы опцию "Показывать короткий код в заголовке" или сделать тултип, когда наводишь на заголовок. Или возможность внутри окна название писать.
Есть же опция "показывать полные коды опционов". Если ее снять - разве это не то что нужно?
Такое поведение действительно есть, и оно действительно похоже на баг. Я использую схожий подход, и у меня данные зависят от порядка построения графиков. 90% запусков сопровождаются таким эффектом. Борюсь точно также - открыл настройки, нажал применить. Если не помогло, повторить. Почти всегда со второго раза все ок.
deisik написал: Другими словами, сервер не может не знать TRANS_ID
Ты не читаешь что-ли что тебе пишут? Терминал подаёт транзакцию. А в ответ получает раздельно саму заявку, и ответ на транзакцию.
Биржа сначала присылает заявку. В это время сервер не знает откуда она взялась и присылает ее в терминал как есть. А затем, биржа присылает ответ на твою транзакцию, в котором есть номер заявки (которую ты уже получил) и твой transid. Сервер связывает первое со вторым и присылает обновление заявки в терминал с transid.
Stop Loss и Take Profit к отложенным ИМЕННО Buy stop и Sell stop ордерам, У вас нет возможности выставлять Stop Loss и Take Profit к отложенным ИМЕННО Buy stop и Sell stop ордерам
nikolz написал: В случае торговли на биржевом рынке для простых смертных есть как минимум два сервера.Сервер биржи хранит лимитные заявкиА сервер брокера все Ваши отложенные заявки стопы Сервер брокера - это QUIKОн обрабатывает логику отложенной заявкипри ее срабатывании он отправляет лимитную заявку на север биржии для отслеживания стопа на стоп ему надо обработать лимитную заявку и связать ее с новой вашей отложенной.
теперь сам перечитай это и подумай: -как это противоречит наличию или отсутствию стопов на стопы? более того, квик умеет отслеживать биржевую заявку и связывать с ней обычный стоп.
Stop Loss и Take Profit к отложенным ИМЕННО Buy stop и Sell stop ордерам, У вас нет возможности выставлять Stop Loss и Take Profit к отложенным ИМЕННО Buy stop и Sell stop ордерам
Alexander написал: Тут что-то другое, DLL выгружается, а файл почему-то не закрыт, я такие выводы делаю, хотя я сам этот файл вообще не трогаю, ну в смысле не открываю его.
-На момент выгрузки все счётчики нулевые? -Дебагер, в списке загруженных модулей показывает либу
Загрузил квик. Загрузил скрипт. Он загружает DLL один раз в самом начале. Скрипт отработал. DLL осталась. Выгрузка принудительно показывает, что выгрузка - OK! Ошибок FreeLibrary не выдаёт. Но файл не удалить. Я даже простую DLL, фактически пустую загружаю и скрипт с одной функцией вызова из неё и то же самое. Здесь что-то странное вообще получается. Раньше помница вроде как всё же после скрипта DLL выгружалась сама. Что после произошло и происходит надо понять.
Ну так счетчики-то нулевые или нет? В дебагере после выгрузки модуль виден или нет?
Alexander написал: Тут что-то другое, DLL выгружается, а файл почему-то не закрыт, я такие выводы делаю, хотя я сам этот файл вообще не трогаю, ну в смысле не открываю его.
-На момент выгрузки все счётчики нулевые? -Дебагер, в списке загруженных модулей показывает либу
Alexander написал: FreeLibrary ошибок не выдаёт, скрипт заканчивается, более DLL никто не использует, все ресурсы освобождены, но вот файл библиотеки я удалить так и не могу. Что в обёртке, что в самовыгрузке, - тоже писал ранее - результат один и тот же. Выгрузка без ошибок, файл не удаляется.
Ну значит что-то идет не так. Чудес же не бывает. ))
Можно попробовать подебажить ситуацию так: завести две глобальных переменных g_procs, g_threads, и - на каждый DLL_PROCESS_ATTACH делать g_procs++ - на каждый DLL_PROCESS_DETACH делать g_procs-- - на каждый DLL_THREAD_ATTACH делать g_threads++ - на каждый DLL_THREAD_DETACH делать g_threads--и потом посмотреть статистику.
я так понимаю, что это код внутри твоей либы, ты объявляешь функцию и ее просовываешь в луа, верно? чтобы иметь возможность делать так:
Цитата
Alexander написал: luacdllopt = require("luacdllopt")
Сразу хочу уточнить для понимания: я же правильно понимаю, что возможность загрузить-выгрузить нужна для быстрой отладки, чтобы не рестартить квичок? типа загрузил-попробовал-выгрузил-пересобрал-загрузил-попробовал и т.д.?
Если да, то мне кажется есть путь проще: нужно сделать dll-обертку, для работы с твоей целевой dll-кой, которая может делать LoadLibrary/FreeLibrary, и после загрузки твоей либы она биндит адреса функций в тестовой dll, на какие-то луа-методы.
Все вызовы lua_mycallN находятся в обертке, но реально делают вызов из целевой либы.Я могу ошибаться в деталях, и имена вызовов условны, для понимания что к чему.
При этом работа происходит примерно так: 1. загружаем luamywrap.dll, она содержит какое-то кол-во целевых вызовов, ну, для которых ты все это затеял, и две специальных процедуры: lua_LoadMyLib(name) -- она делает LoadLibrary, сохраняет ее хендл где-то у себя и биндит реальные адреса процедур MyCallN в функции-обертки lua_mycallN. lua_UnLoadMyLib(name) -- она делает FreeLibrary для хендла полученного при загрузке либы, и сбрасывает указатели в lua_mycallN, чтобы небыло падежей в случае случайного вызова. 2. делаем вызов lua_LoadMyLib(myDLLName). 3. теперь можно работать вызывая из луа lua_mycallN - они будут работать как надо. 4. когда закончили - вызываем lua_UnLoadMyLib(), целевая dll выгружается и можно с ней что-то делать. 5. ???? 6. profit!
Alexey написал: 1) Возможно ли что функция OnOrder выполняется через 1 мс после отправки sendTransaction(transaction) ??
да.
Цитата
Alexey написал: 2) Возможно ли что в первичный вызов OnOrder флаги ещё не приняли правильного положения и будут установлены в последующих вызовах OnOrder ??
нет.
Цитата
Alexey написал: 3) Что можно ещё сделать в данной ситуации для улучшения стабильности ?
убедиться что рассматриваемая заявка в таблице и в луа - одна и та же. например наделать скринов, где видно номера заявок и они однинаковые - а флаги разные.
Цитата
Alexey написал: Внезапно время часов Квик, работавшее синхронно с Windows, вдруг начинает запаздывать на 5, 10, 30 сек, потом на минуту и более,
либо проблемы в канале связи у тебя или у брокера. либо тормозит сервер брокера. бороться с этим почти бесполезно. проще сменить брокера.
Вы делаете дичь. В потоке обезличенных сделок есть время сделок. Но никто не обещает синхронности доставки данных. Ты бы ещё пожаловался что свечки на графике отстают.
Alexander написал: Попробую поднять данную тему вновь. Вобщем всё что выше написано - не работает Библиотека не выгружается!.
Явный вызов FreeLibrary для твоей либы (которую ты загрузил в скрипте, не так ли?) - не работает?
Или когда ты ожидаешь что либа будет отгружена? Автоматически, по завершении/отмене скрипта? Такого нет. Нужно явно выгружать либу. Ну и конечно, если либа выгружена, а ты к ней будешь обращаться - все попадает :)
Alexander написал: Да я по всякому уже перепробовал, пробовал я и W варант и A вариант MessageBox-а, и просто коды букв вставлял для cp1251 из таблицы символов. Ни так, ни как не выводят по русски. Скрины:
Судя по скрину, у тебя настройки проекта юникодные, и скорее всего сам файл исходника в юникоде. Нужно все переключить в анси. Это самый простой путь.
Хотя вариант MessageBoxW(..., L"Русский текст"...) должен работать. Но это все время сложности с кодировкой. Оно надо? Проще все переклюить в анси.