Ana içeriğe geç

Bir cBot nasıl optimize edilir

cTrader'da, emir koruma seviyeleri veya varsayılan emir hacimleri gibi davranışlarını etkileyen herhangi sayıda özelleştirilebilir parametreye sahip cBot'lar oluşturmak mümkündür. Bu durum, trader'ların bu parametrelerin optimal değerlerini tam olarak nasıl belirleyebileceği sorusunu gündeme getirir. Neyse ki, cTrader optimizasyonu yönetebilen yerleşik bir araç sunarak trader'lara değerli zaman kazandırır.

Bu kılavuzda, kullanıcıların cBot'larını nasıl optimize edebileceğine odaklanıyor ve cBot optimizasyonunun herhangi bir Algo geliştiricisi için neden gerekli olduğunu gösteriyoruz.

cBot optimizasyonu nasıl çalışır

Optimizasyonu bir dizi geriye dönük test olarak düşünün. Her geriye dönük test denemesi aynı veriler üzerinde gerçekleşir ancak bir cBot'ta kodlanmış herhangi bir parametre için farklı değerler kullanır.

Hızlı ve yavaş dönem Moving Averages birbirini kestiğinde (hızlı Moving Average'ın yavaş Moving Average'ı kesmesi) durumlara tepki verebilen bir cBot düşünün. cBot'un kaç hızlı ve yavaş dönem için veri alacağını özelleştirebilmek istiyoruz.

Bu nedenle cBot'umuzun aşağıdaki iki parametreye sahip olması gerekir.

1
2
3
4
5
[Parameter("Slow Periods", Group = "Moving Average", DefaultValue = 10)]
public int SlowPeriods { get; set; }

[Parameter("Fast Periods", Group = "Moving Average", DefaultValue = 5)]
public int FastPeriods { get; set; }

Optimal parametre değerlerini tanımlamak için cBot'un çeşitli piyasa koşullarında ve yukarıdaki iki parametreye farklı değerler verildiğinde nasıl çalıştığını kapsamlı bir şekilde test etmemiz gerekir. Bu testleri manuel olarak yapacak olsaydık, kolay yorumlanabilir bir sonuç kümesi sağlamadan çok zaman alırlardı.

Neyse ki, cTrader'ın bu testleri otomatik olarak çalıştırmasını sağlayabiliriz ve testlerin sonunda, cBot'un mümkün olan en iyi sonuçları elde etmesini sağlayan belirli parametre değerlerini bize sunabilir. Bu süreç cBot optimizasyonu olarak bilinir.

cBot optimizasyonuna erişim

cBot optimizasyonuna erişmek için aşağıdaki eylemleri gerçekleştirin.

İlk olarak, optimize etmek istediğiniz cBot örneğini seçin. Gerekirse, artı simgesine tıklayıp bir sembol seçerek veya Daha Fazla simgesine tıklayarak açılan bağlam menüsünde Örnek Ekle'yi seçerek yeni bir örnek oluşturun.

Ardından, Geriye Dönük Test sekmesinin hemen sağında bulunan Optimizasyon sekmesine geçin. Bu sekmedeki merkezi ekran aşağıdaki gibi görünmelidir.

Optimizasyon ayarlarını ve cBot parametrelerini yapılandırın

Optimizasyon bir dizi geriye dönük test olduğundan, normal geriye dönük test için yapacağınız ayarların aynısını yapılandırabilirsiniz. Bunu yapmak için dişli simgesine tıklayın ve yeni açılan menüdeki değerleri değiştirin.

cTrader'ın optimize etmesi gereken kesin parametreleri seçmek için dişli simgesinin hemen sağındaki Parametreler düğmesine tıklayın.

Bu alt bölümde, her parametre adının solundaki bayrakları etkinleştirerek veya devre dışı bırakarak bu parametreleri optimizasyon sürecine dahil edin/hariç tutun. Zaman Dilimi parametresinin, yapılandırmalarından bağımsız olarak tüm cBot'lar için mevcut olduğunu unutmayın.

Optimizasyonun, cBot'umuzun başlangıçta dikkate alacağı yavaş ve hızlı dönemlerin optimal değerlerini belirlemesini istiyoruz. Ancak, henüz başka Moving Average türlerini denemek istemiyoruz.

Optimizasyon kriterlerini ve algoritmasını tanımlayın

cTrader'ın gerçekleştireceği geriye dönük test denemeleri arasından optimal parametre değerlerini seçmek için hangi kesin kriterleri kullanacağını belirlemek mümkündür.

Bunu yapmak için yukarı doğru çizgi simgesiyle temsil edilen Kriterler düğmesine tıklayın. Aşağıdaki bölümü göreceksiniz.

Her kriterin ayarları iki menü içerir. Soldaki menüde, kriterin minimize mi yoksa maksimize mi edilmesi gerektiğini seçin. Sağdaki menüde, önceden tanımlanmış seçenekler arasından minimize veya maksimize edilmesi gereken kriteri seçin. Kriter Ekle'ye tıklayarak yeni kriterler eklenebilir.

Yukarıdaki ekran görüntüsünde, cTrader'ın net kârımızı ve cBot'umuzun yaptığı kâr eden işlemlerin sayısını maksimize etmesini istiyoruz. Aynı zamanda, maksimum net varlık erimesi yüzdesini minimize etmek istiyoruz.

Kısa olması açısından, bu makale özel optimizasyon kriterlerini ve GetFitness() yöntemini kapsamamaktadır. Bunlar hakkında daha fazla bilgi edinmek için teknik belgelerimize başvurun.

Belirli bir optimizasyon algoritması seçmek için Kriterler düğmesinin sağındaki Algoritma düğmesine tıklayın. Aşağıdaki alt bölüm açılmalıdır.

Kapsamlı arama algoritması oldukça doğrudur ancak kaynak yoğundur. Izgara seçeneği belirlendiğinde, cTrader tüm olası parametre değerlerinden oluşan bir ızgara oluşturur ve bunları test etmek için gereken tüm geriye dönük testleri çalıştırır. Bu süreç kapsamlı olsa da biraz zaman alabilir.

Neyse ki, cTrader Genetik algoritma seçeneğini içerir. Bu algoritma, her denemeyi bir birey, cBot parametrelerini genler ve optimizasyon kriterlerine uyum derecesini adaptasyon olarak kabul ederek doğal seçilimi taklit eder. Genetik algoritma, belirli parametre değerlerindeki herhangi bir değişikliğin cBot etkinliğine azalan getiriler sağlayacağını tespit ettiğinde durur.

Genetik algoritma, kapsamlı aramadan daha az kaynak yoğun olmasına rağmen yine de doğru sonuçlar ürettiği için bu optimizasyon yöntemini seçmenizi öneririz.

Kaynakları tahsis edin ve cBot optimizasyonu gerçekleştirin

cBot optimizasyonu gerçekleştirmek için cTrader'ın geriye dönük test denemelerini çalıştıracağı geçmiş veri aralığını seçin. Bunu yapmak için Optimizasyon sekmesinin üst kısmındaki takvim kaydırıcısını veya bunun solundaki ve sağındaki menüleri kullanın.

Optimizasyonun tamamlanması biraz zaman alabilen, kaynak yoğun bir süreç olduğunu unutmayın. Sonuçları nispeten hızlı almak istediğimiz için optimizasyon dönemi olarak bir yıl seçeceğiz.

cTrader ayrıca optimizasyon sürecine ayrılan CPU kaynaklarının tam yüzdesini belirlemeye de olanak tanır. Bu ayarı özelleştirmek için en soldaki takvim menüsünün solundaki Kaynaklar düğmesine tıklayın.

Yeni açılan bölümde, CPU tüketimini artırmak veya azaltmak için kaydırıcıyı sürükleyin.

Kaynak tahsisini tamamladıktan sonra optimizasyona devam etmeye hazır olmalısınız. Bunu yapmak için en sağdaki takvim menüsünün sağındaki Oynat düğmesine tıklayın. cTrader geçmiş verileri yükledikten sonra, merkezi ekrana gerçek zamanlı olarak eklenen optimizasyon denemelerini göreceksiniz.

Izgaranın üst kısmında, mevcut deneme sayısını, geçen süreyi ve kalan optimizasyon süresini de göreceksiniz.

Tamamlanan tüm denemeler yeşil bir onay işaretiyle işaretlenecektir. cBot'unuzun stop out'a ulaştığı tüm denemeler ise gri bir onay işaretiyle işaretlenecektir.

Not

Optimizasyon sonuçlarını kaydedebilir ve yükleyebilirsiniz; bu da onları farklı cihazlar arasında taşımanıza olanak tanır.

Optimizasyon sonuçlarını yorumlayın ve uygulayın

Merkezi ızgarada cTrader, cBot'unuzun yaptığı kâr eden işlemlerin sayısı ve maksimum net varlık erimesi yüzdesi dahil olmak üzere her geriye dönük test denemesi için çeşitli metrikler gösterecektir.

Özellikle dikkat çekici olan, her deneme için bir uygunluk puanı gösteren Uygunluk sütunudur. Bir uygunluk puanını, bir denemenin seçtiğiniz optimizasyon kriterlerini ne ölçüde maksimize/minimize ettiğini değerlendiren bir metrik olarak düşünün. Daha yüksek uygunluk puanları, bu kriterlere daha yüksek derecede uyumun göstergesidir.

En yüksek uygunluk puanına sahip denemeyi hızlıca seçmek için merkezi ızgaranın hemen üzerinde bulunan En iyi denemeyi otomatik seç bayrağını etkinleştirmeniz yeterlidir. Optimizasyon devam ederken En iyi denemeyi otomatik seç bayrağını etkinleştirebileceğinizi ve cTrader'ın en iyi olası parametre değerlerini dinamik olarak arayacağını unutmayın.

Uygunluk sütununda görebileceğiniz gibi, 33 numaralı deneme diğer tüm denemelere kıyasla mümkün olan en iyi uygunluk puanını sağlamıştır.

33 numaralı denemenin yanındaki Uygula'ya güvenle tıklayabiliriz ve bu deneme sırasında kullanılan parametre değerleri cBot örneğimize hemen uygulanacaktır.

Yavaş dönemler ve Hızlı dönemler parametreleri için varsayılan değerler sırasıyla 10 ve 5 idi.

Geriye dönük testte olduğu gibi, İşlem İzleme ekranı, cBot'umuzun belirli bir deneme sırasında gerçekleştirdiği eylemleri özetleyen bir net varlık grafiği ve ayrıntılı işlem istatistikleri sağlayacaktır. Net varlık grafiğinin yalnızca merkezi ızgaradaki en iyi 20 deneme için görüntülendiğini unutmayın.

Sürekli artan Bakiye ve Net Varlık çizgileri, 33 numaralı denemenin cBot'umuzun etkili bir şekilde çalışması için gerekli parametre değerlerini sağladığı gerçeğini pekiştirmektedir.

Özet

Kısacası, cBot optimizasyonu, otomatik işlem danışmanlarınızın doğru şekilde yapılandırılmasını sağlamak için güçlü bir araçtır. Kendi geliştirdiğiniz veya diğer geliştiricilerden edindiğiniz cBot'lar için hangi parametre değerlerinin en iyi olacağı hakkında bir fikir edinmek amacıyla farklı kriterlerle birden fazla optimizasyon turu yapmanızı şiddetle tavsiye ederiz.