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()
{
}
}
}
