Stratejiyi 2 farklı periyotta çalıştırabilir miyim?
- Soruldu
- Kategori
- Algoritmik Trading
- Görüntülenme
- 1.866 görüntülenme
- Durum
- Çözüldü
Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.
Kabul edilen 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
}
}
--------------------------------------------------------------------------------------------------
Önemli Linkler:
MatriksIQ Yardım Dokumanı
MatriksIQ Algo Teknik Dokuman
MatriksIQ’nun öne çıkan özellikleri - Canlı Yayın'dan kayıt
MatriksIQ Videolar
IQ Algoritma Sihirbazını Nasıl Kullanırız
OnDataUpdate her data geldiginde ya da her yeni bar acilisinda tetiklenir. Hangisi olacagini, OnInit() icerisinde yazdigimiz WorkWithPermanentSignal() tanimi belirler.
WorkWithPermanentSignal(true);
// 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.
Iki farkli periyot kullanmaniz farkli bir duruma yol acmayacaktir, yine WorkWithPermanentSignal(true) yaptigimizda belirlenen periyotlardan herhangi birinde yeni bar acilisi olustugunda OnDataUpdate tetiklenecektir.
WorkWithPermanentSignal(false) yaparsak ise her data geldiginde OnDataUpdate tetiklenecektir.
Sitenin çalışması için gerekli çerezleri kullanıyoruz. Ziyaretleri anlamak için analitik çerezleri yalnızca onayınızla kullanırız. Çerez Politikası
public override void OnDataUpdate methodunun tetiklenme şartı nedir ?
hangi zaman diliminde tetikleniyor.
stratejide belirlenen periodlara göre mi yoksa Tick data mı ?
iki farklı period kullanıldıgında hangisine göre tetiklenecek ?