//БЛОК КОТИРОВАНИЯ ОПЦИОНОВ CALL НА ПРOДАЖУ
//котирование на продажу опциона Call минус 1 страйк от базового -5000п
var VolatilityQuoting_Call_minus1Strike_Sell = new VolatilityQuotingStrategy(new Range<decimal>((decimal)vol_Call_minus1Strike - 0.03m, (decimal)vol_Call_minus1Strike + 0.03m), OrderDirections.Sell, 4)
{
Volume = 2,
Security = _SECURITY_Call_minus1Strike,
Trader = Trader,
Portfolio = Portfolio
};
//котирование на продажу опциона Call базовый страйк
var VolatilityQuoting_Call_baseStrike_Sell = new VolatilityQuotingStrategy(new Range<decimal>((decimal)vol_Call_baseStrike - 0.03m, (decimal)vol_Call_baseStrike + 0.03m), OrderDirections.Sell, 4)
{
Volume = 2,
Security = _SECURITY_Call_baseStrike,
Trader = Trader,
Portfolio = Portfolio
};
//котирование на продажу опциона Call со страйком плюс 1 от базового +5000п
var VolatilityQuoting_Call_plus1Strike_Sell = new VolatilityQuotingStrategy(new Range<decimal>((decimal)vol_Call_plus1Strike - 0.03m, (decimal)vol_Call_plus1Strike + 0.03m), OrderDirections.Sell, 4)
{
Volume = 2,
Security = _SECURITY_Call_plus1Strike,
Trader = Trader,
Portfolio = Portfolio
};
//котирование на продажу опциона Call со страйком плюс 2 от базового +10000п
var VolatilityQuoting_Call_plus2Strike_Sell = new VolatilityQuotingStrategy(new Range<decimal>((decimal)vol_Call_plus2Strike - 0.03m, (decimal)vol_Call_plus2Strike + 0.03m), OrderDirections.Sell, 4)
{
Volume = 2,
Security = _SECURITY_Call_plus2Strike,
Trader = Trader,
Portfolio = Portfolio
};
// упаковываем алгоритмы котирования по разным страйкам на продажу опционов Call в BasketStrategy
var basket_Quote_Call_Sell = new BasketStrategy(BasketStrategyFinishModes.First)
{
Trader = Trader,
Portfolio = Portfolio,
Volume = 1,
Security = _SECURITY_Call_baseStrike
};
basket_Quote_Call_Sell.ChildStrategies.Add(VolatilityQuoting_Call_minus1Strike_Sell);
basket_Quote_Call_Sell.ChildStrategies.Add(VolatilityQuoting_Call_baseStrike_Sell);
basket_Quote_Call_Sell.ChildStrategies.Add(VolatilityQuoting_Call_plus1Strike_Sell);
basket_Quote_Call_Sell.ChildStrategies.Add(VolatilityQuoting_Call_plus2Strike_Sell);
//запускаем котирование
basket_Quote_Call_Sell.Start();
//создаем дельта-хеджирование, передав в него опционные стратегии для отслеживания их позиции
var hedge_Call_Sell = new DeltaHedgeStrategy(basket_Quote_Call_Sell)
{
Security = _SECURITY_Call_baseStrike.GetUnderlyingAsset(), // получаем базовый актив по опциону (т.е. фьюч РТС)
Portfolio = Portfolio,
Trader = Trader
};
hedge_Call_Sell.Start();
вот и глюк запустил пакетную механизм дельта хеджирования в итоге дельта по позиции -7.3 а DeltaHedgeStrategy так и не отработал даже по одной пакетной стратегии :D