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

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

Страницы: Пред. 1 ... 62 63 64 65 66 67 68 69 70 71 72 ... 78 След.
Построение производного графика из двух графиков, В одной области имеются 2 графика цены в виде линий по 2.инструментам. Как построить третий график?
 
Цитата
Борис написал:
В одной области заведены 2 графика цены в виде линий по инструментам GZ и SR. Как построить разностный график по ним? По сути это спред между ними. Спред = GZ-SR
Соглашусь с михаилом, задача не тяп-ляп и не на полчаса.
Проблема в том что данные на графики приходят асинхронно.
Поэтому приходится при построении спреда учитывать это и синхронизировать временные ряды.
Один из способов упрощения этой задачи - это построить изначально оба исходных графика в одном окне, друг под другом с единым масштабом.
Примерно так
Как выставить стоп заявку,чтобы при срабатывании по одному инструменту,сформировалась рыночная заявка по другому инструменту?, Как выставить стоп заявку,чтобы при срабатывании по одному инструменту,сформировалась рыночная заявка по другому инструменту?
 
делается наоборот.
ставится стоп-заявка по лукойлу
стоп-бумага Газпром
когда цена по газпрому  пробьет
стоп-цену то выставится лимит заявка по лукойлу.
Задержка данных при обмене с сервером
 
Добрый день,Михаил
Если есть параметр, то он что-то значит.
Я его измеряю как один из ....
Где Вы увидели, что я его соотношу с пингом ( вообще-то я даже не понимаю , что Вы понимаете под словом "соотношу")
-----------------------------------------
Но любой измеряемый параметр позволяет делать определенные оценки в отношении испражняющего его объекта.
-------------------------------
Вот и Ваш параметр, который Вы назвали "Задержка данных при обмене с сервером" что-то показывает.
-------------------------------
Назвали бы его горшком, и никаких бы оценок задержек обмена на его основе не делал бы.
-----------------------------
А так  - я вам верю...
относительно Ваших теоретических изысканий,
попробуйте объяснить , что может делать  сервер 10 секунд, чтобы не отсылать ответ на этот запрос?
У лишь оно придумал - сервер пошел курить.
А Вы что придумали?
Задержка данных при обмене с сервером
 
пардон в п 4 опечатка SNTP
Задержка данных при обмене с сервером
 
Добрый день, Олег
Демо сервер Ваш.
график сжат. т е на нем отображаются лишь значения запаздывания,
которые не равны предыдущему значению.
------------------------------------------
Я собственно хочу выяснить,
какие реально задержки в прохождении данных есть.
Кроме того, разработанный мною индикатор позволяет в реальном времени проверить сервера брокеров на предмет их стресс нагрузок и понять что же мы реально получаем.
-------------------------------
Если интересно, то измеряю я задержки так

1 Измерение торговых транзакций.
Включаем таймер с шагом 100 нс. Посылаем команду выставить стоп-заявку
Фиксируем разность относительно старта время прихода колбеков
----------------------------------
2 измерение запаздывания данных с сервера (зеленая линия) Это параметр LASTPINGDURATION
--------------------------------------
3) пинк на IP адрес сервера - это ICMP запрос короткой посылкой на  IPADDRESS (красная линия)
----------------------------------
4) стабильность локального времени  SHTP запросы на сервер точного времени (синея  линия)
Стабильность локальных часов не хуже 10 ms, что позволяет измерить запаздывание тиков.
Но это следующий этап.
------------------------------
Какая-либо помощь пока не требуется.
Брокером  собственно по барабану,
как быстро доходят данные до клиентов.
----------------------------------------------------------
Главное, чтобы костюмчик сидел...
getOrderByNumber
 
Добрый день,
хотелось,
бы чтобы это функция позволяла выбирать и стоп заявки.
Спасибо
Задержка данных при обмене с сервером
 
измерил время запаздывания ответов по выставлению и снятию стоп-заявки для демо сервера.
получилось следующее:
ответ OnTransReply  через 180 ms
ответ  OnStopOrder через 280 ms
В индикатор отображающий задержки сервера
добавил запаздывание локального времени относительно атомных часов (синий цвет)
( т е биржи)
получилась такая картинка

Подробнее напишу позже на своем сайте
про тики
 
Цитата
Фёдор Сухов написал:
Все необходимые тики собираю через onAllTrade, пока не требовалось использовать 2-й вариант, но, если рассуждая логически,
то 2-й вариант должен быть быстрее, потомучто на экране, как минимум, нет окна всех сделок, т. е. нет доп. вывода в окно текстовой информации.
Надо измерить время.
Как выяснилось ранее, для onAllTrade не надо открывать ТВС на экране (по крайней мере так утверждают разработчики для версии 7)
Хотелось бы услышать начальника транспортного цеха.
Задержка данных при обмене с сервером
 
сделал мониторинг задержки ответов демо сервера
получил  такую картинку.
красная линия - это величина пинга на IP сервера = Стабильно 15 ms.
Учитывая ранее полученные данные для сервера БКС,  можно предположить,
что скорость обработки запросов сервером КВИК не очень..
про тики
 
Добрый день,
Как известно, обращаться к тикам можно двояко.
Во-первых , в колбеке onAllTrade
Во-вторых,  в колбеке CreateDataSource
-----------------
вопросы к знатокам:
1) В чем отличие обработки этих колбеков.
2) Какой колбек вызывается раньше.
3) как во втором случае получить всю информацию первого.
Спасибо
Задержка данных при обмене с сервером
 
Цитата
Николай Бехтерев написал:
Цитата
Сергей Чугунов   написал:
 swerg   написал:
Некий самый общий ориентир можно почерпнуть здесь
 http://arqatech.com/ru/products/quik/rates/  
Это тарифы для брокеров. Про отдельный сервер: к трем оброкерам обращался ( в т.ч. к БКС) - никакого толку. Кто нибудь пользует "прямые соединения", вроде обещаемых  БКСом  "плазы и тд."?
Возможно, что при использовании прямых подключений минуя Quik надобность в брокере отпадает напрочь.
Ведь это уже собственный "терминал" (робот, программа) зачем для этого кому-то платить? Проще купить фирму с лицензией и оформиться как надо, не?
Согласно ФЗ О рынке ЦБ на бирже имеют право торговать лишь проф участники.
Проф участниками могут быть лишь юр лица.
-----------------------
Поэтому - желаете торговать без брокера
1) станьте юр лицом
2) получите лицензию ЦБ
3) купите доступ на биржу
----------------------
Мало не покажется.
--------------------------
Если решите и нужна помощь, обращайтесь.
Подскажите скорость выставления заявки через QUIK, За какое время после отправки заявки через квик я получу ответ от биржи с номером оредра
 
https://forum.quik.ru/forum1/topic1450/
Встроенные индикаторы в скриптах индикаторов, Встроенные индикаторы в скриптах индикаторов
 
запаздывание расчета индикатора на графике происходит по причине запаздывания данных по свечам,
которые рассчитывает сервер брокера.
Поэтому это запаздывание не зависит от версии квика и будет всегда.
-----------------
Я же говорю не о исходных данных для расчета, а о функциях расчета.
Если подставите в них тики то получите тот же результат что и получаете сейчас,
но немного быстрее и без лишнего кодирования в луа.
Встроенные индикаторы в скриптах индикаторов, Встроенные индикаторы в скриптах индикаторов
 
т е речь идет о следующем.
сейчас, чтобы применить в скрипте робота EMA я должен либо написать его на луа либо поместить индикатор на график и потом читать с графика.
Я же хочу просто в своем скрипте обратится к уже существующей в терминале функции расчета  EMA и вызвать ее в своем скрипте без отображения индикатора и написания его на луа.
Встроенные индикаторы в скриптах индикаторов, Встроенные индикаторы в скриптах индикаторов
 
Цитата
Stanislav Tvorogov написал:
Цитата
На данный момент есть примеры функций расчета индикаторов терминала QUIK. Их можно скачать по ссылке:
ftp://ftp.quik.ru/public/INDICATORS.zip
За примеры спасибо.
Но вопрос мой был совершенно о другом.
Написать индикатор на луа для меня не проблема.
Но зачем писать то, что уже встроено в терминал?
Т е я просил включить в QLUA возможность обратится к уже встроенным в терминал индикатора.
Минимальная / максимальная возможная цена акций
 
Цитата
Sergey Gorokhov написал:
Цитата
s_mike@rambler.ru   написал:
Дырка в архитектуре.
Михаил если вы считаете то, что у нас нет физической возможности принудительно заставлять брокеров выполнять те или иные настройки дырой в архитектуре то да такая дыра есть.
Но извините, если бы один человек мог принудить другого человека что-то делать это уже была бы не демократия.
В политике это называется "принуждение к миру"
В таком духе - это можно назвать "принуждение к уважению интересов клиентов"
Часто  демократию подменяют демагогией.
Вызов lua_CFunction из С++
 
Цитата
dj.lexus написал:
Цитата
Вячеслав +   написал:
Если между вызовами Си функций из Lua, то можно сохранить это значение в LUA_REGISTRYINDEX - это специальная таблица, видимая только из Си и хранящая важную информацию (удалять из неё что-то не своё точно не надо). См. API
idx = luaL_ref(L, LUA_REGISTRYINDEX)
luaL_unref(L, LUA_REGISTRYINDEX, idx)
lua_rawgeti(L, LUA_REGISTRYINDEX, idx)
Спасибо, эти функции у меня в коде есть. Меня насторожило то, что если сохранить ссылку
Код
  idx  =  luaL_ref(L, LUA_REGISTRYINDEX) ,  
потом вытолкнуть её из стека
Код
  lua_pop(L,  1 ),   
затем попытаться вернуть
Код
  lua_rawgeti(L, LUA_REGISTRYINDEX, idx) ,  
то Quik падает при выполнении таких операций.

Видимо, при удалении единственной ссылки на таблицу, Lua удаляет её содержимое.

Видимо, выходом в такой ситуации будет, как Вы писали:
Код
  lua_setglobal(L,  "myDS" );  
Правда, в этом случае, придётся склеивать индивидуальное символьное имя для каждого источника данных.

Про разные потоки callback'ов и main'a знаю, но про синхронизацию доступа пока не думал. Нужно будет это учесть.

А все callback'и выполняются в одном потоке?
Стек в луа - это просто область памяти, указатель на которую находится по адресу L->base
При вталкивании в стек данные записываются по адресу, который записан в L->top
Сначала там записан L->base, после каждого заталкивания L->top=L->top+1
При выталкивание происходит обратное действие.
При этом происходит контроль границ стека и если адрес выходит за границы выдается сообщение луа.
-------------------------------
Таким образом, КВИК падать не может из-за операций со стеком.
----------------------------
Если у Вас квик падает без сообщений, то ошибка в Вашем коде CИ, которай приводит к фатальной ошибке, которую никто не обрабатывает. Возможно Вы в своей программе куда-то не туда чего-то пишите.
--------------------------------
Все колбеки выполняются в одном потоке.
Но вот открытие источников надо делать в main. Не знаю для чего так сделано, но уж сделано.
Вызов lua_CFunction из С++
 
Я тоже передаю данные и туда и обратно, но это не мешает использовать и си функции и луа.
Из опыта могу сказать что на Си надо  делать то, что нет в луа
например работу с различными форматами, потоками памятью.
ZeroBrane Studio Lightweight IDE for your Lua needs, полезная для новичков среда разработки со всеми необходимыми качествами
 
редактор текста SciTE Version 1.75
   Apr 25 2009 11:30:59
by Neil Hodgson.
December 1998-November 2007.
http://www.scintilla.org
Lua scripting language by TeCGraf, PUC-Rio
   http://www.lua.org
имеет встроенный отладчик луа.
очень простой в применении и удобный в работе. Написан полностью на луа. Можно встраивать свои средства.
Пользую и Вам советую.
Вызов lua_CFunction из С++
 
а еще лучше , не делать на Си то, что можно сделать на луа
Вызов lua_CFunction из С++
 
а еще проще не вставлять  в DLL, а поместить в скрипт и вызывать из dll
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
прошу прощение,
перепутал параметры номер линии и число отсчетов в функции
getCandlesByIndex (давно не использовал)
поэтому замечание о приеме всех свечей в исходном примере ошибочно.
-----------------------------------
Но про последний индекс замечание остается
Поэтому я предлагаю сделать так:local t_ind2={}
Код
local t_ind2={}
local len2;
  function   OnCalculate (index)
    if  index ==  1   then
      t_ind2={};
      len2=0;
   else
   local len=getNumCandles (Settings.ID)-len2;
   if   len>0  then
        local t,n,l = getCandlesByIndex (Settings.ID,0,len2,len )
      if  n>0   then
         local i=0; while n>i do len2=len2+1; t_ind2[len2]=t[i] i=i+1; end
        end
   return t_ind2[len2].close
    end
   end
 end

Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
Код
local t_ind2={}
local len2;
  function   OnCalculate (index)
    if  index ==  1   then
      t_ind2={};
      len2=0;
   elseif   getNumCandles (Settings.ID) >=index  then
        local t,n,l =  getCandlesByIndex (Settings.ID,len2 ,index -  1 , 1 )
      if  n>0   then
         local i=0; while n>i do len2=len2+1; t_ind2[len2]=t[i] i=i+1; end
            return t_ind2[len2].close
        end
    end
 end
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
Код
local t_ind2={}
local len2;
  function   OnCalculate (index)
    if  index ==  1   then
      t_ind2={};
      len2=0;
   elseif   getNumCandles (Settings.ID) >=index  then
        local t,n,l =  getCandlesByIndex (Settings.ID,len2 ,index -  1 , 1 )
      if  n>0   then
         local i=0; while n>i do t_ind2[#t_ind2+1]=t[i] i=i+1; end
         return t_ind2[#t_ind2].close
        end
    end
 end

Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
и еще
Вы на каждый тик  читаете весь массив свечей с другого графика а это 3000 штук.
в результате большой тормоз.
Вот примерный код, как надо сделать (не отлаживал ошибки исправьте сами)
Код
local t_ind2={}
local len2;
  function   OnCalculate (index)
    if  index ==  1   then
      t_ind2={};
      len2=0;
   elseif   getNumCandles (Settings.ID) >=index  then
        local t,n,l =  getCandlesByIndex (Settings.ID,len2 ,index -  1 , 1 )
      if  n>0   then   
         local i=0; while n>i do t_ind2[#t_ind2+1]=t[i] i=i+1; end
         return t_ind2[#t_ind2]
        end
    end
 end

:
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
попробуйте так:
Скрытый текст
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
Возможно проблема возникает в операторе
t,n,l =  getCandlesByIndex (Settings.ID, 0 ,index -  1 , 1 )
если index-1 ,больше, чем число свечей на первом графике?
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
Цитата
s_mike@rambler.ru написал:
почему бы просто не использовать
Функции O, H, L, C, V, T -


Потому что читается не родной график, а другой.
Понял, спасибо.
Баг приводит к закрытию Quik - код индикатора прилагается, Баг-репорт
 
Цитата
Максим написал:
Здравствуйте, уважаемые разработчики!

Я использую простой самописный индикатор "A" для отрисовки линии на графике. Значения для отрисовки этой линии индикатор берет из другого индикатора "Б" по его идентификатору. Оба индикатора расположены на разных графиках. Эти графики имеют разный таймфрейм и расположены  в разных окнах  одной вкладки.

Первый индикатор "A" копирует значения второго индикатора. Для отрисовки текущей свечки индикатор "A" берёт значение  предыдущей  свечки индикатора "Б".

В торговое время после запуска индикатора "A" может пройти от 20 минут до 4 часов и Quik стабильно зависает (в заголовке Quik появляется "программа не отвечает"). Приходится завершать процесс info.exe (не отвечает более 30 минут), размер потребляемой опер. памяти не увеличивается от нормы. Зависание происходит только когда включен индикатор "A". Баг проявляется, если в качестве индикатора "Б" использовать любой индикатор (например, встроенный индикатор простой скользящей средней).

Код индикатора "А" с комментариями:
Код
   local  t = {}
 local  n =  0 
 local  l =  0 
 local  value =  0 

 function   OnCalculate (index)
    if  index =  =  1   then   return   end              --проверяем если первая свечка, расcчёт не ведется 
    if   getNumCandles (Settings.ID) =  =  0   then           --Settings.ID содержит название идентификатора, которое задаёт пользователь 
       return                    --проверяем если индикатор "Б" не содержит свечек, рассчёт не ведется 
    else 
      t,n,l =  getCandlesByIndex (Settings.ID, 0 ,index -  1 , 1 )
       if  t[ 0 ].doesExist =  =  1   then           --проверяем если свечки нет, рассчет не ведется 
          if  t[ 0 ].close~ =  1e10   then        --проверяем если новое значение свечки не получено, рассчет не ведется 
             if  t[ 0 ].close~ = value  then  value = t[ 0 ].close  end 
            t[ 0 ].close =  1e10 
             return  value
          end 
       end 
    end 
 end 
  
Помогите определить почему после запуска индикатор "A" может работать от 20 минут до 4 часов в торговую сессию, а потом Quik зависает. Никаких ошибок в окне сообщений нет. Торгуемый инструмент USDRUB_TOM.

Версия Quik: 7.0.4.10 (англ. интерфейс)
Версия OS: Windows 7 SP1 (англ. интерфейс)
Ужасный пример индикатора!!!!
-------------------------
getNumCandles (Settings.ID) =  =  0   then           --Settings.ID содержит название идентификатора, которое задаёт пользователь
NUMBER getNumCandles (STRING tag) -Возвращает число – количество свечек по выбранному идентификатору
а Settings.ID содержит название идентификатора - что за ....?
----------------------------------------
t,n,l =  getCandlesByIndex (Settings.ID, 0 ,index -  1 , 1 ) - зачем читать набор свечей через ЭТО.
--------------------------------
почему бы просто не использовать
Функции O, H, L, C, V, T -
Функции в качестве параметра принимают индекс свечи и возвращают  соответствующее значение. Время свечи возвращается с точностью до миллисекунд в  виде таблицы с полями:
-----------------------------------------
.
LUA C++
 
Пользуюсь всеми механизмами совместного использования памяти
 
LUA C++
 
Цитата
seltor написал:
Для начала - да. Добавьте к этому работу с разделяемой памятью, ну и с заявками.
Я все это пользую в  луа.
LUA C++
 
попробую объяснить
dll -это библиотека и не важно на чем она написана.
Lua позволяет подключать dll.
Поэтому подключайте и работайте.
удивительное рядом!!!
 
полагаю, что это был глюк сервера брокера при формировании свечей.
свечи формирует сервер и обновил на открытие утренней сессии,
а таблица сделок осталась без изменений.
Вот и получили сделки там, где нет цен.
работа с фьючерсами
 
Ну тогда надо почитать что-нибудь.
И узнать,
что клиринг пересчитывает позиции и  суммирует Вам в Лимиты вар маржу.
Получается, что считать маржу надо лишь от клиринга до клиринга.
Т е всего за полдня , даже если Вы в позиции 3 месяца.
 
Будет ли работать КВИК (рабочее место пользователя)на дешевых Windows планшетах, Quik на windows планшете
 
Цитата
Grasp Grasp написал:
в описании рабочего места квика сказано, что он работает с более 2 ГБ оперативки
Я Вам написал из собственного опыта и указал,
что требуется оптимизация винды и настройка квика.
------------------------------------
А в описании сказано, что если 2 есть,
то и валенок сможет работать.
QLUA опционы
 
Цитата
Михаил Филимонов написал:
Сертифицированный наставник QUIK
Михаил,
а где Вы взяли такое название "Сертифицированный наставник QUIK" ?
Сами придумали?
или Вы проводите сертификацию?
Но Ваш уровень я понял.
-------------------------
Лучше быть, чем казаться.
Будет ли работать КВИК (рабочее место пользователя)на дешевых Windows планшетах, Quik на windows планшете
 
А какая винда?
----------------------
например на XP
можно работать с 1 гб ,
если  правильно настраивать винду
и квик.
работа с фьючерсами
 
Надо играть здесь и сейчас, а не вспоминать былые победы и поражения.
Как Вы думаете, зачем на фьючерсах клиринг устраивают в 14 и в 19?
-------------------------
не правильный у Вас бутерброт.


 
проверка статуса стопзаявки по битовым флагам, доступ к таблице "stop_orders"
 
немного поправим:
------------------
for Index = 0,getNumberOf("stop_orders") - 1 do  
local any = getItem("stop_orders",Index)
if any and bit.band(any.flags, 1) > 0  then
local OrderNumber =  any.order_num
message("Стопзаявка  № = "..tostring(OrderNumber).."  активна",1)
end
end
Вопрос по синтаксису Lua на пару строчек, Встретил в справочнике такое вот:
 
error message
Вопрос по синтаксису Lua на пару строчек, Встретил в справочнике такое вот:
 
читаем документацию:
It returns a new file handle, or, in case of errors, nil plus an error message.
ДемоКвик радует неожиданностями, Перестала работать функция
 
поставьте в месседже вывод кода инструмента при входе в колбек
ДемоКвик радует неожиданностями, Перестала работать функция
 
а где присваиваются значения
p_classcode и p_seccode
Индикатор
 
пардон, опечатка:
почта на сайте www.kamynin.ru
Индикатор
 
могу,
присылайте на почту тех задание и свою цену,
если приемлемая, то обсудим детали.
почта на сайте www.kamynyn.ru
видимо баг в getNumCandles и getCandlesByIndex
 
1) а это что за библилотека?require ('math')
2) поставьте slep больше от 200
удивительное рядом!!!
 
Цитата
Imersio Arrigo написал:
А на сайте биржи какие цены за этот период?
плиз, ткните, где их можно увидеть?
удивительное рядом!!!
 
Добрый день,
Последнее время  получаю вот такие фокусы.
Вчера на вечерней сессии совершены сделки. А сегодня я вижу, что таких цен вчера не было, а сделки по таким ценам есть.
т е цены были 10730, а мне впапродали по 10830.
брокер  меня разводит или биржа химичит или КВИК портачит?
Ваше мнение?
Звуки, Вопрос
 
еще добавить синтезатор речи с регулировкой интенсивности
и голосовое управление.
Например, ты ему говоришь:  QUIK -деньги!!!
А он тебе  в ответ: Размечтался!!!
MOVE_ORDERS
 
http://forum.moex.com/viewtopic.asp?p=59971
Страницы: Пред. 1 ... 62 63 64 65 66 67 68 69 70 71 72 ... 78 След.
Наверх