Algoda formasyon kullanımına dair örnek. AddFormationSymbol fonksiyonu ile formasyon verilerine ulaşmak istediğiniz sembolleri giriniz. AddFormationSymbol fonksiyonu ile eklediğiniz sembollerden birinde formasyon oluşursa OnFormationReceived fonksiyonu tetiklenir.
using System; using System.Collections.Generic; using System.Linq; using Matriks.Data.Symbol; using Matriks.Engines; using System.Windows.Media; using Matriks.Indicators; using Matriks.Symbols; using Matriks.AlgoTrader; using Matriks.Trader.Core; using Matriks.Trader.Core.Fields; using Matriks.Trader.Core.TraderModels; using Matriks.Lean.Algotrader.AlgoBase; using Matriks.Lean.Algotrader.Models; using Matriks.Lean.Algotrader.Trading; using Matriks.Data.Tick; using Matriks.Enumeration; using Matriks.IntermediaryInstitutionAnalysis.Enums; using Newtonsoft.Json; //===========================================ACIKLAMA===================================================// // Algoda formasyon kullanımına dair örnek // // AddFormationSymbol fonksiyonu ile formasyon verilerine ulaşmak istediğiniz sembolleri giriniz. // // AddFormationSymbol fonksiyonu ile eklediğiniz sembollerden birinde formasyon oluşursa OnFormationReceived fonksiyonu tetiklenir.// namespace Matriks.Lean.Algotrader { public class AlgoFormation : 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("GARAN")] public string Symbol; [Parameter(SymbolPeriod.Min5)] public SymbolPeriod SymbolPeriod; /// <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() { AddSymbol(Symbol, SymbolPeriod); SendOrderSequential(true); AddFormationSymbol("BTCDOWN_BIN"); AddFormationSymbol("ARPA_USDT_BIN"); AddFormationSymbol("BADGER_USDT_BIN"); AddFormationSymbol("BTC_TRY_BIN"); AddFormationSymbol("BTC_TRY"); AddFormationSymbol("XYZ_TRY"); AddFormationSymbol("CEMAS"); AddFormationSymbol("KARSN"); AddFormationSymbol("XTCRT"); AddFormationSymbol("SAHOL"); AddFormationSymbol("GARAN"); AddFormationSymbol("YKSLN"); AddFormationSymbol("SKBNK"); AddFormationSymbol("IPEKE"); AddFormationSymbol("EURTRY"); AddFormationSymbol("USDTRY"); AddFormationSymbol("BIMAS"); AddFormationSymbol("YUNSA"); AddFormationSymbol("KRTEK"); AddFormationSymbol("GBNIE"); AddFormationSymbol("XELTK"); AddFormationSymbol("OSMEN"); AddFormationSymbol("FLAP"); AddFormationSymbol("FDAX"); AddFormationSymbol("ANHYT"); AddFormationSymbol("NTHOL"); AddFormationSymbol("NIBAS"); AddFormationSymbol("HUBCV"); AddFormationSymbol("HOIL"); AddFormationSymbol("TKFEN"); } /// <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> /// AddFormationSymbol ile eklenen sembollerin birinde formasyon oluşunca bu fonskiyon tetiklenir. /// </summary> public override void OnFormationReceived(AlgoFormationModel formationModel) { Debug("Inform Time: " + formationModel.InformTime); Debug("Description: " + formationModel.Description); Debug("Symbol Name: " + formationModel.SymbolName); Debug("Name: " + formationModel.Name); Debug("Formation Status: " + formationModel.FormationStatus); //Onaylanmamış formasyonlarda ConfirmationDate alanında varsayılan bir tarih görebilirsiniz Debug("Confirmation Date: " + formationModel.ConfirmationDate); Debug("Confirmation Price: " + formationModel.ConfirmationPrice); Debug("Formation Type: " + formationModel.FormationType); Debug("Formation Status: " + formationModel.FormationModelType); Debug("Price Target: " + formationModel.PriceTarget); Debug("Half Price Target: " + formationModel.HalfPriceTarget); Debug("Start Price: " + formationModel.StartPrice); Debug("Price Difference Percent: " + formationModel.PriceDifferencePercent); Debug("Max Loss: " + formationModel.MaxLoss); Debug("Health: " + formationModel.Health); Debug("EndPrice: " + formationModel.EndPrice); Debug("Strenght: " + formationModel.Strenght); Debug("MinVal: " + formationModel.MinVal); Debug("MaxVal: " + formationModel.MaxVal); Debug("MaxLineErr: " + formationModel.MaxLineErr); Debug("IsActive: " + formationModel.IsActive); } /// <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(BarDataCurrentValues barDataCurrentValues) { } /// <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) { if (order.OrdStatus.Obj == OrdStatus.Filled) { } } /// <summary> /// Strateji durdurulduğunda bu fonksiyon tetiklenir. /// </summary> public override void OnStopped() { } } }