Algoda dedektör kullanımına dair örnek. AddDetectorSymbol fonksiyonu ile dedektör verilerine ulaşmak istediğiniz sembolleri giriniz. AddDetectorSymbol fonksiyonu ile eklediğiniz sembollerden birinde dedektör oluşursa OnDetectorReceived fonksiyonu tetiklenir.
using System; using System.Collections.Generic; using System.Linq; using Matriks.Data.Symbol; using Matriks.Engines; using Matriks.Indicators; using Matriks.Symbols; using Matriks.Trader.Core; using Matriks.Trader.Core.Fields; using Matriks.Lean.Algotrader.AlgoBase; using Matriks.Lean.Algotrader.Models; using Matriks.Lean.Algotrader.Trading; using Matriks.AI; using Matriks.AI.AiParameters; using Matriks.AI.Data; using Matriks.Trader.Core.TraderModels; using Matriks.Data.Tick; using Matriks.Enumeration; using Matriks.IntermediaryInstitutionAnalysis.Enums; using Newtonsoft.Json; //===========================================ACIKLAMA===================================================// // Algoda detektör kullanımına dair örnek // // AddDetectorSymbol fonksiyonu ile dedektör verilerine ulaşmak istediğiniz sembolleri giriniz. // // AddDetectorSymbol fonksiyonu ile eklediğiniz sembollerden birinde dedektör oluşursa OnDetectorReceived fonksiyonu tetiklenir.// namespace Matriks.Lean.Algotrader { public class AlgoDetector : 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. [SymbolParameter("XU100")] public string Symbol1; [Parameter(SymbolPeriod.Day)] public SymbolPeriod SymbolPeriod1; public override void OnInit() { SendOrderSequential(true, Side.Buy); WorkWithPermanentSignal(true); AddDetectorSymbol("ARZUM"); AddDetectorSymbol("PSDTC"); AddDetectorSymbol("BFREN"); AddDetectorSymbol("FENER"); AddDetectorSymbol("EGGUB"); AddDetectorSymbol("PENTA"); AddDetectorSymbol("DOCO"); AddDetectorSymbol("BURVA"); AddDetectorSymbol("DESPC"); AddDetectorSymbol("ERBOS"); AddDetectorSymbol("CMBTN"); AddDetectorSymbol("BERA"); AddDetectorSymbol("BAYRK"); } /// <summary> /// Init islemleri tamamlaninca, bardatalar kullanmaya hazir hale gelince bu fonksiyon tetiklenir. Data uzerinde bir defa yapilacak islemler icin kullanilir /// </summary> public override void OnInitCompleted() { } /// <summary> /// AddDetectorSymbol ile eklenen bir sembollerden birinde detektör olayı gerçekleşirse bu fonksiyon tetiklenir. /// </summary> public override void OnDetectorReceived(AlgoDetectorModel model) { Debug("Inform Date: " + model.InformTime); Debug("Symbol Name: " + model.SymbolName); Debug("Description: " + model.Description); Debug("DetectorType: " + model.DetectorType); Debug("Level: " + model.Level); Debug("DayDifferencePercentage: " + model.DayDifferencePercentage); Debug("Volume: " + model.Volume); Debug("TimeSpan: " + model.TimeSpan); } /// <summary> /// SetTimerInterval fonksiyonu ile belirtilen sürede bir bu fonksiyon tetiklenir. /// </summary> public override void OnTimer() { } /// <summary> /// AddNewsSymbol ve AddNewsKeyword ile haberlere kayit olunmuşsa bu fonksiyon tetiklenir. /// </summary> /// <param name="newsId">Gelen haberin id'si</param> /// <param name="relatedSymbols">Gelen haberin ilişkili sembolleri</param> public override void OnNewsReceived(int newsId, List<string> relatedSymbols) { } /// <summary> /// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir. /// </summary> /// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param> public override void OnDataUpdate(BarDataEventArgs barData) { } /// <summary> /// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir. /// </summary> /// <param name="order">Emrin son durumu</param> public override void OnOrderUpdate(IOrder order) { } /// <summary> /// Strateji durdurulduğunda bu fonksiyon tetiklenir. /// </summary> public override void OnStopped() { } } }