cTrader için 5 Dakikada Bir cBot Nasıl Oluşturulur
Bu makalede ve ilgili videosunda, cTrader Algo'da bir cBot oluşturmanın hızlı bir yolunu açıklayacağız. Oluşturacağımız cBot, Three white soldiers ve three black crows adlı basit bir işlem stratejisi uygulayacak. Bu strateji hakkında daha fazla bilgiyi bilgi bankamızda bulabilirsiniz.
Talimatlarımızı takip etmeden önce, cTrader Windows veya Mac uygulamasını resmi web sitesinden indirip kurduğunuzdan emin olun. Başlatın ve cTrader Algo bölümüne gidin. Onu sol panelde bulabilirsiniz. Algo sekmesine tıklayın, cTrader Algo bölümü görünmelidir.
Yeni bir cBot ekleyin
Yeni bir cBot oluşturmaya başlamak için cTrader Algo'daki Yeni düğmesine tıklayın. Bir ad girin, C# ve Python arasında bir programlama dili seçin ve kod düzenleyici açılana kadar devam edin.
cBot ayarlarını ekleyin
Bir işlem stratejisi uygulamaya başlamadan önce, temel cBot parametrelerine ve metotlarına bir göz atacağız. Farklı parametrelerin ve metotların ne işe yaradığını öğrenmek için belgelerimize de başvurabilirsiniz.
-
cBot parametreleri – işlem hacmi veya zarar durdur/kâr al mesafeleri gibi yapılandırılabilir öznitelikleri tanımlamanıza olanak tanır.
-
cBot metotları – cBot'unuzun belirli olaylar meydana geldiğinde nasıl davrandığını tanımlar. Bir cTrader cBot geliştirirken ele almanız gereken dört ana olay vardır ve her biri cTrader tarafından sağlanan ilgili bir metot tarafından yönetilir. Bu metotlar C#'ın
OnStart(),OnTick(),OnBar(),OnStop()ve Python'ınon_start(),on_tick(),on_bar_closed(),on_stop()metotlarıdır. Note that the C#'sOnBar()and Python'son_bar_closed()yönteminin varsayılan kod şablonuna dahil edilmediğini unutmayın.
Aşağıdaki tablo bu dört yöntemi ayrıntılı olarak tanımlar.
| C# | Python | Amaç |
|---|---|---|
OnStart() | on_start() | Bir cBot örneği çalışmaya başladığında tetiklenir. cBot'unuzda kullanmayı planladığınız göstergeler, sayaçlar, olay işleyiciler veya zamanlayıcılar gibi tüm değişkenleri başlatmak için kullanılır. |
OnTick() | on_tick() | Bir cBot örneğinin çalıştığı işlem grafiğindeki her tikte (fiyat güncellemesi) tetiklenir. Genellikle gerçek zamanlı verilere dayalı hızlı giriş veya çıkış mantığı için kullanılır. Bu yöntemin içinde, yeni bir tik geldiğinde çalıştırmanız gereken özel giriş ve çıkış koşullarını ve diğer yardımcı işlevleri programlayabilirsiniz. |
OnBar() | on_bar_closed() | Her çubuğun kapanışında tetiklenir. Bu yöntemin içinde, her yeni çubuğun oluşumunda çalışması gereken özel giriş ve çıkış koşullarını veya diğer işlevleri programlayabilirsiniz. |
OnStop() | on_stop() | cBot durduğunda çağrılır. Pozisyonları kapatma, durumu kaydetme ve daha fazlası gibi son işlemleri gerçekleştirmek için kullanılır. |
İşlem mantığını ekleyin
Şimdi işlem stratejimizin kodunu ekleyeceğiz. cBot'umuz, grafikte üç yeşil çubuk oluştuğunda bir alım pozisyonu ve art arda üç kırmızı çubuk olduğunda bir satış pozisyonu açmalıdır.
İlk olarak, cBot'umuzun parametrelerini tanımlamamız gerekiyor. Bu parametreler cTrader kullanıcı arayüzünden tamamen özelleştirilebilir olacaktır. cBot'umuzda üç parametre tanımlayacağız.
- Her işlemin hacmi.
- Pip cinsinden zarar durdur.
- Pip cinsinden kâr al.
Aşağıdaki kodu, sınıf bildiriminden (public class NewcBot : Robot) sonraki süslü parantezlerin hemen altına kod düzenleyicinize yapıştırın.
1 2 3 4 5 6 7 8 | |
Not
Python cBot'ları, .cs dosyalarında tanımlanan özelleştirilebilir parametreleri kullanır.
1 2 3 4 5 6 7 8 | |
Şimdi işlem stratejimizin arkasındaki mantığı uygulamamız gerekiyor. Aşağıdaki kodu OnBar() veya on_bar_closed() yönteminize yapıştırın. Bu yöntemin her yeni çubuk oluştuğunda çağrıldığını unutmayın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 | |
Şimdi kodu daha yakından inceleyeceğiz. cTrader, grafiğin geçmiş çubuklarına erişim sağlayarak son üç çubuğun sırasıyla tamamen yeşil veya tamamen kırmızı olup olmadığını kontrol etmemize olanak tanır. Yukarıdaki C#'ın OnBar() ve Python'ın on_bar_closed() yönteminde, ilk olarak son üç çubuğun tamamen yeşil olup olmadığını kontrol ediyoruz. Daha sonra bu çubukların tamamen kırmızı olup olmadığını değerlendiriyoruz.
İki koşuldan biri doğruysa, ExecuteMarketOrder() yöntemini kullanarak bir piyasa emri veriyoruz. İşlem yönü, sembol, işlem hacmi, zarar durdur ve kâr al gibi en önemli birkaç girdi (argüman) alır.
Bizim durumumuzda, emir yönü (TradeType.Buy, TradeType.Sell) işlem stratejisi koşulları tarafından belirlenir. Sembol adı, cBot'umuzun çalıştığı grafikten doğrudan SymbolName olarak alınır. İşlem hacmi, zarar durdur ve kâr al (C#'ın Volume, StopLoss, TakeProfit ve Python'ın VolumeInLots, StopLossInPips, TakeProfitInPips) tanımladığımız cBot parametrelerinden alınır.
cBot'u derleyin ve çalıştırın
Şimdi cBot'umuzun başarıyla derlenip derlenmediğini kontrol etmemiz gerekiyor. Varsayılan olarak, derleme sonuç penceresi kod düzenleyicinin hemen altında bulunur. Görmüyorsanız, cTrader kullanıcı arayüzünün en üst çubuğundaki Düzen düğmesine tıklayın ve Derleme Sonucu'nu seçin. Bu eylem için klavye kısayolu Ctrl + W'dir.
Ardından, cTrader kullanıcı arayüzünün en üst çubuğunda bulunan Derle düğmesine tıklayın. Alternatif olarak, cBot'unuza sağ tıklayın ve yeni açılan menüde Derle'ye tıklayın veya sadece Ctrl + B tuşlarına basın.

Derleme başarılı olursa, kod düzenleyicinin altındaki Derleme Sonucu alanında yeşil bir mesaj göreceksiniz.

Alternatif olarak, kodunuzda sorunlar varsa, kırmızı bir mesaj ve tüm derleme hatalarının ayrıntılı bir özetini göreceksiniz.

cBot'unuz başarıyla derlendikten sonra kullanmaya başlayabilirsiniz. Yapmanız gereken tek şey, bir işlem grafiğine bir örnek eklemek. Bunu yapmak için, cBot'unuzun adının sağındaki + simgesine tıklamanız yeterlidir. cBot'unuzu çalıştırabileceğiniz tüm sembollerin bir listesini göreceksiniz.

EURUSD'yi seçeceğiz. Bir sembol seçtikten sonra, yeni bir cBot örneği eklenecektir. cBot'lar listesinde sembol adı ve işlem yapmak istediğiniz zaman dilimi ile yeni bir öğe göreceksiniz.
Ayrıca, işlem grafiğinin hemen altındaki Parametreler sekmesinde kodladığınız parametreleri de görmelisiniz.

Bu parametreleri istediğiniz gibi değiştirebilir veya varsayılan değerlerinde bırakabilirsiniz.
Ek olarak, EURUSD grafiğinin üst kısmında bir Oynat düğmesi göreceksiniz.

Örneğinizi başlatmak için bu düğmeye basın. Alternatif olarak, bu düğmenin bir kopyası, soldaki cBot'lar listesinde örneğinizin sağında da bulunur. Bu düğmelerden herhangi biri cBot'u başlatacaktır.
Düğmelerden birine tıkladıktan sonra turuncuya döndüğünü görmelisiniz, bu da cBot'umuzun bir örneğinin artık çalışır durumda olduğu anlamına gelir. Günlük sekmesinde, cBot'un şimdi başladığını belirten yeni bir satır da görmelisiniz.
cBot'u geriye dönük test edin
cBot'umuzun gerçek bir işlem grafiğinde pozisyon açması uzun zaman alabilir. Geçmiş veriler üzerinde nasıl çalıştığını görmek için hızlı bir geriye dönük test yapacağız. Bunu yapmak için Geriye Dönük Test sekmesini açın.

Geriye dönük test için kullanmak istediğiniz tarih aralığını seçmek üzere ekranın üst kısmına yakın takvim kaydırıcısını kullanın. Geriye dönük test sonuçlarını gerçekleşirken takip etmek için Görsel mod bayrağını etkinleştirin.
Kaydırıcıyı bir ay geriye çekeceğiz. Seçilen geçmiş veriler üzerinde cBot'u başlatmak için Oynat düğmesine tıklayın.
Ardından, işlem grafiğinin hemen altındaki ve Parametreler bölümünün sağındaki sekmede yeni pozisyonların açıldığını ve/veya kapandığını görebileceksiniz. Özellikle, kodladığımız iki modelden birini tespit ettikten sonra, cBot bir alım veya satım emri verecektir.
Geriye dönük test çalıştırmak, cBot'unuzun doğru çalışıp çalışmadığını analiz etmek için faydalı bir yoldur.
Özet
Bu makalenin, cTrader kullanarak otomatik bir işlem robotu oluşturmayı göstermede yardımcı olduğunu umuyoruz.
