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

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

Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 72 След.
Вывод через DDE-сервер, Вывод через DDE-сервер
 
Цитата
Рустам написал:
Стакан DDE выводит на отлично. Как дополняешь другими так ж..а полная.
 
Параметры загрузки при таблице текущие торги со всеми акциями(248) и 20 стаканов
У Вас 20 стаканов и 70% загрузки процессора.   для 200 стаканов загрузка будет очевидно 700%
т е надо еще 10 таких компов.
Вы фактически получили предел. и при этом полагаю тормоза обязательно будут.
------------------------  
У Вас Excel грузит процессор как QUIK.  Если откажитесь от Excel, то в КВИКЕ сможете еще стаканов 30 открыть полагаю.
Попробуйте открыть стаканов 50  и посмотреть загрузку.
Будет понятен предел.
 
Вывод через DDE-сервер, Вывод через DDE-сервер
 
Цитата
Рустам написал:
Добрый день ребята! Подскажите как ускорить поток данных через DDE-сервер? Мне нужен для таблицы текущие торги и на пару сотен стаканов. В экселе данные таблицы текущие торги запаздывают и показывают совсем другие в отличие от квика. Даже в начале вечерней сессии показываются данные основной сессии. Как установить чтобы была актуальная информация?
Про пару сотен стаканов можете скорее всего просто забыть.
--------------------------
Вывод по DDE   должен работать без проблем и доп настроек.
У Вас что-то не так. Но подсказать Вам невозможно без доп информации.
-------------------------
Покажите как Вы подключаете вывод таблицы в Excel.
-------------------------  
DDE сервер стаканы не выводит.
-------------------------
Возможно из за такого количества открытых стаканов у Вас просто тормозится процессор.
---------------------------------
Посмотрите в диспетчере задач  загрузку процессора и использование памяти и покажите картинки.
SetUpdateCallback и обнудение стека Lua
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:
все верно, в стеке ее нет, так как колбек вызывает QUIK .
А в момент вызова в стеке может быть все что угодно - т е то что делает VMLua в данный момент.
При выходе из функции стек всегда очищается.
Надо иначе передавать таблицу.
А как тогда можно передать таблицу ? Я же не могу ее куда то скопировать. Я должен же работать со стеком Lua, причем с тем стеком, который первоначально создал Quik.
Я покажу Вам фрагмент моего скрипта. Подробно объяснять лень.
Но из собственного опыта могу сказать что для тиков это плохая затея. Тормоз ужасный. Кроме того тиков есть уже колбек OnAllTrade и лучше него вы не сделаете.
У меня есть различные варианты, вот один из фрагментов:
Код
while d==nil and k>0 do d,err=CreateDataSource(clas,sec,m); sleep(1); k=k-1; end
    if d then  --d[1]=sec; d[2]=clas; d[3]=ts; d[3]=tc; d[4]=m; d[1]
   --   if m>0 then  d:SetUpdateCallback(function(index) cbCandle(index,d);end);
--   else
   d[1]=0;      d:SetEmptyCallback() ;
--   end
   ds[j]=d;
   end
      ds[0]=j;
 
Программирование скриптов
 
Цитата
Nikita Kalashnikov написал:
nikolz, здравствуйте!
Цитата
Реализацию скриптов вне зависимости от версии Lua
К сожалению, регистрация пожелания с данной формулировкой невозможна. Уточните, возможно Вас интересует поддержка какой-то определённой версии языка?

Цитата
Очереди к  потокам
Уточните, пожалуйста, что Вы подразумеваете под очередями к потокам?
Добрый день,
относительно разных версий VMLua.
Полагаю из примера будет понятно как я это делаю . Это тест для создания VMLua в отдельном потоке :
Код
local fdll_Terra="D:/terra/bin/terra.dll"
local fdll_Lua51="D:/terra/bin/Lua51.dll"
local fdll_Luajit="D:/Luajit210/libLuajit.dll"
local fdll_Lua53="D:/Lua53/Lua53.dll"
local fdll_Lua54="D:/Lua54/Lua54.dll"
local nev="event"
local ev=nkevent.Create(nev,1);
local ts={}; ts[0]=0;
local pD="D:/QUIK_SCRIPT/"    -- каталог скрипта
local pf="testTH.lua"       -- имя и расширение файла скрипта 
local pfT="testTT.lua"       -- имя и расширение файла скрипта
local pfJ="testTJ.jit"       -- имя и расширение файла скрипта
local pfX="testTX.lua"       -- имя и расширение файла скрипта
--local sL1=nkvm.cSX(fdll_Lua54,pD,pfX);  
local sL1=nkvm.cSJ(fdll_Luajit,pD,pfJ); 
local sL1=nkvm.cST(fdll_Lua51,pD,pfT);
local sL1=nkvm.cSL(pD,pf); --создать state
--os.exit()
Про очереди к потокам...
У Вас в документации есть хороший пример (но по-моему его мало кто смотрит) как организовать очередь вызовов main из колбеков
Но у Вас всего один поток main для скрипта.
В моем варианте число потоков любое, причем это не дочки, как у Вас, а самостоятельные потоки. Проблема дочек в том, что у них мало ресурсов и они блокируют глобальный стек основного потока VM Lua колбеков.
-------------------
Создание очередей требует определенного уровня знаний пользователя. А ваши пользователи в основном чайники в программировании.
Вот я и предлагаю облегчить им жизнь и реализовать механизм очередей в библиотеке QLUA, А можно и сразу встроить в шаблон скрипта.
SetUpdateCallback и обнудение стека Lua
 
Я не использую API C для подписке на источник данных и делаю это на луа.
Это проще. А так как подписка один раз то и смысла нет использовать С.
SetUpdateCallback и обнудение стека Lua
 
все верно, в стеке ее нет, так как колбек вызывает QUIK .
А в момент вызова в стеке может быть все что угодно - т е то что делает VMLua в данный момент.
При выходе из функции стек всегда очищается.
Надо иначе передавать таблицу.
 
Учусь работать с метками, Помощь в написании кода для выставлении меток на графике
 
Цитата
Виталий Дерягина написал:
Знающие программисты, всю голову сломал в поиске ошибки в написании кода или логики выполнения. Своих вариантов уже нет нужен свежий взгляд на проблему.

Пытаюсь вывести полученное значение в метке.
Рекомендую сделать так:
Далее привожу фрагменты из своего рабочего скрипта :
Сделайте шаблон метки, например так:
Код
local label_mes={["TEXT"]="",["IMAGE_PATH"]="",["ALIGNMENT"]="LEFT",["YVALUE"]=0,["DATE"]=0,["TIME"]=0,["R"]=255,["G"]=255,["B"]=255,
["TRANSPARENCY"]=0,["TRANSPARENT_BACKGROUND"]=0,["FONT_FACE_NAME"]='Times New Roman',["FONT_HEIGHT"]=18,["HINT"]=""}
В скрипте заполняете поля дату и значение и выводите метку на индикатор например так:
Код
label_mes.DATE=YYYYMMDD;  label_mes.HINT=tostring(tostring(buy).."/"..tostring(sell));
LabMes=AddLabel(Settings.tag,label_mes);
Беспрерывная робота робота, Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик?
 
Цитата
Вася написал:
Цитата
nikolz написал:
 
Цитата
Никита  написал:
Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода

Заранее спасибо всем неравнодушным!  
 1) изучите программирование на Lua  
 https://russianblogs.com/article/84611423964/  
----------------------------
2)  Изучите документацию по QLUA.и примеры в документации.
------------------------------------
3) Если останутся вопросы, то спросите.
Вот ты дятел, человек как раз и изучает, а раз спрашивает, значит, не очень понятно в документации. Вали отсюда, если нормально не можешь отвечать людям.
Вася, ты мудак?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Предположу, следующее.
Согласно документации :
В Lua существует восемь базовых типов: nil, boolean, number, string, function, userdata, thread и table.
-----------------
Только параметры последних 4 типов позволяют ссылаться на них через указатели.
-------------------------
Очевидно автор  все переменные типа number, string записывает как таблицы.
------------------------
Такой прием используется для создание в луа новых типов с новыми свойствами,
например вектора, матрицы и т д
Вдруг откуда ни возьмись, появилась ...Проблема с индикатором
 
Добрый день
Вопрос разработчикам.
---------------
Версия 8.7 Рабочая
-----------------
При очередном запуске  QUIK на графике исчезли все данные индикатора( отображалось 38 параметров), который установлен в квике  почти год  назад и работал до сегодня.
--------------------
При открытии редактирования, индикатор в окне редактирования есть .
------------------------------
В таблице  "Добавить индикатор"  - индикатора нет.
-------------------------------
При запуске QUIK никаких сообщений об ошибке в индикаторе нет.
--------------------
Каким образом обнаружить причину отсутствия индикатора на графике и в таблице "Добавить индикатор"  
Программирование скриптов
 
Добрый день,
Реализовал для себя,
предлагаю реализовать в QUIK для все пользователей.
-----------------
1) Запуск  произвольного количества скриптов, каждый  в отдельном потоке.  
--------------------------
2)  Реализацию скриптов вне зависимости от версии Lua,
а также  на языках LuaJit,Terra, Julia.
-----------------------
3) Очереди к  потокам
-------------------------
4) Передача данных между скриптами.
 
Примеры dll на GCC 64 для работы со скриптом
 
Цитата
Serge123 написал:
Спасибо, тов. swerg, за наше счастливое детство, меня сейчас интересует обмен данными между луа скриптом и длл на си.
Кстати, вчера я запустил в квике ваш пример луа скрипта из 1-го поста:  https://quik2dde.ru/viewtopic.php?id=329  Получил сообщение "C stack overflow". Может быть, с 2020 г. что-то поменялось в квике?
покажите Ваш пример на C с ошибкой, исправлю.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
https://en.wikipedia.org/wiki/Fisher_transformation
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM,

Полагаю Вы это знаете:

-------------------------------------

Z-преобразование Фишера — это формула, которую мы можем использовать для преобразования коэффициента корреляции Пирсона ( r ) в значение (zr), которое можно использовать для расчета доверительного интервала для коэффициента корреляции Пирсона.

Формула выглядит следующим образом:

z г = ln ((1 + г) / (1-г)) / 2

Например, если коэффициент корреляции Пирсона между двумя переменными оказывается равным r = 0,55, то мы можем рассчитать z r следующим образом:

  • z г = ln ((1 + г) / (1-г)) / 2
  • z r = ln ((1+0,55) / (1-0,55)) / 2
  • zr = 0,618

Оказывается, выборочное распределение этой преобразованной переменной следует нормальному распределению .

Это важно, поскольку позволяет рассчитать доверительный интервал для коэффициента корреляции Пирсона.

Без выполнения этого Z-преобразования Фишера мы не смогли бы рассчитать надежный доверительный интервал для коэффициента корреляции Пирсона.

------------------

Коэффициент корреляции Пирсона (также известный как «коэффициент корреляции продукта и момента») является мерой линейной связи между двумя переменными X и Y.

----------------------------

Можете пояснить, как Вы вычисляете Коэффициент корреляции Пирсона и какое он имеет отношения к цене акций?

Чьё время даёт OnTransReply в таблице date_time?
 
Цитата
paluke написал:
Если вы хотите считать миллисекунды, quik абсолютно бесполезен. Нужно прямое подключение и размещение собственного сервера в одном датацентре с серверами биржи. Да, это стоит дорого. Но лезть в hft без десятков тысяч долларов капитала бессмысленно.
Вечерами задержка может быть и на секунды.
Кроме того, алгоритм nagle может работать в ОС вне зависимости от места размещения сервера.
Чьё время даёт OnTransReply в таблице date_time?
 
Задержка вечером возможна из-за работы алгоритма nagle .
Не работает скомпилированный cURL для QUIK (Lua-cURLv3), но работает в простом lua-интерпретаторе
 
поправил пример:
Код
Log=io.open("D:/x.txt","r");  io.input(Log)
os.execute("curl --version > D:/x.txt")
---вывод результата
print(io.read())
print(io.read())
print(io.read())
Не работает скомпилированный cURL для QUIK (Lua-cURLv3), но работает в простом lua-интерпретаторе
 
работать будет эффективно.
Не работает скомпилированный cURL для QUIK (Lua-cURLv3), но работает в простом lua-интерпретаторе
 
Цитата
ExpE написал:
[QUOTE]nikolz написал:
Зачем его с чем-то собирать, а не использовать для вызова os.execute()

 Эффективно ли будет работать скрипт, если вызывать множество запросов за короткий период?

Код
[/CODE][/QUOTE]
Как получить ответ из функции os.execute в переменные?
Как сделать, чтобы окошко командной строки не мигало при вызове os.execute?
-------------------
вариант решения (не мигает, получаем ответ функции в переменные):[CODE]local Log=io.open("D:/x.txt","r");  io.input(Log)
os.execute("curl --version > D:/x.txt")--insecure --ssl-reqd smtps://e.mail.ru –-mail-from kamnik@mail.ru –-mail-rcpt receiver@company.com --user kamnik@mail.ru --upload-file D:/msg.txt")
--печать результата исполенения команды
print(io.read())
print(io.read())
print(io.read())
результат:
Код
curl 8.4.0 (Windows) libcurl/8.4.0 Schannel WinIDN
Release-Date: 2023-10-11
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
>Exit code: 0
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
John R. Hauser "Numerical Methods for Nonlinear Engineering Models
Приведенная Вами книга никак не опровергает то, что я вам пытался объяснить.
---------------------------
Причем здесь распределение Фишера?  И где Вы его применили в своем роботе? Покажите.
Или Вы это указали для показа, собственных знаний?
-----------------------------
Я не собираюсь Вас переубеждать. так как это не имеет смыcла. Вы возражаете не мне , а статистической науке.
-----------------------------
Если будет желание повысить свою грамотность в этой области вот вам ссылки:
------------------------
цитата(http://datascientist.one/chto-takoe-robastnost/):
Что такое робастность?

Робастность (англ. robustness, от robust — «крепкий», «сильный», «твёрдый», «устойчивый») — свойство статистического метода, характеризующее независимость влияния на результат исследования различного рода выбросов, устойчивости к помехам. Робастный метод — метод, направленный на выявление выбросов, снижение их влияния или исключение их из выборки.

На практике наличие в выборках даже небольшого числа резко выделяющихся наблюдений (выбросов) способно сильно повлиять на результат исследования, например, метод наименьших квадратов и метод максимального правдоподобия подвержены такого рода искажениям и значения, получаемые в результате исследования, могут перестать нести в себе какой-либо смысл. Для исключения влияния таких помех используются различные подходы для снижения влияния «плохих» наблюдений (выбросов), либо полного их исключения. Основная задача робастных методов — отличить «плохое» наблюдение от «хорошего», притом даже самый простой из подходов — субъективный (основанный на внутренних ощущениях исследователя) — может принести значительную пользу, однако для мотивированной отбраковки все же исследователями применяются методы, имеющие в своей основе некие строгие математические обоснования. Этот процесс представляет собой весьма нетривиальную задачу для статистика и определяет собой одно из направлений статистической науки.

Привожу ссылки для Вас :
в торговле
https://szma.com/wp-content/uploads/2016/10/Musaev_Spiiran2010_14.pdf  -
цитата:
Повышение статистической устойчивости комплекса алгоритмического обеспечения управления торговыми, инвестиционными и финансовыми операциями является частным случаем общей проблемы повышения устойчивости функционирования динамических систем в условиях неопределенности. При этом под статистической устойчивостью алгоритма обработки будем понимать способность оценок, формируемых на основе этого алгоритма, сохранять
свои точностные характеристики при наличии отклонений вероятностных характеристик исходных данных относительно параметров
априорно принятой математической модели. В современной математической литературе [3, 6, 9, 10, 11, 13, 14, 17 и др.] методы обработки, алгоритмы и оценки, удовлетворяющие требованию статистической устойчивости, принято называть робастными.
----------------------------------
по теме робастное оценивание:
https://ami.nstu.ru/~headrd/MSA/MSA_3.htm
https://www.researchgate.net/publication/316973167_Robastnye_metody_i_algoritmy_oceni­vania_korrelaci...
https://habr.com/ru/articles/174705/
https://present5.com/robastnoe-statisticheskoe-ocenivanie-grubye-oshibki-i-metody-ix/
--------------------------------------
Будут вопросы, спрашивайте
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Цитата
nikolz написал:
В результате этого появилась теория и методы робастного оценивания.
Так о что с примером?
Я не часто смотрю форум. Поэтому отвечаю на Ваш вопрос сейчас.
Простой пример:
------------------
В на малом предприятии работает 10 человек, включая директора.
Зарплата каждого из 9 работников  составляет  50 тысяч рублей. Зарплата директора 450 тысяч.
Средняя зарплата составляет составляет 90 тысяч рублей.
-----------------  
Если Вы возьмете данные Росстата по зарплатам либо по пенсиям, то увидите подобную картину.
---------------
Для нормального закона распределения , средняя величина - это центр тяжести или линия симметрии функции плотности вероятности.  или иначе говоря - это первый момент.
И этот момент рассчитывают как арифметическое среднее или  функцией SMA.
--------------------
Среднее при нормальном распределении есть характеристика,  вокруг которой симметрично распределяются значения случайной величины.
------------------  
В приведенном мною вполне реального примера  среднее значение в 90 тысяч превышает 90% значений случайной величины.
Т е это среднеарифметическое никак не характеризует уровень доходов большинства.
-----------------------
В статистике о такой оценке первого момента  говорят , что оно имеет сильное смещение и является несостоятельным, так как не позволяет получить реальную картину дохода большинства работников.
---------------------
Так вот , в подобном случае для вычисления среднего используют робастные методы. Для среднего наиболее часто используют два метода.  Первый - это медиана. Второй - это метод Кули и Тьюки.
-------------------
В моем примере оба метода дадут одинаковый результат, равный 50 тысяч.
----------------
А теперь скажите, какая из оценок 90 или 50 позволяют статистически оценить уровень доходов большинства?
================
Что же касается фондовых рынков, то ситуация следующая:
--------------------
Нормальный закон распределения предполагает, что значения случайной величины  изменяется  с одинаковой вероятностью относительно значения первого момента функции распределения.
---------------------------
Т е если среднее получается 100 рублей то равновероятно должно быть и 200 рублей и 0 рублей ,
а также и 300 рублей и минус 200 рублей. Но такое же быть не может, Верно?
----------------------
А это значит, что функция закона распределения цены несимметричная, а значит закон не нормальный,
а следовательно и первый момент нельзя вычислять как арифметическое среднее ну и так далее.
---------------------
И вот и получается, что Вы принимаете за основу всех своих вычисления ошибочное утверждение о нормальном распределении цены и считаете что-то и прогнозируете что-то.
И все эти Ваши вычисления, мягко сказать, филькина грамота.
----------------
Я лишь кратко и очень упрощенно попытался объяснить Вам Ваше заблуждение.
-----------------
Но вы не отчаивайтесь, так как именно так  же как и Вы считает уровень зарплат и пенсий Росстат и ЦБ и правительство.
-----------------------------------------
Поэтому большинство граждан РФ никак не могут понять, почему их зарплата или пенсия всегда ниже средней.
Обезличенные сделки. Подписка/отписка
 
Еще есть такой глюк.
Если Вы запустите КВИК и потом запустите скрипт, в котором есть подписка на обезличенные сделки, то ничего не получите.
Если скрипт снять и снова запустить, то все заработает .
Раньше уже про это писали, но воз вроде и ныне там.
Не работает скомпилированный cURL для QUIK (Lua-cURLv3), но работает в простом lua-интерпретаторе
 
Цитата
Вопрос
curl  -это интерпретатор командной строки.
Зачем его с чем-то собирать, а не использовать для вызова os.execute()
например так:
Код
os.execute("curl --version" )
результат:
Код
curl 8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDN
Release-Date: 2023-03-20
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
>Exit code: 0
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Цитата
Nikolay написал:

Что касается математической оценки серии сделок, то это тоже давно все формализовано. Вот, для примера,  https://www.mql5.com/ru/articles/1492
В этой статье есть много ошибочных утверждений.
---------------------------
Основное из которых то, что на фондовом рынке действует нормальный закон плотности вероятности цены.
-------------------------
Более того, еще в прошлом веке доказали, что нормальный закон редко встречается в природе, т е в реальности.
-------------------------------
В результате этого появилась теория и методы робастного оценивания.
 
пробелы в истории графика, не прогружает часть графика
 
Раньше было еще меньше.
----------------------------
Рабочее место QUIK умеет накапливать локально до 65000 свечей (для каждого инструмента и таймфрейма).
----------------------
Очевидно, это ограничение из-за того, что для индекса используется формат short.  
Таблица текущих торгов в Quik., TTT
 
Цитата
Vladimir spb написал:
Мне для алгоритма нужно получать стаканы (50-150 позиций по акциям МБ)) от Quik.

(QuikSharp   https://github.com/finsight/QUIKSharp/blob/master/src/QuikSharp/lua/QuikSha­ ­rp.lua  ) .

Но, без окон котировок, подписки на стаканы "то потухнут, то погаснут".  Отписаться типа получается, но Quik начинает пищать, что открыто более 200 окон котировок. При этом в главном окне Quik ни одного окна котировок нет.  

Я так понимаю, что стаканы, через подписки на них, мне не светят. Буду курить прямой запрос котировок по таймеру.

Когда стаканы приходят, повторить   https://www.quantower.com   DOM Surface (история стаканов) на Питоне не сложно. Правда я нигде не нашел, что они называют Imbalance ?  
Если хотите, то выложите свой скрипт с тестом стаканов,
я его проверю на демо сервере и если есть ошибки исправлю,
либо подтвержу, что проблема в квике.
Как получить данные вечерней сессии
 
Цитата
Vokelpan написал:
Добрый день!
Подниму тему. Вчера находился за терминалом до окончания основной сессии до 19:15 МСК. Потом оставил ноутбук включенным и пошел спать. Утром вижу вот такую картину в терминале. Котировки акции (Мечел) оставленной на экране терминала загрузились и отображаются  с учетом вечерней сессии. Последнее значение цены акции в 23:45 МСК. Котировки других акций находящихся в одной таблице текущих торгов с Мечел не отображают информацию о вечерней сессии. Как это исправить? Я хочу утором до открытия торгов видеть в терминале котировки акций с учетом вечерней сессии. Все акции находятся в одной таблице текущих торгов.

Рекомендация в сообщении №4 этой темы не помогла. Quik не подгружает котировки автоматически, котировки подгружаются при переключении между названиями акций в таблице текущих торгов.
На вечерней сессии торгуются не все акции дневной сессии. Подробнее  смотрите на сайте биржи.
--------------------------
Московская биржа с 10 ноября допустит к вечерним торгам на рынке акций еще восемь бумаг российских эмитентов, следует из сообщений торговой площадки.

Среди них бумаги группы «Астра», «Банка «Санкт-Петербург», ГТМ, «Мосэнерго», НМТП, «РуссНефти», «Софтлайна» и ТМК.

«В соответствии с правилами проведения торгов на фондовом рынке, рынке депозитов и рынке кредитов публичного акционерного общества «Московская Биржа ММВБ-РТС» с 10 ноября 2023 года для:

– акций обыкновенных ПАО Группа Астра (торговый код – ASTR; ISIN – RU000A106T36);

– акций обыкновенных ПАО «Банк «Санкт-Петербург» (торговый код – BSPB; ISIN – RU0009100945);

– акций обыкновенных ПАО «ГТМ» (торговый код – GTRK; ISIN – RU000A0ZYD22);

– акций обыкновенных ПАО «Мосэнерго» (торговый код – MSNG; ISIN – RU0008958863);

– акций обыкновенных ПАО «НМТП» (торговый код – NMTP; ISIN – RU0009084446);

– акций обыкновенных ПАО НК «РуссНефть» (торговый код – RNFT; ISIN – RU000A0JSE60);

– акций обыкновенных ПАО «Софтлайн» (торговый код – SOFL; ISIN – RU000A0ZZBC2);

– акций обыкновенных ПАО «ТМК» (торговый код – TRMK; ISIN – RU000A0B6NK6)

допускается заключение сделок в ходе дополнительной (вечерней) торговой сессии», - говорится в сообщении.

Функции для получения значений Таблицы текущих торгов, getParamEx, Как обновлять данные через функцию. getParamEx
 
Цитата
Сергей ВАТ написал:
Здравствуйте. Я новичок в программирование, строго не ругаться :-)
Возник такой вопрос.
можно-ли заставить функцию обновлять данные и как это сделать?  Функция находиться до основного тела скрипта.
Все что вне функции main, кроме колбеков, исполняется один раз.
Перенесите функцию внутрь цикла в main.
Как сервер биржи определяет направление сделки?
 
Пардон,
Рыночные заявки двигают сделки.
Как сервер биржи определяет направление сделки?
 
Цитата
Serge123 написал:
Когда приходит инфо, напр., по OnAllTrade, там присутствует направление сделки: B - покупка и S - продажа. Я заметил, что, когда я продаю, то в этой сделке стоит B, когда покупаю, - S. А как сервер биржи определяет напр. сделки?
А если моя заявка будет по текущей цене, а не лимитная, то тогда направление будет другое?
От вида встречной ко мне заявки (лимитная или по маркету) это направление зависит?
кто ударил, того и направление.
Рыночные сделки двигают рынок.
FIX client connector, скорость
 
Пардон , выше ошибся задержка не от 50 до 500 , а от 118 до 225.
-----------------
После отключения Nagle  на свооем компе, задержка особенно не изменилась.
0,GAZP,203422.222,203422.336,114.0,P=167.15,Q=1.0
Код
0,GAZP,203422.222,203422.336,114.0,P=167.15,Q=1.0
0,SBER,203422.375,203422.461,86.0,P=269.69,Q=11.0
0,AFLT,203422.379,203422.477,98.0,P=39.73,Q=1.0
0,LKOH,203422.859,203422.977,118.0,P=7243.5,Q=1.0
0,MAGN,203423.079,203423.191,111.0,P=53.015,Q=11.0
0,MAGN,203423.079,203423.208,129.0,P=53.015,Q=19.0
jS=15,nm=0,idnk=6919,PLZL,203400,23.64,Oi=11677.50,Ci=11678.00,Hi=11678.00,Li=11677.50,V=4.00,m=1,size=17175,20221012
0,SIBN,203423.438,203423.658,220.0,P=793.65,Q=1.0
0,PLZL,203423.45,203423.675,224.0,P=11678.5,Q=1.0
0,ROSN,203423.834,203423.926,92.0,P=587.1,Q=3.0
0,MAGN,203423.995,203424.183,187.0,P=53.015,Q=4.0
0,SNGSP,203424.527,203424.636,108.0,P=57.155,Q=5.0
0,GAZP,203424.827,203424.917,89.0,P=167.15,Q=1.0
0,TATN,203425.302,203425.417,114.0,P=621.5,Q=250.0
0,ROSN,203425.303,203425.433,129.0,P=587.1,Q=2.0
0,SBER,203425.589,203425.699,109.0,P=269.7,Q=1.0
0,MTLR,203425.846,203425.917,70.0,P=276.69,Q=1.0
0,MTLR,203425.846,203425.933,86.0,P=276.68,Q=3.0
0,MTLR,203425.846,203425.949,103.0,P=276.67,Q=650.0
0,MTLR,203425.846,203425.964,118.0,P=276.66,Q=1.0
0,MTLR,203425.846,203425.98,134.0,P=276.64,Q=1.0
0,MTLR,203425.846,203425.995,149.0,P=276.6,Q=200.0
0,MTLR,203425.846,203426.012,165.0,P=276.58,Q=10.0
0,MTLR,203425.846,203426.028,182.0,P=276.55,Q=30.0
0,MTLR,203425.846,203426.044,198.0,P=276.54,Q=2.0
0,MTLR,203425.846,203426.06,214.0,P=276.54,Q=1.0
0,MTLR,203425.846,203426.077,230.0,P=276.54,Q=50.0
0,MTLR,203425.846,203426.094,248.0,P=276.54,Q=51.0
0,GAZP,203426.0,203426.227,227.0,P=167.11,Q=1.0
FIX client connector, скорость
 
Такую задержку вечером можно объяснить работой алгоритма Nagle.
FIX client connector, скорость
 
а вот сделки пришедшие с запаздыванием от 50 до 500 ms Если вычесть задержку интернет, то первые сервер отправил практически сразу, а вот последние почему задержал. Очевидно пошел покурить.
Код
0,MTLR,195036.048,195036.167,118.0,P=278.62,Q=645.0
0,MTLR,195036.048,195036.183,134.0,P=278.61,Q=200.0
0,MTLR,195036.048,195036.198,149.0,P=278.6,Q=600.0
0,MTLR,195036.048,195036.213,164.0,P=278.58,Q=100.0
0,MTLR,195036.048,195036.229,180.0,P=278.56,Q=3.0
0,MTLR,195036.048,195036.245,196.0,P=278.55,Q=167.0
0,MTLR,195036.048,195036.261,212.0,P=278.55,Q=300.0
0,MTLR,195036.048,195036.277,228.0,P=278.54,Q=410.0
0,MTLR,195036.234,195036.411,176.0,P=278.68,Q=2.0
0,ROSN,195036.257,195036.436,178.0,P=588.6,Q=200.0
0,ROSN,195036.257,195036.451,193.0,P=588.55,Q=118.0
0,ROSN,195036.257,195036.466,208.0,P=588.5,Q=1381.0
0,ROSN,195036.257,195036.482,224.0,P=588.5,Q=1.0
0,SIBN,195036.384,195036.607,222.0,P=793.8,Q=1.0
0,MTLR,195037.503,195037.587,84.0,P=278.55,Q=25.0
0,GAZP,195038.221,195038.343,122.0,P=167.26,Q=5.0
0,NLMK,195039.507,195039.633,125.0,P=192.12,Q=1.0
FIX client connector, скорость
 
Вот еще информация к размышлению:
0,TATN,195030.364,195030.58,215.0,P=623.0,Q=1.0  -- это обезличенная сделка
Она задержалась на 215 ms
Но дальше свеча 1 мин тайм и 5 минут
jS=10,nm=0,idnk=9530,TATN,195000,32.95,Oi=623.00,Ci=623.00,Hi=623.00,Li=623.00,V=1.00,m=1,size=14657,20230410
jS=10,nm=0,idnk=9530,TATN,195000,32.95,Oi=623.00,Ci=623.00,Hi=623.00,Li=623.00,V=1.00,m=5,size=7593,20230320
они пришли вместе, но задержались на 32 секунды
Т е 1 минутная свеча запаздывает на 30 секунд
Код
0,TATN,195030.364,195030.58,215.0,P=623.0,Q=1.0
0,GAZP,195030.388,195030.595,206.0,P=167.26,Q=3.0
0,SBER,195030.493,195030.611,118.0,P=269.43,Q=50.0
0,MTLR,195031.772,195031.874,102.0,P=278.8,Q=100.0
0,YNDX,195031.987,195032.061,73.0,P=2622.0,Q=29.0
0,YNDX,195031.987,195032.076,89.0,P=2622.0,Q=10.0
0,YNDX,195031.987,195032.092,105.0,P=2622.2,Q=10.0
0,YNDX,195031.987,195032.107,119.0,P=2622.4,Q=51.0
0,TATN,195032.475,195032.583,108.0,P=623.0,Q=1.0
0,VTBR,195032.581,195032.699,117.0,P=0.02514,Q=1.0
jS=10,nm=0,idnk=9530,TATN,195000,32.95,Oi=623.00,Ci=623.00,Hi=623.00,Li=623.00,V=1.00,m=1,size=14657,20230410
jS=10,nm=0,idnk=9530,TATN,195000,32.95,Oi=623.00,Ci=623.00,Hi=623.00,Li=623.00,V=1.00,m=5,size=7593,20230320
FIX client connector, скорость
 
при этом никакой очереди сделок на обработку в моем скрипте нет (это первое число в строке =0)
FIX client connector, скорость
 
Сейчас в вечернюю сессию задержка моим брокером обезличенных сделок  увеличилась аж до 500 ms.
Код
0,SNGSP,283.0,P=57.135,Q=10.0
0,SNGSP,299.0,P=57.135,Q=39.0
0,SNGSP,315.0,P=57.12,Q=3.0
0,SNGSP,331.0,P=57.12,Q=4.0
0,SNGSP,345.0,P=57.115,Q=5.0
0,SNGSP,361.0,P=57.115,Q=4.0
0,SNGSP,377.0,P=57.115,Q=52.0
0,SNGSP,392.0,P=57.11,Q=20.0
0,SNGSP,407.0,P=57.11,Q=20.0
0,SNGSP,423.0,P=57.11,Q=30.0
0,SNGSP,437.0,P=57.105,Q=13.0
0,SNGSP,453.0,P=57.1,Q=20.0
0,SNGSP,470.0,P=57.1,Q=1.0
0,SNGSP,484.0,P=57.1,Q=50.0
0,SNGSP,500.0,P=57.1,Q=14.0
0,SNGSP,516.0,P=57.1,Q=20.0
0,SNGSP,530.0,P=57.1,Q=20.0

FIX client connector, скорость
 
Цитата
krabykraby написал:
FIX client connector
Не понимаю на счет скорости - условно если через LUA в QUIK торговать обновление среза книги и тиков - 100мс, а через FIX интерфейс какой roundtrip будет?  Комп стоит в москве. ~1-3 мс будет пинг до вашего сервера QUIK.
Задержка получения обезличенных сделок зависит от брокера.
Какая у Вас задержка данных при обмене с сервером?

Например у меня она 47 ms.
Смотрим задержу приема обезличенных сделок:
Код
0,NVTK,57.0,P=1682.6,Q=390.0
0,NVTK,80.0,P=1682.6,Q=59.0
0,SBER,108.0,P=269.88,Q=1.0
0,GAZP,127.0,P=167.3,Q=5.0
0,SNGSP,95.0,P=57.265,Q=1.0
0,VTBR,205.0,P=0.025145,Q=2.0
0,SNGSP,79.0,P=57.265,Q=3.0
0,SNGSP,95.0,P=57.265,Q=32.0
.  Число после названия инструмента.
минимальное 57. Вычитаем 47
В итоге сервер брокера добавляет 10 ms.
------------------  
Поэтому у Вас задержка приема обезличенных сделок должна быть не 100 ms, а не более 15 ms.
Остальные 85ms добавляет брокер, ему тоже кушать надо.  
Получить sec_code из метки индикатора, Получить sec_code из метки индикатора
 
Alexey89,
Можно сделать все, что придумаете.
Проблема лишь в уровне Ваших знаний и умений.
Если хотите сделать что-то сами, то начните с изучения языка на котором будете писать ( например Луа ) и подробного изучения документации на библиотеку QLua и терминал QUIK.
DDE
 
ПростоПример
 
Цитата
Cyber написал:
Хоть на чем торгует напишите. Кластерный анализ?
Так на графике в заголовке написано = Сбербанк обычка.
Бинарная нейросеть, обучение  с подкреплением.
ПростоПример
 
это с начала года по август
ПростоПример
 
это сентябрь.
Отличается от октября тем, что в сентябре было падение рынка.
Очевидно, роботу нравится падение, чем рост.
ПростоПример
 
Робот в октябре.
----------------------
Последний график - это прибыль и убытки.
белая линия - итого.
зеленая -лонг
синяя -шорт
штриховая - текущая, не зафиксированная
---------------
На первом графике
профит нарастающий за месяц
на втором профит за каждый день


Получить sec_code при выборе бумаги в ТТТ., Получить sec_code при выборе бумаги в ТТТ.
 
Цитата
paluke написал:
По документации у getDataSourceInfo() нет параметров
getDataSourceInfo

Функция предназначена для получения информации об источнике данных для  индикатора.  

TABLE info getDataSourceInfo()

Функция возвращает таблицу Lua с параметрами:  

ВАЖНО! Для корректной работы функции getDataSourceInfo, вызываемой из
функции Init, необходимо перезапустить Рабочее место QUIK после добавления
индикатора на график.  

ПараметрТипОписание
intervalNUMBERТекущий интервал (тайм-фрейм) графика
class_codeSTRINGКод класса источника данных
sec_codeSTRINGКод инструмента источника данных
paramSTRINGНаименование параметра Таблицы текущих торгов, по которому строится график.  Если поле пустое, то график строится на основании Таблицы обезличенных  сделок

Возможные значения поля interval:

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

Хотел написать программу, которая бы при просмотре свечей в одном окне (допустим на М5), сама пододвигала график в окнах других ТФ, чтобы не делать этого вручную, когда изучаю график на истории, на разных ТФ.
Т.е. допустим на М5 я бы открывал следующую свечку (на истории), следующую, и если время свечки в минутах = 10 / 25 / 40 / 55, то автоматически открывалась следующая 15-тиминутная свеча в другом окне. А если минуты = 55 - то и следующая свечка на М60 (и т.д.). Удобней, чем руками, экономило бы время..

Но нужно как то понять, что свеча именно у правого края экрана, в программе. Вот в чём вся штука.
В индикаторе номер текущей  свечи (у правого края)  передается параметром i в функцию onCalculate(i)
Кроме того, есть параметр Size, который равен номеру текущей свечи.
Любую свечу можно получить по ее номеру от 1 до Size
Это то?  
Запуск экспорта по DDE из своего приложения
 
Цитата
Михаил Филимонов написал:
Добрый день!

Возможно?
Можно лишь так:
1) настроить таблицу на вывод через DDE в режиме "вывод после создании"
2) запустить приложение перед запуском КВИК
3) запустить КВИК
-----------------------------------
Например, у меня экспорт DDE стартует при загрузке DLL приложения.  
"KILL_ALL_FUTURES_ORDERS", Снятие всех активных заявок на FORTS
 
Цитата
Елена Сидорова написал:
Здравствуйте!

Вообще, ничего не понимаю!
рекомендую почитать:
https://eligovision.ru/media/upload/lua.pdf
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM,
Я не возражаю , Каждый имеет право на собственное мнение.
--------------------------
Что же про Lua, то я его знаю очень хорошо, так как встраиваю в IOT уже лет восемь, пишу свои библиотеки и делаю многопоточные варианты с встроенными JIT компиляторами.   Написал это не для рекламы, а как возражение на Ваше высказывание.
-----------------  
Если У Вас есть проблемы со скриптом, то напишите конкретно и покажите скрипт, я вам его исправлю и объясню, если хотите даже на уровне внутреннего содержания VMLua и байт кода.
-----------------------------
Что же касается Вашего или кого-еще мнения о моем уровне программирования, то мне это пофиг,
так как этот уровень доказали многочисленные мои ученики,
некоторые из которых успешно работают в ведущих мировых компаниях,
а также те системы, которые я внедрял в вузах и на предприятиях на просторах СССР.
------------------
Успехов вам в написании скриптов.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
nikolz,  Ваши посты как всегда актуальны.

Кто виноват? и Что делать? Вот вопрос.

Терминал устанавливают для возможности торговать (в не зависимости от его версии).
Пользовательские скрипты используют для автоматизации этого процесса (в не зависимости от языка и версии).
И это не сколько не отменяет тот факт, что пользовательский скрип не должен убивать терминал и тем более влиять на работу сервера  ,
кем бы и как не был написан. ::  
Терминал сделали, чтобы Вы могли подавать заявки брокеру руками.  И эту функцию он реализует прекрасно.
---------------
Но Вы же лепите ,гордясь своим невежеством в программировании, монстров на луа и пихаете их в терминал.
------------------------
Так как терминал посылает сообщения на сервер и Вы в скрипте формируете эти сообщения,
то Вы можете даже организовать DDOS атаку даже из своего скрипта.
--------------------------
А уж завалить терминал это Вы можете как два пальца...
------------------------
Вы как и многие  "профи" на этом форуме постоянно ругаете КВИК ,
а когда понимаете, что это вы на...ли г-но, скромно молчите.
----------------
Увы, LUA дает доступ во внутрь терминала.
Поэтому защиту от дурака здесь установить невозможно.
------------------------
 
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Похвально, наметился прогресс в риторике.
Следующим шагом должно быть признание,
что виноват автор скриптов, либо тот,
кто использует халявные скрипты не разобравшись в них.
-----------------------
Зеркало не виновато.
Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 72 След.
Наверх