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


via

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

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

if (size > 0)
{
newOrder = new Order
{
Portfolio = _portfolio,
Price = TheorOptPrice,
Security = OptSec,
Direction = OptionsDirection,
};
// проверяем объём
if (size >= OptSumOrder)
{
newOrder.Volume = 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;


Теги:


Спасибо:



Поздравляем именинников: Станислав Гайворонский

10 Ответов
via

Фотография
Дата: 04.08.2010
Ответить


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.08.2010
Ответить


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

Спасибо:

via

Фотография
Дата: 04.08.2010
Ответить


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.08.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.08.2010
Ответить


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

Спасибо:

via

Фотография
Дата: 06.08.2010
Ответить


óÄÅÌÁÌ ÔÁË:
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

Фотография
Автор статей Программист Трейдер
Дата: 09.08.2010
Ответить


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

Спасибо:

via

Фотография
Дата: 09.08.2010
Ответить


óÄÅÌÁÌ ÔÁË:
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

Фотография
Автор статей Программист Трейдер
Дата: 09.08.2010
Ответить


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

File.AppendAllText(newOrder.Volume);
ReRegister

Спасибо:

via

Фотография
Дата: 10.08.2010
Ответить


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy