Kullanabilecegimiz sadece bu yukarida yazdiklarim var. Digerlerini strateji icerisinden takip edebilirsiniz, ya da pozisyonlari stratejiye girebilirsiniz.
Strateji icerisindeki hareketleri takip etmek icin GetPortfolio() fonksiyonunu, ayrica butun stratejiler icerisinde bulunan OnOrderUpdate fonksiyonunu kullanabilirsiniz.
OnOrderUpdate ile pozisyon takibi ornek:
public override void OnOrderUpdate(IOrder order)
{
//Gercek zamanli pozisyon takibi
if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Buy)
{
var positionChange = order.OrderQty;
realposition += (int) positionChange;
Debug("[ONORDERUPDATE]: Pozisyon = " + realposition);
if (realposition == 0)
{
SystemPosition = 0;
Debug("Kar AL / Zarar Durdur tetiklendi");
}
}
if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Sell)
{
var positionChange = order.OrderQty;
realposition -= (int) positionChange;
Debug("[ONORDERUPDATE]: Pozisyon = " + realposition);
if (realposition == 0)
{
SystemPosition = 0;
Debug("Kar AL / Zarar Durdur tetiklendi");
}
}
}
GetPortfolio kullanimi icin:
IDictionary<string, decimal> portfolio = GetPortfolio();
var positionflag = portfolio.ContainsKey(Symbol) && portfolio[Symbol] != 0;
if (positionflag) stock = portfolio[Symbol];
Ayrica Hazir stratejileri icerisindeki ZamanliStrateji'ye bakabilirsiniz.