Добрый день ребята.
Кто нибудь может помочь прописать событие.
Чтобы на мою заявку как только она исполнена выставлялась профит и стоп заявка.
Код
private void OnNewOrderTrades(IEnumerable<MyTrade> trades)
{
// для каждой сделки добавляем защитную пару стратегии
var protectiveStrategies = trades.Select(t =>
{
// выставляет тейк-профит в 40 пунктов
var takeProfit = new TakeProfitStrategy(t, 40);
// выставляет стоп-лосс в 20 пунктов
var stopLoss = new StopLossStrategy(t, 20);
return new TakeProfitStopLossStrategy(trade, takeProfit, stopLoss);
});
ChildStrategies.AddRange(protectiveStrategies);
}
Код я взял с примера а куда событие прописать и как не могу додумать.
// создаем шлюз к Quik-у
var trader = new QuikTrader(@"Ваш путь к Квик директории");
// подписываемся на событие успешного подключения
// все действия необходимо производить только после подключения
trader.Connected += () =>
{
Console.WriteLine("Подключение было произведено успешно.");
// извещаем об успешном соединении
waitHandle.Set();
};
Console.WriteLine("Производим подключение...");
trader.Connect();
// дожидаемся события об успешном соединении
waitHandle.WaitOne();
trader.NewPortfolios += portfolios =>
{
if (_portfolio == null)
{
// находим нужный портфель и присваиваем его переменной _portfolio
_portfolio = portfolios.FirstOrDefault(p => p.Name == account);
if (_portfolio != null)
{
Console.WriteLine("Портфель {0} появился.", account);
// если инструмент и стакан уже появились,
// то извещаем об этом основной поток для выставления заявки
if (_lkoh != null && _depth != null)
waitHandle.Set();
}
}
};
// подписываемся на событие появление инструментов
trader.NewSecurities += securities =>
{
if (_riz2 == null)
{
// находим Лукойл и присваиваем ее переменной ртс
_riz2 = securities.FirstOrDefault(sec => sec.Code == secCode);
if (_riz != null)
{
Console.WriteLine("Инструмент ртс появился.");
// запускаем экспорт стакана
trader.RegisterQuotes(_riz2);
if (_portfolio != null)
waitHandle.Set();
}
}
};
// подписываемся на событие появления моих новых сделок
trader.NewMyTrades += myTrades =>
{
foreach (var myTrade in myTrades)
{
var trade = myTrade.Trade;
Console.WriteLine("Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.", trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time);
}
};
// подписываемся на событие обновления стакана
trader.MarketDepthsChanged += depths =>
{
if (_depth == null && _riz2 != null)
{
_depth = depths.FirstOrDefault(d => d.Security == _riz2);
if (_depth != null)
{
Console.WriteLine("Стакан ртс появился.");
// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
if (_portfolio != null)
waitHandle.Set();
}
}
};
Console.WriteLine("Дожидаемся появления в программе инструмента ртс и портфеля {0}...".Put(account));
// запускаем экспорт по DDE
trader.StartExport(new[]{ trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable, trader.EquityPortfoliosTable, trader.OrdersTable });