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

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

Страницы: Пред. 1 ... 65 66 67 68 69 70 71 72 73 74 75 ... 79 След.
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 отсутствует закрывающая скобка для '{} около '['
------------------------------------------------------
это че Вы и жевать за меня будете? - АГА!!!
Add/SetLabel
 
как я понял, удалять можно после закрытия квик или окна.
В остальных случаях - "асинхронно" означает "никто это не изучал "
Отставание от системного времени
 
чтобы решить проблему надо:
1) синхронизировать часы компьютера с сервером времени
2) в момент задержки посмотреть диспетчером задач ( но лучше собрать за день в лог файл) параметры системы (загрузка процессора, объем пиковой памяти и т д)
3) записать в лог файл в течении дня информационные параметры квика.
4) на основе этой  информацию скажу причину.
 
Ошибка в создании транзакции, ОШИБКА 159
 
это наверно на учебном сервере?
возможно не проходит По рынку
и еще
Вы как-то странно задаете, если по рынку то зачем цена если по цене то почему по рынку?
Код бумаги из Краткого названия бумаги, Можно ли получить Код бумаги из Краткого названия бумаги?
 
можно делать еще так.
создаете файл или коллекцию  используемых классов и бумаг
после этого ищите лишь в этой коллекции
вообще- настоятельно рекомендую переходить на луа.
По многим причинам, В частности в вашей задаче поиск будет осуществляться существенно быстрее так как строки сравниваются как целые числа (по хешам)
Код бумаги из Краткого названия бумаги, Можно ли получить Код бумаги из Краткого названия бумаги?
 
сначала получаете список классов
потом в цикле перебираете бумаги в классе и ищите по краткому названию свою
Задержка данных при обмене с сервером
 
Добрый день
Вопрос к разработчикам QUIK.
Наблюдаю следующую картину.
1) В информационном табло
Задержка данных при обмене с сервером составляет
при малой загрузке сервера брокера (нет торгов или вечерняя сессия) от 63 до 170 мс
при большой загрузке (начало торгов активная сессия)  150 ... 250 мс (временами до 1 сек)
2) пинг на ip севера дает 16 мс
----------------------------
Получается, что запаздывание ответа от сервера терминалу в 10-20 раз больше,
чем запаздывание за счет каналов связи.
--------------------------
Вопрос:
1. Какая возможная причина такого запаздывания ответа сервера брокера?
2.Брокер умышленно создает дополнительное запаздывание? Верно?
3. Это делается средствами QUIK или доп оборудованием?
4. С какой целью это делается? Ваши варианты.
Спасибо
Что за [ FORTS ] [ 90112 ] " SQLProxy ограничение борьбы с наводнениями " .Кто сталкивався?
 
Цитата
Андрей Мурга написал:
У меня слип(120000000000) делает 100 меседжей в секунду
А в документации написано так:
NUMBER sleep(NUMBER time)

Параметры:
ПараметрТипОписание
timeNUMBERВремя, на которое приостанавливается выполнение, в  миллисекундах
Пример:
Sleep(1000) -- приостановка выполнения скрипта на одну секунду
------------------------------
Обращаю ваше внимание, что в документации ошибка:
В первом случаем написано sleep, а в примере Sleep.
А это две большие разницы.
Может быть у вас не тот  слип.
Вот пример сообщение будет отображаться 1 раз в секунду 100 раз.
Скрытый текст
Что за [ FORTS ] [ 90112 ] " SQLProxy ограничение борьбы с наводнениями " .Кто сталкивався?
 
Одного неученого спросили, почему Вы такой глупый?
Он ответил - Потому, что моя не хочет быть читателем,  моя хочет быть писателем.
Железо для торговли роботом
 
что именно?
в инете много инфы,
например я когда-то написал это (уже и сам забыл)
http://www.kamynin.ru/archives/5744
Железо для торговли роботом
 
проблема решается так:
1) создаем очередь сигналов пересечения
2) в колбеке ТВС каждое новое пересечение запихиваем в очередь
3) в функции main на каждый сигнал из очереди посылаем соответствующую транзакцию и сигнал убираем из очереди
---------------------------------
Т е обработка колбеков должна осуществляться с помощью очередей.
Я делаю в скриптах именно таким образом.
Закрытие позиции, нет индикации, Есть только значки покупки и продажи, непонятно какая позиция закрыта, если позиций несколько
 
Цитата
rozmin написал:
Проблема: например, я открываю позицию покупка 5 контрактов по 10 руб, потом покупаю ещё 5 по цене 20 руб, потом продаю 5 контрактов по цене 30 руб. Не понятно, какая из позиций закрылась, первая покупка по 10 руб или вторая покупка по 20 руб?

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

Если Вы запустите ваш скрипт то Вы никогда не сможете его остановить.
так как окно сообщения которое будет выводится будет блокировать ваши попытки что-нибудь сделать ( это прикол разрабочиков квика, чтобы жизнь седом не казалось)
-------------------------------
Поэтому я написал вам пример который крутится 100 раз и завершается.
отправку транзакции я закоментировал
т е этот пример лишь покажет вам сообщение
------------------------
далее если захотите завалить сервер своими транзакциями то уберите -- перед res=sendTransaction(t) и
завалите брокера своими заявками
--------------------------------
Успехов
Железо для торговли роботом
 
дополню ранее сказанное.
пропуски срабатываний у Вас будут всегда происходить по следующей причине.
---------------------------------
Данные в ТВС приходят пакетами.
Т е сделки следующие с малым интервалом друг за другом придут к Вам одновременно.
-----------------------------------
При этом колбек будет срабатывать на них последовательно и непрерывно.
Т е например две сделки совершены с интервалом 100 мс но пришили в одном пакете.
колбек на них отреагирует два раза но с интервалом полагаю менее мс.
Т е у Вас произойдет анализ  статуса на обе сделки одновременно.
Если первая изменит статус а вторая вернет его обратно,
то Вы этот сигнал не увидите и заявку не выставите.
--------------------------------------
Эту ошибку никаким железом не исправишь - это методическая ошибка (ошибка метода).
Ее можно устранить лишь изменив алгоритм работы робота.
Теперь вроде все.
Железо для торговли роботом
 
могу предположить следующее.
Так как Вы пользуетесь колбеками , а они не синхронизируются
то  у Вас status успевает изменится туда и обратно
до того момента, как Вы на него прореагируете

У БКС сервера работают медленно ( возможно так делают специально, чтобы на вип сервер подключались за денюшку,
возможно старое железо,
возможно клиентов много и сервер не справляется),
короче реакция сервера медленная.
Сейчас у нового брокера у Вас раз в 5 быстрее реакция сервера.
В результате Вы сейчас просто не успеваете обрабатывать status и теряете сигнал.
-----------------------------
Чем медленнее будет рынок, тем лучше у Вас будет срабатывание.
--------------------------
Короче, проблема у Вас в потере сигналов status.
Надо переделывать алгоритм обработки сигналов, либо работать со свечами.
О чем уже писал ранее.
---------------------------------
Чудес не бывает, но  хочется в них верить.
Железо для торговли роботом
 
а почему Вы решили, что меньше сигналов - это неправильно?
возможно у вас коридор для болинджера большой задан для текущего рынка.
Железо для торговли роботом
 
вернее сказать запаздывание 2-5 раз больше
Железо для торговли роботом
 
В БКС серверы работают медленнее, чем то, что Вы показали раньше.
Примерно 2-5 раз.
Железо для торговли роботом
 
и еще
если я правильно понял,
у Вас как-то странно проверяется пересечение.
Вы используете сделку и заявку Вы именно так хотите?
но тогда Ваш алгоритм вообще не соответствует картинке
Железо для торговли роботом
 
На картинках у Вас пересечение свечи с линией болинджера
а в программе используется тик.
-----------------------
свеча - это четыре индикатора вычисляемых по куче тиков.
-----------------------------
поэтому то, что у Вас написано это совершенно не то, что Вы хотите (если смотреть на картинки)
-------------------------------
Нарисуйте картинку тиков внутри свечи и посмотрите .
Если хотите как на картинке то используйте свечи а не ТВС
Железо для торговли роботом
 
Хочу обратить Ваше внимание на тот факт,
что в ТВС тики,
а на  графиках у Вас свечи.
------------------------------
Т е то,
что вы реализовали это не то ,
что на графиках.
Определить очередь моей заявки в стакане в любой момент времени., Определение очереди.
 
берете стакан и ищите свою заявку по цене.
это и будет ваш номер в стакане.
Страницы: Пред. 1 ... 65 66 67 68 69 70 71 72 73 74 75 ... 79 След.
Наверх