← Zurück

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

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

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

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (6)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

OvcharenkoVI
OvcharenkoVI

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

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

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

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

Oppositus
Oppositus Autor

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

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

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

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

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

OvcharenkoVI
OvcharenkoVI

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

Будет, проверено

virtualperm
virtualperm

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

ra81
ra81

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

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

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

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

var lastPrice = Security.LastTrade.Price;

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

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

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

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