Сопровождение ордеров - страница 2

 
Maksim Neimerik:
Еще по поводу того что в OrdersTotal() могут быть устарелые данные: если эту функцию использовать как переменную 

тогда да, я согласен, но если вызывать ее перед каждой итерацией то и инфа должна быть свежей... правильно?

В обратном цикле это не имеет значения. Но обращение к ней в цикле - оно надо?

 
Artyom Trishkin:

В обратном цикле это не имеет значения. Но обращение к ней в цикле - оно надо?

Ну при частичном закрытии думаю надо... разве нет? Тикеты и коменты ведь меняются...

 
Artyom Trishkin:

В обратном цикле это не имеет значения. Но обращение к ней в цикле - оно надо?

Здесь обращение 1 раз

for(int i=OrdersTotal()-1;i>=0;i--)

А вот здесь при каждой итерации, вот это не надо

for(int i=0;i<OrdersTotal();i++)
 
Maksim Neimerik:

Ну при частичном закрытии думаю надо... разве нет? Тикеты и коменты ведь меняются...

Алгоритм зависит от конкретной задачи.

Тут как минимум нужно отслеживать два списка - рыночных и исторических ордеров.

 
Vitaly Muzichenko:

Здесь обращение 1 раз

Что-то я не понимаю, разве при каждой итерации i не переинициализируется?

 
Maksim Neimerik:

Что-то я не понимаю, разве при каждой итерации i не переинициализируется?

Сделайте простой тест:

for(int i=MyOrdersTotal()-1;i>=0;i--)
int e=0;
int MyOrdersTotal()
 {
  Alert(e++);
  return(10);
 }

Алерт будет 1 раз, если не ошибаюсь.

Ну и следующий такой:

for(int i=0;i<MyOrdersTotal();i++)

Алерт будет НЕ 1 раз

 
Maksim Neimerik:

Что-то я не понимаю, разве при каждой итерации i не переинициализируется?

если Вы спрашиваете чему будет равно i если изменился OrdersTotal()-1 , то значение i один раз станет равно OrdersTotal()-1 при старте цикла и дальше будет изменяться каждый раз по i--


по сабжу, понимаю, что вариантов пока кроме анализа комментария ордера нет? - а что делать если в 0.00 в коммент сервер запишет инфу?


ЗЫ: говорю же, в свободном доступе не нашел решения задачи, сделал когда нужно было, но решение громоздкое, запоминал все тикеты в динамические списки, в общем интересная задача!

 
Vitaly Muzichenko:

Сделайте простой тест:

Алерт будет 1 раз, если не ошибаюсь.

Ну и следующий такой:

Алерт будет НЕ 1 раз

Да, вы правы, не проверял, но логично же...
 
Maxim Kuznetsov:

у вас тьма продуктов в маркете, свой сигнал

и вы тут не первый вовсе год..

всё, наймиты разбежались ?

А Вы уверенны что задача которую я описал в теме так проста? 

 
Maksim Neimerik:

А Вы уверенны что задача которую я описал в теме так проста? 

В принципе - да, проста.

Смотрите какой лот был закрыт в прошлый раз - прошлый ордер с предыдущей закрытой частью можно взять из комментария открытой позиции.

  • Смотрим комментарий, там написано "from #123"
  • берём в истории ордер по тикету #123 и смотрим каков его лот.
  • исходя из узнанного лота знаем какой объём нужно закрыть сейчас.
Просто? Вполне.