Условия возникновения событий Strategy.OrderChange, Strategy.NewOrder, Strategy.NewMyTrades

Условия возникновения событий Strategy.OrderChange, Strategy.NewOrder, Strategy.NewMyTrades
Atom
07.10.2010
sergun


Каковы условия возникновения этих событий у стратегии по сравнению с аналогичными событиями в Trader?

Они как-то фильтруются по стратегии? Если да, то как?


Теги:


Спасибо:


1 2 3  > >>
Mikhail Sukhov

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


sergun: Каковы условия возникновения этих событий у стратегии по сравнению с аналогичными событиями в Trader?

Они как-то фильтруются по стратегии? Если да, то как?

Заявка в стратегии регистрируется через Strategy.RegisterOrder. В этом методе она сохраняется в очередь. Далее, мониторятся события ITrader. Если пришла заявка, которая есть в этой очереди - вызвать событие. Все.

Спасибо:

sergun

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


Mikhail Sukhov:

sergun: Каковы условия возникновения этих событий у стратегии по сравнению с аналогичными событиями в Trader?

Они как-то фильтруются по стратегии? Если да, то как?

Заявка в стратегии регистрируется через Strategy.RegisterOrder. В этом методе она сохраняется в очередь. Далее, мониторятся события ITrader. Если пришла заявка, которая есть в этой очереди - вызвать событие. Все.

Прикол состоит в том, что Strategy.RegisterOrder protected, а желание было использовать его снаружи стратегии и соответственно intellisense его не показал :-)

М.б. (не утверждаю) ему лучше быть public'ом...

PS. Уведомления с нового форума приходят со ссылкой http://192.168.1.1...

Спасибо:

Mikhail Sukhov

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


sergun: Прикол состоит в том, что Strategy.RegisterOrder protected, а желание было использовать его снаружи стратегии и соответственно intellisense его не показал :-)

М.б. (не утверждаю) ему лучше быть public'ом...

Приведите Ваш сценарий, почему решили управлять стратегией из вне.

sergun: PS. Уведомления с нового форума приходят со ссылкой http://192.168.1.1...

Можете мне форварднуть письмо?

Спасибо:

sergun

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


Mikhail Sukhov:

sergun: Прикол состоит в том, что Strategy.RegisterOrder protected, а желание было использовать его снаружи стратегии и соответственно intellisense его не показал :-)

М.б. (не утверждаю) ему лучше быть public'ом...

Приведите Ваш сценарий, почему решили управлять стратегией из вне.

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

sergun: PS. Уведомления с нового форума приходят со ссылкой http://192.168.1.1...

Можете мне форварднуть письмо?

Форварднул.

Спасибо:

Dmitriy Klimov

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


Добрый день всем!

Надеюсь, мой вопрос по теме: как узнать о появлении новых сделок внутри стратегии? Насколько я знаю, подписаться на события внутри объекта, их генерирующего, нельзя.

У меня ситаация такая: при каждом входе в позицию я хочу выставлять Квик-заявку типа QuikStopConditionTypes.TakeProfitStopLimit. И мне надо знать, когда сработает одно из заданных условий, и появится новая сделка, чтобы не дать самой стратегии пытаться выйти из уже закрытой позиции.

И еще второй вопрос: как отменить выставленную TakeProfitStopLimit заявку, если я вышел из позиции по условиям стратегии?

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

Спасибо:

sergun

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


Что-то не возникают события Strategy.NewMyTrades и Strategy.OrderChanged при исполнении заявки. Strategy.NewOrder приходит. Заявка регистрировалась с помощью Strategy.RegisterOrder.

С чем это может быть связано?

Спасибо:

Mikhail Sukhov

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


Dmitriy Klimov: как узнать о появлении новых сделок внутри стратегии? Насколько я знаю, подписаться на события внутри объекта, их генерирующего, нельзя.

Не понял выражение... Событие Strategy.NewMyTrade.

Dmitriy Klimov: при каждом входе в позицию я хочу выставлять Квик-заявку типа QuikStopConditionTypes.TakeProfitStopLimit.

Выставляете через Strategy.RegisterOrder?

Dmitriy Klimov: И еще второй вопрос: как отменить выставленную TakeProfitStopLimit заявку, если я вышел из позиции по условиям стратегии?

QuikTrader.CancelOrder

Dmitriy Klimov: Еще было бы любопытно знать, насколько такой подход работает быстрее, чем пакетная стратегия из стратегий на тейк-профит и скользящего стоп-лосса?

Не в скорости дело. То, что пишется через Strategy, Вы можете менять под свои условия. А через брокерские стопы Вы так сделать не можете. Так что если достаточно стандартных стопов - лучше их. Со стоп заявками стратегии работают так же, как и с обычными заявками.

Спасибо:

Mikhail Sukhov

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


sergun: Что-то не возникают события Strategy.NewMyTrades и Strategy.OrderChanged при исполнении заявки. Strategy.NewOrder приходит. Заявка регистрировалась с помощью Strategy.RegisterOrder.

С чем это может быть связано?

А заявка удовлетворяется? Экспорт запущен? Через ITrader события для такой заявки приходят?

Спасибо:

Dmitriy Klimov

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


Mikhail Sukhov:

Dmitriy Klimov: как узнать о появлении новых сделок внутри стратегии? Насколько я знаю, подписаться на события внутри объекта, их генерирующего, нельзя.

Не понял выражение... Событие Strategy.NewMyTrade.

Dmitriy Klimov: при каждом входе в позицию я хочу выставлять Квик-заявку типа QuikStopConditionTypes.TakeProfitStopLimit.

Выставляете через Strategy.RegisterOrder?

Стоп-заявку выставляю через Strategy.RegisterOrder и не соображу, как лучше перехватить событие ее срабатывания внутри стратегии. Событие Strategy.NewMyTrade я могу использовать только из главной программы, а мне надо по сути то же событие перехватить внутри стратегии, это событие генерирующее. Как быть в данном случае? До версии 2.1 был метод Strategy.OnNewMyTrades, сейчас подобного метода нет...

Спасибо:

Mikhail Sukhov

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


Dmitriy Klimov: Стоп-заявку выставляю через Strategy.RegisterOrder и не соображу, как лучше перехватить событие ее срабатывания внутри стратегии. Событие Strategy.NewMyTrade я могу использовать только из главной программы, а мне надо по сути то же событие перехватить внутри стратегии, это событие генерирующее. Как быть в данном случае? До версии 2.1 был метод Strategy.OnNewMyTrades, сейчас подобного метода нет...

public class MyStrategy : Strategy
{
  public MyStrategy()
  {
    base.NewMyTrade += OnNewMyTrade;
  }
  
  private void OnNewMyTrade(MyTrade trade)
  {
  }
}

Только учтите, сделка приходит не по стоп заявке, а по обычной, которую выставил стоп.

Спасибо:
1 2 3  > >>

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

loading
clippy