AI uzman danışmanı test ve optimizasyon rehberi | Deriv Blog
Doğru test teknikleriyle AI uzman danışmanınızı mükemmelleştirin. Rehberimiz, güvenilir trading botları için yaygın sorunları, test yöntemlerini ve uzman danışman optimizasyonunu kapsar.
Deriv masası · 21 April 2025 · 6 dk okuma

AI trading uzman danışmanları artık burada — ancak yine de bunları test edip iyileştirmeniz gerekir.
Claude veya ChatGPT gibi AI araçlarını kullanarak Deriv MT5 için bir uzman danışman ya da Deriv cTrader için bir cBot oluşturduysanız, iyi bir başlangıç yaptınız demektir. Ancak kod doğru görünse bile, botun çalışma şeklini etkileyebilecek hatalar içerebilir.
Uzman danışmanınızı (EA) canlı piyasada çalıştırmadan önce, test etmeniz ve beklediğiniz şekilde çalıştığından emin olmanız önemlidir.
Bu rehberde, AI tarafından oluşturulan EA'lerdeki yaygın kodlama hatalarını, bunların nasıl düzeltileceğini ve botunuzun performansını artırmaya yönelik pratik ipuçlarını ele alacağız.
Yaygın AI MQL5 kodlama hataları
Bunlar, AI tarafından oluşturulan EA'lerde karşılaşılan en yaygın sorunlardan bazıları ve bunları düzeltme yollarıdır:
- MQL5'te tanımlanmamış tanımlayıcı hatası
Bu hata, botun doğru şekilde tanımlanmamış bir değişken veya ad kullanması durumunda görünür; örneğin bir parametrenin eksik olması ya da iMA() gibi indikatörlerde yanlış bir ad kullanılması.
Düzeltme:
İndikatörün parametrelerini kontrol edin ve tüm değişken adlarının MetaEditor'da (MT5'in kodlama aracı) beklenenlerle eşleştiğinden emin olun.
- Eksik Buy/Sell işlem yürütme işlevleri
Bazı AI tarafından oluşturulan botlar, işlem açmaya yönelik temel mantığı atlar.
Düzeltme:
Temel işlem yürütme işlevlerini manuel olarak ekleyin. Aşağıda bir buy emri vermek için temel bir yapı örneği yer alıyor:
void OpenBuy() {
MqlTradeRequest request; MqlTradeResult result;
request.action = TRADE_ACTION_DEAL;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.volume = 0.1; request.magic = 12345;
OrderSend(request, result);
}
Aynı şekilde sell emirleri için de mantık eklediğinizden ve işlemlerin hangi koşullarda açılması gerektiğini tanımladığınızdan emin olun.
- Deriv cTrader'da yanlış döngü koşulları
Deriv cTrader'da botun mantığının OnBar() veya OnTick() gibi belirli işlevlerin içinde çalışması gerekir. Bunlar, piyasa hareket ettiğinde otomatik olarak tetiklenir. Kodunuz bu bölümlerin dışında, örneğin yanlış döngüde veya global kapsamda yer alıyorsa, beklendiği gibi çalışmaz.
Düzeltme:
Bar ve tick'lerin OnBar() veya OnTick() içinde işlendiğinden emin olun. Bu, botunuzun geriye dönük test ve canlı işlem sırasında yeni tick'lere veya barlara doğru şekilde yanıt vermesini sağlar.
- Bakiye yüzdesine göre lot büyüklüğünü yanlış hesaplama
AI, lot büyüklüğünü hesaplama bakiyenize göre ayarlamaya çalıştığında (örneğin işlem başına %2 risk almak), önemli bir ayrıntıyı — kontrat büyüklüğünü — atlayabilir. Bu da hatalı lot büyüklüklerine yol açabilir. Bu durum bir kod hatası oluşturmaz; ancak test sırasında, işlem büyüklüklerinin risk ayarlarınıza uymadığını görürsünüz ve bu da canlı işlemlerde aşırı veya yetersiz pozisyonlanmaya neden olur.
Düzeltme:
Kontrat büyüklüğünü de hesaba katan bir lot büyüklüğü formülü kullanın, örneğin:
//-----------------------------------------------------------------
double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = accountBalance * (RiskPercent / 100.0);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pointValue = tickValue / tickSize;
double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
if(contractSize > 0)
pointValue = pointValue / contractSize;
double lotSize = riskMoney / (StopLossPoints * pointValue);
double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lotSize = MathMax(lotSize, minLot);
lotSize = MathMin(lotSize, maxLot);
lotSize = MathFloor(lotSize / lotStep) * lotStep;
- Diğer hatalar
Bu hatalardan biriyle veya başka bir hatayla karşılaşırsanız, sorunu belirlemek ve düzeltmek için her zaman AI modelinizden yardım isteyebilirsiniz.
Hata mesajını ve ilgili kodu kopyalayın, ardından bunları AI modelinizle paylaşın. Çoğu zaman model sorunu tespit edebilir ve bir çözüm sunabilir ya da olası çözümler önerebilir.
İpucu: Canlıya geçmeden önce her zaman bir geriye dönük test çalıştırın. Bu tür sorunlar, stratejiyi gerçek piyasa verileriyle test edene kadar ortaya çıkmaz.
AI tarafından oluşturulan uzman danışmanınızı geliştirin
Botunuz çalışmaya başladıktan sonra, performansını ve istikrarını artırmak için küçük değişiklikler yapabilirsiniz. Bunu yapmak için birkaç yaygın yöntem şunlardır:
- Beklenmeyen davranışları, yüksek oynaklık dönemlerinde veya bağlantı sorunları sırasında yönetmek için hata işleme mantığı ekleyin.
- Piyasa lehinize hareket ettiğinde potansiyel kârları kilitlemek için bir trailing stop-loss kullanın.
- Stratejinizin nasıl performans göstereceğini görmek için stratejinizi geriye dönük test edin.
- Daha sonra güncelleme veya sorun giderme işlemlerini kolaylaştırmak için kodunuzu temizleyip düzenleyerek okunabilirliğini ve verimliliğini artırın.
İpucu: Botunuzun adım adım nasıl çalıştığını test etmek için MetaEditor Debugger'ı (MT5'te) kullanın.
İşlemleri geriye dönük test etmenin neden kritik olduğu
AI tarafından oluşturulan botlar, sıfırdan kod yazmadan işlemlerinizi otomatikleştirmenin harika bir yoludur. Ancak AI kullansanız bile, stratejinizin canlı koşullarda iyi çalışması için yine de insan kontrolüne ve ayarlamalara ihtiyacı vardır.
Canlıya geçmeden önce, kapsamlı test yapmak ve küçük iyileştirmeler için zaman ayırmak önemlidir. Küçük düzeltmeler bile EA'nizin ne kadar tutarlı ve etkili performans gösterdiği üzerinde büyük bir fark yaratabilir.