Bar olayları
Algoritma geliştiricilerinin, güncellenmiş fiyatlara yanıt olarak işlem stratejilerini zamanında yürütmek için sık sık bar olaylarına başvurması gerekir. API, algo yaratıcılarının cBot'lara ince ayar yapması ve bar döngüsünün farklı noktalarında fırsatları yakalaması için BarOpened ve BarClosed olaylarını sunar.
Not
Bar olayları yalnızca cBot'ları kodlarken ele alınabilir. Göstergeler ise her tick'te çağrılan Calculate() metoduna sahiptir.
Bu kılavuzda, OnBar() ve OnBarClosed() metotları arasındaki farkı açıklıyor ve çeşitli kullanım durumları sunuyoruz.
Bar olayları bir dakikada!
OnBar()metodu, bir örneğin eklendiği grafikte her yeni bar çizildiğinde tetiklenir. Yeni oluşan bar için çağrılır.OnBarClosed()olay işleyici de her yeni barda tetiklenir. Ancak, son kapanan (yani mevcut olandan önceki) bar için çağrılır.- Doğru bar olayına başvurarak, teknik analizinizin doğruluğunu artırır ve algoritma eylemleri için uygun zamanlamayı seçersiniz.
BarOpenedveBarClosediçin desteklenen grafik türleri zaman barları, mumlar, tick, Renko, aralık ve Heikin Ashi grafikleridir.
OnBar() metodunu kullanın
BarOpened olayının meydana gelmesi, bir sembol programına ve gelen fiyatların sıklığına bağlıdır. Genellikle, platform kullanıcıları BarClosed olayının meydana gelmesini grafik zaman dilimi ayarlarıyla ayarlayabilir.
Not
OnBar() metodu, grafik zaman dilimi ayarları izin verdiği sürece sık sık çağrılabilir. Bir bar kapandığında, OnBar() bir sonraki tick gelene kadar tetiklenmeyecektir; bu da mantıksal olarak yeni bir barın oluşmasını tetikler.
Bir algoritmanın eklendiği grafikte çizilen her yeni barla eş zamanlı olarak OnBar() metodu çağrılır. Sonuç olarak, OnBar() işleyicisi, cBot'unuzun düzenli olarak tekrarlaması gereken özel işlem mantığını tanımlamak için mükemmel bir yerdir.
Kod düzenleyicide, OnBar() işleyicisini şu şekilde belirtebilirsiniz:
override void OnBar()
OnBarClosed() metodunu kullanın
Algo API ayrıca, uygulamak istediğiniz stratejiye bağlı olarak BarOpened olayını ele almaya daha kullanışlı ve doğru bir alternatif olabilecek son kapanan bar için mantık yürütmeye olanak tanır. Bar açılışında, yeni bar bir (doji mum) olarak görünür ve teknik analiz için tam veri içermez.
BarClosed olayı, BarOpened olayının bir takma adıdır; yani yalnızca BarOpened olayı gerçekleşirse meydana gelir. Örneğin, Cuma günkü son bar için BarClosed olayı, sembolün hafta sonu işlem görmemesi koşuluyla Pazartesi günü açılan ilk barla birlikte meydana gelecektir.
Not
OnBarClosed() metodu, yeni barı oluşturmak için bir tick gelene kadar çağrılmayacaktır.
OnBarClosed() olay işleyicisi şu şekilde bildirilebilir:
override void OnBarClosed()
OnBarClosed() metodunun gövdesinde, BarClosed olayı tetiklendiğinde cBot'larınızın hangi bağlantılı eylemleri gerçekleştireceğini belirleyebilirsiniz (örneğin, bir emir yürütmek, bir formasyon çizmek, teknik analiz görselleri çizmek vb.).
Bu olay işleyicide erişildiğinde, Bars koleksiyonu mevcut canlı barı içermezken, diğer koleksiyonlar (örneğin Positions, Symbols vb.) gerçek verileri içerir.
OnBar() ve OnBarClosed() olay işleyicileri, geriye dönük test ve optimizasyonda amaçlandığı gibi çalışır. Her iki metot da zaman barları, mumlar, tick, Renko, aralık ve Heikin Ashi grafikleri dahil olmak üzere farklı grafik türlerinde kullanılabilir.
Örnek cBot'lar oluşturun
Aşağıdaki örnek cBot, EURCHF grafiğinde her üçüncü bar açıldığında bir piyasa emri yerleştirir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
cBot bir m1 grafiğinde başlatıldığı için, gerçekleştirilen piyasa emirleri arasındaki yaklaşık zaman aralığı üç dakikadır.

Aşağıda, iç içe geçmiş Directional Movement System (DMS) göstergesine sahip bir cBot örneği bulunmaktadır; bu örnek (Yükseliş trendi!) DI+ değeri (yeşil çizgi) DI- değerini (kırmızı çizgi) aşarsa yazdırır.

DI- DI+'dan büyük olduğunda, (Düşüş trendi!) BarClosed olayında yazdırılır.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Özet
Algo API'de bulunan bar olaylarının çeşitliliği, algoritma geliştiricilerinin çağrılan metotlar için doğru zamanlamayı seçmelerine olanak tanır. OnBar() metodu, sembol programına ve grafik zaman dilimi ayarlarına bağlı olarak farklı sıklıkta çağrılabilir, bu da cBot'ların işlevselliğine katkıda bulunur. OnBarClosed() metodu, göstergelerle çalışmak için OnBar() metodunun kullanışlı bir takma adıdır.