Как правильно запрограммировать арбитражную стратегию?

Как правильно запрограммировать арбитражную стратегию?
Atom
8/13/2012
Oppositus


Я по процедурному вопросу. :)

Вот, допустим, я не жадный и готов арбитражить по рублю. Берем фьючерс на акцию, например SBRF-9.12 и саму акцию на РТС-стандарт, в данном случае SBER. Смотрим в стаканы фьючерса и акции, и как только есть арбитраж (а он там есть, только маленький) - продаем фьюч по биду и одновременно покупаем акции по аску (или наоборот). Потом держим до поставки или, если позиция вышла в прибыль - закрываем.

Вопрос в том, как лучше всего эту стратегию запрограммировать. Смущает то, что для наследников Strategy надо указать свойство Security (инструмент, который стратегия будет торговать) - но у меня-то два инструмента одновременно. Что делать? Конечно, можно за всем следить руками, но именно этого хочется избежать.

Есть ли какой красивый способ упаковать такой арбитраж в Strategy? Наверняка же не я один над этим думал.

Tags:


Thanks:


OvcharenkoVI

Avatar
Date: 8/13/2012
Reply


Много раз этот вопрос разбирался на форуме.

В 4.1 есть BasketSecurity(см. документацию)

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

public Security Security2; например, а потом в конструкторе определяете этот инструмент
Thanks:

Oppositus

Avatar
Date: 8/13/2012
Reply


OvcharenkoVI
В 4.1 есть BasketSecurity(см. документацию)


Спасибо, поковыряю.

OvcharenkoVI
Но я пользуюсь немного другим методом и добавляю второй инструмент как дополнительное свойство класса, то есть

public Security Security2; например, а потом в конструкторе определяете этот инструмент


Собственно, вопрос в том, будет ли стратегия корректно отрабатывать ордера и считать позиции по инструментам. То есть, поймет ли стратегия, что именно ей надо мониторить. Как хранить второй инструмент внутри объекта - с этим проблем нет.
Thanks:

OvcharenkoVI

Avatar
Date: 8/13/2012
Reply


Oppositus
Собственно, вопрос в том, будет ли стратегия корректно отрабатывать ордера и считать позиции по инструментам. То есть, поймет ли стратегия, что именно ей надо мониторить. Как хранить второй инструмент внутри объекта - с этим проблем нет.


Будет, проверено
Thanks: Oppositus MaximMM

virtualperm

Avatar
Date: 9/22/2012
Reply


Подскажите пожалуйста, как в алгоритме задаются переменные : цена последней совершенной сделки на рынке по определенной бумаге и цена последней совершенной мною сделки по определенной бумаге? Заранее спасибо!
Thanks:

ra81

Avatar
Date: 9/22/2012
Reply


virtualperm
Подскажите пожалуйста, как в алгоритме задаются переменные : цена последней совершенной сделки на рынке по определенной бумаге и цена последней совершенной мною сделки по определенной бумаге? Заранее спасибо!


Не ясна суть вопроса :). Про какой алгоритм речь? Про какие переменные.
Thanks:

Кот Матроскин

Avatar
Date: 9/22/2012
Reply


virtualperm
Подскажите пожалуйста, как в алгоритме задаются переменные : цена последней совершенной сделки на рынке по определенной бумаге

Code
var lastPrice = Security.LastTrade.Price;


virtualperm
и цена последней совершенной мною сделки по определенной бумаге? Заранее спасибо!

Если для стратегии, то можно так:
Code
var lastPrice = Strategy.MyTrades.Last<MyTrade>().Trade.Price;

Если для Trader, то так:
Code
var lastPrice = Trader.MyTrades.Last<MyTrade>().Trade.Price;


Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy