bazuce (Автор тем)

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

Страницы: 1
Дробное значение balance
 
Привет.

После снятия заявки из скрипта хотел перевыставлять снятый остаток, но обнаружил, что в коллбек OnTransReply приходит сообщение содержащее в поле balance дробное значение. Можете зарегистрировать обращение на исправление? Если нужны дополнительные данные - готов предоставить.
Код
2019-10-1 21:58:14.647784 INFO  OnTransReply.trans_id.101005: Receive result: Заявка 79536677990 снята. Неисполненный остаток: 17.
{price=0,client_code="yyyyy",balance=0.17,time=215813,status=3,date_time={week_day=2,hour=21,ms=976,mcs=976102,day=1,month=10,sec=13,year=2019,min=58},gate_reply_time={week_day=2,hour=21,ms=975,mcs=975790,day=1,month=10,sec=13,year=2019,min=58},first_ordernum=0,trans_id=101005,error_source=0,exchange_code="7953667799",uid=1202,error_code=0,flags=2359297,result_msg="Заявка 79536677990 снята. Неисполненный остаток: 17.",brokerref="",firm_id="xxxx",quantity=0,order_num=79536677990,server_trans_id=882,account=""}

Рынок СПБ, версия программы 7.27.1.18
Разрастается info.wnd от подписок в lua скрипте
 
Возникает проблема приводящая к тому, что квик съедает максимум доступной ему оперативной памяти. Если закрыть квик, он дампит в файл info.wnd большое количество данных, которые он вычитывает при следующем запуске (из-за чего стартует долго) и загружает в память, из-за чего снова возникает проблема с недостатком памяти. Для ее устранения необходимо удалить info.wnd.

Чтобы убедиться, что память потребляет именно квик а не скрипт написал пример, скрипт выводит раз в минуту информацию об использованной памяти:
Скрытый текст


Пример вывода:
Скрытый текст

Как можно решить данную проблему без перезапуска квика и удаления info.wnd? Из-за чего образуется потребляется столько оперативной памяти? Как уменьшить можно потребление?
Заполнение флагов для заявок с tif=FOK
 
Возникла проблема при попытке интерпретации флагов, получаемых при обработке OnOrder(), биржа SPB.

Я отправляю:
2018-10-01 15:10:55.731 lvl 4: {["Условие исполнения"]="Снять остаток",ACTION="Ввод заявки",CLASSCODE="SPBXM",
                               ["Комментарий"]="comment",TRANS_ID="540",["К/П"]="Продажа",["Количество"]="50",["Цена"]="100.97",
                               ["Инструмент"]="SQ",["Торговый счет"]="AAAAA",["Класс"]="SPBXM",["Тип"]="Лимитированная"}

В ответ получаю набор сообщений:
2018-10-01 15:10:55.746 lvl 4: OnTransReply()
2018-10-01 15:10:55.746 lvl 4: {sec_code="SQ",price=100.97,client_code="BBBBB",balance=0,time=151400,status=3,
                               class_code="SPBXM",trans_id=540,exchange_code="3988228638",date_time={week_day=1,
                               hour=15,ms=963,mcs=963583,day=1,month=10,sec=0,year=2018,min=14},uid=1183,flags=393217,
                               result_msg="Заявка 39882286380 успешно зарегистрирована.",brokerref="BBBBB",firm_id="CCCCC",
                               quantity=50,order_num=39882286380,server_trans_id=1863,account="AAAAA"}
2018-10-01 15:10:55.761 lvl 4: OnOrder()
2018-10-01 15:10:55.761 lvl 4: {withdraw_datetime={week_day=1,hour=15,ms=962,mcs=962914,day=1,month=10,sec=0,year=2018,min=14},
                               price=100.97,value_entry_type=0,balance=1,repo_value_balance=0,value=5048.5,qty=50,passive_only_order=0,
                               class_code="SPBXM",activation_time=0,userid="",expiry=-1,flags=286,linkedorder=0,ordernum=39882286380,
                               sec_code="SQ",canceled_uid=0,side_qualifier=0,client_code="BBBBB",visible=0,firmid="CCCCC",
                               datetime={week_day=1,hour=15,ms=962,mcs=962914,day=1,month=10,sec=0,year=2018,min=14},yield=0,
                               reject_reason="Истекло время действия",capacity=0,acnt_type=0,repo2value=0,start_discount=0,
                               min_qty=0,ext_order_flags=0,exec_type=3,order_num=39882286380,repovalue=0,repoterm=0,
                               accruedint=0,account="AAAAA",seccode="SQ",uid=0,brokerref="BBBBB",exchange_code="3988228638",
                               settlecode="T2",price2=0,trans_id=0,bank_acc_id=""}
2018-10-01 15:10:55.761 lvl 4: OnOrder()
2018-10-01 15:10:55.761 lvl 4: {withdraw_datetime={week_day=1,hour=15,ms=962,mcs=962914,day=1,month=10,sec=0,year=2018,min=14},
                               price=100.97,value_entry_type=0,balance=1,repo_value_balance=0,value=5048.5,qty=50,
                               passive_only_order=0,class_code="SPBXM",activation_time=0,userid="",expiry=-1,
                               flags=286,linkedorder=0,ordernum=39882286380,sec_code="SQ",
                               canceled_uid=0,side_qualifier=0,client_code="BBBBB",visible=0,firmid="CCCCC",
                               datetime={week_day=1,hour=15,ms=962,mcs=962914,day=1,month=10,sec=0,year=2018,min=14},yield=0,
                               reject_reason="Истекло время действия",capacity=0,acnt_type=0,repo2value=0,start_discount=0,
                               min_qty=0,ext_order_flags=0,exec_type=3,order_num=39882286380,repovalue=0,repoterm=0,
                               accruedint=0,account="AAAAA",seccode="SQ",uid=1183,brokerref="BBBBB",
                               exchange_code="3988228638",settlecode="T2",price2=0,trans_id=540,bank_acc_id=""}

Если я правильно обрабатываю поле, то мне пришли следующие флаги:
flag1 - Заявка снята
flag2 - Заявка на продажу
flag3 - Заявка лимитная
flag4 - Разрешить сделки по разным ценам
flag8 - Снять остаток

При этом заявка была исполнена (на время не обращайте внимание, у меня рассинхронизация между логом и сервером, OnTrade к сожалению записывал):




1. Насколько я понимаю, флаги в данном случае заполнились неверно? И причина описанная в reject_reason тоже невалидная? Как правильно определить что заявка с типом FOK была исполнена при обработке OnOrder ?
2. Почему по бирже СПБ приходят два одинаковых callback в OnOrder ?
Страницы: 1
Наверх