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

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

Страницы: Пред. 1 ... 29 30 31 32 33 34 35 36 37 38 39 ... 81 След.
и такая дребедень Целый день
 
брокер Сбербанк.
Стыдоба - это ведущий банк РФ.   Внедряют ИИ.



и такая дребедень Целый день.
Почему-то не происходит обновления табличных данных лучший спрос и лучшее предложение (брокер СБЕР) ??, Два дня на
 
Цитата
Nikolay написал:
А прямо сейчас цена последней сделки в ТТТ, видимо, отстает от графика. Время сервера встало на 10 утра. Данные ТТТ видимо тоже. Для целей автоматизации  брокер просто нерабочий. Да и для торговли тоже т.к. вчера графики просто стояли.
Вам повезло
У меня сбер вообще  на сообщении - соединение установлено
прислал код а меню для ввода не выдает
Почему-то не происходит обновления табличных данных лучший спрос и лучшее предложение (брокер СБЕР) ??, Два дня на
 
У брокера сбер вчера
сначала время сервера отставала на 50 минут.
после двух кратного переподключения  время сервира стало нормальным
но цена последней сделки в ТТТ стала отставать минут на 30 от цены на графике.
Потом графики встали , а цены в ТТТ изменялись.
=============
раньше уже писал про выкрутасы сбера.
==============
хорошо бы  что-то в консерватории изменить.
COMMENT и CLIENT_CODE
 
Цитата
Иван Иванов написал:
+ "; CLIENT_CODE=" + comment;
 читаем внимательно документацию:
===================================
Настройки автозаполнения полей ввода заявки Заполнение полей «Код клиента» и «Поручение»
========================
Применение глобальной настройки управляется параметром «set-comment-mode»,
который может быть указан как в  секции [Global], так и в секции настроек для
какого-либо класса. Параметр может принимать следующие значения:
  • «0» – применение глобальной настройки отключено,
  • «1» – включено автозаполнение поля «Поручение» значением глобальной
    настройки, значение берется из параметра «sell-default-client-code» для заявок
    на продажу и «buy-default-client-code» для заявок на покупку в секции [Global].
    Если в параметрах указан код клиента, то он игнорируется. Например, если
    параметром «sell-default-client-code=77//global» задана подстановка кода клиента
    «77» и поручения «global», то код клиента не будет использоваться для
    автоподстановки.
Неправильная дата в Web Quik 7 3 1, Отстает на 3 дня
 
у сбера сегодня и в квике был бардак. Посмотрите на цену последней сделки.
Правда, круто?
 
Неполный вывод через DDE сервер
 
Цитата
Александр написал:
Можно конечно, но почему вывод данных так работает? Если есть 40 строк в стакане, так и он должен выводить 40 строк, даже если они пустые. Или по какому принципу работает вывод данных из стакана?
возможно он и выводит. Возможно это эксель не отображает пустые строки та как после них ничего нет.
Неполный вывод через DDE сервер
 
напишите в экселе скрипт на бейсике
Коллеги как подключить LUA SOCKET к QUIK 9 ?
 
Цитата
Alex написал:
Выполняю команду

socket=require("socket")

Вылезают вот такие ошибки

no field package.preload['socket']
no file 'C:\VTBC_Broker\QUIK\lua\socket.lua'
no file 'C:\VTBC_Broker\QUIK\lua\socket\init.lua'
no file 'C:\VTBC_Broker\QUIK\socket.lua'
no file 'C:\VTBC_Broker\QUIK\socket\init.lua'
no file 'C:\VTBC_Broker\QUIK\. .\share\lua\5.3\socket.lua'
no file 'C:\VTBC_Broker\QUIK\. .\share\lua\5.3\socket\init.lua'
no file '.\socket.lua'
no file '.\socket\init.lua'
no file 'C:\VTBC_Broker\QUIK\socket.dll'
no file 'C:\VTBC_Broker\QUIK\. .\lib\lua\5.3\socket.dll'
no file 'C:\VTBC_Broker\QUIK\loadall.dll'
проверьте версию dll
в 9 версии квик можно работать с dll Lua 5.3 либо Lua 5.4
[Вопрос разработичкам Квика] SetUpdateCallback - не срабатывает после первого запуска скрипта
 
поставьте галочки для торгуемых вами инструментов в подписке на обезличенные сделки.
[Вопрос разработичкам Квика] SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Цитата
Quikos написал:
Прошу пожалуйста подтвердить, что это ошибка или что это корректное поведение Квика:
Версия Квика 9.7.1.10
Если по понятиям,
то такое поведение функции, мягко сказать, странное.
-----------------------------
Если по документации,
то там ничего об этом нет,
следовательно,
получилось как всегда.
-----------------------
Но исправлять в ближайшем будущем это никто не будет.
--------------------
Поэтому, что Вам даст их ответ?
срочный рынок Московской биржи переходит на новую тарифную модель
 
вот нашел ответ на данный вопрос на бирже( совпало с данным мною выше определением ):
----------------------
Заявки с признаком только пассивные
В декабре 2022 года на Срочном рынке будет добавлен новый признак заявки только пассивная

Новый признак заявок "только пассивная" доступен для лимитированной или айсберг-заявки, которая становится Активной если в момент объявления имеет цену / величину спреда хуже цены / величины спреда встречных Активных заявок. Если Заявка в момент объявления имеет цену / величину спреда лучше цены / величины спреда хотя бы одной встречной Активной заявки, она отклоняется торговой системой.

Новый тип заявок с признаком только пассивные (BoC - Book-or-Cancel) предполагает, что заявка, поданная в торговую систему, никогда не будет тейкерской.

Особенности заявки с признаком только пассивные (BoC)

  • Признак BoC сохраняется на протяжении всей жизни заявок (в том числе и для GTD – good till date);
  • В рамках действующей тарификация признак BoС гарантирует нулевую комиссию по сделкам;
  • Команда MoveOrder исполняется в случае, если она не приводит к исполнению заявки, исходная заявка не снимается.
срочный рынок Московской биржи переходит на новую тарифную модель
 
или продажи, но валютой не торгую, поэтому лишь предположу.
срочный рынок Московской биржи переходит на новую тарифную модель
 
Цитата
Герман написал:
Цитата
nikolz написал:
 
Цитата
Герман  написал:
 
Цитата

Каким образом в функции sendTransaction прописать, что заявка пассивная? В руководстве не нашел информации
 
 ничего писать не надо.
Выставите сделку лимитной по цене хуже рынка - будет пассивной.  
В терминале функция есть, должна быть и возможность в коде прописать
предположу, что это условие ограничения покупки валюты физ лицами.
COMMENT и CLIENT_CODE
 
Цитата
Иван Иванов написал:
Столкнулись с тем, что в брокере А..р    не получается указать произвольный коммент к ордеру в CLIENT_CODE.     По итогу постановки заявки там всегда оказывается номер счета
SPBFUT1234F.     Невозможность пометить ордера ломает логику менеджмента заявок...

Вопрос такой:    замена CLIENT_CODE происходит на стороне брокера из-за каких-то особых настроек сервера ?     Или может всё-таки в локальных настройках терминала как-то можно подшаманить?
а где Вы прочитали что в CLIENT_CODE могут быть комментарии?
ссылку дайте плиз.
Робот Сетка LUA для QUIK бесплатно, Обзоры и обновления робота
 
к недостатку арбитражных стратегий следует отнести их малую доходность,
сопоставимую с доходностью облигаций.  
срочный рынок Московской биржи переходит на новую тарифную модель
 
пардон заявку.
когда в нее ударят, то ваша сделка будет пассивной.
срочный рынок Московской биржи переходит на новую тарифную модель
 
Цитата
Герман написал:
Цитата

Каким образом в функции sendTransaction прописать, что заявка пассивная? В руководстве не нашел информации
ничего писать не надо.
Выставите сделку лимитной по цене хуже рынка - будет пассивной.  
Связывание глобальной callback функции
 
Цитата
Quikos написал:
Цитата
nikolz написал:
 Так Вы просто сделали функцию OnQuote но ваша dll вообще здесь не причем.
--------------------------
Вы  dll  сделали правильно (если выкинуть лишнее, из того что Вам написали)
Но Вы не объявили Вашу функцию колбеком.
-----------------------

Как вариант,вы можете вызвать вашу функцию внутри
например так:  
Код
      --здесь загрузите вашу dll  
  function   OnQuote (class, sec)
  ----  здесь вызов вашей функции из вашей dll  
  end  
    
 
Не понимаю, что значит я просто обьявил функцию, но не сделал ее колбеком ?
Я обявил Сишную функцию и связал ее с именем реальной глобальной квиковской функции - OnQuote.

Что значит не сделал ее колбеком ? И что такое " ----  здесь вызов вашей функции из вашей dll".
Функция OnQuote вызывается не мной - а самим Квиком.
покажите где КВИК  в скрипте, который написали Вы,  загрузил вашу  dll
Есть смысл делать так ? Это экономит ресурсы ?
 
Цитата
Евгений написал:
А комментарии  сильно влияют на скорость ?

или например роспись кода в одну строку и в несколько строк ?
нет
Цитата
Евгений написал:
а пустые строки в файле скрипта могут влиять ?
нет
Связывание глобальной callback функции
 
Цитата
Quikos написал:
Цитата
В скрипте я дополнил ровно вот эти две строчки:
Код
   function   OnQuote (class, sec)
 end   
Просто вы же сами написали, что я неправильно описываю ее в dll, да и  BVladimir , что вроде бы может работать без указания этих двух строчек в скрипте.

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

Как вариант,вы можете вызвать вашу функцию внутри
например так:
Код
--здесь загрузите вашу dll
function OnQuote (class, sec)
----  здесь вызов вашей функции из вашей dll
end
Связывание глобальной callback функции
 
Цитата
Quikos написал:
Цитата
nikolz написал:
 
Цитата
Quikos  написал:
 
Цитата
 BVladimir   написал:
   
Цитата
  Quikos    написал:
Хмммм, в моем случае - начинает работать когда я объявляю callback-функцию в самом скрипте, без этого в dll - не вызывается.
   надо с самой dll разбираться...
  Я даже не знаю, что там еще можно разобрать. В Luaopen - я добавил функцию на стек, определил ее, как глобальную "OnQuote".  Не вызывается.
Как только добавляю в Lua скрипт эти две строчки - то начинает вызываться. Ну и хорошо, что мне еще нужно :)
 Проблема в том что Вы неправильно ее описываете в dll.
Ваша DLL - это таблица которая размещается в глобальном стеке, а колбек - это функция которая размещается в глобальном стеке
Когда Вы присвоите функции вашу функцию тогда и вызывается.  

Я делаю так:

Код
  static int global_callback__OnQuote(lua_State *  L)
{
    std::cout  <  <   "global_callback__OnQuote"   <  <  std::endl;

     return   0 ;
}



extern  "C"  LUALIB_API int luaopen_DLL(lua_State  *  L)     
{
    
    luaL_newlib(L, ls_lib);

    lua_pushcfunction(L, global_callback__OnQuote);
    lua_setglobal(L,  "OnQuote" );

}  

Каким образом дополнительно нужно присвоить "функцию моей функции" ?
Ну Вы же сами написали, что это сделали?
Покажите как Вы это сделали в скрипте.
Связывание глобальной callback функции
 
т е в вашем варианте, Вы описанием делаете указатель в глобальном стеке на вашу функцию из таблицы dll, потому и вызывается.
Связывание глобальной callback функции
 
Цитата
Quikos написал:
Цитата
BVladimir написал:
 
Цитата
Quikos  написал:
Хмммм, в моем случае - начинает работать когда я объявляю callback-функцию в самом скрипте, без этого в dll - не вызывается.
 надо с самой dll разбираться...
Я даже не знаю, что там еще можно разобрать. В Luaopen - я добавил функцию на стек, определил ее, как глобальную "OnQuote".  Не вызывается.
Как только добавляю в Lua скрипт эти две строчки - то начинает вызываться. Ну и хорошо, что мне еще нужно :)
Проблема в том что Вы неправильно ее описываете в dll.
Ваша DLL - это таблица которая размещается в глобальном стеке, а колбек - это функция которая размещается в глобальном стеке
Когда Вы присвоите функции вашу функцию тогда и вызывается.  
Связывание глобальной callback функции
 
Цитата
Quikos написал:
Цитата
BVladimir написал:
 
Цитата
Quikos  написал:
Оказывается в самом Lua-Скрипте нужно еще прописать вызов OnQuote.
 Не нужно. В скрипте только подключение dll.
Хмммм, в моем случае - начинает работать когда я объявляю callback-функцию в самом скрипте, без этого в dll - не вызывается.
  Чтобы было проще программировать колбеки,
Вы можете эти функции написать на луа,
а внутри их вызвать ваши функции на СИ.
-------------------
например так
function OnQuote()
---------------  вызываете что хотите писанное на  СИ
.....  
--------------
end
=================  
На самом деле Вы так сейчас и делаете, так как QLUA - библиотека функций, писанных на СИ.
Вы хотите написать  еще и свою хотелку на CИ.
Таблица обезличенных сделок ....
 
Цитата
Евгений написал:
Можно наверное напрямую с биржи еще подписаться, там то уже точно можно делать как хочешь))
если готовы платить, то можно и с биржи.
Поверх всех окон, Не работает при загрузку приложения.
 
Цитата
Kander написал:
Добрый день. Есть проблема которая отравляет пользование приложением не первый год. На вкладке три окна 1 таблица 2 график 3 Стакан. (вид на скрине под спойлером) Таблица поверх графика и в настройках стоит "Поверх всех окон". График снизу и у него в настройках НЕ стоит "поверх всех окон". Проблема в том, что при запуске приложения, таблица каждый раз оказывается под графиком и ее приходится вытаскивать от туда. Пока приложение на закроешь все нормально, оно остается поверх, при перезагрузки приложения, все поновой.

    Скрытый текст            

Вопрос собственно в том, как сделать, что бы таблица оставалась поверх графика всегда?
Если выходите  нажатием "X", то та и будет.
Попробуйте выходить через меню "Выход".
Таблица обезличенных сделок ....
 
Для этого надо подписаться на обезличенные сделки, а таблицу не открывать.
Таблица обезличенных сделок ....
 
Цитата
Евгений написал:
Для того что бы сделки поступали нужно что бы эта таблица была открыта, и это в принципе даже не плохо.
Но вот эти сообщения в таблице(появление сделки и ее параметры) они много пожирают ресурсов квика ?
Может можно как то их сэкономить и не транслировать эти сообщения ?

Ну то есть пусть они туда пишутся в эту таблицу, только без выдачи этого визуально.
Например сделать чек бокс не отображать  
     
[не показывать]
 V
Для этого надо подаисаться на обезличенные сделки, а таблицу не открывать.
sendTransaction - требует какой то "торговый счет" - попытка #2
 
читайте внимательно документацию, там даже пример написали, чтобы было понятно:

этот параметр обязателен, но значение его может быть nil
читаем внимательно там где звездочки

 
Ошибка при запуске Lua скрипта
 
Цитата
Vladimir написал:
Цитата
Vladimir написал:
Приветствую, запускаю Lua скрипт на VDS. При попытке его запустить у меня выходит это:


Не подскажите что делать в данной ситуации?
возможно версии разные.
Глубина стакана на акциях., Способы увеличения глубины стакана акций
 
Цитата
Alexander написал:
Цитата
serggio написал:
Вам ровно пять сообщений назад поддержка  ответила .
Я видел, что ответила поддержка. Заметьте, что после этого так же nikolz задал свой вопрос и поддержка не ответила. Вообще поддержка ответила, что такой стакан "огрызок" по сути - транслирует биржа. Т.е. биржа у себя имеет полный стакан котировок на акции, а брокеру она транслирует "огрызок" этого стакана. Вам не кажется это странным? Как поддержка вообще взялась тут ответить за брокера? Квик оперирует данными брокера, но не биржи. Поэтому думаю вопрос этот пока открыт и напишу брокеру - пусть он ответит какой полный стакан на бирже и какой стакан ему транслирует биржа и почему. Толи сам брокер делает у себя такие настройки, что биржа ему даёт не полный стакан, толи брокер получает таки полный стакан с биржи, но по каким то своим понятиям транслирует нам в квик не полный стакан.
потому что у брокера сервер QUIK и поддержка знает, что говорит.
Но какая длина очереди на сервере биржи почему-то не знает.
Понимаю что она разная бывает, но ее длина полагаю измеряется тысячами.
Нейросеть на LUA, Нейронная сеть на LUA
 
Спасибо за код.
Будет время попробую.
Нейросеть на LUA, Нейронная сеть на LUA
 
Цитата
Сергей написал:
Цитата
Сергей написал:
Ткните в строку, плиз.
В NeuralNetwork.Training первые строки до коммента "--Теперь правим веса": ошибки(delta) собираются в обратной порядке: выходной слой, далее остальные(for tmpl =self.layers-1, 1, -1 do -- слои) до первого.
Можете привести оценку скорости обучения для каких либо примеров и сравнение скорости например с факелом.
--------------------------
Я сделал обертку для Lua библиотеки  fastNet на СИ, но  для акций ее так и не применил,
так как использую бинарную сеть, для которой не нашел алгоритма оптимизации.
 
Нейросеть на LUA, Нейронная сеть на LUA
 
Цитата
Сергей написал:
Всем привет.
Сделал нейронку на LUA. Может кому пригодится:
что-то не вижу обратного распространения ошибки.
Ткните в строку, плиз.
getBuySellInfoEx - параметр "оценка кол-во лотов"
 
Цитата
Quikos написал:
Цитата
nikolz написал:
 
Цитата
Quikos  написал:
getBuySellInfoEx
 читайте внимательно документацию.
Там стоит звездочка - т е надо читать сноску,
а в сноске написано:
(*) В зависимости от настроек сервера QUIK, величина  
может выражаться в лотах или в штуках. Уточните единицы измерения у  
обслуживающего брокера.  
 https://luaq.ru/getBuySellInfoEx.html

Какая звездочка ??? Где сноска ???
не надо хамить, это Вы просите а не я.
чтобы понятнее было бестолковым еще раз КОПИРУЮ из документации:


 
getBuySellInfoEx - признак маржинальности
 
Цитата
Quikos написал:
Подскажите:

Функция getBuySellInfoEx возвращает два параметра:
Цитата
is_long_allowed = 1;         //Признак того, является ли бумага разрешенной для покупки на заемные средства. Возможные значения: «1» – разрешена, «0» – не разрешена.
is_short_allowed = 1;        //Признак того, является ли бумага разрешенной для покупки на заемные средства. Возможные значения: «1» – разрешена, «0» – не разрешена.
То есть бумага для которой я запрашивал getBuySellInfoEx - имеет возможность торговли с плечом.

Но параметр так же возвращенный функцией getBuySellInfoEx:
Цитата
is_margin_sec =0;        // Признак маржинальности инструмента. Возможные значения: «0» – не маржинальная; «1» – маржинальная;
Говорит, что бумага - не маржинальная.

Разве значения параметров is_long_allowed/is_short_allowed  не противоречит значению параметра is_margin_sec  ??
Читайте внимательно документацию, там написано
is_long_allowedSTRINGПризнак того, является ли инструмент разрешенным для покупки на заемные  средства. Возможные значения:  
  • «0» – не разрешен;
  • «1» – разрешен
Заполняется для клиентов типа «МД»
8is_short_allowedSTRINGПризнак того, является ли инструмент  разрешенным для продажи на заемные  средства. Возможные значения:  
  • «0» – не разрешен;
  • «1» – разрешен
Заполняется для клиентов типа «МД»
т е может быть маржинальная, но не для всех.
getBuySellInfoEx - параметр "оценка кол-во лотов"
 
Цитата
Quikos написал:
getBuySellInfoEx
читайте внимательно документацию.
Там стоит звездочка - т е надо читать сноску,
а в сноске написано:
(*) В зависимости от настроек сервера QUIK, величина
может выражаться в лотах или в штуках. Уточните единицы измерения у
обслуживающего брокера.  
Глубина стакана на акциях., Способы увеличения глубины стакана акций
 
Вопрос к разработчиками.
Как я понимаю, глубина стакана - это размер очереди заявок на сервере биржи.
--------------------
Регулируется ли на сервере КВИК брокера размер транслируемой очереди т е глубина стакана.
Еесли да , то какая максимальная,
если нет , то какая максимальная на сервере биржи.
Спасибо
Остановка и запуск скрипта из другого скрипта
 
Цитата
Quikos написал:
Подскажите, возможна ли остановка и запуск скрипта из другого скрипта ?

К примеру так: первый скрипт следит за соединение Квика - если соединение разрывается, то первый скрипт останавливает второй скрипт.
Первый скрипт ждет пока восстановится соединение и как только соединение восстанавливается первый  скрипт запускает второй скрипт.
скрипт - это всего лишь текст на языке луа.
Почему не можете все написать в одном романе, зачем  второй?
SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Цитата
Kolossi написал:
Цитата
Nikolay написал:
Не лучшее решение, оно блокирует исполнение кода. Запросы где время ответа неизвестно, лучше решать через очереди задач ожидания. Потоков в lua нет, но, как минимум, не блокировать весь код. Если, например, скрипт обрабатывает много инструментов и потоков данных, то ждать после каждого заказа - много времени пройдет пока до последнего дойдет. Или надо что-то другое постоянно контролировать, пока по другому инструменту заказ сделали. То что долго идет ответ - это не повод для уже работающих инструментов ждать.
Не от хорошей жизни, данные не всегда успевают.  Поскольку, как вы заметили, потоков в луа нет, пришлось на каждый инструмент(тикер) сделать по скрипту. Ну а в отдельном скрипте без базы никаких задач нет.
К стати, пока ни при какой нагрузке ожидание начала загрузки больше секунды-двух не встретил, а базы подгружается в основном либо при запуске, либо на открытии сессии.  Как и повода жаловаться на  SetUpdateCallback. Хотя в основном как колбэк используется OnAllTrade, база больше для расчетов.
В квике можно создавать сколько угодно потоков
При этом надо использовать общий глобальный стек.
В нем решены проблемы синхронизации для main и для любых других.
----------------
я приводил пример  с пулом потоков
Использовал его для обработки колбеков по 200 инструментов.
в итоге максимальное количество потоков которые были открыты пулом составило 12.
Никаких проблем с синхронизацией не было.
SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Цитата
Quikos написал:
Я правильно понял, что нужно дождаться пока появится таблица заполнится и только потом вызвать SetUpdateCallback ?
я в настоящее время не использую тики,
Но для таблице обезличенных сделок (тиков) я сделал DDE клиента который стартует всегда при загрузки квика
и позволяет получать в фоновом режиме любые таблицы квика , например доску опционов, или таблицу обезличенных сделок.
--------------
еще использовал колбек onAllTrade , тоже работает нормально.
SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Цитата
Kolossi написал:
Пардон, очепятка

while not ds or ds:Size()==0 do
sleep(50)
end

Ну еще счетчик циклов для повторной попытки загрузки
в приведенном выше скрипте эта проблема решается циклом
там же записываются доп параметры в таблицу ds
Кривые шибки в QLua
 
Цитата
Роман написал:
IsRun = true;

function OnInit()
  -- Здесь будет Ваш код для начальной инициализации
end;

function main()
  while IsRun do

  -- Здесь будет Ваш код,
  -- который будет выполнятся,
  -- пока скрипт не остановлен
  message("Hello, World!",1);

  sleep(1);
  end;
end;

function OnStop()
  -- Здесь будет Ваш код,
  -- который нужно выполнить
  -- перед остановкой скрипта
  IsRun = false;
end;
Попробуйте увеличить  sleep(1000);  
SetUpdateCallback - не срабатывает после первого запуска скрипта
 
поправил код скрипта
Код
local code_class1 = "TQBR"
local code_paper1 = "GAZP"
local interval1   = INTERVAL_TICK
local code_class2 = "TQBR"
local code_paper2 = "SBER"
local interval2   = INTERVAL_TICK
------------------------
local function my_cb_CDS(idx,tabl)
message(tostring(tabl.sec)..","..tostring(idx),1)
Sleep(100);
end
-----------------------------------------------------------------------------------------------------------int main:-----------------------------------------------------------------------------------------------------
function main()
   while not stopped do
   if tab1==nil then tab1 = CreateDataSource(code_class1, code_paper1, interval1);
      if tab1 then
       tab1.clas=code_class1; tab1.sec=code_paper1; tab1.int=interval1;
         tab1:SetUpdateCallback(function(idx) my_cb_CDS(idx,tab1) end)
      end
   end
   if  tab2==nil then tab2= CreateDataSource(code_class2, code_paper2, interval2);
      if  tab2 then
         tab2.clas=code_class2; tab2.sec=code_paper2; tab2.int=interval2;
         tab2:SetUpdateCallback( function(idx) my_cb_CDS(idx, tab2) end)
      end
   end
-------------------------
--   message(tostring(my_table1:Size()),1)
   sleep(1000)
   end
-------------------------
end -- end main()
function OnInit(script_path)
end

SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Переписал Ваш скрипт ,
но действительно,
если таблица обезличенных сделок не открыта,
то руками запускается со второго раза,
а автоматом - с первого.  
Очевидно это какая-то особенность или ошибка библиотеки  QLUA.
Код
local code_class1 = "TQBR"
local code_paper1 = "GAZP"
local interval1   = INTERVAL_TICK
local code_class2 = "TQBR"
local code_paper2 = "SBER"
local interval2   = INTERVAL_TICK
------------------------
local function my_cb_CDS(idx,tabl)
message(tostring(tabl.sec)..","..tostring(idx),1)
Sleep(100);
end
--------int main:---------------
function main()
   if tab1==nil then tab1 = CreateDataSource(code_class1, code_paper1, interval1);
      if tab1 then
       tab1.clas=code_class1; tab1.sec=code_paper1; tab1.int=interval1;
         tab1:SetUpdateCallback(function(idx) my_cb_CDS(idx,tab1) end)
      end
   end
   if  tab2==nil then tab2= CreateDataSource(code_class2, code_paper2, interval2);
      if  tab2 then
         tab2.clas=code_class2; tab2.sec=code_paper2; tab2.int=interval2;
         tab2:SetUpdateCallback( function(idx) my_cb_CDS(idx, tab2) end)
      end
   end
-------------------------
   while not stopped do
--   message(tostring(my_table1:Size()),1)
   sleep(1000)
   end
-------------------------
end -- end main()
function OnInit(script_path)
end

SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Цитата
Quikos написал:
Цитата
nikolz написал:
 Скрипт запускаете руками или автоматом с запуском квика?
Если автоматом, то в скрипте надо делать ожидание.
----------------
Проще, если вам нужны тики,
то просто подпишитесь на них через меню  и они будут приходить при старте квика без проблем.
Скрипт запускается полностью вручную.

Это хорошо, что можно подписаться через меню. Но это явный косяк в API.
чтобы понять причину надо смотреть ваш скрипт.
getMoney - значение полей таблицы
 
Цитата
Quikos написал:
Подскажите:

Цитата
Таблица параметров денежных лимитов

Параметр    Тип    Описание
money_open_limit    NUMBER    Входящий лимит по денежным средствам
money_limit_locked_nonmarginal_value    NUMBER    Стоимость немаржинальных бумаг в заявках на покупку
money_limit_locked    NUMBER    Заблокированное в заявках на покупку количество денежных средств
money_open_balance    NUMBER    Входящий остаток по денежным средствам
money_current_limit    NUMBER    Текущий лимит по денежным средствам
money_current_balance    NUMBER    Текущий остаток по денежным средствам
money_limit_available    NUMBER    Доступное количество денежных средств

Вызвал функцию getMoney() - она вернула условно следующие значения:

money_open_limit:                               0
money_limit_locked_nonmarginal_value:0
money_limit_locked:                            0
money_open_balance:                         1000
money_current_limit:                            0
money_current_balance:                      1000
money_limit_available:                          1000

Там где нули пока что не интересует, там, где 1000 руб - функия вернула корректно, при условии, что у меня не было открытых позиций.

Я специально купил одну акцию и стоиомсть портфеля начала соовтевтнно изменятся, но при вызове getMoney() - возвращается все та же - 1000.
Я закрыл сделку - стоимость изменилась - условно стала 998, но при вызове getMoney() - возвращается все та же - 1000.

Это так и должно быть ? Если да, то, как тогда получить кол-во доступных средств на конкретный данный момент в который вызвается getMoney() ? Под доступными средвами я имею ввиду, если у меня была  1000 на счете, я купил одну какую то акцию по 100 рублей - дсотупно мне стало 900, вот как эти 900 получить ?
выставили заявку - получили  колбек. OnMoneyLimit
------------------
заявка исполнилась и акции Вам зачислили -  сначала колбек OnDepoLimit, а потом OnMoneyLimit.
=============
если прочитаете таблицы раньше, то в ничего не изменится, так как еще не пришла информация.
 
SetUpdateCallback - не срабатывает после первого запуска скрипта
 
Цитата
Quikos написал:
Кто встречался с такой ситуацией ?

Заказываю тики через CreateDataSource:SetUpdateCallback().

Запускаю Квик:
-Загружаю скрипт.
-Запускаю скрипт.
-Скрипт вызывает CreateDataSource.
-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.
-Колбек больше НИКОГДА не вызывается.

Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.

Кто косячит ? Я или криворукие разрабы ?
Скрипт запускаете руками или автоматом с запуском квика?
Если автоматом, то в скрипте надо делать ожидание.
----------------
Проще, если вам нужны тики,
то просто подпишитесь на них через меню  и они будут приходить при старте квика без проблем.
Маленький баг: звук сделки повторяется при запуске
 
Цитата
СергейК написал:
FYI проблема осталась и ситуация немного изменилась.
Раньше она проявлялась, если в этот день были сделки и менялся сервер подключения.
Сейчас у Открытия остался только 1 сервер. И если сегодня были сделки, то при повторном соединении звук сделки проигрывается всегда.
Т.е. это не потому, что сделки произошли за то время, когда соединения не было (заявок уже нет), а повтор старых.  
при повторном соединение обновляется информация за текущий день. снова приходят данные о заявках и сделках.
играет музыка, все встают, звучит трехкратное ура.  
Функция подключения к серверу
 
Цитата
Quikos написал:
Подскажите, после разрыва соединения, есть ли функция, которая опять начнет установку соединения ?
если установлен флаг "Восстановить связь автоматически", то квик начнет восстановление связи.
Проблема будет в диалоге идентификации и ввода кода с телефона.
Страницы: Пред. 1 ... 29 30 31 32 33 34 35 36 37 38 39 ... 81 След.
Наверх