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

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

Страницы: Пред. 1 ... 7 8 9 10 11 12 13 14 15 16 17 ... 25 След.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Sergey Gorokhov написал:
Цитата
swerg написал:
А в 8.5 как это всё устроено?
Уточните зачем Вам это?
Мы считаем что все DLL файлы которые лежат в дистрибутиве, должны лежать в дистрибутиве без пояснения причин.
Просто так надо.
Вы можете считать как угодно, однако было бы здорово, если бы вы нашли в себе силы нормально документировать систему. И отвечать на вопросы, а не переспрашивать в ответ "зачем вам это надо".
Т.е. скрипты Lua могут использовать внешние dll-библиотеки, то критично важно знать как сейчас технически устроен интерпретатор Lua в QUIK для того, чтобы:

1) Исправлять ваши же косяки с организацией Lua-машины и внешних библиотек.
См. изготовление правильной lua5.1.dll как прокси к qlua.dll
https://quik2dde.ru/viewtopic.php?id=47
Что характерно, позже вы сами добавили в дистрибутив QUIK lua5.1.dll, сделанную именно таким образом, а не просто подложив её из дистрибутива Lua, т.е. признали такой подход верным.

2) Понимать с какой же dll-библиотекой необходимо линковать свои внешние dll модули для Lua: с qlua.dll, с lua5.1.dll или с lua53.dll ? В том числе чтобы не возникало проблем, описанных по ссылке из пункта 1).

3) Чтобы в конце-концов все же понять: что за файл в дистрибутиве lua5.1.dll ? Что это? как он функционирует в составе Lua 5.3 ?
Если у меня есть dll, которая была ориентирована на работу в Lua5.1, эта dll работала в составе Lua-скрипта на предыдущих версиях QUIK и, предположим, она корректно запустилась на QUIK 8.5, используя при этом обращения к lua5.1.dll для вызова функций Lua-машины - то могу ли я быть уверен, что такая библиотека будет корректно работать в составе QUIK 8.5 ? В том числе с учетом изложенного в пункте 1) ?


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

Почему все компании производящие платформы всегда рассказывают и показывают как устроена платформа внутри (в точки зрения её организации, требуемой пользователю для понимания что и как, и только QUIK традиционно выдаёт информацию по крупицам, просто-таки клещами всё приходится вытягивать?
Это, кстати, скорее всего говорит лишь о том, что вы даже не продумываете совершенно клиентские сценарии работы с вашим ПО, вы просто не знаете о них! И QUIK вы выпускаете "как получится", не продумывая клиентские сценарии. Соответственно вам просто-напросто и рассказать-то не о чем. Вы не понимаете что вообще пользователям требуется для нормального функционирования системы. И лишь когда пользователи с удивлением обнаруживают разные "неожиданные сюрпризы" - внезапно в них сознаетесь (типа многократного срабатывания OnTrade и OnOrder). Прекрасная, очень прекрасная позиция!
Всплывающее окошко Message() - кожно ли убрать?
 
Ответ на вопрос нагуглить несложно так-то

F9 --> Сообщения --> снять галку "показывать окно сообщений"
Проработка стратегии на виртуальной торговле, Формирование стратегии, виртуальная торговля
 
Цитата
Константин ... написал:
Добрый день

Скажите есть ли продвижения по данной теме? Или вопрос был отложен на неопределенное время которое никто никогда не узнает ?
Да не будет в QUIK тестирования никогда. Даже ждать смысла нет.
Зачем "зарегистрировали пожелание" - не понятно.
Индикатор + скрипт
 
Нет.
Никакого main в индикаторах нет
Ошибка при использовании оператора and
 
Какую ошибку вызывает последняя строка у вас?
Неправильное значение Totalnet в функции onTrade()
 
Цитата
Иван написал:
Последовательность событий OnTrancReply(), OnOrder(), OnTrade(), имеют всегда жесткую последовательность исполнения, или же могут в разном порядке сработать?
Нет. Фиксированной последовательности нет. Скрипт следует писать так, чтобы он корректно работал при абсолютно любой последовательности вызова этих событий.
Более того, OnOrder() и OnTrade() могут быть вызваны по несколько раз для одной и той же заявки и сделки.

Чисто теоретически OnTrancReply() вовсе может не быть вызван (например, терминал потерял связь после отправки транзакции), но будем считать, что это слишком экзотический случай, хотя и вполне реальный, такие сообщения на форуме были.
Обработать исключение для включаемого файла через dofile
 
Второй метод спасет только от формальных синтаксических ошибок в коде.
Если синтаксически код корректен, но возникнет ошибка при исполнении (обращение к необъявленной переменной, например) - то второй метод не спасет.
А первый - спасёт, для того и предназначен
Раскрытие графика во весь экран - сделать по двойному щелчку мыши
 
На самом деле вполне разумная фича
Мало ли что убраны лишние элементы интерфейса? то не должно мешать возможности при необходимости разворачивать какое-то окно, а посте - восстанавливать его размер. Двойным кликом или комбинацией клавиш.
Т0 и Т2 - свободно много рублей, а Т1 - мало. Не понимаю, почему так
 
Всё что вы рассказываете - косяки исключительно брокера. Так что все вопросы к нему.
очереди
 
Верный ответ:
1) поместит заявку в очередь с номером 101

Ни биржа, ни сервер QUIK не ищет в очереди заявки в момент их выставления. Кстати, биржа и вовсе не понимает "заявка того же клиента". Для биржи это всё заявки "одного брокера", а клиент вписан лишь в комментарий, на который биржа не смотрит.
Некорректность автора сообщения в списке форумов
 
Откроем список форумов
https://forum.quik.ru

В момент написания этого сообщения видим следующее:



Вопрос к тому, что отображается в выделенным оранжевым прямоугольником.
Ранее там всегда был автор последнего сообщения в теме.
Но теперь отображается что-то вообще не понятное.
Например, если открыть первую тему на скриншоте
https://forum.quik.ru/messages/forum1/message44641/topic5394/#message44641
то там даже нет ни одного сообщения от автора с ником "Инесса".

Поправьте как-нибудь эту странность с отображением
Звук Lua в фоновом режиме
 
Вот проигрывание в фоновом режиме
https://quik2dde.ru/viewtopic.php?id=79

Всё подробно написано как устанавливать. Надеюсь, у вас не 8.5 версия (где Lua версию изменили)
Т0 и Т2 - свободно много рублей, а Т1 - мало. Не понимаю, почему так
 
Вообще говоря если бы вы торговали только акциями (которые в Т2) - вы бы этого всего и вовсе не заметили скорее всего.
"Странности" вылезли из-за того, что вы (судя по первому сообщению) торгуете акциями и облигациями. А за облигации расчеты происходят сегодня (т.е. в Т0). Вот тут и начинаются нюансы ;)
Хотя откуда у вас взялся недостаток средств именно на Т1 - всё одно не понимаю. Следует обратиться за толкованием к брокеру для конкретной вашей ситуации.
Т0 и Т2 - свободно много рублей, а Т1 - мало. Не понимаю, почему так
 
Такие вопросы лучше задавать брокеру: как и что устроено у конкретного брокера. За это вы и платите ему комиссию. Кстати, именно брокеру следует адресовать вопрос как так вышло, что в Т0 и Т2 у вас средств достаточно, а в Т1 - нет. Это весьма странная картинка, даже не могу придумать как это так вышло.
Но брокер вполне сможет дать вам ответ.
Цитата
Марк написал:
Никак не привыкну к режиму торгов Т2 (на Мосбирже): купил акции сейчас, а продать их смогу только через день.
Нет, это не так. Ведь вы и продаёте, и покупаете акции в одном режиме Т2.
Вообще говоря по идее вас этот режим Т2 не должен совершенно никак тревожить, особенно если речь про внутридневный скальпинг. Т2 - это про денежные расчеты с биржей, а не про возможность покупки - продажи.

Т.е. Т2 - это вот что (если грубо): вы купили акции сегодня, а деньги на биржу за них надо будет отдать послезавтра. Во всяком случае что касается расчетов брокера с биржей, с вас брокер, понятно, хочет деньги уже сегодня в обеспечение, но это отдельная история. А если вы сегодня акции продали - то биржа вам после завтра эти деньги на счет начислит.
Но если вы утром купили, вечером продали - то фактически как бы деньги никакие не заделись  в том смысле, что  по обеим операциям расчеты будут только послезавтра. Но рассчитываться-то уже и не за что, акции проданы, расчет только в размере прибыли/убытка произойдёт и все.

Так что с внутредневным скальпингом всё в порядке.

Однако если вы привыкли к форексу (откуда там акции, кстати??), то вам бы лучше напроситься на курсы к брокеру, чтобы он растолковал что и как. Т.к. биржа устроена несколько сложнее, и некоторые биржевые процессы приходится учитывать при торговле на бирже.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
В терминале QUIK версии 8.5 лежат 3 dll-файла:
qlua.dll
lua5.1.dll
lua53.dll

Что в них содержится? как они теперь взаимодействуют?

В предыдущих версиях было 2 файла:
qlua.dll -- содержит весь интерпретатор Lua
lua5.1.dll -- содержит только прокси вызовов в qlua.dll

А в 8.5 как это всё устроено?
какой смысл замены lua5.1 на lua5.3
 
luajit мешает многопоточность
проблема с w32.dll на quik 8.5
 
Проблема в том, что в 8.5 перешли на Lua 5.3
Надо пересобирать библиотеку. Пересоберу на днях.
не является приложением Win32
 
Вот здесь подробно написано что как делать, какие свойства в проекте настраивать
https://quik2dde.ru/viewtopic.php?id=18

И есть готовый пример dll, компилируемой в 32 и 64 битные варианты
Можно на основе того проекта сделать, просто заменить файлы с исходниками, переименовать файлы проекта при надобности и имя выходного файла. А проекты уже настроены как надо
Сделка по точному времени сервера
 
stime = tostring(GetInfoParam("SERVERTIME"))

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

  table.insert(arrtotal,{ .......
        })
Отображение без задержек вариационной маржи
 
вар маржу вычисляет сервер
и лишь периодически
так что иначе она отображаться не может в quik
QUIK 8.0
 
Цитата
Анатолий написал:
Запускал также msvcbuild с опцией debug-5.1 - все равно не компилится
https://quik2dde.ru/viewtopic.php?id=300

скомпилировал x32 вариант, не проверял
с x64 пока разбираюсь
QUIK 8.0
 
вы выше читали что я писал?

сделать надо или так:

size_t l = 0;
std::string secret = luaL_checklstring(L, 1, &l);

или так:
std::string secret = luaL_checklstring(L, 1, nullptr);
QUIK 8.0
 
Цитата
Анатолий написал:
Привет, слушай выручи пожалуйста - можешь помочь скомпилить библиотечку  https://github.com/jmckaskill/luaffi   я бился бился ничего не получилось, все  по мануалу автора делал неполучается
Там надо аккуратно разобраться с bat-файлом.
В нём указаны абсолютные пути до lib-файлов и до lua.exe (на диск Z:)
Эти пути надо просто поправить на свои.
Кроме того, часть h-файлов генерируется тут же при сборке через lua-скрипты, опять же надо разобраться и все настроить, чтобы генерация отрабатывала (запускалась Lua.exe) и сделать.

Может вы лучше напишете какие API функции вам нужны? вот честное слово - не верю я в магию "функции в любой dll можно вызвать из lua через эту библиотеку". Где-нибудь да обязательно вылезет проблема, которую замучаешься разгребать.

ЗЫ
Модераторы, выделите, плиз, сообщения про luaffi в отдельную тему. А то каша получается тут.
QUIK 8.0
 
Цитата
Анатолий написал:
Вообщем все равно ошибки лупит, делаю все как в вашем образце а ошибки там где я даже ничего и не трогал:
Я не вижу что там сейчас на картинке за код и ошибки.
Приведите их здесь, пожалуйста. И полный ваш код.
QUIK 8.0
 
Цитата
Анатолий написал:
Цитата
swerg написал:
Просто взять готовый проект и на его основе делать. Только переименовать )
Стал делать по вашему образцу, думаю сделать полезную подключаемую библиотечку
Код
  static int forLua_httprequest(lua_State  * L) {
 1         const char *  url  =  luaL_checklstring ( L,  1  );
 2    const char *  method  =  luaL_checklstring (L,  2 );
 3    const char *  parameters  =  luaL_checklstring (L,  3 );
 4    double SomeCounter  =  luaL_checknumber (L,  4 );
}

  

Т.е. - первые три аргумента  в функцию будут передаваться строчными, четвертый - число, MSVStudio 2107 лупит мне ошибки:
с 1 по 4ую строки - слишком мало аргументов в вызове функции,  в чем ошибка? Вроде все по вашему примеру...
Там же форум, можно спросить не отходя от кассы ;)

В luaL_checklstring() третьим параметром передайте nullptr

Индикатор с линиями заданной длины, Индикатор с линиями заданной длины
 
Это можно сделать только выводом меток через AddLabel / SetLabelParams, в качестве меток выводить картинку одноцветного маленького квадрата. Из этих квадратов формировать линии, задавая нужные координаты меток.
Работа с Excel
 
Вы бы примерно привели код, которым пользуетесь для вывода в Excel
Чтобы было понятно с какой стороны советовать.

Если через COM - то посмотрите здесь, наверняка полезное найдётся
https://infostart.ru/public/398279/
https://infostart.ru/public/684206/  
QUIK 8.0
 
Повторю свой пост в этой ветке.
По ссылке можно взять готовый пример DLL на C++ для QUIK 8 (x64).
И все .lib-файлы для сборки там есть.

https://quik2dde.ru/viewforum.php?id=14

Просто взять готовый проект и на его основе делать. Только переименовать )
как мне скомпилировать или достать luasql
 
Вам под какую платформу нужна сборка? Windows или *nix?
OnOrder, снятие заявки
 
Цитата
Старатель написал:
Допустим, OnOrder получен раньше или OnTransReply вообще не пришел.
Есть возможность установить инициатора снятия: сам скрипт, пользователь (вручную) или, может, другой бот?
Такой возможности нет.
OnOrder - это сигнал с биржи "параметры заявки изменились". Просто параметры, просто некоей заявки (ну или возникла новая заявка). Никакой привязки к транзакции (т.е. источнику возникновения этой заявки) - нет. И не может быть.
Так что надо перепридумывать логику робота так, чтобы такая информация не требовалась.
Используйте пользовательский комментарий для различения заявок от разных роботов или ручного ввода, по нему разделяйте OnOrder, например.
Соответствие Кодов клиента и Торговых счетов, Определение соответствия Кодов клиента и Торговых счетов
 
Цитата
QApplication написал:
Какими функциями QLUA и в каком порядке можно построить структуру данных о клиентских счетах и др. в виде дерева?
Уже сейчас вам всё это доступно: надо просто проитерировать все лимиты по бумагам и по деньгам
И из них выстроить требуемую вам структуру. (Зачем она вам нудна - вот что не понять)

Собственно QUIK в каком-то смысле так и делает: есть лимиты - из них достаётся вся информация. И всё.
Никакой "структуры параметров" нет.
Исключение незавершенных свеч
 
Если я ничего не путаю, то строго говоря значения могут приезжать не только в последнюю свечу.
Но точно это нюанс подзабыл
Значение переменной в предыдущую секунду, Как узнать разницу цены пришедшего тика с ценой предыдущего тика?
 
Разрешаю!
CreateDataSource, не делает квик сильнее
 
Цитата
Anton написал:
При открытии ТОС ничего же не виснет.
Вот когда откроете полторы тысячи тиковых TOC - тогда и будет смысл говорить про "ничего не виснет".
Защита от кросс сделок
 
Вы ведь понимаете, что никак.
На то они и анонимные торги, что никто не знает чьи это заявки. Более того, по одной цене могут стоять как ваши заявки, так и других трейдеров. Соответственно вы не знаете именно заявки будет мэчить биржа: ваши с вашими или ваши с "чужими".

В общем рецепт тут только один: не "заранее проверять", а продумать стратегию что делать в случае обнаружения кросс-сделки и стратегию эту реализовать в скрипте.
Тем более, что между "проверкой" и реальным выставлением заявки все может повернуться так, что часть заявок других трейдеров будет снята и результат проверки окажется недействительным, т.е. опять получим кросс. С которым опять надо будет бороться как-то.
Хозяйке на заметку: OnStop(), или "Зачем вы это делаете, мистер Андерсон?"
 
Как известно, QLua работает вот по такой модели: https://quik2dde.ru/viewtopic.php?id=16
В этой схеме не прописан один быть может не совсем очевидный нюанс, хотя понятно, что иначе и не сделать.

Сначала выполняется "скрипт целиком" ([BODY] на схеме). Выполняется он и в том смысле, что в глобальное пространство имён Lua-машины добавляются определённые в Lua-скрипте функции.
Далее QLua перебирает все объекты глобального хранилища, и находит там функции с предопределёнными названиями. Для всех найденных известных функций-callback'ов "в уме" QLua проставляет признак: "для этого события callback определён, а для этого - нет".

После, когда возникает какое-либо событие, которое должно привести к вызову callback-функции, сначала проверяется: а для этого события с этом скрипте мы нашли требуемую callback-функцию после выполнения [BODY]? Нашли - вызываем её, не нашли - не вызываем.

Соответственно, если мы в нашем Lua-скрипте определяем глобальную функцию OnStop только в тот момент, когда первый раз вызовется OnInit - то это будет уже "поздно". QLua уже пометил себе, что функция OnStop - не найдена, вызывать её не следует.

Вот и вся разгадка.

Осталось лишь узнать мнение начальника транспортного цеха, зачем он использует столь изощрённый синтаксис. Какова хитрая цель? Быть может все будет полезно?
Отличие модификаций Quik у разных брокеров, использование одного Quik для разных брокеров
 
Как одним терминалом подключаться к разным брокерам
https://iquik.ru/2012/03/20/iquik-how-to-connect-to-different-brokers-account/
Отправка транзакций
 
Несколько минут??
Что за брокер? на каком рынке? в какое время? все время в течение дня??
Расскажите, чтобы туда не ходить
Многопоточность в Луа
 
На 512 инструментов выставляете заявки?
Не работает .dll в новой версии QUIK, просит увеличить файл подкачки
 
Цитата
Александр Волфовиц написал:
Обновился QUIK до 8-й версии и "обрадовал" ошибкой:

На предыдущей версии работали 6 скриптов безо всяких проблем.
Судя по тексту ошибки - проблема в библиотеке luacdll
Её или вы, или кто-то явно сделал на основе примера вот отсюда
https://quik2dde.ru/viewtopic.php?id=18

Для QUIK 8 вашу библиотеку надо пересобрать для платформы x64. По указанной ссылке уже обновлены сборки и все требуемые файлы для возможности собирать библиотеки для x64 платформы, с архиве с исходниками.

Только надо именно вашу библиотеку пересобрать! Из ваших исходников! Если вы сами её делали - возьмите исходники, обновите файлы проекта и lib-файлы и пересоберите.
Если делал кто-то другой - обратитесь к нему, пусть из исходников пересоберёт на основе примеров по указанной ссылке.
Многопоточность в Луа
 
Цитата
Олег написал:
SleepWaitForSingleObjectWaitForMultipleObject и т.д.При выходе потока из спячки ОС Windows вернет управление в тот же самый поток или в любой другой свободный поток из рабочего пула потоков Windows?
Разумеется по выходу из указанных функций произойдёт возврат ровно в этот же поток, иначе и не может быть.

Вообще вы куда-то не туда роете, не теми какими-то вопросами задаётесь.
Вы расскажите чего хотите добиться - возможно, вам предложат решение. Это будет более плодотворный путь.
Многопоточность в Луа
 
Цитата
Олег написал:
Программа QUIK создает потоки для каждого скрипта напрямую через CreateThread или берет из пула потоков, предоставляемых Windows.Например, через QueueUserWorkItem ?
Windows предоставляет всем нам единственную функцию для создания потоков: CreateThread
Так что в любом случае поток создаётся в итоге через неё.
QUIK 8.0
 
Добавил в архив тестовый пример DLL на C++ для QUIK 8 (x64)
Там же можно взять .lib-файл для сборки своих проектов

https://quik2dde.ru/viewforum.php?id=14
Как узнать id поданной заявки?
 
Цитата

Цитата
Андрей написал:
Также, хотел бы спросить, не будет ли убытка в случае операции подачи заявки и практически моментального снятия?  
Этот вопрос следует задать вашему брокеру.
Обязательно уточнив про какой рынок идёт речь (каким типом инструментов в торгуете).
Общего ответа нет, зависит от брокера и рынка (биржи)
2-x кратный расчет индикатора
 
Не отвлекай, люди работают.
Если они еще и на форумах будут отвечать по каждой проблеме - прикинь как всё затянется  :what:  
Индикатор(написанный мной) не передает данные на экран в текущем времени, Проблемс
 
У вас ошибка в 17-й строке.
Снятие заявок
 
Речь про подключение к QUIK через клиентский терминал?

Если так, то не понятно зачем это может быть нужно. Клиент QUIK настолько далеко от шлюзового подключения к бирже сервером, что что-либо тут контролировать вы всё равно не сможете.
Порядок вызова Callback OnOrder, OnDepoLimit / OnFuturesClientHolding, Порядок вызова Callback OnOrder, OnDepoLimit / OnFuturesClientHolding
 
Дмитрий, вас тут зачем-то обманывают.
Правильный ответ такой: робот должен корректно работать при абсолютно любом порядке срабатывания call-back'ов.
Потому как порядок в разное время и у разных брокеров и на разном вашем канале может быть совершенно любым (особенно во время большой активности на рынке).
И когда ваш робот в критический момент не сработает (не закроет позицию, например) из-за того, что вы заложились в нём только на определённый порядок срабатывания call-back'ов - то вам тут не помогут и даже не посочувствуют. Лишь скажут, что "мы не обещали определённый порядок".

Так что расслабляться в этом месте не следует, при проектировании робота следует исходить лишь из того, что call-back'и могут сработать в абсолютно любом порядке. Скажу больше, в некоторых случаях некоторые call-back'и могут вовсе не сработать (да, и такое бывает, пусть и не часто), но и в таких случаях робот должен либо корректно жить, либо ярко зажигать красную лампочку для ручного вмешательства и принятия решения и том, что делать с набранными позами здесь и сейчас.
Работа на Мас
 
В инструкции указана необходимость скачивать msvcp60.dll
Что-то мне подсказывает, что это уже не актуально.
Если это так - удалите из инструкции информацию про msvcp60.dll, плиз
Страницы: Пред. 1 ... 7 8 9 10 11 12 13 14 15 16 17 ... 25 След.
Наверх