выставление и снятие заявок
Atom Ответить
29.10.2010


Добрый день))
возникла такая загвоздка, последовательно выставляю две заявки, и по исполнению одной из них надо снять другую??? подскажите каким образом можно это сделать, а то совсем ума не приложу.

Теги:


Спасибо:




13 Ответов
Dmitriy Klimov

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


funvee_2
Добрый день))
возникла такая загвоздка, последовательно выставляю две заявки, и по исполнению одной из них надо снять другую??? подскажите каким образом можно это сделать, а то совсем ума не приложу.

Отслеживать событие NewMyTrades у Strategy или BaseTrader.
Спасибо:

funvee_2

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


а не могли бы Вы выложить кусочек кода, каким образом это сделать, просто я не программист и разобраться бывает сложновато, был бы Вам безумно признателен
Автор топика
Спасибо:

Dmitriy Klimov

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


funvee_2
а не могли бы Вы выложить кусочек кода, каким образом это сделать, просто я не программист и разобраться бывает сложновато, был бы Вам безумно признателен

Если вы не программист, то кусочком кода не обойдешься. Посмотрите примеры, которые идут с библиотекой. Там все это есть...
Спасибо:

funvee_2

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


честно смотрел.....я не из лени сюда написал. а потому что действительно не смог найти, а кусочка кода с тем как именно отследить заявку будет достаточно))) и больше не стану Вас донимать глупыми вопросами))
Автор топика
Спасибо:

Dmitriy Klimov

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


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

Если заявки выставляются в стратегии, то можно так:

Код
class MyStrategy : Strategy
{
public MyStrategy ()
{
base.NewMyTrades += OnNewMyTrades;
}

private void OnNewMyTrades(IEnumerable<MyTrade> trades)
{
base.CancelActiveOrders();
}
}


Каждый раз при исполнении одной заявки все остальные заявки будут сниматься.
Спасибо:

funvee_2

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


Спасибо большое))))
все таки еще один вопросик остался)))) а если мне надо не все заявки снять а только последнюю а остальные оставить....????
Автор топика
Спасибо:

Dmitriy Klimov

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


funvee_2
Спасибо большое))))
все таки еще один вопросик остался)))) а если мне надо не все заявки снять а только последнюю а остальные оставить....????

В спсике Strategy.Orders хранятся все заявки, сделанные стратегией. Отменить можно любую через BaseTrader.CancelOrder.
Спасибо:

funvee_2

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


это опять я. подскажите, пожалйста, как снять заявку по имеющемуся id заявки??
Автор топика
Спасибо:

Mikhail Sukhov

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


funvee_2
это опять я. подскажите, пожалйста, как снять заявку по имеющемуся id заявки??


Примерный код:
Код
var order = ITrader.Orders.First(o => o.Id == id)
ITrader.CancelOrder(order)


Но есть подозрение, что неправильно строите логику. Оперировать нужно объектами (Order), а не номерами заявок.
Спасибо:

funvee_2

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


а как тогда узнать какая из заявок была исполнена???
допустим если было 4 активные заявки. и пришло событие что одна исполнилась как узнать какая из них?? надо же сохранить id а потом сравнить с id исполненой сделки???я правильно понимаю???
Автор топика
Спасибо:

Mikhail Sukhov

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


funvee_2
а как тогда узнать какая из заявок была исполнена???
допустим если было 4 активные заявки. и пришло событие что одна исполнилась как узнать какая из них?? надо же сохранить id а потом сравнить с id исполненой сделки???я правильно понимаю???


Нет, просто запоминаете объект Order и сравниваете с тем, что пришло в Strategy.OrderChanged.
Спасибо:

funvee_2

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


я понимаю, что это уже наглость. но все равно прошу помощи) дайте ,пожалуйста, кусочек кода, или пример какой-нибудь. вот есть у меня допустим 3 заявки активных, исполняется допустим номер 2(по счету) и пусть незнаю переменная а=2 , если 3яя исполняется то а=3....помогите плиз...оч надо...
Автор топика
Спасибо:

Mikhail Sukhov

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


funvee_2
я понимаю, что это уже наглость. но все равно прошу помощи) дайте ,пожалуйста, кусочек кода, или пример какой-нибудь. вот есть у меня допустим 3 заявки активных, исполняется допустим номер 2(по счету) и пусть незнаю переменная а=2 , если 3яя исполняется то а=3....помогите плиз...оч надо...


Код я конечно приведу:

Код
private List<Order> _myOrders = new List<Order>();

var order = new Order....
RegisterOrder(order);
_oders.Add(order)
....

private void OnOrdersChanged(IEnumerable<Order> orders)
{
foreach (var order in orders)
{
if (_myOrders.Contains(order))
{
// моя заявки
}
}
}


Только без изучения C# все равно бесполезно.
Спасибо:


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

loading
clippy