Формирование текста запроса

Страницы: 1
RSS
Формирование текста запроса
 
Добрый день.
Возникала проблема - при отправки запроса  синхронного запроса через trans2quik отсылающая программа зависает. Запрос выглядит так:
ACTION=NEW_STOP_ORDER;TRANS_ID=661;CLASSCODE=QJSIM;SECCODE=SBER;
ACCOUNT=NL0011100043;OPERATION=S;QUANTITY=1;STOP_ORDER_KIND=TAKE_PROFIT_AND_STOP_LIMIT_ORDER;
OFFSET=0;OFFSET_UNITS=PRICE_UNITS;PRICE=0;STOPPRICE=76.00;STOPPRICE2=75.50;
MARKET_STOP_LIMIT=YES;MARKET_TAKE_PROFIT=YES;


Напрягает сам факт зависания. Если была бы какая ошибка (функция что-то ответила), то я бы подправил и не парился, но зачем виснуть? Что вызвало сие поведение?
 
Виснет - не возвращается из функции отправки синхронного запроса.
 
Примечательно то, что связка тп/сл всё же успешно устанавливается.
 
У вас ошибка в программе.
Причем не в том месте, которое вы привели.
 
Кажется понял в чём дело:
Структура программы была такая:
Код
void set_tp_sl() 
{ 
    TRANS2QUIK_SEND_SYNC_TRANSACTION(...); 
    // Из функции выше мы уже не вернёмся при любом запросе
} 
void trade_cb(...) 
{ 
     set_tp_sl()
}   
int main()  
{ 
    TRANS2QUIK_START_TRADES(trade_cb);
}
Если set_tp_sl() вызывать не из колбэка, то проблем нет. Представители arqa, обратите внимание, мне кажется, что с вашей стороны ошибка.
 
Цитата
Павел пишет:
Представители arqa, обратите внимание, мне кажется, что с вашей стороны ошибка.
Проблема в том что пока не вернется управление из колбэка, модуль не будет обрабатывать очередные полученные данные.
Соответственно, подача синхронной транзакции, заставляет колбэк остановиться пока не будет получен ответ на транзакцию, который в свою очередь никогда не будет получен, так как нет выхода из колбэка. В результате происходит зависание.
Вам нужно избегать выставления синхронных транзакций внутри колбэка.
Страницы: 1
Читают тему
Наверх