Gerçekleşen İşlemlerin Takibi #
Strateji içerisinde Aracı Kurum üzerinden gerçekleşen tüm işlemlere ait detaylı verilere ulaşım sağlanabilir. Gerçekleşen işlemin sembol, fiyat, adet ve zaman vb. bilgileri yanında alıcı veya satıcı aracı kurumun açıklamasına da ulaşılabilir
Ek Notlar #
Bu fonksiyondan sadece canlı verinin takibi yapılabildiği için strateji çalıştırıldığı andan itibaren gerçekleşen işlemleri bu fonksiyonla yakalayabilirsiniz. O nedenle backtest veya optimizasyonda veri gelmeyecektir.
AddMemberTickData(int) #
Aracı kuruma ait gerçekleşen işlemleri stratejiye alabilmek için kullanılır. Filtrelenen kurumdan işlem oldukça OnBrokerageTickDataReceived metodu tetiklenir.
public void AddMemberTickData(int MemberId)
Parametreler #
MemberId int
Aracı kurumun uygulamada tanımlı numarasıdır.
OnBrokerageTickDataReceived(AlgoTickData) #
Strateji içerisinde gerçekleşen işlem verilerine kaydolunan aracı kurumdan yeni işlem olduğunda bu metot tetiklenir.
public override void OnBrokerageTickDataReceived(IAlgoTickData tickData)
Parametreler #
tickData IAlgoTickData
İçeriğinde gerçekleşen işleme ait verileri bulunduran parametredir. Bknz. IAlgoTickData
Örnek #
Seçilen aracı kurumda istenilen minimum adet ve üzerinde işlem olduğunda, Kurum ile aynı işlem yönünde emir gönderilir.
namespace Matriks.Lean.Algotrader { public class UyeIslemTakip : MatriksAlgo { // Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise, // "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir. [Parameter(BrokerageEnum.AHLATCI_AYX)] public BrokerageEnum AraciKurum; [Parameter(10000)] public int MinİslemAdedi; [Parameter(10)] public decimal EmirAdediOranı; /// <summary> /// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri, /// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır. /// </summary> public override void OnInit() { //Aracı kurum gerçekleşen işlemlerine kayıt olunur AddMemberTickData(AraciKurum.GetID()); AddSymbol("XU100", SymbolPeriod.Min); // Algoritmanın kalıcı veya geçici sinyal ile çalışıp çalışmayacağını belirleyen fonksiyondur. // true geçerseniz algoritma sadece yeni bar açılışlarında çalışır, bu fonksiyonu çağırmazsanız veya false geçerseniz her işlem olduğunda algoritma tetiklenir. WorkWithPermanentSignal(true); } /// <summary> /// Gerçekleşen işlemlerine üye olunan Aracı Kurum işlem yaptıkça fonksiyon tetiklenir. /// </summary> /// <param name="tickData">Gerçekeleşen işleme ait verileri barındırır.</param> public override void OnBrokerageTickDataReceived(AlgoTickData tickData) { var transaction = tickData.Transaction; if (transaction.TransactionSize >= MinİslemAdedi) { if (tickData.Buyer.Id == AraciKurum.GetID()) { Debug("Alış emri gönderildi."); var Qty = transaction.TransactionSize * EmirAdediOranı / 100; SendLimitOrder(transaction.SymbolName, Qty, OrderSide.Buy, transaction.TransactionPrice); }else { Debug("Satış emri gönderildi."); var Qty = transaction.TransactionSize * EmirAdediOranı / 100; SendLimitOrder(transaction.SymbolName, Qty, OrderSide.Sell, transaction.TransactionPrice); } var transactionColumnString = String.Format("| {0,-10} {1,-7} {2, 7} {3,6} {4,8} {5,-10} {6,-10} |", "SAAT", "SEMBOL", "FİYAT", "ADET", "HACİM", "ALAN", "SATAN"); var transactionString = String.Format("| {0,-10} {1,-7} {2, 7} {3,6} {4,8} {5,-10} {6,-10} |", transaction.TransactionDate.ToLongTimeString(), transaction.SymbolName, transaction.TransactionPrice, transaction.TransactionSize, transaction.TransactionVolume, tickData.Buyer.Name, tickData.Seller.Name); Debug(transactionColumnString); Debug(transactionString); } } } }
Sembolde Gerçekleşen İşlemlerin Takibi #
Sembole ait gerçekleşen işlemlere ait detaylı verilere ulaşım sağlar. Gerçekleşen işlemin fiyat, adet ve zaman vb. bilgileri yanında alıcı veya satıcı aracı kurumun açıklamasına da ulaşılabilir
Ek Notlar #
Bu fonksiyondan sadece sembole ait son gerçekleşen işlemler çekilebildiği için strateji çalıştırıldığı andan itibaren gerçekleşen işlemleri bu fonksiyon üzerinden yakalabilirsiniz. O nedenle backtest ve optimizsayonda veri gelmeyecektir.
AddSymbolTickData(string) #
Sembole ait gerçekleşen işlemleri stratejiye alabilmek için kullanılır. Filtrelenen sembolde işlem oldukça OnTickDataReceived metodu tetiklenir.
public void AddSymbolTickData(string Symbol)
Parametreler #
Symbol string
Sembol parametresidir. Gerçekleşen işlemleri çekilmek istenen sembol ismi yazılmalıdır. Örn. “GARAN”
OnTickDataReceived(AlgoTickData) #
Strateji içerisinde gerçekleşen işlem verilerine kaydolunan sembolde yeni işlem olduğunda bu metot tetiklenir.
public override void OnTickDataReceived(IAlgoTickData tickData)
Parametreler #
tickData IAlgoTickData
İçeriğinde gerçekleşen işleme ait verileri bulunduran parametredir. Bknz. IAlgoTickData
Örnek #
Hazır stratejilerdeki “KurumTakip” strateji incelenebilir.
… public override void OnInit() { AddSymbol(Symbol, SymbolPeriod); AddSymbolTickData("GARAN"); } public override void OnTickDataReceived(AlgoTickData tickData) { Debug("Sembol Tanımı : " + tickData.Transaction.SymbolName); Debug("İşlem Zamanı : " + tickData.Transaction.TransactionDate); Debug("İşlem Yönü : " + tickData.Transaction.BidAsk); Debug("İşlem Fiyatı : " + tickData.Transaction.TransactionPrice); Debug("İşlem Adedi : " + tickData.Transaction.TransactionSize); Debug("İşlem Hacmi : " + tickData.Transaction.TransactionVolume); Debug("Alan Kurum : " + tickData.Buyer.Name); Debug("Satan Kurum : " + tickData.Seller.Name); Debug("İşlem Nosu : " + tickData.Transaction.TransactionNo); } …