← Zurück

Перерегистрация заявки на ФОРТС - новый объём

Проблема следующая, при перерегистрации заявки на фортсе объём не меняется, только цена. Код такой (дня начинающего пойдёт :)):

OptSumOrder = 20; OptSumAll = 100; OptSumCurrent = 0;

if (size > 0) { newOrder = new Order ; // проверяем объём if (size >= OptSumOrder) else { newOrder.Volume = OptSumAll - OptSumCurrent; } // если заявка ещё активна (не отменена), то перерегистрировать заявку if (!(order.State == OrderStates.Done)) { this.Trader.ReRegisterOrder(order, newOrder); orderIdList.Add(newOrder.Id); // добавить ID в список для отслеживания сделок } else // если заявки нет (её полностью исполнили), то зарегистрировать новую { this.Trader.RegisterOrder(newOrder); orderIdList.Add(newOrder.Id); } order = newOrder;

War dieses Thema hilfreich?

Thema teilen

Kommentare (10)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

via
via Autor

Ещё раз, опишу проблему, при перестановке заявки объём остаётся старый, хотя в новой заявке я объём меняю.

Mikhail Sukhov
Mikhail Sukhov

QuikTrader? Какие транзакции выдает QuikTrader.GetTransactions(newOrder)? Посмотреть текст транзакции можно через TransactionBuilder.ToString.

via
via Autor

Вывожу через this.Trader.GetTransactions(newOrder).First().ToString()) В сообщении: FIRST_ORDER_NEW_QUANTITY=20, хотя до этого часть заявки съели и переставляется только остаток. Такое ощущение что это поле игнорируется. А как через TransactionBuilder.ToString выводить?

Mikhail Sukhov
Mikhail Sukhov

foreach (var t in this.Trader.GetTransactions(newOrder)) t.ToString()

Mikhail Sukhov
Mikhail Sukhov

И да, если в теле транзакции указано неверное значение, то неверное значение неправильно передается в QuikTrader.ReRegisterOrder. Вы точно уверены, что в коде робота новое значение правильно выставляется?

via
via Autor

óÄÅÌÁÌ ÔÁË: if (!(order.State == OrderStates.Done)) { this.Trader.ReRegisterOrder(order, newOrder); foreach (TransactionBuilder tb in this.Trader.GetTransactions(newOrder)) { System.IO.File.AppendAllText("D:\TestFile.txt", tb.ToString()

  • "\r\n\r\n"); }

÷ ÆÁÊÌÅ: ACTION=MOVE_ORDERS; TRANS_ID=48258208; CLASSCODE=SPBOPT; SECCODE=RI155000BI0; MODE=0; FIRST_ORDER_NUMBER=2041538286; FIRST_ORDER_NEW_PRICE=4530; FIRST_ORDER_NEW_QUANTITY=20;

ACTION=MOVE_ORDERS; TRANS_ID=48258209; CLASSCODE=SPBOPT; SECCODE=RI155000BI0; MODE=0; FIRST_ORDER_NUMBER=2041538521; FIRST_ORDER_NEW_PRICE=4525; FIRST_ORDER_NEW_QUANTITY=20;

ACTION=MOVE_ORDERS; TRANS_ID=48258210; CLASSCODE=SPBOPT; SECCODE=RI155000BI0; MODE=0; FIRST_ORDER_NUMBER=2041539084; FIRST_ORDER_NEW_PRICE=4520; FIRST_ORDER_NEW_QUANTITY=20;

÷ ÔÏ ×ÒÅÍÑ ËÁË ÄÏ ÜÔÏÇÏ 1 ÌÏÔ ÂÙÌ "ÏÔËÕÛÅÎ" É ÐÅÒÅÓÔÁ×ÌÑÅÔÓÑ 19 ÌÏÔÏ×. ãÅÎÁ ÍÅÎÑÅÔÓÑ ×ÅÒÎÏ, ÏÂß£Í - ÎÅÔ :((( ðÏÞÅÍÕ ÍÏÖÅÔ ÔÁË ÂÙÔØ?

Mikhail Sukhov
Mikhail Sukhov

Ничего не понял из-за неправильной кодировки.

via
via Autor

óÄÅÌÁÌ ÔÁË: if (!(order.State == OrderStates.Done)) { this.Trader.ReRegisterOrder(order, newOrder); foreach (TransactionBuilder tb in this.Trader.GetTransactions(newOrder)) { System.IO.File.AppendAllText("D:\TestFile.txt", tb.ToString()

  • "\r\n\r\n"); }

÷ ÆÁÊÌÅ: ACTION=MOVE_ORDERS; TRANS_ID=48258208; CLASSCODE=SPBOPT; SECCODE=RI155000BI0; MODE=0; FIRST_ORDER_NUMBER=2041538286; FIRST_ORDER_NEW_PRICE=4530; FIRST_ORDER_NEW_QUANTITY=20;

ACTION=MOVE_ORDERS; TRANS_ID=48258209; CLASSCODE=SPBOPT; SECCODE=RI155000BI0; MODE=0; FIRST_ORDER_NUMBER=2041538521; FIRST_ORDER_NEW_PRICE=4525; FIRST_ORDER_NEW_QUANTITY=20;

ACTION=MOVE_ORDERS; TRANS_ID=48258210; CLASSCODE=SPBOPT; SECCODE=RI155000BI0; MODE=0; FIRST_ORDER_NUMBER=2041539084; FIRST_ORDER_NEW_PRICE=4520; FIRST_ORDER_NEW_QUANTITY=20;

÷ ÒÅÁÌØÎÏÓÔÉ 1 ÌÏÔ ÂÙÌ "ÏÔËÕÛÅÎ" É ÐÅÒÅÓÔÁ×ÌÑÅÔÓÑ 19 ÌÏÔÏ×. ãÅÎÁ ÍÅÎÑÅÔÓÑ ×ÅÒÎÏ, ÏÂß£Í - ÎÅÔ :((( ðÏÞÅÍÕ ÍÏÖÅÔ ÔÁË ÂÙÔØ?

Mikhail Sukhov
Mikhail Sukhov

Вы можете еще сделать вывод объема перед изменением заявки?

File.AppendAllText(newOrder.Volume); ReRegister

via
via Autor

Не понимаю что тут с кодировкой... У меня после отправки отображается нормально, а на след. день портится. Объём попробую вывести.