Выбрать тикет 2-х позиций - страница 2

 

Natalya Dzerzhinskaya:

Как мне узнать № ближайших тикетов?

Мне известна только цена открытия ордера бай

СЕЛЛ_ЦЕНА_ВЫШЕ_БАЙ=0;
СЕЛЛ_ТИКЕТ_ВЫШЕ_БАЯ=0;
СЕЛЛ_ЦЕНА_НИЖЕ_БАЙ=0;
СЕЛЛ_ТИКЕТ_НИЖЕ_БАЯ=0;

ЦЕНА_НАЙДЕНОГО_СЕЛЛ=0;

FOR(Перебираем все позиции)
{
   IF(Нашли позицию БАЙ)
   {
      ЦЕНА_БАЙ=1.4000      // запомнили цену бай

      FOR(Перебираем все позиции)
      {
         IF(Нашли позицию селл)
         {
            ЦЕНА_НАЙДЕНОГО_СЕЛЛ=Получаем цену позиции.
            
            IF(ЦЕНА_НАЙДЕНОГО_СЕЛЛ > ЦЕНА_БАЙ И (ЦЕНА_НАЙДЕНОГО_СЕЛЛ < СЕЛЛ_ЦЕНА_ВЫШЕ_БАЙ ИЛИ СЕЛЛ_ЦЕНА_ВЫШЕ_БАЙ==0))
            {
               СЕЛЛ_ЦЕНА_ВЫШЕ_БАЙ=ЦЕНА_НАЙДЕНОГО_СЕЛЛ ;
               СЕЛЛ_ТИКЕТ_ВЫШЕ_БАЯ=ТИКЕТ;
            }
            IF(ЦЕНА_НАЙДЕНОГО_СЕЛЛ < ЦЕНА_БАЙ И (ЦЕНА_НАЙДЕНОГО_СЕЛЛ > СЕЛЛ_ЦЕНА_НИЖЕ_БАЙ ИЛИ СЕЛЛ_ЦЕНА_НИЖЕ_БАЙ==0))
            {
               СЕЛЛ_ЦЕНА_НИЖЕ_БАЙ=ЦЕНА_НАЙДЕНОГО_СЕЛЛ ;
               СЕЛЛ_ТИКЕТ_НИЖЕ_БАЯ=ТИКЕТ;
            }
         }
      }
   }
}
Алгоритм, пользуйтесь)
 
Alexey Valeev:
Алгоритм, пользуйтесь)

Ок, сейчас попробую всё это склеить))

 
Alexey Valeev:
Алгоритм, пользуйтесь)
Step=ШагСеткиВпунктах;
//--------------------
........
IF(Нашли позицию селл)
         {
            ЦЕНА_НАЙДЕНОГО_СЕЛЛ=Получаем цену позиции.
            
            IF(MathAbs(ЦЕНА_НАЙДЕНОГО_СЕЛЛ - ЦЕНА_БАЙ)<Step*1.5.... 
 
Renat Akhtyamov:

Зачем нам знать шаг сетки, если цель найти просто ближайшие селлы к баю. Да и к тому же при открытии проскальзывание может быть, сетка неправильная получиться. Тут скорее нужно делать правильное разбиение по группам, и уже по ним искать как я предложил. В магик допустим прописывать принадлежность к серии.

 
Alexey Valeev:

Зачем нам знать шаг сетки, если цель найти просто ближайшие селлы к баю. Да и к тому же при открытии проскальзывание может быть, сетка неправильная получиться. Тут скорее нужно делать правильное разбиение по группам, и уже по ним искать как я предложил. В магик допустим прописывать принадлежность к серии.

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

магики ни к чему, тем более тут уже поздно, ордеры открыты

 
Alexey Valeev:

Зачем нам знать шаг сетки, если цель найти просто ближайшие селлы к баю. Да и к тому же при открытии проскальзывание может быть, сетка неправильная получиться. Тут скорее нужно делать правильное разбиение по группам, и уже по ним искать как я предложил. В магик допустим прописывать принадлежность к серии.

У меня вообще уже всё перепуталось.

 
Natalya Dzerzhinskaya:

У меня вообще уже всё перепуталось.

выводите инфу(тикеты к закрытию) на экран для проверки

на закрытие какой нибудь признак, ну типа если CLOSE==1

и спокойно допишете, все получится

 
Renat Akhtyamov:

выводите инфу(тикеты к закрытию) на экран для проверки

на закрытие какой нибудь признак, ну типа если CLOSE==1

и спокойно допишете, все получится

Да я проверяю Print-ом. Варианты уже закончились.
Вроде всё просто, а в итоге всё сложно))
Известна любая цена бай, когда Bid её касается, а вот как по сторонам узнать селлы в этот момент, лучше конечно их тикеты.

 
Natalya Dzerzhinskaya:

У меня вообще уже всё перепуталось.

Тем алгоритмом что я предложил вы можете найти ближайшие позиции селл к позиции бай, но зная лишь одну цену бай вы не сможете узнать к какой серии принадлежит тот или иной селл, так как при открытии могут быть проскальзывания и сетка получится не ровная. По хорошему надо делать например так, при открытии первой позиции из серии 1 записываем в магик допустим текущее время, и всем последующим открываемым позициям из первой серии записываем это же время, открываем серию номер 2 вновь берём текущее время и пишем его всем позициям во второй серии. Так при переборе мы по данному магику сможем найти позиции одинаковой серии, и самые ближние к бай позиции. При таком подходе, в цикл что я предложил нужно добавить ещё совпадение по магику.
 
Natalya Dzerzhinskaya:

Да я проверяю Print-ом. Варианты уже закончились.
Вроде всё просто, а в итоге всё сложно))
Известна любая цена бай, когда Bid её касается, а вот как по сторонам узнать селлы в этот момент, лучше конечно их тикеты.

сначала определить что они по сторонам, а потом тикеты

я ж из свего опыта написал Вам выше, делал уже такое

Причина обращения: