Проблема с сеткой

 

Задача следующая (для робота):

Есть сетка из горизонтальных линий, которые задаются пользователем и линии могут быть сдвинуты вручную в любой момент времени по желанию пользователя. Цена все время находится между двумя ближайшими соседними линиями:

Если Бид пересекает верхнюю то необходимо открыть Селл по маркету.

Если Аск пересекает нижнюю то необходимо открыть Бай по маркету.

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

- Может у кого-нибудь есть идея как справиться с этим противоречием?

Спасибо!

PS Приветствуются любые идеи.

 
chief2000:

Задача следующая (для робота):

Есть сетка из горизонтальных линий, которые задаются пользователем и линии могут быть сдвинуты вручную в любой момент времени по желанию пользователя. Цена все время находится между двумя ближайшими соседними линиями:

Если Бид пересекает верхнюю то необходимо открыть Селл по маркету.

Если Аск пересекает нижнюю то необходимо открыть Бай по маркету.

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

- Может у кого-нибудь есть идея как справиться с этим противоречием?

Спасибо!


Здесь посмотрите - похоже на Ваш случай.
 
Roman.:

Здесь посмотрите - похоже на Ваш случай.


В том случае линии Бай задаются одним цветом, а линии Селл - другим. Они там не взаимозаменяемые, а потому такой проблемы там нет.

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


Повторюсь - на данном этапе проблема в том что после пересечения верхней линии она становится линией Бай еще до того как открылся ордер Селл. Необходимо какое-то решение чтобы ордер Селл успел открыться до того как робот сочтет пересеченную линию Селл линией Бай.

 
chief2000:


В том случае линии Бай задаются одним цветом, а линии Селл - другим. Они там не взаимозаменяемые, а потому такой проблемы там нет.

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



А..., сейчас понятно...
 
chief2000:


В том случае линии Бай задаются одним цветом, а линии Селл - другим. Они там не взаимозаменяемые, а потому такой проблемы там нет.

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


Повторюсь - на данном этапе проблема в том что после пересечения верхней линии она становится линией Бай еще до того как открылся ордер Селл. Необходимо какое-то решение чтобы ордер Селл успел открыться до того как робот сочтет пересеченную линию Селл линией Бай.


Понятно, просто с объектами возекаться... не слишком по мне...
 
chief2000:


В том случае линии Бай задаются одним цветом, а линии Селл - другим. Они там не взаимозаменяемые, а потому такой проблемы там нет.

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


Повторюсь - на данном этапе проблема в том что после пересечения верхней линии она становится линией Бай еще до того как открылся ордер Селл. Необходимо какое-то решение чтобы ордер Селл успел открыться до того как робот сочтет пересеченную линию Селл линией Бай.

Ты перемудрил канкретна. Не нужно распознавать "линии верхние/нижние". Нужно распознавать "пересечение вверх/вниз". Ипсё.
 
MetaDriver:
Ты перемудрил канкретна. Не нужно распознавать "линии верхние/нижние". Нужно распознавать "пересечение вверх/вниз". Ипсё.


Задача действительно значительно упростилась. На этом этапе воспользуюсь этим решением.

Всем Большое Спасибо!

 
chief2000:


Задача действительно значительно упростилась. На этом этапе воспользуюсь этим решением.

Всем Большое Спасибо!

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