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

Как правильно запрограммировать арбитражную стратегию?
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: Подскажите пожалуйста, как в алгоритме задаются переменные : цена последней совершенной сделки на рынке по определенной бумаге

var lastPrice = Security.LastTrade.Price;

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

var lastPrice = Strategy.MyTrades.Last<MyTrade>().Trade.Price;

Если для Trader, то так:

var lastPrice = Trader.MyTrades.Last<MyTrade>().Trade.Price;
Thanks:


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

loading
clippy