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

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

Страницы: 1
Усреднение цены.(ФР), Возможно ли, отключение функции "усреднение цены"?
 
Не видел терминалов, которые бы не объединяли сделки в одну позицию по инструменту. Какой в этом смысл?
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
FCC. Security Definition, группа Инструмент, тег 48 не заполнен
 
FCC Security Definition возвращает данные с пустым значением кода 48, хотя в документации указано, что по нему происходит идентификация инструмента. (версия руководство 3.6)
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Qlua. Как получить тип бумаги по инструменту?
 
Сделал через message(tostring(sec["sectype"])). Выводит nil.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Qlua. Как получить тип бумаги по инструменту?
 
Пробую делать так, выводится только первый message: (Lua 5.3)
Код
stopped = false


function OnStop(row)
   stopped = true
end


function main()
   
   
   sec = getSecurityInfo("TQBR", "GAZP")
   message(sec["name"])
   message(sec["type"])

end
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Qlua. Как получить тип бумаги по инструменту?
 
Здравствуйте!
В таблице "Инструменты" не нашел параметр отвечающий за тип бумаги (фьючерс, опцион, др)
Как определить к какому типу относится данный инструмент?
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Вылетает QUIK Junior 9.7.0.14 при подключении отладчика Visual Studio 2022 17.0.5 С++
 
Тогда вопрос: Будут ли работать lua c++ скрипты, написанные ранее? Будет ли блокировка написание таких программ в QUIK?
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Вылетает QUIK Junior 9.7.0.14 при подключении отладчика Visual Studio 2022 17.0.5 С++
 
По какой причине введено ограничение? Чтобы на lua c++ программы не писали?
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Вылетает QUIK Junior 9.7.0.14 при подключении отладчика Visual Studio 2022 17.0.5 С++
 
К сожалению, никакого файла дампа не появилось. Такое ощущение, что КВИК закрывается без ошибки.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Вылетает QUIK Junior 9.7.0.14 при подключении отладчика Visual Studio 2022 17.0.5 С++
 
Здравствуйте.
Сегодня установил QUIK Junior 9.7.0.14 для отладки своих программ, но  при поптыке подключится к процессу QUIK просто закрывается.
В боевой версии квика 9.5.0.42 такой проблемы нет.

Кто сталкивался, прошу помощи.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
onDepoLimit() после onTransReply()
 
Вопрос решен! После onTransReply() меняется параметр locked_sell. Баг в моем коде.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Улучшение! "Добавить событие отмены стакана"
 
Здравствуйте.
Столкнулся с проблемой:

Работает левый lua скрипт и мой.
Оба скрипта подписываются на стаканы.
Если остановить левый lua-скрипт, то он описывает от всех стаканов, включая стакан моего скрипта.
Сейчас я в цикле проверяют подписку и заново подписываюсь, но хотелось бы это делать по событию "Отмена стакана"

Прошу внести данную возможность в функционал квика.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
onDepoLimit() после onTransReply()
 
Здравствуйте!

После onTransReply() вызывается onDepoLimit() c теми же значениями, что и до SendTransaction().
Изменения в onDepoLimit() происходят только после вызова onOrder().
Правильно ли я понимаю, что меняются какие-то внутренние параметры в depo_limits ?
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Доработка тейк-профит, Введение дополнительного окна.
 
Разве защита спреда не решает данную проблему?
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Изучаем Qlua., "hello world"
 
После обновления с 6ки до 7.0.4.10 появилась та же проблема. Буду как-то решать.
Брокер буквально 2 недели назад сделал обновление.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
На сколько я понял, проблема заключалась в синхронизации потоков main() и onQuote().
Дело в том, что при чтении таблицы в событии onQuote(), одновременно в теле main() вызывалась функция sleep(1000) в результате стек портился и функция lua_next в onQuote обращалась по неправильному адресу. В результате этого, возникало исключение и возвращало на вершину стека время в милисекундах, которое я задавал в sleep(). Если я не прав, поправьте меня.

Сейчас все работает как часы! Николай, спасибо! Я уже больше месяца решаю эту проблему =). Пошел отмечать =)
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Всех благодарю за помощь. Проблема решилась заменой
Код
_luafix.DoStr("while not stopped do   sleep(999)   end"; 
на
Код
while (_stopped) { Sleep(999);
Получилось:
Код
int lua_main(lua_State*st)
{
            //_luafix.DoStr("while not stopped do   sleep(999)   end";
      while (_stopped) { Sleep(999);  
   return 1;
}
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Николай Камынин, Вы продвинули меня вперед по проблеме. Я сменил sleep(1000) на sleep(999).
Изменился вывод ошибки на 999.
Что это может значить я пока не понимаю.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Решил проверить получение стакана из lua скрипта. Ниже мой код.

Код
function  main()
   while not stopped do   sleep(1000)   end
end

function OnQuote(class_code, sec_code)
        tb=getQuoteLevel2(class_code, sec_code)

   for i=1,tb.bid_count,1 do
            b = tb.bid[i].price
            q = tb.bid[i].quantity
       end
   for i=1,tb.offer_count,1 do
            b = tb.bid[i].price   << на эту строку ругается "test.lua:43: attempt to index field '?' (a nil value)"
       q = tb.bid[i].quantity
      end
end
Запускаем данный код, открываем 10 стаканов и ждем пока рынок начнет сильное движение.
В результате получаем ошибку скрипта
Код
test.lua:43: attempt to index field '?' (a nil value)
Ошибка иногда выскакивает сразу, иногда в течении 10 минут.
Проверьте, кто-нибудь у себя.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Николай, я сделал как вы написали. Тип кода всегда равен 4, т.е. строка. Надеюсь я правильно Вас понял.
Constantin, спасибо за замечания, исправил код как Вы написали. Это помогло убрать вылеты КВИКА.


Более детальное изучение показало, что во время чтения ячейки price или quantity при выполнении функции
while (lua_next(st, top4) != 0) qlua.dll вызывает исключение:
First-chance exception at 0x07306684 (qlua.dll) in info.exe: 0xC0000005: Access violation reading location 0x0000001C.
First-chance exception at 0x75B0C41F in info.exe: Microsoft C++ exception: cSEHException at memory location 0x00C7C778.


После этого, событие int lua_OnQuote(lua_State *st) вызывается повторно и оно содержит на вершине стека значение 1000.

Данная проблема возникает, то при интенсивном изменении стакана, например при падении рынка.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Ниже привожу мой код получения стакана на с++. Проверьте, пожалуйста, кто может. Будет ли возникать данная ошибка у вас. Может я в коде что-то не то делаю?

Код
typedef map<string, string> ROW;
typedef map<int, ROW> TABL;

int lua_OnQuote(lua_State *st)
{
   try
   {
      int top = lua_gettop(st);
      if (top == 0) return 0;

      string sec_code = lua_tostring(st, -1);// qlua.ToString(-1);   // код бумаги
      string class_code = lua_tostring(st, -2);// qlua.ToString(-2);// код класса

      //Quote quote = qlua.getQuoteLevel2(class_code, sec_code);
      top = lua_gettop(st);
      lua_getglobal(st, "getQuoteLevel2");
      lua_pushstring(st, class_code.c_str());
      lua_pushstring(st, sec_code.c_str());
      lua_pcall(st, 2, 1, 0);

      int top2 = lua_gettop(st);
      lua_pushnil(st);
      string key; // ключ

      int bid_count;
      int offer_count;
      TABL bid; // массив bid
      TABL offer; // массиы offer
      
      while (lua_next(st, top2) != 0) {
         int type = lua_type(st, -1);
         if (type == LUA_TNUMBER) key = to_string(lua_tointeger(st, -2));
         else key = lua_tostring(st, -2);

         type = lua_type(st, -1);
         switch (type)
         {
         case LUA_TSTRING:
            if (key == "bid_count") bid_count = lua_tointeger(st, -1);
            else offer_count = lua_tointeger(st, -1);
            break;
         case LUA_TTABLE:
            int   top3 = lua_gettop(st);
            int len;
            if (key == "bid") len = bid_count;
            else len = offer_count;

            for (int j = 1; j <= len; j++)
            {
               lua_rawgeti(st, top3, j);
               // получаем ячейки стакана
               int top4 = lua_gettop(st);
               lua_pushnil(st);
               ROW row;
               while (lua_next(st, top4) != 0) {
                  string key2 = lua_tostring(st, -2);
                  row[key2] = lua_tostring(st, -1);
                  lua_pop(st, 1);
               }
               if (key == "bid") bid[j] = row;   
               else offer[j] = row;
               lua_pop(st, 1);
            }
            break;
         }
         lua_pop(st, 1);
      }
      lua_pop(st, 1);
      if (0 != top - lua_gettop(st) - 1) LOG_ERROR << "Lua stack is changed!\n getTop=" << lua_gettop(st);
   }
   catch (...)
   {
      LOG_ERROR << "Ошибка в стакане";
      //lua_unlock(_luafix.lua);
   }


   return 0;
}
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
В отладчике в поле Output появляются следующие строки:
First-chance exception at 0x07306684 (qlua.dll) in info.exe: 0xC0000005: Access violation reading location 0x0000001C.
First-chance exception at 0x75B0C41F in info.exe: Microsoft C++ exception: cSEHException at memory location 0x00C7C778.

Что это может означать,
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
XML-файл спцификации FIX-протокола
 
Я пишу про этот файл http://www.quickfixengine.org/FIX50SP2.xml
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
XML-файл спцификации FIX-протокола
 
Приветствую.
Подскажите, где можно скачать файл спецификацию по вашему FIX-серверу?
Точнее файл FIX50SP2.xml с вашими дополнениями к описанию протокола.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Версия квика 6.15.1.17.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Цитата
Sergey Gorokhov пишет:
Уточните, а не в С++ тоже появляется 1000?
Думаю, в самом Lua все будет работать. Мне интересно, что это за номер, с чем это может быть связано?
Та же проблема ранее была при открытии стакана с включенной панелью инструментов.

Цитата
может быть проблема в _luafix?
По поводу _luafix -- это класс-обертка стандартных функций lua и qlua. Возможно проблема в ней, но мне не понятен смыл ошибки, по-этому не знаю где искать проблему.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Событие возвращает ошибку 1000
 
Периодически выводится ошибка "1000". Подскажите, это может значить?
Появление ошибки хаотичное.

Мой код в С++

Код
int lua_OnQuote(lua_State *st)
{

   int top = _luafix.GetTop();
   if (top == 0) return 0;
   string sec_code = _luafix.ToString(-1);   // код бумаги
   string class_code = _luafix.ToString(-2);// код класса

   TABLEQuote quote = _luafix.getQuoteLevel2(class_code, sec_code);

   _luafix.Pop(1);

   _luafix.sendQuote(quote); // здесь отправка стакана в торговый робот

   return 0;
}
 
В данном примере переменная sec_code иногда имеет значение = 1000.
Норм хостинг
https://hubhost.ru/server/vds/?ref=45
Страницы: 1
Наверх