MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
1 beğenilme 0 beğenilmeme
Stratejiyi 2 farklı periyotta çalıştırabilir miyim?
Algoritmik Trading kategorisinde (65 puan) tarafından

1 cevap

1 beğenilme 0 beğenilmeme
En İyi Cevap

MatriksIQ istenildiği kadar farklı periyot ve sembol ile çalışmamıza olanak sağlamaktadır. 2 farklı periyot ve 2 farklı enstrüman ile kullanım aşağıda örneklendirilmiştir.
 

public class rsiHareketliOrtalamasi : MatriksAlgo
{
        [SymbolParameter("GARAN")]
        public string Symbol_0;
        [SymbolParameter("AKBNK")]
        public string Symbol_1;
        [Parameter(SymbolPeriod.Min5)]
        public SymbolPeriod SymbolPeriod_5;
        [Parameter(SymbolPeriod.Min10)]
        public SymbolPeriod SymbolPeriod_10;
 
        //… //
 
        public override void OnDataUpdate(BarDataEventArgs barData)
        {
                  int symbolid_0 = GetSymbolId(Symbol_0);
                  int symbolid_1 = GetSymbolId(Symbol_1);
                  var barDataModel_0 = GetBarData(Symbol_0, SymbolPeriod.Min5);
                  var barDataModel_1 = GetBarData(Symbol_0, SymbolPeriod.Min10);
                  var barDataModel_2 = GetBarData(Symbol_1, SymbolPeriod.Min5);
                  var barDataModel_3 = GetBarData(Symbol_1, SymbolPeriod.Min10);
                  if (symbolid_0 == barData.SymbolId && barDataModel_0.PeriodInfo == barData.PeriodInfo)
// Yukarıdaki kod asıl sembollerin datalarının ayrıştırıldığı önemli bölümdür. If bölümü, barData.Symbolid, yani bar kapanışında güncellenen datadan (rastgele) gelen id verisi GetSymbolId(Symbol_0) ile atadığımız unique ID ile karşılaştırılıyor. Aynı yöntemi rastgele gelmiş olan barData.PeriodInfo ile eşleşmek için de kullanmamız gerekiyor.

{
Close_0 = barDataModel.Close[barData.BarDataIndex-1];
 
// Ancak ve sadece bu id’ler ve Periotlar aynı oldugunda close olarak tanımladığımız 
//yeni değişkene barDataModel.Close[barData.BarDataIndex-1] ile gelen 
//Sembol’ün (yani bu örnekte ilk sembol(GARAN) ve ilk periyot(5 dakika)) 
//bir önceki kapanışı atanıyor. Böylelikle 2 sembolü ve periyotu ayrıştırmış ve 
//gelen doğru data ile eşleştirmiş oluyoruz. Bundan sonra artık Close_0 değişkenini kod içerisinde 
//GARAN, 5dk’lık bir önceki kapanış olarak kullanabiliriz 
 }
}

 

(965 puan) tarafından
tarafından düzenlendi
49 soru
52 cevap
51 yorum
61 kullanıcı