Kullanıcı İndikatörleri Tabloları #
İndikatörler içerisinde verileri tablo formatında görüntülemek için TableManager sınıfı kullanılır. Tablo oluşturma, görsel ayarlar ve veri ekleme işlemleri bu sınıf üzerinden yapılır.
İki tip tablo oluşturulabilir: Auto Table ve Custom Table. Auto Table’lar otomatik olarak sütun sayısını belirlenen tipin özelliklerine göre oluştururken, Custom Table’larda satır ve sütun sayısı manuel olarak belirlenir.
AddAutoTable<T>(string, int) #
Otomatik tablo oluşturmak için kullanılır. Tablo sütunları, belirtilen tip (T) içindeki IndicatorTableColumn attribute’u ile işaretlenmiş özelliklere göre otomatik olarak oluşturulur.
public int AddAutoTable<T>(string name, int maxRowCount)
Parametreler #
name string
Tablonun görünen adı. Bu isim tablo başlığında gösterilir.
maxRowCount int
Tablonun maksimum satır sayısı. Bu sayıdan fazla veri eklendiğinde en eski satırlar otomatik olarak silinir.
Dönüş Değeri #
int – Oluşturulan tablonun benzersiz kimlik numarası. Bu ID, tablo üzerinde işlem yapmak için kullanılır.
Örnek #
private int _autoTableId;
public sealed override void OnInit()
{
//Decimal tipinde otomatik tablo oluşturma
_autoTableId = TableManager.AddAutoTable<decimal>("Auto Table 1", 3);
//TestClass tipinde otomatik tablo oluşturma
var tableId2 = TableManager.AddAutoTable<TestClass>("Auto Table 2", 10);
}
public class TestClass
{
[IndicatorTableColumn("Bar Index")]
public int BarIndex { get; set; }
[IndicatorTableColumn("Bar Value")]
public decimal BarValue { get; set; }
}AddCustomTable(string, int, int) #
Özel tablo oluşturmak için kullanılır. Satır ve sütun sayısı manuel olarak belirlenir. Bu tip tablolara herhangi bir tip veri eklenebilir.
public int AddCustomTable(string name, int rowCount, int columnCount)
Parametreler #
name string
Tablonun görünen adı. Bu isim tablo başlığında gösterilir.
rowCount int
Tablonun satır sayısı.
columnCount int
Tablonun sütun sayısı.
Dönüş Değeri #
int – Oluşturulan tablonun benzersiz kimlik numarası. Bu ID, tablo üzerinde işlem yapmak için kullanılır.
Örnek #
private int _customTableId;
public sealed override void OnInit()
{
//3 satır, 3 sütunlu özel tablo oluşturma
_customTableId = TableManager.AddCustomTable("Custom Table 1", 3, 3);
//4 satır, 4 sütunlu özel tablo oluşturma
var tableId2 = TableManager.AddCustomTable("Custom Table 2", 4, 4);
}SetFontSettings(int, int, string) #
Tablonun font ayarlarını belirlemek için kullanılır. Font boyutu ve font ailesi bu metod ile ayarlanır.
public void SetFontSettings(int tableId, int fontSize, string fontFamily)
Parametreler #
tableId int
Font ayarları uygulanacak tablonun kimlik numarası. AddAutoTable veya AddCustomTable metodlarından dönen değer kullanılmalıdır.
fontSize int
Tablo içindeki yazıların font boyutu.
fontFamily string
Tablo içindeki yazıların font ailesi. Örn. “Verdana”, “Arial”, “MS Gothic”, “Palatino Linotype”
Örnek #
private int _tableId;
public sealed override void OnInit()
{
_tableId = TableManager.AddAutoTable<decimal>("My Table", 5);
//Font boyutu 13, font ailesi Verdana olarak ayarla
TableManager.SetFontSettings(_tableId, 13, "Verdana");
//Font boyutu 15, font ailesi Arial olarak ayarla
TableManager.SetFontSettings(_tableId, 15, "Arial");
}SetColors(int, Color, Color) #
Tablonun renk ayarlarını belirlemek için kullanılır. Metin rengi ve arka plan rengi bu metod ile ayarlanır.
public void SetColors(int tableId, Color textColor, Color backgroundColor)
Parametreler #
tableId int
Renk ayarları uygulanacak tablonun kimlik numarası.
textColor Color
Tablo içindeki yazıların rengi. System.Windows.Media.Colors sınıfından renk değerleri kullanılabilir. Örn. Colors.White, Colors.Black, Colors.Red
backgroundColor Color
Tablonun arka plan rengi. System.Windows.Media.Colors sınıfından renk değerleri kullanılabilir.
Örnek #
using System.Windows.Media;
private int _tableId;
public sealed override void OnInit()
{
_tableId = TableManager.AddAutoTable<decimal>("My Table", 5);
//Beyaz yazı, açık mavi arka plan
TableManager.SetColors(_tableId, Colors.White, Colors.LightBlue);
//Sarı yazı, kırmızı arka plan
TableManager.SetColors(_tableId, Colors.Yellow, Colors.Red);
}SetTablePosition(int, IndicatorTablePosition) #
Tablonun ekrandaki konumunu belirlemek için kullanılır. Tablo, grafik üzerinde belirtilen pozisyonda gösterilir.
public void SetTablePosition(int tableId, IndicatorTablePosition position)
Parametreler #
tableId int
Pozisyon ayarı uygulanacak tablonun kimlik numarası.
position IndicatorTablePosition
Tablonun ekrandaki konumu. Aşağıdaki değerler kullanılabilir:
- TopLeft – Üst sol köşe
- TopCenter – Üst orta
- TopRight – Üst sağ köşe
- MidLeft – Orta sol
- Center – Merkez
- MidRight – Orta sağ
- BottomLeft – Alt sol köşe
- BottomCenter – Alt orta
- BottomRight – Alt sağ köşe
Örnek #
private int _tableId;
public sealed override void OnInit()
{
_tableId = TableManager.AddAutoTable<decimal>("My Table", 5);
//Tablo pozisyonunu üst sol köşe olarak ayarla
TableManager.SetTablePosition(_tableId, IndicatorTablePosition.TopLeft);
//Tablo pozisyonunu merkez olarak ayarla
TableManager.SetTablePosition(_tableId, IndicatorTablePosition.Center);
//Tablo pozisyonunu alt sağ köşe olarak ayarla
TableManager.SetTablePosition(_tableId, IndicatorTablePosition.BottomRight);
}AddItem(int, object) #
Tablo içine veri eklemek için kullanılır. Auto Table’lara eklenen veriler otomatik olarak sütunlara dağıtılırken, Custom Table’lara eklenen veriler sırayla hücrelere yerleştirilir.
public void AddItem<T>(int tableId, object item)
Parametreler #
tableId int
Veri eklenecek tablonun kimlik numarası.
item object
Tablo içine eklenecek veri. Auto Table’larda bu tip, tablo oluşturulurken belirtilen tip ile aynı olmalıdır. Custom Table’larda herhangi bir tip veri eklenebilir.
Örnek #
private int _autoTableId;
private int _customTableId;
public sealed override void OnInit()
{
_autoTableId = TableManager.AddAutoTable<TestClass>("Auto Table", 3);
_customTableId = TableManager.AddCustomTable("Custom Table", 3, 3);
}
public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
{
//Custom Table'a decimal değer ekleme
TableManager.AddItem(_customTableId, inputValue);
//Auto Table'a özel sınıf ekleme
var testClass = new TestClass()
{
BarIndex = currentBar,
BarValue = inputValue
};
TableManager.AddItem(_autoTableId, testClass);
}
public class TestClass
{
[IndicatorTableColumn("Bar Index")]
public int BarIndex { get; set; }
[IndicatorTableColumn("Bar Value")]
public decimal BarValue { get; set; }
}IndicatorTableColumn #
Auto Table’larda kullanılan sınıfların özelliklerini tablo sütunlarına dönüştürmek için kullanılan attribute’dur. Bu attribute ile işaretlenen özellikler, tablo sütunları olarak otomatik olarak oluşturulur.
[IndicatorTableColumn(string columnName)]
Parametreler #
columnName string
Sütun başlığında gösterilecek isim. Bu parametre opsiyoneldir, belirtilmezse özellik adı kullanılır.
Örnek #
public class TestClass
{
//"Bar Index" başlığıyla sütun oluşturulur
[IndicatorTableColumn("Bar Index")]
public int BarIndex { get; set; }
//"Bar Value" başlığıyla sütun oluşturulur
[IndicatorTableColumn("Bar Value")]
public decimal BarValue { get; set; }
//Bu özellik tabloda görünmez (attribute yok)
public string HiddenProperty { get; set; }
}
//Bu sınıf ile Auto Table oluşturulduğunda:
//- "Bar Index" sütunu (int değerler için)
//- "Bar Value" sütunu (decimal değerler için)
//otomatik olarak oluşturulur.Tam Örnek #
Aşağıda tablo oluşturma ve kullanımının tam bir örneği bulunmaktadır:
using System;
using System.Windows.Media;
using Matriks.Lean.Algotrader.AlgoBase;
public class MyIndicator : MatriksIndicator
{
private int _autoTableId;
private int _customTableId;
public sealed override void OnInit()
{
//Auto Table oluşturma ve ayarlama
_autoTableId = TableManager.AddAutoTable<decimal>("Auto Table", 5);
TableManager.SetFontSettings(_autoTableId, 13, "Verdana");
TableManager.SetColors(_autoTableId, Colors.White, Colors.LightBlue);
TableManager.SetTablePosition(_autoTableId, IndicatorTablePosition.TopLeft);
//Custom Table oluşturma ve ayarlama
_customTableId = TableManager.AddCustomTable("Custom Table", 3, 3);
TableManager.SetFontSettings(_customTableId, 15, "Arial");
TableManager.SetColors(_customTableId, Colors.Yellow, Colors.Red);
TableManager.SetTablePosition(_customTableId, IndicatorTablePosition.BottomRight);
}
public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
{
//Auto Table'a veri ekleme
TableManager.AddItem(_autoTableId, inputValue);
//Custom Table'a veri ekleme
TableManager.AddItem(_customTableId, inputValue);
}
}