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

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

Страницы: Пред. 1 ... 40 41 42 43 44 45 46 47 48 49 50 ... 81 След.
Динамическое количество линий индикатора
 
Цитата
Nikolay написал:
Это значит что при попытке вывода линий они выводятся не на своих местах.
Для примера, в Settings.line три линии. В Init добавили еще две линии - их стало пять. Вернули из функции Init 5.
При отрисовке линий 4, 5 они выводятся поверх линий 1-3.
Предположу, что забыли очистить буфер старых линий, поэтому они и выводятся.
КВИК ПОД ДРУГУЮ ОПЕРАЦИОННУЮ СИСТЕМУ ОТЛИЧНУЮ ОТ Windows, В связи с последними известными события Microsoft уходит из РФ а в случае обострения вообще блокнуть могут через обновления
 
Цитата
Иван написал:
Цитата
nikolz написал:
Надпись на линукcе, что это аврора не делает линукс отечественной.
На Кенигсберге тоже Калининград написано это не делает его городом РФ?
Сделано в китае на кроссовках найк не делает эти кроссы китайскими?
Если разбираетесь в теме посоветуйте возможные варианты как и на чем работать без риска с деньгами в текущих реалиях ? а стеб для полит форумов придержите
ОС на потерю денег не влияет.
-------------------------
Поэтому,
если очень хочется и знаете как, то ставьте на линукс,
а если приключений на свою ж... не хотите, то работайте на винде
и не парьтесь без веника и не читайте страшилки в интернете.
Интервал между сделками на спот-рынке и на срочке.
 
Цитата
Сергей Олейник написал:
Почему интервал сделок на споте и на срочке разный при указании времени сделок в мкс?. То есть сделки идут на разных площадках не синхронно?
Если Вы про квант времени, то он на биржах синхронизируется по атомным часам точного времени и он точный.
Вопрос в том, как вы измерили несинхронность?  
КВИК ПОД ДРУГУЮ ОПЕРАЦИОННУЮ СИСТЕМУ ОТЛИЧНУЮ ОТ Windows, В связи с последними известными события Microsoft уходит из РФ а в случае обострения вообще блокнуть могут через обновления
 
Цитата
Иван написал:
Вопрос к тех поддержке если 10 винда все ,то какая отечественная операционка подойдет? и что для этого нужно? какой ноут брать и с какой операционкой отечественной ?
Есть ли планы квик написать или адаптировать как то на что то кроме винды?
прикольно, Вы из какого отечества?
----------------
Никогда в россии не было никакой операционки сделано.
--------------------
Надпись на линукcе, что это аврора не делает линукс отечественной.  
График оборота торгов в деньгах смещен влево на 1 сессию, Текущ. знач. в ТТТ показывает - это сегодняшний график
 
Цитата
NoneB написал:
К проблеме смещения графика добавилось некорректное отображение на вертикальной шкале значения для перекрестия -   объем торгов отображается как     ОТРИЦАТЕЛЬНЫЙ.  
Перезаказ  данных, перезагрузка программы  и получение пропущенных данных при помощи клавиши F5 не помогли.



Все просто, Вы пере заказали данные и получили объем торгов за текущую сессию,
так как предыдущие дни у Вас хранились в архиве, на сервере их нет.
-----------------------
А перезаказ привел к стиранию Вашего архива.
---------------------
Теперь копите данные и будет вам счастье, но когда накопите их в терминале.
-----------------------
В следующий раз сто раз подумаете, прежде чем перезаказывать.
--------------
Либо сохраняйте копию накопленного.
================  
"Потерявши голову, по волосам не плачут.."
Вопрос по луа 5.4
 
Вообще-то, нет никакой разницы какую вы используете версию 5.4 так как в КВИКЕ будет работать dll из папки КВИКА
а lib которую используете при сборке лишь содержит указатели на dll.
типа:
Код
luaC_fullgc lua54.dll lua54.dll/ 1608127225              0       40        `
luaC_step lua54.dll lua54.dll/   1608127225              0       40        `
       `
Вопрос по луа 5.4
 
Цитата
s_mike@rambler.ru написал:
В Квик встроен луа 5.4.1. я нашел в сети 5.4.2 и собирал библиотеку с ней. Не в этом ли дело? 5.4.1 я не смог найти, если подскажете где , будет здорово.
Уточнил, я тоже использую Lua 5.4.2.
Вопрос по луа 5.4
 
Цитата
s_mike@rambler.ru написал:
В Квик встроен луа 5.4.1. я нашел в сети 5.4.2 и собирал библиотеку с ней. Не в этом ли дело? 5.4.1 я не смог найти, если подскажете где , будет здорово.
Я вам не правильно ответил.
Я использую для сборки lib, которую сделал из dll.
Вопрос по луа 5.4
 
Цитата
s_mike@rambler.ru написал:
В Квик встроен луа 5.4.1. я нашел в сети 5.4.2 и собирал библиотеку с ней. Не в этом ли дело? 5.4.1 я не смог найти, если подскажете где , будет здорово.
нет не в этом,
я собираю библиотеки с 5.4.4  и  все работает без проблем.
--------------
Я не понял как Вы собрали dll с ошибкой в вызове.
Возможно Вы не увидели ошибку и у Вас осталась dll от 5.3
В итоге она и повисла у Вас при запуске в 5.4
Неправильное значение Totalnet в функции onTrade()
 
В колбеке OnTrancReply  результат сделки приходит раньше чем в OnOrder(), OnTrade().
так как OnTrancReply ответ сервера на транзакцию
а OnOrder(), OnTrade() - это регистрация результата в соответствующих таблицах.
Естественно, регистрация всегда делается на результат исполнения транзакции.
----------------
Поэтому Вы видите сначала то, что потом увидите в OnOrder(), OnTrade().
=============
Я использую ответ на транзакцию на принятие решения, а колбек регистрации на фиксацию состояния заявки.
Все работает и быстро и правильно.
---------------------
"... разруха не в клозетах, а в головах."
Расчет индикаторов на графике после отмены добавления индикатора через меню по мышке "Добавить индикатор"
 
Цитата
Евгений написал:
Расчет индикаторов на графике после отмены добавления индикатора через меню по мышке "Добавить индикатор (индикатор)"

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

Зачем ?
Вопрос риторический.  
Вопрос по луа 5.4
 
все работает в Lua 5.4
Вопрос по луа 5.4
 
Цитата
s_mike@rambler.ru написал:
решил пересобрать  библиотеку с 5.3 на 5.4
Уткнулся в проблему

Функция в dll:

static int b4s_xxx(lua_State *L)
{
const char *buffer = "message(\"hello world\")";
int result = luaL_dostring(L, buffer, strlen(buffer));

lua_pushnil(L);
return 1;
}

Вызываем из standalone lua

require "testlib"
message = print
testlib.xxx()

Выводит hello world

Вызываем из квика

require "testlib"
testlib.xxx()

ничего не выводит.


Теряюсь в догадках. Кто может подсказать?  на 5.3 проблем не наблюдалось
вообще-то, у Вас ошибка в записи макроса.
См документацию:
luaL_dostring (lua_State *L, const char *str); //2 аргумента
а у Вас:
luaL_dostring(L, buffer, strlen(buffer)); //3 аргумента
Транзакции на снятие Лимит. заявки
 
В итогу у меня все работает примерно в 100- 1000 раз быстрее, чем у Вас.
Транзакции на снятие Лимит. заявки
 
колбеки заявок и транзакций исполняются примерно за 1...5 мкс
Транзакции на снятие Лимит. заявки
 
Цитата
Станислав написал:
Поставил задержку (пробовал от 1 до 5 секунд) теперь вот что выдает:
очевидно, Вы неправильно организовали процесс снятия заявки.
-------------------
рассказываю упрощенно как сделано у меня. Тестировал на выставлении и снятии заявок в цикле.
Всего было выставлено и снято 200 тысяч заявок по 200 инструментам без подобных сообщений .
---------------
Выставление и снятие заявок реализуется по похожим алгоритмам.
Необходимо обрабатывать состояние не только заявки но и транзакции.
Чтобы не перебирать таблицу заявок, а для 200 тысяч заявок упаритесь это делать,
я веду учет индексов активных заявок по каждому инструменту, а также индексы активных транзакций.
Процедура подачи или снятия заявок состоит из двух блоков.
-----------------  
Логика процесса такая.
Из таблицы активных заявок выбирается та, которую надо снять.
Она отмечается меткой, что мы ее снимаем.
Формируем транзакцию и отправляем на сервер.
по транзакции возможны две ошибки
При ее проверке терминалом и при ее проверке сервером.
Если возникает ошибка, то транзакция удаляется и снимается отметка с заявки.
процесс повторяется снова.
---------------
Так как инструментов много и заявки по ним выставляются асинхронно , то для транзакций организована очередь на исполнение.
---------------
Если сервер выставил заявку на биржу то приходит сообщение в колбек транзакции
Это сообщение приходит раньше чем сообщение о снятии в таблицу заявок.
Я использую это сообщение как сигнал снятие заявки, но обрабатываю сообщение о снятии которое приходит в колбек заявки
и отмечаю что заявка снята окончательно и удаляю ее из таблицы активных заявок.
------------------
В результате , заявка снимается за время как правило не более десятых долей секунды.
--------------
Количество инструментов  практически не влияет на скорость исполнения.
Получение данных в стороннем софте через DLL из QLUA
 
Вы можете сделать проще , написав свою программу на С++ как dll для Lua и загрузить ее в свой скрипт оператором require.
Получение данных в стороннем софте через DLL из QLUA
 
Цитата
Юрий написал:
Цитата
nikolz написал:
Вы напишите, куда хотите передать, тогда отвечу более предметно.
Передать мне надо в программу на C++
Очень хотелось бы пример в виде кода.
пример можно посмотреть в книге
Джеффри РИХТЕР " Создание эффективных WIN32-приложений  с учетом специфики 64-разрядной  версии Windows"
---------------------
Вам надо определиться с механизмом передачи.
Получение данных в стороннем софте через DLL из QLUA
 
Вы напишите, куда хотите передать, тогда отвечу более предметно.
Получение данных в стороннем софте через DLL из QLUA
 
Цитата
Юрий написал:
DLL создавать умею. Но вы меня не совсем правильно поняли. Вопрос не в том как вернуть что-то из DLL в скрипт на lua, вопрос в том как передать дальше данные из DLL в сторонний софт. То есть мне нужна трансляция данных из QLUA в стороннюю программу через DLL в одну сторону. Вот я не совсем понимаю как это сделать в связке DLL и сторонний софт. Надо подгружать DLL в стороннюю программу и регистрировать колбеки чтобы при получении данных DLL передавала их дальше в мою программу или как ?? Вот мне такой пример нужен в виде кода.
В сторонний софт однозначно надо будет делать dll, если в нем не предусмотрен какой-либо механизм получения данных из других процессов.
------------------
Вы можете сделать одну dll c функциями для Lua и вашего стороннего софта.
---------------------
Например, я делал dll, в которой функции для СИ и обертка к ним для Lua.  
------------------------------
В питоне  и Luajit есть возможность подключать dll на CИ.   Т е для них не надо писать специальную dll, а достаточно  dll на СИ.
---------------
Переход с 7.26 на новые версии, Переход с 7.26 на новые версии стало лучще или хуже?
 
Цитата
Дмитрий написал:
Добрый день!

Уважаемые знатоки, кто переходил с последних х32 версий на новые х64, предлагаемые брокерами, на том же железе, стало в итоге хуже или лучше? Увеличение нагрузки на железо чувствуется? Стоит ли ради перехода сносить сносить свою 32-битную систему и переходить на х64?
Квик поставил первый раз в 20-м году. Сначала все было нормально, вроде бы, но потом начались тормоза и подвисания, никакие чистки файлов не помогают. Пару раз сносил все под ноль, чистил реестр, ставил заново, пробовал терминалы от разных брокеров - ничего не помогает и везде одни и те же тормоза. Пришел на форум, почитал, понял, что я не один, и у людей, с намного более продвинутым железом и желанием что-то изменить - проблемы те же самые: квик тормозит.
Брокеры меня много раз пугали, что в 7-й версии квика некорректно отображаются данные, что она больше не поддерживается, и вы работаете на свой страх и риск, что ее срочно нужно поменять и т.д., на что я им отвечал, что мне проще поменять брокера. Я даже вижу, что до некоторых из них начало доходить, и на сайтах теперь выложена 7-версия, хотя их все меньше.
Вопрос у меня простой: по вашим ощущениям и опыту, нужно ли запариваться и переходить на новые версии? Что я теряю, сидя на 7? На том же железе, в новых версиях тормозов больше или меньше, и на сколько сильнее они грузят железо?  
смотря какое железо.
У меня 7-я версия без проблем работала на XP.
перешел два года назад на 8-ю так как сменил брокера.
тестирую сейчас 9.5.
-------------------------
Все работает нормально и быстрее, так как железо быстрее работает.
-------------------------------
Процессор грузится примерно на 10%, но подробно не замерял.
На скриптах так вообще просто летает.
---------------------------
Полагаю, что проблема бывает не в зеркале, а в танцоре.
sendTransaction Использовать кредит, sendTransaction new_order Использовать кредит имя параметр
 
Цитата
just написал:
Подскажите, пожалуйста, какой параметр указать при выставлении заявки, чтобы сделка использовала кредитное плечо. Лучше имя параметра на английском, русские у меня в этой процедуре не проходят, мне так помнится.
У Вас должно быть соглашение с брокером на использование маржинальных сделок.
если оно есть, то ваша заявка будет автоматом маржинальной,
если Вы превысите размер собственных средств
или сделаете короткую позицию.
Получение данных в стороннем софте через DLL из QLUA
 
Цитата
Юрий написал:
Добрый день.

Есть необходимость получить данные о сделке в момент ее совершения в своей программе написанной на C++.

Как из QLUA отправить данные в свою DLL вроде нагуглил и разобрался. А как передать эти данные из DLL в свою программу, я что-то ума не дам. Опыта в этом нет, прошу помощи.

Мне необходимо в своей программе получать данные о сделке и инструменте в момент совершения сделки в Quik. И нужна именно реализация через свою dll. Ну то есть QLUA -> DLL -> C++ и все это в реальном времени.

Помогите примером, кто разбирается в теме, пожалуйста.
DLL умеете создавать?
----------------------------
В DLL пишите функцию на СИ, используя API C for lua   см здесь подробности:
https://www.lua.org/manual/5.4/manual.html#lua_pushlstring
-------------------------------------------------------------------------------------------
Будет примерно следующее:
Код
static int zerro(lua_State *L){   //это заголовок вашей обертки. Он всегда такой 
// если вам надо передать данные в DLL из lua то далее пишите прием этих данных в СИ
    long x=lua_tointeger(L,1) ;  //  это получили целое
    double z=lua_tonumber(L,2); // получили double
    char*ps=(char*)lua_tostring(L,3); //получили строку
//  здесь  делаете что хотите на СИ
...
// если надо выдать что-то в скрипт из вашей dll то пишем
     lua_pushinteger(L,x);   // вывели целое
     lua_pushnumberL,z);   //вывели вещественное
     lua_pushstring(L,ps);   //вывели строку
return 3;    //указали сколько вывели
}

Недавно предлагал на форуме библиотеку для передачи данных из процессов и потоков на любых языках для QUIK.
Оказалась, что никому не нужно.
===================  
Сомневаюсь, что сможете решить вопрос синхронизации потоков и процессов, если говорите, что лишь читали как делать.
---------------  
Рекомендую почитать книгу:
Джеффри РИХТЕР " Создание эффективных WIN32-приложений  с учетом специфики 64-разрядной  версии Windows"

Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Если используете колбек, то данные получаете поэлементно.
-------------------------
Если используете DDE, то данные приходят блоками по 16384 элемента.
----------------------
Обнаружить наличие данных можно  на первом же блоке.
-------------------------
Время приема одного элемента по DDE  не более 10 мкс.
-----------------------
Время приема блока данных 16384 не более 0.1 секунды.
---------------------
Зачем ждать годами, вместо того, чтобы изучить СИ и сделать  то, что хотите.
---------------------------------
"Без труда не бывает не ... я."
Как тут понять сколько зработал?, Из каких данных можно посчитать доход?
 
Прикольно,
Посчитать сколько "заработал" очень просто
Из того что стало в деньгах отнимите то, что было.  И получите реально сколько пришло или ушло.
А считать по цифирькам  в табличках виртуальный  приработок - это мазохизм какой-то.  
OnStop, Не могу задать время на остановку скрипта из диалога управления
 
Цитата
Дмитрий написал:
Спасибо за ответ.
Но я понимаю, что функция OnStop не прерывает выполнение программы сама, а лишь вызывается при остановке и возвращает время на остановку скрипта. Я про другое. У меня эта 1мс никак не выходит. Любой скрипт останавливается ровно 5 секунд (которые заданы по умолчанию) и никак не реагирует на мои данные по return - делал и мало (1мс), и много (30с) - все одно пауза при нажатии "остановить" ровно 5с.
вот к этим 5 секундам она и добавляет 1 ms.
Обмен сообщениями приложений , скриптов на Lua, Python ,С
 
Цитата
Владимир написал:
Старые песни о главном. Чуть ли не с самых первых своих сообщений я говорил: несмотря на то, что Lua есть препоганейший язык, а С мой наилюбимейший язык на протяжении десятилеий, писать нужно только на чистом Lua. А уж привлекать сюда ещё какое-нибудь говно вроде Python и вообще есть мазохизм в чистом виде. И что задача организации торговли настолько тривиальна в техническом плане, что работать должен один-единственный скрипт написанный на одном-единственном языке Lua и, по возможности, работающий в одном-единственном потоке main. Блин, она ещё и платная?! Как говорил незабвенный Пётр Павлович Ершов: "Пусть полюбится кому, я и даром не возьму".  ::  
Вы уже не первый раз пишите на форуме эту глупость и чушь. Вам не стыдно за свое невежество?
------------------
Объясняю популярно для чайников.
-----------------------
Не существует процессора, который может исполнить программу "чистого луа", так как она транслируется в байт код, а байт код не может исполнить процессор.
-------------------------
Байт код луа исполняет  другая программа, которая написана на чистом СИ.
-----------------------------
QLUA - то тоже библиотека на чистом СИ.
--------------------------
Все арифметические операции и обработку строк на луа исполняют программы на чистом СИ
-----------------------
Моя библиотека - это одна из тысячи библиотек на чистом СИ,  которые используются в Вашем чистом Луа.
---------------------
Поэтому чистый луа - это  птичий язык байт-кода, который без программ на СИ никто  не понимает и не исполняет.  
Обмен сообщениями приложений , скриптов на Lua, Python ,С
 
Цитата
Незнайка написал:
Цитата
nikolz написал:
Предлагаю принять участие
в тестировании моей библиотеки обмена сообщениями

Сколько платите за тестирование вашей библиотеки?
Столько же , сколько Вам платят разработчики QUIK за тестирование их новых версий QIUK
Обмен сообщениями приложений , скриптов на Lua, Python ,С
 
Предлагаю принять участие
в тестировании моей библиотеки обмена сообщениями
между  процессами, потоками , приложениями, скриптами на любом языке программирования.
-------------------------------
Как это работает
Приложению или скрипту присваиваем номер NUM от 1 до  30000.
----------------
1) Послать сообщение S:  res=nkLp.send(NUM,S) , если успешно , то res=1. Num - номер получателя.
2) Принять сообщение S: на Lua S=nklP.get(NUM), на других языках nkLP(Num,S).  Если нет, то  пусто. Num-номер получателя.
=================
Возможности
1) В скриптах для QUIK,  колбеки можно размещать лишь в одном.
Этот скрипт может рассылать информацию всем желающим.
-----------------------------
2) Индикаторы и скрипты могут обмениваться информацией.
------------------------------
3) Любое внешнее приложение ,
например на питоне,
может обмениваться информацией с QUIK
или любым другим приложением,
например, на луа.
=================
Чем это решение лучше других
1) Другие таких решений нет . Если знаете,  дайте ссылку.
2) Не блокирует потоки, не использует файлы, не обращается к ядру ОС.
3) Самый быстрый способ обмена.
==================
Ограничения  тестовой версии:
В данном решении длина сообщения 64 символа.
Используется лишь один ящик сообщений.
Т е новое сообщение будет передано лишь после того, как прочитают предыдущее.
В сообщении нет обратного адреса.
Тестировал на Win10 64bit, Lua 5.4
===================
Как принять участие в тесте:
Написать  свою почту в личку.
 
Подскажите как передать информацию из QUIK в скрипт PYTHON через память компа?
 
Цитата
Alex написал:
Цитата
nikolz написал:
shared mеmory

Мне надо передать "строку" (string) из QUIK (lua) на скрипт Python.
Подскажи пож самый простой способ,  но не через  жесткий диск.
Может какой пример завалялся ?

В настоящий момент у меня реализована передача через текстовый Файл.
То есть Quik записывает (постоянно перезаписывает) файл txt, а функция Watchdog на Python его подхватывает и обрабатывает

Спасибо
Написал библиотеку для  обмена строкой приложений, процессов и  потоков на Си,Lua,Python.
----------------------
Если надо, пишите в личку почту.
---------------------------
Пока могу выслать бесплатно для тестирования вариант с максимальной длиной строки 63 символа .
Подскажите как передать информацию из QUIK в скрипт PYTHON через память компа?
 
Цитата
Alex написал:
Цитата
nikolz написал:
shared mеmory

Мне надо передать "строку" (string) из QUIK (lua) на скрипт Python.
Подскажи пож самый простой способ,  но не через  жесткий диск.
Может какой пример завалялся ?

В настоящий момент у меня реализована передача через текстовый Файл.
То есть Quik записывает (постоянно перезаписывает) файл txt, а функция Watchdog на Python его подхватывает и обрабатывает

Спасибо
Выше уже предлагали использовать pipe.
https://stackoverflow.com/questions/1242572/how-do-you-construct-a-read-write-pipe-with-lua
https://github.com/baishancloud/lua-pipe
и т.д.
Что не устраивает?
-------------------
Почему не устраивает через файл?
===================
Чтобы передать иначе, надо нырнуть в СИ.
---------------------
На Си делаете что хотите,  потом две обертки для питона и луа.
---------------------
Если Си знаете, то все просто, если нет, то нет смысла в примерах.
 
Сохранение данных в терминале QUIK в отсутствии соединения, Не сохраняются котировки за прошедшие сутки, появляются только при соединении с сервером.
 
Цитата
Andrey Malyar написал:
Цитата
Anton Belonogov написал:
Andrey Malyar , добрый день.
Для того, чтобы данные последней торговой сессии сохранялись до установления нового соединения с сервером, выполните следующую настройку ( Система / Настройки / Основные настройки... (F9) ) в Рабочем месте QUIK:  Программа / Сохранение данных  - для параметра  Очищать данные после смены даты:  необходимо установить значение  На сервере (при установлении связи) .
Спасибо!
Проверил, именно так и стоит галочка.
Может еще что пропустил, у меня вылетал квик и всё заново настраивал
если вылетает или закрываете крестом вверху справа, то не сохраняет.
Звук при совершении сделки появляется дважды
 
Цитата
Евгений написал:
А почему зависают графики при отправке заявки, пока не пройдут сделки ? Специалисты по квику ответьте пожалуйста, иззза большого когл-ва графиков на вкладке может быть такое ?
Скорее всего тормозит процессор.
----------------------
чтобы выяснить причину, сделайте следующее:
-----------------
1) Если окон с графиками много,
то сверните их и проверьте вашу гипотезу.
---------------
2) откройте диспетчер задач и посмотрите загрузку процессора и использование памяти .
Добавить инструменты в таблицу "Текущие торги" из скрипта lua
 
Цитата
andrey2185 написал:
Здравствуйте, как добавить инструменты в "Текущие торги" из скрипта lua ? чтобы руками не править периодически
никак
Всплывающие сообщения в Quik, сообщения,оповещения
 
Цитата
Я написал:
Цитата
Karina Dmitrieva написал:
  Здравствуйте,      BlaZed   ,  

Ваше пожелание зарегистрировано.  Мы постараемся рассмотреть его и   сообщить Вам результаты анализа. Впоследствии, по результатам анализа,   будет приниматься решение о реализации пожелания в будущих версиях ПО.
Так как отключить всплывающие окна сообщений биржи. С введением бессрочных фьючерсов, с ума сойти можно. Эти сообщения сплошным потоком идут. на русском. на английском. это дурдом полнейший... Заявку выставить не дают. Постоянно под руку выскакивают. Уже из-за них пару раз путаюсь, сбивают с толку. Сделайте что либо пожалуйста, что бы можно было отключить эти сообщения..
система->настройки -> основные настройки->сообщения
убрать галочку с "обычные", если мало ,
то и с "отмеченные как важные"
Как получить цену приобритеня акции?
 
Цитата
kotopas написал:
Извините, не могу понять мне нужно получить согласно скрину число 121.29 эта цена одной акции за которую я её купил это число получить с помощью функции нельзя можно только рассчитать?
см документацию по QLUA
раздел "Функции для обращения к строкам произвольных таблиц"
--------------------
таблица  depo_limits
--------
В цикле найдите в таблице эту акцию и прочитайте цену приобретения  wa_position_price

Подскажите как передать информацию из QUIK в скрипт PYTHON через память компа?
 
Цитата
Alex написал:
Получается что mmap всё равно работает чем файловую систему.
Вот перечень методов обмена данными из моего арсенала:
-------------------
1) самый быстрый способ (почти)  shared mеmory .  
Использую его для передачи небольших объемом и синхронизации потоков.
----------------------------
2)  DDE - использую его для получения таблицы ТТТ и доски опционов в луа .
----------------------------
3) Mapping file - обмен любыми объемами данных между процессами и потоками.
Использую его для индикаторов, ИИ,  сбора исторических данных  об инструментах на биржах.
===========================
Маппинг это не обмен через файлы, а отображение файлов на адресное пространство процессов.
Две большие разницы.
======================
Звук при совершении сделки появляется дважды
 
возможно, что первый раз звук генерится вообще на отправку транзакции.
Звук при совершении сделки появляется дважды
 
Цитата
Евгений написал:
1. Отправляю заявку через стакан по Si на покупку по рыночной цене
2.Заявка срабатывает и совершается сделка
3. Звук оповещения из настроек для сделки проигрывается
4. Через одну 1,5 секунды звук повторяется при появлении треугольника сделки

Почему разница между совершением сделки и появлением треугольника сделки пока не знаю возможно из за большого кол-ва графиков по Si так как по сберу SR  такого нет, открыт 1 график.

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

В настоящий момент реализована передача через текстовый Файл.
То есть Quik записывает постоянно перезаписывает файл, а функция watchdog на Python его подхватывает и обрабатывает
Но есть проблема - жуткие тормоза!

Подскажите как сделать через ПАМЯТЬ ??

Спасибо!
Я использую mapping для связи приложений и потоков.
---------------------
Для питона можно посмотркть здесь:

https://docs.python.org/3/library/mmap.html
прозрачность торговли, спуфинг торговля высокочастотная торговля
 
Цитата
Александр написал:
nikolz Пологаю что Вы пологаете... Понятна Ваша с Дмитрием реакция и вполне предпологаема. Если спуфинг это болезнь которой нет то и лечить нечего (все просто легко и понятно) а если еще этой болезни в диагноз положить УК РФ то тем более говорить об этом даже запрещено. Психологически тяжелее болезнь признать, лечить и быть открытым.  Но что-то нам все таки намекает о существовании манипуляций на рынке... кто-то об этом все таки говорит... что же это может быть... хм... кто эти люди??? Может быть закон и ЦБ говорят о запрете манипуляций??? А поскольку об этом говорят значит это есть???!!! Или я ошибаюсь и мы здесь разговариваем о чем-то неземном и если это где-то есть то только не у нас??? Поправте меня если я не прав. Теперь о толпе зевак у витрины... Без этой толпы зевак у витрины не исполнился бы ни один ордер. Говоря о сведении ордеров вы говорите уже о продолжении истории а начало как раз таки зарождает именно толпа зевак. Это именно те самые одни из зевак (покупатель и продавец) передвигают цену в область сведения ордеров. Биржа не сможет исполнить волю которой нет. Биржа сама ничего не двигает(предпологаю) Я Вам скажу даже больше уважаемый nikolz, никто не сможет исполнить волю которой нет(пологаю). Поэтому если у Вас в голове нет спуфинга то я очень этому рад, в этом месте нам обоим очень комфортно. Вам комфортно потому что лечить него и Вы вполне предпологаемо можете спокойно торговать, мне комфортно тем что чем больше неосведомленных зевак на рынке тем больше(пологаю) я смогу заработать. Я вас с Дмитрием услышал и вобщем-то жду ответа от поддержки.
вообще-то в период нормальной работы, глубина стаканов было 200, а не 20, как Вы пишите.
200 вам тоже мало?
--------------------------------  
Я например, вижу рынок иначе, чем Вы .
Есть у меня индикатор отношения предложения к спросу.
----------------------------
мой анализ  показывает, что это отношение в общем коррелировано с движением цены, но это было верно до войны.
-----------------------------------
сейчас на бирже практически нет рынка.
------------------------
Но соотношение в стакане однозначно показывает сильный рынок или слабый
------------------------
Например , когда рынок на дне это отношение 0.5, когда рынок сильный и растет это отношение выше 2.
-------------------------------
Но Важно не абсолютное значение, а еще и динамика.
--------------------------
Если было 4 (по 5 вчера, то  2 (по 3 сегодня) -это падение рынка.
-------------------
Примерно так.
----------------------------  
как я понял, Вы пришли поплакаться, я вам сочувствую.
-------------------------
Если же у Вас есть конкретные идеи  и хотите обсудить, то кончайте скулить и начинайте лаять.
прозрачность торговли, спуфинг торговля высокочастотная торговля
 
Цитата
Александр написал:
Видимо не совсем Вы меня поняли Дмитрий. То о чем Вы говорите это масло маслянное... вода мокрая, металл это железо.... понятное дело если за прилавком нет яблок то их не купишь но ведь это не наш случай. Тут речь о психологии, о манипулировании торгами. Высокий спрос всегда толкает цену вверх и наобарот избыток предложения вызывает падения цены... тут обсуждать нечего это аксиома. При чем тут сведение ордеров?
Полагаю Вы ошибаетесь.
---------------------
Заявки в стакане - это не спрос, а толпа зевак у витрины магазина.
--------------
Спрос - это именно рыночные заявки на покупку, а предложение - это рыночные на продажу.
----------------------
в итоге если предложений  т е рыночных заявок на продажу будет больше, чем рыночный спрос, то цена пойдет вниз , и наоборот.
------------------------
У Вас спуфинг в голове.
==========================
"А эти по три, но маленькие, но сегодня...
А те вчера по пять...
но большие... но вчера..."
Вызов Функции подвешивает терминал Quik, Подвисание Терминала Quik
 
Цитата
Tiken написал:
getBuySellInfo
У Вас написана какая-то хрень поэтому и не работает.
-------------------
Поясняю:
InfoS - это значение которое вы выводите на график.
Оно у Вас получается так:
InfoS =getBuySellInfo("MC0002500000","32MRT","TQBR","SBERP", 0).long_wa_price

согласно документации
17 long_wa_price STRING  Средневзвешенная стоимость длинных позиций по инструментам
Т е Вы пытаетесь вывести на график строку текста.
Вот терминал   молча  думает  о Вас , поэтому и зависает.
Прием данных и стаканов в различных потоках
 
Для тех, кому интересно.
----------------------
В результате тестов, получилось  следующее решение:
----------------------------
1)  стаканы и обезличенные сделки  принимаю в колбеках
-----------------------
2) свечи принимаю в main
-------------------------
3) индикаторы и алгоритмы решений реализую в отдельных потоках из пула потоков.
==================
Вот затраты времени на тестовом сервере:
Условие тестирование
220 инструментов
220 стаканов
обезличенные сделки по всем акциям на демо сервер.
=================
Код
SBER,i=829,len=0,SBER
SMLT,i=441,len=0,SMLT
VTBR,i=825,len=0,VTBR
VTBR,(us)=958.1
14,main(us)=11.2
QUote(us)=ALRS,62.4
QUote(us)=GMKN,62.1
QUote(us)=MTSS,59.7
QUote(us)=SBER,57.6
QUote(us)=VTBR,45.1
AllTrade(us)=3.1,GMKN,1293754
AllTrade(us)=1.8,GMKN,1293755
AllTrade(us)=1.5,SBER,1293756
AllTrade(us)=1.5,SBER,1293757
AllTrade(us)=1.4,SBER,1293758
AllTrade(us)=1.4,SBER,1293759
AllTrade(us)=1.3,SBER,1293760
AllTrade(us)=1.5,SBER,1293761
AllTrade(us)=1.4,GAZP,1293762
AllTrade(us)=1.3,POLY,1293763
AllTrade(us)=1.3,POLY,1293764
AllTrade(us)=1.3,POLY,1293765
AllTrade(us)=1.3,ALRS,1293766
AllTrade(us)=1.2,ALRS,1293767
AllTrade(us)=1.3,ALRS,1293768
AllTrade(us)=1.3,YNDX,1293769
AllTrade(us)=1.4,YNDX,1293770
AllTrade(us)=1.2,YNDX,1293771
AllTrade(us)=1.2,KZOSP,1293772
AllTrade(us)=1.3,GMKN,1293773
AllTrade(us)=1.3,ALRS,1293774
AllTrade(us)=1.3,ALRS,1293775
QUote(us)=RIM2,180.9
AllTrade(us)=3.4,SiM2,1293776
QUote(us)=RIM2,127.6
QUote(us)=RIM2,126.8
QUote(us)=RIM2,149.7
QUote(us)=RIM2,129.5
QUote(us)=RIM2,127.7
AllTrade(us)=2.2,RIM2,1293777
В AllTrade  последнее число это всего записей таблице обезличенных сделок примерно 1.3 млн.сделок
-----------
не все то золото, что блестит
 
Информация к размышлению.
Всем известна  рекомендация не делать ничего в колбеках, а переносить все в main.
--------------------------
Но не все то золото, что рекомендуют.
===============
проведем эксперимент.
Колбек AllTrade
обработка данных выполняется так:
Код
local clas=t.class_code;
local sec=t.sec_code;
local t1=Data[clas]; if t1==nil  then t1={}; Data=t1 end
local t2=t1[sec] if t2==nil then t2={} t1[sec]=t2 end
t2[#t2+1]={t.trade_num,t.flags,t.price,t.qty,t.value};
Рассмотрим два варианта
-----------------
В первом случае все делаем в колбеке.
-------------------
В результате получаем  время исполнения (мкс)
Код
AllTrade(us)=2.6,SiM2
AllTrade(us)=1.7,BRM2
AllTrade(us)=2.6,SiM2
AllTrade(us)=2.6,RIM2
AllTrade(us)=1.9,SiM2
AllTrade(us)=3.0,BRM2
Во втором случае те же действия делаем в main.
------------------
В результате получаем:
Код
AllTrade(us)=319.2,SBER
AllTrade(us)=318.0,SBER
AllTrade(us)=335.8,SBER
AllTrade(us)=319.8,ALRS
AllTrade(us)=280.9,SBER
AllTrade(us)=395.5,SiM2
AllTrade(us)=428.8,SiM2
Таким образом,
-------------------
в колбеке  3,
в main   430.

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

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

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

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

Прошу у знатоков совета по оформлению последовательности функций обратного вызова для этого типа заявок.
1)   OnTransReply   работает если заявку выставляете или снимаете скриптом.  
Если Выставляете или передвигаете руками, то работает лишь OnOrder.
Т е Ваш робот пропускает мимо ушей все что делает человек.
----------------  
2)  Аналогично OnStopOrder.
В получаемой  им информации есть
linkedorder NUMBER Номер заявки в торговой системе, зарегистрированной по наступлению условия  стоп-цены
Торговый робот для Quick на Delphi, Не работает вывод данные через DDE SERVER
 
Цитата
Артур написал:
Мне нужно именно ето  кто-то сможет помочь  
он под 32 битную версию и использует старую библиотеку
переписывать под 64 бит версию замучаетесь.
На луа будет и код проще и возни меньше.
------------------------
К телеге пристроить двигатель конечно интересно, но малоперспективно.
Бесплатно никто не будет его допиливать, а за плату он станет золотым.
Торговый робот для Quick на Delphi, Не работает вывод данные через DDE SERVER
 
Цитата
Артур написал:
Здравствуйте у меня есть шаблон для создания торгового робота на Delphi 7 когда питаюсь подключить к Qwik у выскочит окошка с ошибкой вот сам робот если вам не трудно исправте ошибку в коде    https://disk.yandex.ru/d/Yba1ln8qfGDBQQ
Выкиньте это  Г-но  ( с большой буквы)  13 летней давности  и пишите на  луа.
Прием данных и стаканов в различных потоках
 
Цитата
Незнайка написал:
Наверное, это можно проверить опытным путём.

Если обращение к хранилищу данных реализовано через одну дверь - основной поток, - то все остальные потоки, сколько бы их не было запущено, выстроятся в одну очередь у входа в дверь. И при запуске нескольких скриптов, "одновременно" запрашивающих, например, данные стаканов мы не увидим сколько-нибудь существенного ускорения по сравнению с одним скриптом, запрашивающим по очереди такое же количество стаканов.
Проверим:
Код
   function   main ()
   local  t  =   os.clock ()
   for  _  =   1 ,  100000   do 
     getQuoteLevel2 (class, sec)
   end 
   message (tostring( os.clock ()  -  t))
 end   
Проведём несколько тестов с 1-м, 2-мя, 3-мя, 4-мя одновременно запущенными скриптами.

Результаты:
1 скрипт: 6.5 сек
2 скрипта: по 15.2 сек каждый
3 скрипта: по 23.1 сек каждый
4 скрипта: по 30.4 сек каждый

При этом, во всех случаях было загружено только одно ядро процессора, что как бы намекает на использование только одного потока для доступа к данным.
Относительно приема с сервера данных в одном потоке я уже писал ранее и приводил тест аналогично вашему.
----------------------------
это связано с тем, что для реализации приема в майн используется общий глобальный стек луа - т е единственная область памяти и следовательно доступ к ней сделан с блокировкой.
================
Относительно приема данных в различных потоках есть разница в получении данных по свечам и по стаканам.
--------------
История Стаканов  очевидно не хранится в архиве, поэтому прием стакана выполняется в основном потоке и изменяет образ стакана в архиве.
----------------
Со свечами дело иначе.  
Закрытые свечи - это история и она накапливается в архиве. Прием же выполняется лишь по незакрытой свече.
Поэтому чтение свечи из истории вполне допустимо в различных потоках одновременно.
------------------
Но чтобы это было возможно, надо реализовать в QLUA механизм работы с глобальным стеком Один пишет -все читают. А это очевидно разработчики делать не стали.
Поэтому и не выходит каменная чаша.
=============
Но даже в этом случае , прием в различных потоках пусть и последовательно позволяет ускорить вычисления по сравнению с приемом в одном потоке.
----------------
Приняв на грудь стакан, поток приступает к его обработке, а следующий поток примет свой стакан и начнет его обрабатывать параллельно с первым.
-------------
Таким образом, даже в случае последовательного приема потоками  стаканов,  обработку их содержимого потоки будут делать параллельно .
------------------
Так как основное время  умный робот тратит не на прием стаканов, а на анализ их содержимого и беседу с товарищами, которые тоже приняли по стакану,
то прием даже по очереди стаканов  актуален и перспективен.
Прием данных и стаканов в различных потоках
 
Цитата
Незнайка написал:
Цитата
nikolz написал:
Прием данных от источника и стаканов реализуется  в main.
-----------------
Все работает замечательно.   Но узким местом  является прием данных всех инструментов в одном потоке main.
-----------------------
Хочу принимать данные и стаканы в  отдельном потоке   каждого  инструментов.

А разве приём данных идёт не через основной поток? Хоть тысячу отдельных потоков сделай, они все встанут в очередь при обращении к хранилищу.
Или вы располагаете другой информацией?
Как сделали разработчики, знают лишь они.
---------------
Могу предположить, что есть как минимум два слоя приема данных.
-----------------------
Первый - это прием по каналу  связи данных с сервера и запись их в архив терминала.
-------------------------
Возможно, что на этом этапе мы можем данные получать через колбек источника.
---------------------
Второй - это чтение уже принятых данных из хранилища терминала - это делают функции O,H,L,C,V,T.
=================
Для многопоточного получения этих данных важным фактом является то, что нам не надо писать эти данные в архив.
---------------------------
Так как в потоках мы лишь читаем из архива уже размещенные там банные  , то никакой синхронизации потоков нам не требуется.
-------------------
Т е в данном случае потоки работают по принципу один пишет - остальные читают.
==============
Поэтому прием данных лишь в основном потоке реализуется в худшем случае лишь в первом слое.
=================
Я не использую колбек  источника данных для приема ,
поэтому предполагаю возможность одновременно ходить в архив любому количеству потоков.
Страницы: Пред. 1 ... 40 41 42 43 44 45 46 47 48 49 50 ... 81 След.
Наверх