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

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

Страницы: Пред. 1 ... 58 59 60 61 62 63 64 65 66 67 68 ... 72 След.
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
Цитата
Николай  Камынин   написал:
У меня вопрос к автору темы.
А зачем использовать мьютекс, если у нас один процесс?
Спасибо
Даже не знаю с чего начать. В Windows "процесс" - это контейнер, в котором выполняются потоки (нити). Потоки имеют состояние выполнения, которое включает регистры процессора и стек. Адресное пространство (память) у потоков одного процесса общая. Для синхронизации доступа к ресурсам, которые используются несколькими потоками используют мьютексы.
Я собственно спросил зачем мьютекс если один процесс,
в том плане,
что в одном процессе синхронизацию потоков эффективнее делать другими средствами
либо в пользовательском режиме -атомарным операциями и критическими секциями
либо ядерными - событиями.
Это быстрее , чем мьютекс.
ТВС
 
еще просто уточняю как резюме
если заказываем 10  графиков с разными интервалами по одному и тому же инструменту, то мы получаем с сервера
10 тиковых потоков +параметры 3000 свечей (5 параметров+5 время) для указанных 10 интервалов
а если у нас 10 инструментов и 10 таймов, то получим 100 тиковых потоков +3 000 000 значений для свечей.
верно?
спасибо
Тейк Профит и Стоп Лос
 
Проблема в том, что Вы не знаете как работают стоп и тэйк.
Поэтому сделайте сначала числовой пример
Если хотите комментарий, то расскажите его на форуме.
Когда станет понятно с исполнением стопов, тогда поймете,
что то,
что Вы получаете - это нормально,
а то, о чем Вы мечтаете, это не реально.
ТВС
 
Немного неточно написал вопрос.
меня интересует каким образом заказать данные в QLUA ,
чтобы работал колбек onAllTrade без открытия ТВС?
Спасибо
ТВС
 
4) Если заказать график с любым таймом то он будет содержать изменения для последней свечи для каждой сделки
предположим я заказал графики с таймом 1 час 30 минут 5 минут  и 1 минута.
Все эти графики будут отображать цену последней сделки в открытой свече.
Вопрос:
сколько раз получит терминал эту цену от сервера для графиков
Варианты ответа
А) один раз
Б( четыре раза
----------------
Если ответ А) то где хранится эта цена.
------------------
спасибо
ТВС
 
Добрый день,
просьба ответить на следующие вопросы, либо ткнуть в параграф документации.
--------------------------------------------
1) для работы колбек функции onAllTrade надо обязательно открыть таблицу всех сделок. Верно?
----------------------------------
2) можно ли открыть ТВС из скрипта или лишь руками в терминале?
---------------------------------------------------
3) если заказать тиковый график CreateDataSource,  открывается ли ТВС или тиковый график идет дополнительно?
-----------------------------------------
Спасибо
Задержка данных при обмене с сервером
 
Michael Bulychev
прочитайте ответ Вашего коллеги
Sergey Gorokhov
https://forum.quik.ru/forum10/topic1169/
который пишет
Видимо речь идет о параметре "Задержка данных при обмене с сервером",  если так, то этот параметр работает точно так же как и обычная команда  ping
и обсудите с ним Вашу гипотезу .
Задержка данных при обмене с сервером
 
а вот здесь , сервер очевидно заснул аж на 22 секунды, а потом долго просыпался (умный сервер,Однако)
2016-02-29;17:19:56; 22969; 39.2
2016-02-29;17:20:14;12187;27.3
2016-02-29;17:20:51;20672;27.1
2016-02-29;17:21:28;18172;27.7
2016-02-29;17:21:46;8515;27.5
Задержка данных при обмене с сервером
 
а вот еще прикол:
2016-02-29;  17:33:57;  16;  26.8
задержка данных 16 ms при пинге 26.8 ms
типа терминал с сервером по спец каналам связались,
или терминал вообще сам ответ состряпал. (умный терминал, однако)
Задержка данных при обмене с сервером
 
и еще хотел бы заметить, что это время  называется - ЗАДЕРЖКА ДАННЫХ
т е либо это просто так написано
либо этот параметр показывает нам именно то, как его назвали.
Ваше мнение?
Задержка данных при обмене с сервером
 
вот эти данные:
дата, время, ваш пинг, нормальный пинг
 2016-02-29; 12:09:09; 1109; 27.3
2016-02-29; 12:13:35; 1015; 120.4
2016-02-29; 12:14:36; 6125; 27.1
2016-02-29; 12:15:05; 1218; 27
2016-02-29; 12:43:41; 2266; 27.2
2016-02-29; 12:51:12; 2828; 27.1
2016-02-29; 12:54:06; 1281; 29.7
2016-02-29; 12:58:36; 1032; 26.9
2016-02-29; 13:01:16; 4859; 27.3
2016-02-29; 13:01:46; 1578; 27.1
2016-02-29; 13:02:16; 1907; 27.1
2016-02-29; 13:08:15; 1156; 27.1
2016-02-29; 13:38:16; 1390; 27.2
2016-02-29; 13:43:56; 3453; 27.1
2016-02-29; 13:44:19; 1485; 27.2
2016-02-29; 13:45:20; 1188; 29.6
2016-02-29; 14:23:49; 10125; 26.9
2016-02-29; 15:27:04; 2687; 27
2016-02-29; 15:53:08; 4516; 31.1
2016-02-29; 15:54:18; 3844; 27.1
2016-02-29; 15:55:07; 2360; 27.1
2016-02-29; 16:05:11; 1093; 27.1
2016-02-29; 16:07:02; 10922; 27.2
2016-02-29; 16:13:07; 3796; 27.4
Задержка данных при обмене с сервером
 
прошу прощения за Ваш сайт.
при просмотре - нормальная таблица, а при отправки - получается - х...
сейчас выложу строками
Задержка данных при обмене с сервером
 
Цитата
Michael Bulychev написал:
Добрый день.
Пинг, который Вы смотрите в параметре LASTPINGDURATION, не является пингом в классическом понимании (ICMP протокол). Это определенные данные, которыми терминал и сервер обмениваются в процессе работы. Приоритет таких сообщений очень низкий. Это значит что ответные "понги" клиенту будут отправляться только в том случае, если больше нет торговых данных в очереди на отправку. Этим и объясняется разница между приведенными выше данными.
Добрый день,Михаил,
С тем, что это не пинг а что-то Ваше  - это понятно.
Теперь просьба на конкретных данных мне объяснить
вот наиболее интересные:
Я выбрал лишь задежкии более 1 секунды. как видно их тьмы и тьмы.
------------------------------
Как Вы объясните наличие задержки в 10 секунд в 14:23:49 в 16:07:02.
----------------------------
какие по-вашему мнению так интенсивно отсылались по каналу в 100 мбит?
-----------------------
И куда эти данные пришли, если я за это вреня не получил эти мегабайты
------------------------
Как сказал классик: "Суха теория, мой друг"
2016-02-2912:09:09110927.3
2016-02-2912:13:351015120.4
2016-02-2912:14:36612527.1
2016-02-2912:15:05121827
2016-02-2912:43:41226627.2
2016-02-2912:51:12282827.1
2016-02-2912:54:06128129.7
2016-02-2912:58:36103226.9
2016-02-2913:01:16485927.3
2016-02-2913:01:46157827.1
2016-02-2913:02:16190727.1
2016-02-2913:08:15115627.1
2016-02-2913:38:16139027.2
2016-02-2913:43:56345327.1
2016-02-2913:44:19148527.2
2016-02-2913:45:20118829.6
2016-02-2914:23:491012526.9
2016-02-2915:27:04268727
2016-02-2915:53:08451631.1
2016-02-2915:54:18384427.1
2016-02-2915:55:07236027.1
2016-02-2916:05:11109327.1
2016-02-2916:07:021092227.2
2016-02-2916:13:07379627.4
Задержка данных при обмене с сервером
 
делаю замеры неделю.
Результаты того же вида.
Задержка данных при обмене с сервером
 
замеры делал сегодня
время указано на графиках.
брокер указан на графике
UID 2895
Замеры делаются и сейчас,
так как мониторинг встроил в робота


 
Задержка данных при обмене с сервером
 
Добрый день,
выкладываю картинку мониторинга канала связи и задержки данных сервером QUIK.

как видно из графиков ( задержка канала фактически постоянна и равна 27 ms) задержка данных сервером QUIK имеет огромные величины.
Как говорил классик:
Может быть в консерватории пора что-то изменить?
------------------------------------
Налицо ляпы либо в ядре сервера либо в головах технической службы брокера.
---------------------------------
Хотелось бы услышать начальника транспортного цеха по данному вопросу.
std::recursive_mutex и cинхронизация потоков в Lua
 
У меня вопрос к автору темы.
А зачем использовать мьютекс, если у нас один процесс?
Спасибо
Переподключение к серверу: автоматическое или из Lua
 
Цитата
swerg написал:
Научите без библиотек?
пользуйтесь заведомо проверенными источниками информации, и не читайте рекламы как стать миллионером бесплатно.
-----------------------------

А если серьезно, то  речь идет о "специальных" библиотеках - вернее сказать модулях, которые написаны специально для решения прикладной задачи .
---------------------------------
Т е если делается прога для конкретного решения, например автоматического запуска КВИК, и к ней предлагается добавить специально написанный dll модуль то получить в встроить в него  трояна отсылающего пароль не представляет особого труда.
------------------------------
Но если мы используем библиотеки разширяющие фозможности официального луа без привязки к прикладной задачи, например socket  для работы с интернет,  и пишем скрипт без подключения где-то взятых на халяву специальных библиотек, то проблем со злым умыслом фактически нет.
Примерно так.
------------------------------------------
Но полагаю, что все это Вы знаете сами,
так как вечный треп о том,
что кому-то нужен, непонятно зачем ,
ваш логин и пароль  - это страшилка для буратин.
Трендовые линии привязка к одному графику
 
Цитата
swerg написал:
disasterovich ,
у вас совсем немного инструментов, между которыми вы переключаетесь.

А что если сделать несколько вкладок, на каждой вкладке - график своего инструмента.
Тогда это разные графики, на каждом свои тренды. И переключаться легко и быстро.
В термина QUIK отображение графика  ест много ресурсов поэтому такое решение очень затратное.
Переподключение к серверу: автоматическое или из Lua
 
можно такой скрипт написать на обычном луа( не встроенным в КВИК) без спец библиотек.
и никто никуда ничего ...
Переподключение к серверу: автоматическое или из Lua
 
Цитата
Николай Бехтерев написал:
Цитата
swerg   написал:
После потери связи можно настроить автопереподключение штатными средствами.
А чтобы терминал   автологинился при запуске (или перезапуске в случае краха) можно использовать скрипт на Lua с небольшой доп. библиотекой  .
Ага, и при первом же использовании этот файл с dll в который средний пользователь QLUA заглянуть не сможет, кинет вам его логин и пароль))) А то оба файла pubrink и sebrink в фоном режиме)
для особо мнительных
напишите скрипт на Autoit без доп библиотек.
Я таким скриптом пользуюсь ...надцать лет.
пример можно найти на моем сайте
std::recursive_mutex и cинхронизация потоков в Lua
 
т е на какой момент извлеченный в main элемент будет первым в таблице, если колбеке есть вставка первого элемента?
std::recursive_mutex и cинхронизация потоков в Lua
 
вопрос  является ли потокобезопасным оператор извлечения элемента таблицы t:  
local x=t[1];
std::recursive_mutex и cинхронизация потоков в Lua
 
и еще
можно обойтись без мьютекса вообще
лишь используя
concat   ->sconcat  
remove ->sremove  
insert->sinsert
sort->ssort
и создавая копию очереди в main.
std::recursive_mutex и cинхронизация потоков в Lua
 
что-же касается простаивания колбеков, при работе main,
то это можно решить путем копирования очериди в локальный массив в main.
и далее main работает с копией, а колбеки с очередью
std::recursive_mutex и cинхронизация потоков в Lua
 
Цитата
Вячеслав написал:
Николай  Камынин  , вопрос немного не об этом.
Я уже выполняю синхронизацию на уровне мьютексов.
Вопрос в том, прочитаются ли данные в потоке main сразу после вставки их в таблицу в обработчике callback'а или наоборот.

Перечисленных потокобезопасных функций мне не достаточно.
В частности, мне нужно пройтись по таблице, в которой добавляются/удаляются элементы из callback'а и выполнить
определённые действия для некоторых элементов по условию.
Я делаю иначе:
если потоку main делать нечего, то я его усыпляю.
в результате он не занимает никаких ресурсов процессора.
когда я обновляю таблицу,
то пинаю поток main,
он просыпается и обрабатывает то, что ему пришло в очереди.
после этого он снова засыпает до нового пинка.
 
Трендовые линии привязка к одному графику
 
Цитата
swerg написал:
В смысле одно окно графика, но переключаете инструмент при помощи рядом стоящей таблицы со список инструментов и якоря, верно?
верно. на картинках включен якорь.
std::recursive_mutex и cинхронизация потоков в Lua
 
Потокобезопасные функции для работы с таблицами  Lua

Одновременная  работа с таблицами из функций обратного вызова скрипта и  функции  main() может приводить к неопределенным ситуациям. Для решения этой   проблемы qlua.dll предоставляет потокобезопасные аналоги стандартных  функций  Lua. Формат вызова потокобезопасной функции совпадает с форматом вызова  аналогичной стандартной функции Lua.
вместо
concat   ->sconcat  
remove ->sremove
insert->sinsert
sort->ssort
std::recursive_mutex и cинхронизация потоков в Lua
 
для начала можно почитать документацию QLUA
где указано:
----------------------------------
Потокобезопасные функции для работы с таблицами  Lua

Одновременная работа с таблицами из функций обратного вызова скрипта и  функции main() может приводить к неопределенным ситуациям. Для решения этой  проблемы qlua.dll предоставляет потокобезопасные аналоги стандартных функций  Lua. Формат вызова потокобезопасной функции совпадает с форматом вызова  аналогичной стандартной функции Lua.
В таблице представлены стандартные функции Lua и соответствующие им  потокобезопасные аналоги:
Стандартная функция LuaПотокобезопасная функция
concat sconcat
remove sremove
insert sinsert
sort ssort
Этого достаточно?
Тейк Профит и Стоп Лос
 
теперь напишите , как Вы понимаете срабатывание стопа на каком-либо числовом примере,
при этом укажите  о чем Вы говорите - о стоп-лимите или тэйк-профите.
пересечениэ мувингов
 
могу предположить, что индикаторы вычисляются на закрытие свечи.
В этом случае они изменятся лишь на открытии новой и Вы получите то, что получаете.
Надо считать индикаторы в скрипте.
пересечениэ мувингов
 
В приведенном коде нет открытия позиции.
Напишите точно - что,где,когда
Тейк Профит и Стоп Лос
 
почитайте в документации по квику
раздел 5
пункт Условные(стоп)-заявки
Типы заявок 4.Тэйк-профит и стоп-лимит
Ошибка в создании транзакции, ОШИБКА 159
 
у Вас был
Объем заявки=0.00;
Тейк Профит и Стоп Лос
 
SPREAD_UNITS  --- ????
---------------------------------------------
Учитесь жевать самостоятельно.
Тейк Профит и Стоп Лос
 
их там нет.
Тейк Профит и Стоп Лос
 
у Вас нет присвоения значения переменной SEC_PRICE_STEP
----------------------
"Это у Вас не заливная рыба"
Задержка данных при обмене с сервером
 
это значения параметра
LASTPINGDURATION - Задержка данных при обмене с сервером
Задержка данных при обмене с сервером
 
это значения параметра
LASTPINGDURATION Задержка данных при обмене с сервером
не могу снять с графика цены параметры фрактала, значение всего одного параметра вытягиваемого с указываемого на графике идентификатором графика фрактала равно нулю на 30 последних свечах
 
кроме того, фрактал пишется вроде бы  High и Low,
но это надо проверять уже не помню точно
не могу снять с графика цены параметры фрактала, значение всего одного параметра вытягиваемого с указываемого на графике идентификатором графика фрактала равно нулю на 30 последних свечах
 
Если память мне не врет, то
индикатор фрактала в квик работает в зад.
Т е записывает значения в прошедшие свечи.
Поэтому в текущей свече будет всегда ноль.
-----------------------------------------------
Это чтобы работа с КВИК не казалось не медом.
Тейк Профит и Стоп Лос
 
а как Вы узнали, что не видит?
Задержка данных при обмене с сервером
 
т е отвечать на поставленные вопросы Вы не хотите.
Например, Вы можете показать результаты своих тестов задержки для любого брокера не называя его?
или таких тестов вы не делали?
Т е вам это по...?
для информации привожу результаты мониторинга задержки ответов за вчера:
Тейк Профит и Стоп Лос
 
если самому жевать лень, то сразу пишите и строки . где 46 строка?
Тейк Профит и Стоп Лос
 
local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SRH6 ",
["ACCOUNT"]="SPBFUT011Ib ",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["SPREAD"]= "20",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
sendTransaction(Transaction);
--------------------------------------------------------
Тейк Профит и Стоп Лос
 
ocal Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SRH6 ",
["ACCOUNT"]="SPBFUT011Ib ",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["SPREAD"]= "20",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
sendTransaction(Transaction);
--------------------------------------------------------
если самому живать лень, то ы сразу пишите и строки . где 46 строка?
Ошибка в создании транзакции, ОШИБКА 159
 
нет кода клиента CLIENT_CODE
Тейк Профит и Стоп Лос
 
["SPREAD"]=  "20"
нет запятой
надо так
["SPREAD"]=  "20",
Тейк Профит и Стоп Лос
 
покажите  39 линию в тексте.
Тейк Профит и Стоп Лос
 
expected (to close '{' at line 39) near '['
в линии 39 отсутствует закрывающая скобка для '{} около '['
------------------------------------------------------
это че Вы и жевать за меня будете? - АГА!!!
Страницы: Пред. 1 ... 58 59 60 61 62 63 64 65 66 67 68 ... 72 След.
Наверх