Closed dima-gf closed 4 years ago
В примере номер заявки следует изменить на std::string. Номера заявок были int32_t, потом на срочном рынке ММВБ их сделали не помещающимися в него, и они были переведены на строки. Библиотека обновлена, но пример обновлен не был. Имейте так же в виду. что этот пример может быть не совсем работоспособным из-за того как в Quik устроена многопоточность.
Да, спасибо. Сейчас попробую заменить. По поводу взаимоблокировок я читал вашу ветку на форуме QUIK. Там был предложен хороший выход (на мой взгляд) - это просто в обратных вызовах только сохранять нужные данные в стеках (векторах, мапах и т.п.), а потом в основном потоке (main) их обрабатывать. По опыту работы я сам применяю такой финт (в наших программах крутится сотни потоков и взаимоблокировки встречаются). Спасибо за ответ.
В догонку - Ваш пример бота мне нужен только для изучения вопроса взаимодействия с QUIK. Все равно все будет писаться с нуля.
Ох - да там многовато конечно исправлений. Ну может и хорошо - пока буду исправлять может лучше и код изучу. Но Вы уж как-нибудь потом (для других) подправьте этот момент.
Здравствуйте. Еще раз спасибо за такую хорошую библиотеку.
При компиляции примера l2q_spreadbot в функции, приведенной ниже, регистрируется ошибка b.state->on_order(order().trans_id(), order().order_num(), <- констатируется ошибка - ожидается int, а передается string ...)
Подскажите, пожалуйста выход из этой ситуации (я не рискую изменять определения) Спасибо
void bot::on_order(const lua::state& l, ::lua::entity<::lua::typepolicy<::qlua::table::orders>> order) { std::cout << "OnOrder" << std::endl; auto& b = bot::instance(); b.state->set_luastate(l); b.state->on_order(order().trans_id(), order().order_num(), <- констатируется ошибка - ожидается int, а передается string order().flags(), order().qty(), order().balance(), order().price()); b.updatestatus = true; b.cv.notify_one(); std::cout << "OnOrder done" << std::endl; }