English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
preview
En Güçlü Makine Öğrenimi Destekli İşlem Platformunu Nasıl Oluşturduk: Arşivler, Forumlar ve Sürümler Aracılığıyla MQL ve MetaTrader’ın Gelişim Süreci

En Güçlü Makine Öğrenimi Destekli İşlem Platformunu Nasıl Oluşturduk: Arşivler, Forumlar ve Sürümler Aracılığıyla MQL ve MetaTrader’ın Gelişim Süreci

MetaTrader 5Röportajlar |
32 11
MetaQuotes
MetaQuotes

İlk Uzman Danışmanlardan Ajan Tabanlı AI Assistant, MCP ve OpenBLAS’a: MQL Ekosistemi Nasıl Gelişim Gösterdi?

MQL’nin geçmişi, alım-satım stratejileri için basit bir dilden kapsamlı bir geliştirme ve analiz ortamına dönüşümünün hikayesidir. Günümüzde bu ekosistem, MetaEditor, MQL5, Python, ONNX, Ajan Tabanlı AI Assistant, Model Bağlam Protokolü (MCP), OpenBLAS ve Algo Forge Git altyapısını bir araya getirmektedir.

En Güçlü Makine Öğrenimi Destekli İşlem Platformunu Nasıl Oluşturduk - MetaTrader 5


Uzman Danışmanların Dilinden Bir IDE’ye

Günümüzde MetaEditor'ı sadece bir kod düzenleyicisi olarak düşünmek zor. İçerisinde dokümantasyon, derleyici, hata ayıklayıcı, profilleyici, proje yönetimi, MQL5.COM entegrasyonu, merkezi kaynak kodu depolama, Python entegrasyonu, ONNX desteği, AI Assistant, SQLite veritabanı desteği ve CSV dosyalarıyla düzenlenebilir tablolar olarak çalışma özelliği bulunmaktadır. Ancak bu gelişme bir gecede gerçekleşmedi.

MetaQuotes, platformlarının ilk nesillerinden itibaren tek bir yönde ilerliyordu: yatırımcılara sadece bir grafik ve bir işlem düğmesi sunmakla kalmayıp, aynı zamanda bir alım-satım fikrini kodla tanımlama, bunu geçmiş veriler üzerinde test etme ve insan müdahalesi olmadan uygulamaya koyma imkanı sağlamak. MQL’nin geçmişi, Uzman Danışmanlar için tasarlanmış basit bir dilin nasıl kademeli olarak tam teşekküllü bir mühendislik ortamına dönüştüğünün hikayesidir.

İnternet her şeyi koruyamadı. Eski sayfaların bir kısmı tamamen ortadan kayboldu; bir kısmı ise yalnızca Internet Archive Wayback Machine’de yer alıyor; bir kısmı da eski forum arşivlerinde ve haber makalelerinde bulunabiliyor. Ancak yine de, ana gelişim sürecini ortaya koymaya yetecek kadar materyal hala mevcut:

Fx Charts → MetaQuotes → MetaTrader → MetaTrader 4 → MetaTrader 5

Bu ayrım önemlidir. Arşivlerde çeşitli yapı numaraları, dahili sürüm kodları ve eski forum konularının başlıkları yer almaktadır. Ancak, platformun herkese açık geçmişi, sürüm numaralarının bir dizisinden ziyade, ürünlerin ve fikirlerin bir gelişim süreci olarak en iyi şekilde anlaşılabilir. Bu hikayenin merkezinde yazılım sürümleri değil, bir işlem terminalinin kademeli olarak bir geliştirici çalışma alanına dönüşmesi yatmaktadır.

Uzman Danışmanlar, Dil Oluşmadan Önce Ortaya Çıktı

MetaQuotes web sitesine ilişkin en eski arşiv kaydı Şubat 2001’e kadar uzanmaktadır. MetaQuotes Software Corp., 27 Kasım 2000’de resmi olarak kuruldu; ancak gelecekteki platform ve alım-satım otomasyonu konusundaki tartışmalar bundan daha önce başlamıştı. Arşivde, şirketin resmi olarak tescil edilmesinden dört gün önce, 23 Kasım 2000 tarihli bir forum gönderisi yer almaktadır.


Bu erken keşfi özellikle ilginç kılan şey, ne web sitesinin görünümü ne de teknik detaylarıdır. Önemli olan nokta şudur: MQL henüz mevcut değildi, buna karşın Uzman Danışmanlar kavramı zaten vardı. Başından beri odak noktası sadece grafikler ve fiyatlar değil, aynı zamanda alım-satım sistemlerinin programlanmasıydı.

Bu, sonrasında yaşanan her şeyin gidişatını belirledi. MetaQuotes, ilk günden itibaren terminali piyasayı izlemek için pasif bir pencere olarak değil, kullanıcıların bir stratejiyi somutlaştırıp yürütülmesini yazılıma devredebilecekleri bir ortam olarak gördü.

MetaQuotes ve MQL’nin İlk Sürümü

MQL’den ilk kez herkese açık olarak bahsedilmesi Kasım 2001’de gerçekleşti. O dönemde MetaQuotes 1.78 sürümü yayınlandı ve bu sürüm, platformun dahili MetaQuotes Language dili kullanılarak özel alım-satım stratejileri - Uzman Danışmanlar - oluşturma imkanını getirdi.

O dönemde yapılan duyuru, platformun gelecekteki uzun vadeli vizyonunu çoktan ortaya koymuştu: Uzman Danışmanlar, alım-satım mantığını tanımlamak, geçmiş veriler üzerinde test edilmek, hesapta işlemleri otomatik olarak gerçekleştirmek ve insan müdahalesi olmaksızın açık pozisyonları yönetmek üzere tasarlanmıştı.

Günümüz standartlarına göre, ilk MQL oldukça mütevazı görünüyordu. Tüm teknik özellikleri tek bir HTML sayfasına sığıyordu. Dilde döngüler, diziler ya da tam teşekküllü bir programın tanıdık yapısı yoktu. Hesaplamalar için önceden tanımlanmış küçük bir kayan nokta değişkenleri kümesi kullanılıyordu.

Ancak, bu dönüm noktasını yalnızca sözdizimi açısından değerlendirmek yanlış olur. Asıl ilerleme, dilin ifade gücünde değil, entegrasyon düzeyindeydi. Uzman Danışmanlar, ücretsiz müşteri terminalinin içinde doğrudan çalışıyor, zaman serilerine ve teknik göstergelere erişiyor, piyasayı analiz edebiliyor ve sunucuya işlem emirleri gönderebiliyordu.

Bu, daha sonra tüm MQL ekosisteminin standardı haline gelecek bir ilkenin ortaya çıkışını temsil etti: bir alım-satım stratejisi, terminale manuel olarak aktarılması gereken harici bir sinyal değil, aksine işlem platformu içinde çalıştırılabilen bir programdır.


MetaTrader: Yeni Bir Platform, Yeni Bir Ölçek

Mayıs 2002’de, yeni MetaTrader platformu için herkese açık testler başladı. Bu, sadece görünüşsel bir güncellemeden çok daha fazlasıydı - sunucu ve yönetici bileşenlerinin kapsamlı bir yeniden tasarımını temsil ediyordu. Yapılan duyurularda, Forex, CFD, vadeli işlemler ve hisse senedi piyasaları dahil olmak üzere yüzlerce enstrümana yönelik destek, yeni iletişim protokolleri ve binlerce çevrimiçi kullanıcıya hizmet verebilme kapasitesi belirtildi.

Bu aşama, MQL’nin geçmişinde iki nedenden dolayı önemlidir.

Birincisi, terminal daha geniş bir ekosistemin parçası haline geldi. Otomatik alım-satım artık tek başına çalışan bir uygulama olarak değil, bir sunucu, yönetim araçları, geniş kullanıcı tabanları ve farklı sınıflardaki finansal enstrümanları içeren entegre bir sistem olarak tasarlanmıştı.

İkincisi, eski dilin yetersiz olduğu ortaya çıktı. Kullanıcılardan sadece önceden oluşturulmuş Uzman Danışmanları çalıştırmaları değil, aynı zamanda alım-satım mantığını gerçekten tanımlamaları bekleniyorsa, dilin geleneksel programlamaya daha yakın hale gelmesi gerekiyordu.

MQL II: Dil, Gerçek Bir Programlama Diline Benzemeye Başlıyor

2002 sonbaharında, MetaTrader 2.03 sürümüyle dilin yeni bir sürümü tanıtıldı: MQL II.


Artık bu, sadece Uzman Danışmanlar oluşturmak için bir formüller kümesi olarak görülemezdi. MQL II dokümantasyonu, orijinal MQL dokümantasyonundan yaklaşık üç kat daha uzundu; ancak yine de tek bir HTML sayfasına sığıyordu. Dil, real, string ve Boolean değişkenleri, diziler, for ve while döngüleri ve genişletilmiş bir yerleşik fonksiyonlar kümesini beraberinde getirdi. Bunlar arasında Abs, Ceil, Cos, Exp, Floor, Log, Mod, Pow, Round, Sin, Sqrt ve Tan matematiksel fonksiyonları yer alıyordu.

Bu, önemli bir ilerlemeydi. Kullanıcılar hala oldukça katı bir çerçeve içinde çalışıyorlardı: her kaynak dosyası, temelde bir finansal enstrüman için bir tik geldiğinde çalıştırılan tek bir yürütülebilir fonksiyonu tanımlıyordu. Bununla birlikte, bu çerçevede daha karmaşık mantıklar uygulamak ve koşullar, döngüler, diziler ve matematiksel hesaplamalar kullanmak halihazırda mümkündü.

Daha sonra, harici olarak derlenmiş dosyaların çağrılması mümkün hale geldi; bu da tek bir kaynak dosyasında özel fonksiyonların bulunmaması sorununu kısmen çözdü. Teknik açıdan bakıldığında, uygulama gelecekteki MQL4 ve MQL5’ten hala oldukça uzaktı: kod, Ters Polonya Notasyonu temel alınarak oluşturulmuş yığın tabanlı bir makinede çalışıyordu. Ancak kullanıcılar için en önemli şey bu değildi. Buradaki kilit nokta, bir alım-satım stratejisinin bir koşullar kümesinden kademeli olarak tam teşekküllü bir programa dönüşmesiydi.

Sözdizimi açısından MQL II, Pascal’a benziyordu. Bu da kasıtlıydı. Pascal, programlama öğrenmek için en erişilebilir dillerden biri olarak görülüyordu ve bu, o dönemdeki MetaQuotes’un felsefesiyle mükemmel bir uyum içindeydi: işlem terminalinin her kullanıcısı, kendi alım-satım stratejisini geliştirme imkanına sahip olmalıydı.

Özel Göstergeler: MQL, Uzman Danışmanların Ötesine Geçiyor

2003 ilkbaharında, MQL’nin geliştirilmesinde bir başka önemli adım atıldı. Mart ayında, terminale yeni yerleşik göstergeler ve dosya fonksiyonları eklendi: FileOpen, FileClose, FileDelete, FileSize, FileTell, FileSeek, FileWrite, FileReadNumber, FileReadString ve diğerleri.

Ancak asıl dönüm noktası Nisan 2003’te yaşandı: MetaTrader 3.10 sürümü, MQL'de özel göstergeler ve fonksiyonları için destek sunmaya başladı.


Bu, dilin rolünü genişletti. O zamana kadar MQL, esas olarak Uzman Danışmanlarla ilişkilendiriliyordu: kullanıcı bir alım-satım stratejisi tanımlıyordu ve terminal bunu her tikte yürütüyordu. Özel göstergeler, farklı bir kullanım senaryosu ortaya çıkardı: artık yatırımcılar sadece işlem kararlarını değil, aynı zamanda piyasayı analiz etmek için kendi yöntemlerini de programlayabiliyorlardı.

Böylelikle MQL, bir yatırımcının görevinin iki farklı yönünü kapsamaya başladı: işlem kararları vermek ve analiz araçları geliştirmek. Zamanla bu kombinasyon, MetaTrader 4’te standart hale geldi: Uzman Danışmanlar, göstergeler, komut dosyaları ve kütüphaneler, tek bir ortam içinde farklı program türleri olarak ele alınmaya başlandı.

Bir Geçiş Aşaması: Basitlikten Tam Teşekküllü Bir Dile

2003’ün ortasına gelindiğinde, bir sonraki büyük platformun mevcut eski mimarinin basit bir uzantısı olamayacağı anlaşılmıştı. Yeni bir ürün, yeni bir dil ve yeni bir ortama ihtiyaç vardı.

Geliştirme süreci boyunca, internette neredeyse hiç iz bırakmayan geçiş çözümleri uygulandı. Ancak değişikliklerin gidişatı belliydi. Geliştiriciler, “tek kaynak dosyası = tek fonksiyon” modelinden, yığın tabanlı yürütmeden ve aşırı didaktik sözdiziminden uzaklaşmaya karar verdiler. Gelecekteki dil, C benzeri dillere daha yakın olacak, daha karmaşık program yapılarını destekleyecek ve kullanıcıların sadece basit Uzman Danışmanlar değil, aynı zamanda gelişmiş alım-satım sistemleri de oluşturmasına olanak sağlayacaktı.

Bu, felsefede de bir değişimi işaret ediyordu. Başlangıçta fikir kabaca şöyleydi: her yatırımcı kendi stratejisini programlayabilmeliydi. MQL4 geliştirilmeye başlandığında, bu fikir daha net bir hal almıştı: herhangi bir deneyimli kullanıcı, terminalden ayrılmadan her ne kadar karmaşık olursa olsun bir alım-satım stratejisi programlayabilmeliydi.

Aynı zamanda, basitlik bir öncelik olmaya devam etti. Basit stratejilerin basit kalması gerekiyordu. Ancak karmaşıklık sınırı önemli ölçüde yükseltilmeliydi.

MetaTrader 4 ve MQL4: Terminal, Bir IDE’ye Dönüşüyor

MetaTrader 4'ün geliştirilmesine 2003 yazında başlandı. O dönemdeki tartışmalarda, geliştiriciler yazılımın gelecekteki yeteneklerini kademeli olarak ortaya koydular: daha gelişmiş testler, farklı semboller ve zaman dilimleri için zaman serilerine erişim, genişletilmiş işlem fonksiyonları, komut dosyaları, çok sayıda gösterge tamponuna sahip özel göstergeler ve DLL’lerden harici fonksiyonlara çağrılar. 5 Şubat 2004’te, geliştiricilerin inceleyebilmesi için örnek bir MQL4 program kaynak kodu yayınlandı.

2004’ün başlarına gelindiğinde, bunun küçük çaplı bir güncelleme olmayacağı anlaşılmıştı. Sistem, esasen sıfırdan yeniden yazılıyordu. Beklenenden daha uzun sürdü, ancak işte tam da bu nedenle MetaTrader 4, nihayetinde sadece bir dizi iyileştirme değil, yepyeni bir platform haline geldi.

18 Kasım 2004’te MetaQuotes, MetaTrader 4 beta sürümünün yakında yayınlanacağını duyurdu. Bu duyuru, yalnızca işlem ve analiz özellikleri açısından değil, başka açılardan da önem arz ediyordu. İlk kez, tek bir ürün, kitlesel pazara yönelik algoritmik alım-satımın net bir modelini bir araya getirdi: terminal, MetaQuotes Language 4 programlama dili, MetaEditor 4 IDE, Uzman Danışmanlar, özel göstergeler ve komut dosyaları.


O andan itibaren MetaTrader, artık sadece otomasyon özelliklerine sahip bir işlem terminali olmaktan çıktı. MetaTrader 4, geliştiricilere özel bir çalışma alanı sunan bir platform haline geldi.

MetaQuotes web sitesinde, MQL4 dokümantasyonu oldukça kapsamlıydı: veri türleri, işlemler ve ifadeler, deyimler, fonksiyonlar, değişkenler, önişlemci ve daha sonra da dil sözdizimi. Eksiksiz referans dokümantasyonu MetaEditor’a da entegre edildi. Bu, temel bir tasarım kararıydı: geliştiriciler artık dokümantasyona ihtiyaç duydukları her seferinde tarayıcıya geçmek zorunda kalmıyorlardı. Referans, kaynak kodu ve derleme araçlarının hepsi tek bir yerde mevcuttu.


MQL4, halihazırda tam teşekküllü bir prosedürel programlama diliydi. Kullanıcı tanımlı fonksiyonları, daha tanıdık bir program yapısını, tek seferlik çalıştırma amaçlı komut dosyalarını, EX4 dosyaları biçimindeki kütüphaneleri ve harici DLL’lerden fonksiyon çağırma özelliğini beraberinde getirdi.

MetaEditor, artık sadece bir metin düzenleyiciden çok daha fazlası haline geldi. Yardım kılavuzu, sözdizimi vurgulaması, derleme, farklı MQL program türleri için destek ve yerleşik dokümantasyon sunuyordu. Bu aşamada, MetaTrader 4’ü algoritmik alım-satım için yaygın olarak kullanılan bir platform haline getirecek formül tamamen oluşturulmuştu:

TERMİNAL + DİL + DÜZENLEYİCİ + YARDIM + TEST + TOPLULUK

1 Temmuz 2005’te, uzun süren bir geliştirme sürecinin ardından MetaTrader 4, eksiksiz bir işlem platformu olarak kullanıma sunuldu. O andan itibaren hikaye artık sadece bir programlama dilinin gelişimiyle ilgili değil, aynı zamanda bir ekosistemin ortaya çıkışıyla da ilgili hale geldi: geliştiricilere yönelik özel bir web sitesi, Kod Tabanı, makaleler, alım-satım robotu şampiyonaları ve devasa bir MQL4 kullanıcı topluluğu.

Bu, bir sonraki bölümün konusu.


MQL4.COM: Dil, Bir Topluluğa Kavuşuyor

MetaTrader 4'ün kullanıma sunulmasından sonra, platformun tek başına yeterli olmadığı anlaşıldı. Kullanıcılar Uzman Danışmanlar, göstergeler, komut dosyaları ve kütüphaneler yazabilseler bile, aynı zamanda dokümantasyona, örneklere, tartışmalara, makalelere ve kod paylaşabilecekleri bir alana da ihtiyaç duyuyorlardı.

8 Kasım 2005’te, MQL4 geliştiricilerine yönelik özel bir web sitesi olan MQL4.COM yayınlandı.

Bu önemli bir adımdı: MQL4 artık sadece işlem terminaline entegre edilmiş bir dil olmaktan çıkmıştı. Ayrı bir geliştirici ekosisteminin merkezi haline gelmeye başlamıştı. Web sitesinde bir forum, dokümantasyon, Kod Tabanı ve makaleler yer aldı. Daha sonra, bu materyaller sadece Rusça ve İngilizce olarak değil, aynı zamanda Çince olarak da yayınlanmaya başlandı.

Kod Tabanı, hazır programlarla kısa sürede doldu. Kullanıma sunulmasından bir aydan kısa bir süre sonra, Kod Tabanında halihazırda 50’den fazla Uzman Danışman, yaklaşık 200 gösterge, 35 komut dosyası ve 17 kütüphane bulunuyordu. Uzman Danışmanlar, göstergeler, komut dosyaları ve kütüphaneler, MQL4’ü “sadece uzmanlara yönelik” bir dilden yaygın kullanım için pratik bir araca dönüştürdü. Kullanıcılar sadece sıfırdan program yazmakla kalmayıp, aynı zamanda başkalarının kodlarını inceleyebilir, mevcut çözümleri değiştirebilir, yazarlarına sorular sorabilir ve yazılım geliştirme alanına yavaş yavaş adım atabilirlerdi.

2006 gibi erken bir tarihte, topluluğun yayınlarından birinde yapay zeka kullanan bir Uzman Danışmanın - tek katmanlı bir sinir ağı - yer alması oldukça anlamlıdır. O zamanlar bu, yaygın bir şey olmaktan çok uzaktı. O zamanlar, yapay zeka ve makine öğrenimi konusunda bugünkü gibi bir heyecan yoktu. Oysa bu fikir, topluluk içinde zaten mevcuttu: bir alım-satım stratejisi, yalnızca kurallar ve göstergeler üzerine değil, aynı zamanda eğitilebilir bir model üzerine de kurulabilirdi.

Bu bölüm, MQL'nin daha sonraki gelişim sürecinin neden doğal bir şekilde Python, ONNX, AI Assistant ve OpenBLAS'a yol açtığını açıklamaya yardımcı oluyor. Makine öğrenimine olan ilgi bir anda ortaya çıkmadı. Bunu destekleyebilmek için platformun, dilin ve hesaplama kapasitesinin gerekli düzeye ulaşması zaman aldı.

Otomatik Alım-Satım Şampiyonası: Uzman Danışmanlar Sahneye Çıkıyor

Bir sonraki önemli dönüm noktası, Otomatik Alım-Satım Şampiyonası oldu. MQL4 ile yazılmış alım-satım sistemlerine yönelik ilk yarışma 2006’nın sonlarında düzenlendi. Bu, sadece para ödülü için yapılan bir yarışmadan çok daha fazlasıydı. Şampiyona, MetaTrader 4’ün temel konseptini herkese açık bir şekilde sergileme fırsatı sundu: Uzman Danışmanlar otonom olarak işlem yapabilirken, performansları gerçek zamanlı olarak izlenebiliyordu.

2006 şampiyonasına toplam 258 geliştirici katıldı. Ödül havuzu 80,000$’dı ve yarışma 12 hafta sürdü. O dönem için bu, oldukça güçlü bir mesajdı: otomatik alım-satım artık sadece küçük bir programcı grubuna özgü bir konu değildi. Bu, yatırımcıların, aracı kurumların ve geliştiricilerin takip edebileceği bir etkinlik haline dönüşmüştü.

Ancak ödüller bile en önemli kısım değildi. Şampiyona, tüm altyapı için bir stres testi işlevi gördü. Organizasyon ekibi bu amaçla sunucu donanımı hazırladı, çok sayıda terminal devreye aldı, Uzman Danışmanlar için aynı çalışma koşullarını sağladı ve izleyicilere sonuçları çevrimiçi olarak takip etme imkanı sundu.

Bu deneyim, daha sonra MetaTrader ekosisteminde yararlı olduğu ortaya çıkan birçok fikrin doğmasına yol açtı: otomatik Uzman Danışman kontrolleri, yazılım koruması, VPS barındırma, hafif müşteri terminalleri, web terminalleri, alım-satım sinyalleri ve nihayetinde uygulama mağazası.

2007’de katılımcı sayısı 603'e yükseldi ve 2008'de 705'e ulaştı. Bu artık sadece tek seferlik bir olay değil, topluluğun ulaştığı büyüklüğün bir göstergesiydi. İnsanlar alım-satım robotları geliştiriyor, algoritmalar üzerine tartışıyor, farklı yaklaşımları karşılaştırıyor, diğer katılımcılarla yapılan röportajları inceliyor ve bazı sistemlerin gerçek dünya alım-satım ortamında ayakta kalabilmesine karşın diğerlerinin ilk birkaç haftadan sonra çökmesinin nedenini anlamaya çalışıyorlardı.

Ayrıca, sinir ağlarının şampiyonalarda yer almaya devam ettiğini de belirtmekte fayda var. 2007 birincisi Alexander Topchilo, Uzman Danışmanında bir sinir ağı yaklaşımı kullandı; sistemi önce C++ dilinde geliştirip test etti, ardından MQL4’e taşıdı. Alexander Topchilo (Better) ile röportaj.

2008’de Leonid Velichkovsky, NeuroShell'de eğitilmiş bir sinir ağı kullanan bir Uzman Danışman sundu. Leonid Velichkovsky (LeoV) ile röportaj.

Bu, makalenin tamamı açısından önemli bir ayrıntıdır. MQL’nin geçmişi, yalnızca sözdiziminin geçmişi değildir. Bu, yatırımcıların giderek daha karmaşık fikirleri terminale aktarmaya çalıştıkları bir hikayedir: basit gösterge tabanlı kurallardan istatistiklere, optimizasyona, sinir ağlarına ve makine öğrenimine.

2009’da şampiyona düzenlenmedi. MetaQuotes, yeni MQL5 diliyle birlikte bir sonraki büyük platformu olan MetaTrader 5’in geliştirme çalışmalarını tamamlamak üzereydi.

MQL5: Yeni Platform, Yeni Bir Dille Başlıyor

MQL5’in geleceğine dair tartışmalar, MetaTrader 5’in kullanıma sunulmasından çok önce başlamıştı. 2007 gibi erken bir tarihte bile, MQL4.COM’daki kullanıcılar yeni dilden ne beklediklerini aktif bir şekilde tartışıyorlardı. Ekim 2007'de “MQL5” araması, MQL4.COM forumundaki gönderilere ait 15 sayfadan fazla bağlantı geri döndürdü. Kullanıcılar daha hızlı performans, daha yapılandırılmış bir tasarım, yeni test özellikleri, daha kolay veri işleme ve daha modern bir programlama modeli talep ediyorlardı.

Şirket içinde ise gelişim yönü daha da radikal bir nitelik taşıyordu. Yeni dil, MQL4’e özgü ara temsil biçiminden uzaklaşmak ve bunun yerine yerel kod üretmek üzere tasarlanmıştır. Bu, dilin kendisi için farklı bir performans düzeyi ve farklı bir mimari gereksinim düzeyi anlamına geliyordu.

MQL5.COM alan adının arşivlerdeki ilk kaydı Kasım 2007'ye dayanmaktadır. Ayrı bir alan adının ortaya çıkmış olması bile, bunun sadece yeni bir sözdiziminden ibaret olmadığını, aynı zamanda gelecekteki bir ekosistemle ilgili olduğunu gösteriyordu.


31 Mart 2008’de, yeni dilin özelliklerinin ele alındığı bir röportajda yeni MQL5 dili resmi olarak duyuruldu. Röportajın kendisi herkese açık arşivlerde günümüze ulaşmamış olsa da, tarih önemli bir ayrıntıdır: MetaTrader 5 kullanıma sunulmadan çok önce bile, geliştiriciler topluluğu yeni bir programlama modeline hazırlamaya başlamışlardı.

2009 yazına gelindiğinde, MQL5.COM web sitesi, sitenin yakında açılacağını açıkça duyuruyordu.


12 Ekim 2009’da MetaTrader 5'in beta testleri başladı. Bir ay sonra, 18 Kasım 2009’da, MQL5 geliştiricileri için yeni bir web sitesi olan MQL5.community’nin beta sürümü yayınlandı.

MQL5.community: Sadece Bir Forum Değil, Bir Altyapı

MQL5.community, en başından beri sıradan bir forum olarak kurulmadı. Başından itibaren, daha geniş bir ekosistem yapısı etrafında tasarlandı: dokümantasyon, forum, Kod Tabanı, makaleler, eğitim materyalleri ve platformun gelişmesiyle birlikte eklenebilecek yeni hizmetler.

Geliştiriciler, MQL4.COM’da halihazırda işleyen unsurları korumak için çaba sarf ettiler: tartışmalar, Kod Tabanı, makaleler ve alışılmış bilgi paylaşım modeli. Ancak yeni web sitesinin kapsamı daha geniş olacaktı. MQL5 daha karmaşıktı, MetaTrader 5 ise daha iddialıydı; bu nedenle topluluğun daha sağlam bir altyapıya ihtiyacı vardı.

Önemli bir adım, hesapların MQL4.COM'dan taşınmasıydı. Kullanıcıların sıfırdan başlamasına gerek kalmadı: mevcut hesaplarıyla yeni siteye giriş yapabildiler. Bu, iki dönemi birbirine bağladı ve MQL5'in MQL4 ile birikmiş deneyimi bir kenara atmadığını, aksine bunun üzerine yeni bir düzeyde geliştiğini gösterdi.

Bu, yeni bir merkez oluşturdu: dil, dokümantasyon, makaleler, kod, forum ve gelecekteki hizmetlerin tümü tek bir çatı altında bir araya getirildi. MQL5.community artık terminal için bir eklenti değil, platformun kendisinin bir parçası haline gelmişti.

MetaTrader 5 ve MQL5: Dil, Bir Mühendislik Aracı Haline Geliyor

1 Haziran 2010’da MetaTrader 5 işlem platformu kullanıma sunuldu. Önceki nesilden farklı olarak, sadece Forex için değil, aynı zamanda borsalarda işlem yapmak için de tasarlanmıştır. Bu durum, sadece terminalde değil, dilde de değişiklikler yapılmasını gerektirdi.

MQL5, MQL4’e kıyasla önemli bir ilerlemeydi. Bu, C++’a benzer bir nesne yönelimli programlama diliydi. MQL5 programları, yerel x86 veya x64 koduna derlenerek yeni bir performans düzeyi sağladı. Aynı zamanda, MQL’nin temel konsepti değişmedi: kullanıcılar hem basit programlar hem de karmaşık alım-satım sistemleri yazabilmelidir.

İşlem modeli de daha karmaşık hale geldi. MetaTrader 5, emirler, işlemler ve pozisyonlar olarak ayrı tanımlamalar getirdi. Alım-satım işlemleri, borsa altyapısının gerçeklerine daha yakın hale getirildi; ancak geliştiriciler açısından bu, yönetilmesi gereken daha fazla ayrıntı anlamına geliyordu. Bu nedenle, dil ile birlikte geliştirilen standart kütüphane, yaygın kullanım senaryolarıyla çalışmayı kolaylaştıran işlem sınıflarını da içermektedir.

Kullanıma sunulduğunda, MQL5’te yaklaşık 400 adet yerleşik fonksiyon bulunuyordu - bu sayı, o dönemde MQL4’te bulunan sayı ile hemen hemen aynıydı. Ancak fonksiyonların sayısı en önemli nokta değildi. Önemli olan, gelişimin yönüydü. MQL5, sınıflar, olay işleme, standart kütüphane, test, optimizasyon ve platform etrafında geliştirilecek gelecekteki hizmetler gibi özelliklere sahip, büyük ölçekli sistemler oluşturmak için bir dil olarak tasarlanmıştır.

MQL4 kullanıcıları için, MQL5’e nasıl geçiş yapılacağını açıklayan ayrı bir dokümantasyon bölümü oluşturulmuştur. Bu gerekliydi: yeni dil daha güçlüydü, ancak farklı bir düşünme biçimi gerektiriyordu. MQL4, algoritmik alım-satımı geniş bir kitleye erişilebilir hale getirmişse de, MQL5’in amacı bunu daha mühendislik odaklı hale getirmekti.

MQL5 Şampiyonaları: Yeni Platform Test Aşamasına Giriyor

2010'da Otomatik Alım-Satım Şampiyonası, bu kez MQL5 Uzman Danışmanları için düzenlenen bir yarışma olarak geri döndü. Bu mantıklı bir adımdı: yeni platformun herkese açık bir tanıtıma ihtiyacı vardı ve geliştiricilerin, MQL5’in sadece dokümantasyondaki örneklerde değil, üç ay süren gerçek bir alım-satım robotları yarışmasında nasıl bir performans sergilediğini görmeleri gerekiyordu.

2010 şampiyonasına 314 kişi katıldı. 2011’de 395, 2012’de ise 451’di. Bu yarışmalar, MQL4 şampiyonalarının geleneğinin bir devamı olmakla kalmadı, aynı zamanda yeni platformun sunduğu avantajları da gözler önüne serdi: daha yüksek performans, yeni bir Strateji Sınayıcı, daha gelişmiş bir işlem modeli ve büyük ölçekli Uzman Danışmanlar geliştirme imkanları.

Şampiyonalar bir kez daha birçok amaca hizmet etti. Yatırımcılar için bunlar hem bir eğlence kaynağı hem de otomatik alım-satım nasıl işlediğini görme fırsatıydı. Geliştiriciler için bunlar, fikirleri test etmek üzere pratik bir deneme alanı oluşturuyordu. MetaQuotes açısından bunlar, dil, terminal, Strateji Sınayıcı, altyapı ve gerçek dünya koşullarındaki program davranışına ilişkin geri bildirimler sağladı. Ve tabii ki, MQL5 dilinin yaygınlaşmasına katkıda bulundular.

Yeni MQL4: MQL5’in Ters Etkisi

MetaTrader 5'in kullanıma sunulmasından sonra, MQL4'ün geliştirilmesinin giderek arka plana itileceği izlenimi oluşmuş olabilir. Ancak tam tersi oldu. MetaTrader 4’ün geniş kullanıcı kitlesi ve yıllar boyunca biriken kodlar, bir dondurma işlemi değil, dikkatli bir güncelleme gerektiriyordu.

Temmuz 2013’te, MetaTrader 4 ve MQL4’te önemli değişiklikler duyuruldu. Bu fikir alışılmadık bir yaklaşımdı: herkesi kodlarını MQL4'ten MQL5'e aktarmaya zorlamak yerine, MetaQuotes yeni teknoloji tabanının mümkün olduğunca çok sayıda özelliğini MQL4'e entegre edecekti.

Bu durum, MQL4 ve MQL5 için birleşik bir derleyici, birleşik bir MetaEditor, yeni geliştirme araçları için destek, EX4/EX5 dosyaları için daha güçlü koruma ve MetaTrader 4’teki uygulamalar için Mağazayı kullanma imkanı ile sonuçlandı.

Bu, tüm ekosistem için önemli bir karardı. MQL4, “eski nesil bir dil” olarak kalmadı. Artık sınıflar, yapılar, yeni veri türleri, olay işleyicileri, daha titiz bir derleme modeli, kaynak desteği, yeni grafiksel özellikler ve MQL5 ile aynı geliştirme araç setini içeriyordu.

Sadece bir ay sonra, yeni bir MQL4 derleyicisi ve düzenleyicisi içeren MetaTrader 4 IDE’nin beta sürümü yayınlandı. 2013’ün sonlarında, yeni MQL4 ve uygulamalar için Mağazaya sahip güncellenmiş MetaTrader 4’ün herkese açık testleri başladı. 3 Şubat 2014’te, MetaTrader 4 Müşteri Terminali yapı 600 yayınlandı.

Bu sürüm, MQL4’ün geçmişini fiilen iki döneme ayırdı. Eski MQL4, Uzman Danışmanlar ve göstergeler için son derece uygun, C diline benzeyen basit bir dildi. Yeni MQL4, MQL5’e çok daha yakın hale geldi: nesne yönelimli programlama, birleşik bir MetaEditor, yeni bir derleyici ve daha karmaşık uygulamalar oluşturma olanağı sunuyordu.

Aynı zamanda, MetaTrader 4 en büyük avantajını da korudu: mevcut geniş kullanıcı tabanı, programları ve bilgi birikimi bir kenara atılmadı. Bunun yerine, eski ekosisteme yeni bir teknolojik temel kazandırıldı.

Böylece, MQL4 ve MQL5 artık birbirinden tamamen farklı iki dünya gibi görünmüyordu. Bir dil, otomatik alım-satımın yaygın olarak uygulanmasından doğarken, diğeri ise daha titiz ve güçlü bir mühendislik platformu oluşturma çabasından ortaya çıktı. Yapı 600’den sonra, aralarında ortak bir katman oluştu: MetaEditor, derleyici, geliştirme tarzı, program koruması ve MQL5.community hizmetleri.

Bu noktada, MQL’nin geçmişi çoktan “Uzman Danışmanlar için bir dil” olmanın ötesine geçmişti. Etrafında tam bir ekosistem oluşmuştu: terminaller, düzenleyici, dokümantasyon, Kod Tabanı, makaleler, şampiyonalar, Mağaza, sinyaller, VPS ve devasa bir topluluk. Ancak geliştirmenin bir sonraki aşaması daha da fazlasını gerektirecek: harici veriler, dağıtılmış hesaplama, makine öğrenimi, matrisler, sinir ağları ve ileri düzey lineer cebir.

Bu, bir sonraki bölümün konusu.


MQL5’in Gelişim Süreci: Dil Büyüyor

MetaTrader 5’in kullanıma sunulmasının ardından, MQL5’in geliştirilmesi birkaç paralel yolda ilerledi. Odaklanılan alanlardan biri dilin kendisiyle ilgiliydi: dil, C++’a giderek daha çok benziyor ve büyük ölçekli projeler için daha uygun hale geliyordu. İkincisi, çalışma zamanı ortamlarıyla ilgiliydi: MQL5 programları artık grafiklerde çalışan Uzman Danışmanlar ve göstergelerle sınırlı değildi. Üçüncüsü ise hesaplama üzerine odaklandı: Strateji Sınayıcı, bulut optimizasyonu, OpenCL, matrisler, Python ve ONNX, platform içinde gerçekleştirilebileceklerin sınırlarını kademeli olarak genişletti.

Tek tek ele alındığında, bu güncellemeler uzun bir sürüm listesi gibi görünebilir. Ancak, bir bütün olarak ele alındığında, bunlar daha önemli bir dönüşümü ortaya koymaktadır: MQL5, alım-satım robotları için bir dilden, geliştirme, hesaplama, veri analizi ve harici teknolojilerle entegrasyon için evrensel bir ortama doğru evrim geçiriyordu.

Dil, C++’a Yaklaşıyor

Başlangıçta MQL5, MQL4’ün daha gelişmiş ve daha hızlı bir devamı olarak geliştirildi. Ancak ilk birkaç yıl içinde, temel nesne yönelimli sözdiziminin yeterli olmadığı ortaya çıktı. Geliştiriciler, daha büyük projeler için bazı araçlara ihtiyaç duyuyordu: kodun yeniden kullanımı, genel algoritmalar, daha güvenli kalıtım, ad alanları ve karmaşık veri türleri için destek.

Kaynaklar 19 Ocak 2011’de kullanıma sunuldu. MetaTrader 5 Müşteri Terminali yapı 384. Bu sayede görüntüler, veriler ve diğer yardımcı dosyaların doğrudan bir programa eklenmesi mümkün hale geldi. Daha sonra, kaynak değişkenleri kullanıma sunuldu: OpenCL kodu, ikili veriler veya metin, projeyi bir harici bağımlılıklar koleksiyonuna dönüştürmeden bir MQL5 programının parçası olarak dahil edilebiliyordu.

Fonksiyon şablonları, 16 Kasım 2012’de MetaTrader 5 İşlem Terminali yapı 722 ile kullanıma sunuldu.

Sınıf şablonları, 23 Ekim 2015’te MetaTrader 5 yapı 1200 ile kullanıma sunuldu: tik geçmişi ve hizmetler için doğrudan ödeme. Bunlar, genel programlamaya doğru atılmış önemli adımlardı. Aynı kod, algoritmaları manuel olarak yeniden yazmaya gerek kalmadan farklı veri türleri için kullanılabiliyordu.

2016’da, dil C++ geliştiricilerinin aşina olduğu birkaç yeni özelliğe kavuştu:

Soyut sınıflar, 1 Nisan 2016’da MetaTrader 5 yapı 1295 ile kullanıma sunuldu.

dynamic_cast ile dinamik tür dönüştürme, Haziran 2016'da kullanıma sunuldu.

Arayüzler 15 Ağustos 2016’da kullanıma sunuldu.

final ve override değiştiricileri 16 Eylül 2016’da eklendi - Yeni MetaTrader 5 platformu yapı 1430: Risk Analizi sekmesi güncellendi.

Bu değişikliklerin hiçbiri sadece görünüşe yönelik değildi. Bunlar, daha katı ve daha güvenli sınıf hiyerarşileri oluşturulmasını, geliştiricinin amacının açıkça tanımlanmasını ve belirli hata türlerinin derleme sırasında yakalanmasını mümkün kıldı.

Ad alanları, 5 Ekim 2019’da MetaTrader 5 yapı 2170 ile kullanıma sunuldu: MQL5’te kapsamlar, Strateji Sınayıcıda önemli bir güncelleme ve yerleşik barındırma. Bu, özellikle büyük projeler ve üçüncü taraf kütüphaneler için önemlidir: sınıf, fonksiyon ve değişken adları artık birbiriyle çakışmaz ve kod modüller halinde daha düzenli bir şekilde organize edilebilir.

complex veri türü, 21 Mayıs 2021’de MetaTrader 5 yapı 2940 ile eklendi: MQL5 Hizmetleri vitrinlerinin çalışma alanında konumlandırılması ve güncellenmiş tasarım. Bu artık “Uzman Danışmanlar için” bir özellik değil, mühendislik ve bilimsel hesaplamaya doğru atılmış bir adımdı. Karmaşık sayılar; spektral analiz, lineer cebir, sinyal işleme ve çeşitli sayısal yöntemlerde kullanılır.

matrix ve vector türleri 28 Ocak 2022’de eklendi - MetaTrader 5 yapı 3180: MQL5'te vektörler ve matrisler ve iyileştirilmiş kullanılabilirlik. Bu, mühendislik ve bilimsel hesaplama alanına doğru atılmış birkaç adım daha anlamına geliyordu ve ONNX ile entegrasyonun yanı sıra OpenBLAS kütüphanesinin gelecekte kullanılmasına yönelik zemin hazırladı.

complexf, vectorcf ve matrixcf veri türleri 27 Eylül 2024’te eklendi. MetaTrader 5 yapı 4570: Web sürümünde iyileştirmeler ve MQL5'te OpenBLAS entegrasyonu.

MQL5, zamanla sadece alım-satım mantığını yazmak için değil, aynı zamanda büyük kütüphaneler, hesaplama modülleri, model sarmalayıcıları ve altyapı kodları oluşturmak için de uygun bir dilin özelliklerini kazanmaya başladı.


Bir Bilgisayar Ortamı Olarak Strateji Sınayıcı

Geliştirme çalışmalarının ayrı bir kolu, Strateji Sınayıcı ile ilgilidir. Strateji Sınayıcı, MetaTrader'da her zaman önemli bir rol oynamıştır: geçmiş verilerle test yapılmazsa, otomatik alım-satım bir dizi tahminden öteye geçemez. Ancak MQL5'te Strateji Sınayıcı, bir Uzman Danışmanı test etmenin ötesine geçmeye başladı.

2012'de, OnTesterInit, OnTesterDeinit ve OnTesterPass olay işleyicileri ve veri çerçeveleriyle çalışmaya yönelik fonksiyonlar tanıtıldı: FrameAdd, FrameFirst, FrameNext ve FrameInputs. Bu sayede test temsilcileri, terminale yalnızca tek bir nihai sonucu değil, aynı zamanda istenilen herhangi bir veriyi de gönderebiliyorlardı.

Bu güncellemenin önemini ilk bakışta anlamak zor olabilir. Pratikte bu, optimizasyonu daha esnek bir hesaplama sürecine dönüştürdü. Bir Uzman Danışman, yalnızca optimizasyon kriterini geri döndürmekle kalmayıp, daha ileri analizler için ara sonuçlar, istatistikler, özel ölçütler veya veriler de iletebiliyordu.

MQL5 Bulut Ağı ile birleştiğinde, bu dağıtılmış hesaplamanın önünü açtı. Teknik olarak her şey Strateji Sınayıcının altyapısı içinde kaldı; ancak pratikte MQL5, bir alım-satım robotunun geleneksel parametre taramalarıyla sınırlı kalması gerekmeyen görevlerin paralel işlenmesi için bir mekanizma kazanmıştı.

Bu, genel bir eğilimin bir başka örneğidir: başlangıçta algoritmik alım-satım için geliştirilen araçların, giderek daha geniş bir yelpazedeki hesaplama senaryolarında da yararlı olduğu ortaya çıkmaktadır.


MQL5, Grafiklerin Ötesine Geçiyor

Klasik MQL program modeli bir grafiğe bağlıydı: bir Uzman Danışman bir sembol üzerinde çalışır, bir gösterge bir pencerede görüntülenir ve bir komut dosyası tek seferlik bir eylem gerçekleştirir. MQL5 bu modeli kademeli olarak genişletti.

OpenCL desteği, 3 Şubat 2012’de MetaTrader 5 İşlem Terminali yapı 581 ile eklendi. Bu sayede, kullanılabilir cihazlarda paralel hesaplama kullanılabilmesi ve büyük ölçekli veri işlemeye uygun görevlerin hızlandırılması mümkün hale geldi.

Özel sembollerle çalışmaya yönelik fonksiyonlar 20 Aralık 2017’de eklendi - MetaTrader 5 yapı 1730: MetaEditor’da projeler ve sentetik enstrümanlar. Geliştiriciler, kendi sembollerini oluşturma, bunlara geçmiş veriler yükleme, tikleri güncelleme ve sentetik finansal enstrümanlar geliştirme imkanına kavuştu. Bu, araştırma açısından önemliydi: fikirler sadece standart aracı kurum verileri üzerinde değil, aynı zamanda özel zaman serileri, birleştirilmiş enstrümanlar ve özelleşmiş fiyat setleri üzerinde de test edilebiliyordu.

.NET kütüphaneleri için yerel destek, 26 Ekim 2018’de eklendi - MetaTrader 5 yapı 1930: Kayan grafik pencereleri ve MQL5’te .NET kütüphaneleri. MetaEditor, fonksiyon içe aktarma sürecinin bir kısmını üstlendi ve geliştiricilere, karmaşık sarmalayıcıları manuel olarak yazmak zorunda kalmadan harici kodu kullanmanın daha basit bir yolunu sundu.

Yeni bir MQL5 program türü olan Hizmetler (herhangi bir grafiğe bağlı olmayan programlar), 21 Şubat 2019’da MetaTrader 5 yapı 2005 ile kullanıma sunuldu: Ekonomik Takvim, hizmetler olarak MQL5 programları ve R dili için bir API. Bir hizmet arka planda çalışabilir, terminal ile birlikte başlatılabilir ve altyapı görevlerini yerine getirebilir. Bu, MQL programı kavramını önemli ölçüde değiştiriyor: artık bir Uzman Danışman, bir gösterge veya bir komut dosyası olmak zorunda değil.

21 Şubat 2019’da MetaTrader 5 yapı 2005 güncellemesinde, TCP bağlantıları kurmaya yönelik ağ fonksiyonları da eklendi. Bir MQL5 programı, ilgili adreslerin terminal ayarlarında açıkça yetkilendirilmiş olması koşuluyla, soketler aracılığıyla harici sistemlerle veri alışverişi yapma olanağına kavuştu. Bu, entegrasyon senaryolarının yelpazesini genişletti: özel veri kaynakları, yerel hizmetler, harici analizler ve uygulamalar arası veri alışverişi.

Veritabanı desteği ve DirectX desteği, 6 Aralık 2019’da MetaTrader 5 yapı 2265 ile eklendi: MQL5’te 3D görselleştirme için DirectX fonksiyonları ve Strateji Sınayıcıda sembol yapılandırması. Bu güncellemeler birbiriyle ilgisiz gibi görünebilir, ancak ortak bir fikri paylaşıyorlar: MQL5 artık işlem fonksiyonu çağrıları ve gösterge tamponlarıyla sınırlı değildi. Veri depolama, görselleştirme, harici entegrasyon ve arka planda işleme için yeni araçlar kazandı.


Python: Veri Analizi ve Makine Öğrenimi için Bir Köprü

14 Haziran 2019’da MetaTrader 5'e Python entegrasyonu eklendi: MetaTrader 5 yapı 2085’te Python entegrasyonu, Wine (Linux/macOS) üzerinde Mağaza ve Sinyaller desteği ve Strateji Sınayıcıda önemli optimizasyonlar. Bu, işlem platformu ile daha geniş veri analizi dünyası arasındaki en önemli köprülerden biriydi.

O zamana kadar Python, makine öğrenimi, istatistik, veri işleme ve görselleştirme alanlarında standart bir araç haline gelmişti. Python desteği, MetaTrader 5'ten veri alınmasını ve bu verilerin harici araştırma iş akışlarında kullanılmasını mümkün kıldı: modellerin oluşturulması, hipotezlerin test edilmesi, veri kümelerinin hazırlanması, sonuçların analiz edilmesi ve ardından elde edilen bulguların tekrar işlem platformuna aktarılması.

Bir kez daha, aynı geliştirme mantığı gözlemlenmektedir. MetaTrader, dış dünyanın tamamının yerini almaya çalışmıyor. Bunun yerine, platform geliştiricilere bir köprü sunuyor: veri ve alım-satım altyapısı terminalde kalırken, araştırma ve makine öğrenimi iş akışları, bunlar için halihazırda zengin bir kütüphane ekosisteminin mevcut olduğu ortamlarda çalıştırılabiliyor.

ONNX: Makine Öğrenimi Modelleri MQL5’e Geliyor

Bir sonraki adım, makine öğrenimini platforma daha da yaklaştırdı. 10 Mart 2023’te MetaTrader 5, makine öğrenimi modellerinin paylaşılmasına yönelik açık bir format olan ONNX desteğini ekledi - MetaTrader 5 yapı 3620: Web terminali iyileştirmeleri, ONNX desteği ve MQL5'te hızlı matris çarpımı.

ONNX konsepti, MetaTrader gibi bir platforma son derece uygundur. Modeli terminal dışında - örneğin, Python'da alışık olduğunuz kütüphaneleri kullanarak - eğitebilir, ardından ONNX formatına aktarabilir ve bir MQL5 programı içinde kullanabilirsiniz. Bu, iki görevi birbirinden ayırır: modelin eğitilmesi ve modelin alım-satım mantığına uygulanması.

Bu, geliştiriciler için büyük bir kolaylık sağlamaktadır. MQL5'te bir sinir ağını manuel olarak yeniden yazmaya ya da terminal içinde tüm eğitim altyapısını kurmaya gerek yoktur. Modeli hazırlamak için harici araçlar kullanılabilir; bu sayede MQL5, modeli bir Uzman Danışman, gösterge veya araştırma uygulamasına entegre etmeye odaklanabilir.

Böylelikle, MQL topluluğunun sinir ağlarına yönelik uzun süredir devam eden ilgisi, teknolojik açıdan daha olgun bir hal aldı. 2006-2008 yıllarında sinir ağı tabanlı Uzman Danışmanlar, meraklılar tarafından yürütülen münferit deneylerken, ONNX, geliştiricilere eğitilmiş modelleri MQL5’e entegre etmeleri için standart bir yol sundu.

AI Assistant: Bir İstemden Tam Teşekküllü Bir Ajana

AI Assistant’ın ilk sürümü, 14 Haziran 2023’te MetaEditor’da kullanıma sunuldu. Bu, bir sorudan koda giden yolu halihazırda kısaltmıştı: bir geliştirici bir kod parçasını işaretleyip açıklama isteyebilir, bir fonksiyon uygulaması ya da düzeltme alabilir ve ardından sonucu programa manuel olarak entegre edebilirdi. Bu yararlıydı, ancak teknik açıdan bakıldığında yine de geleneksel sohbet biçiminin bir evrimiydi: bir soru, metin şeklinde bir yanıt, kopyalama ve doğrulama.

24 Temmuz 2026’da, MetaTrader 5 yapı 6060'ta platform farklı bir modele geçti. Terminal ve MetaEditor, Model Bağlam Protokolü (MCP) ve ajan tabanlı yapay zeka için yerleşik destek kazandı. AI Assistant artık sadece metin oluşturmakla sınırlı değil: bir eylemler dizisi planlayabilir ve platform tarafından sağlanan araçları kullanabilir - verileri okuyabilir, dosyaları bulup düzenleyebilir, projeler oluşturabilir, alım-satım ortamını analiz edebilir ve yapılandırılmış sonuçlar sunabilir.

Geliştiriciler farkı açıkça ortaya koydu: artık eskimiş olan “soru-cevap-kopyala” modu yerine, platform karmaşık görevleri yerine getirebilen tam teşekküllü bir ajanı devreye soktu. Bu, ölçek açısından önemli bir değişikliği ifade etmektedir. AI Assistant artık sadece MQL5 kod parçacıkları üreten bir unsur olmaktan çıkıp, geliştiricilerin ve yatırımcıların iş akışına katılan bir araç haline geliyor.

MetaTrader 5'te AI Assistant ve MCP Ayarları


MCP: AI ve MetaTrader Arasında Standart Bir Köprü

Model Bağlam Protokolü (MCP), bir yapay zeka ajanının uygulama verilerine ve fonksiyonlarına bağlanmasını sağlayan açık bir standarttır. MetaTrader açısından bu, terminal ve MetaEditor’ın sadece içinde bir sohbet açık olan pencereler değil, aynı zamanda özel araçlar sunan sağlayıcılar olduğu anlamına gelir. Model, platform hakkında soyut bir açıklama almak yerine, belirli işlemler için kontrollü bir programlama arayüzüne sahip olur.

MetaEditor'da bir ajan, çalışma alanı hakkında bilgi alabilir, dosya ve metin araması yapabilir, kaynak kodunu okuyup düzenleyebilir, yeni programlar oluşturabilir, sözdizimini kontrol edebilir, tek tek dosyaları derleyebilir ve projeler oluşturabilir. Terminalde piyasa verilerine, açık grafiklere, hesap parametrelerine, pozisyonlara, emirlere ve işlem geçmişine erişebilir. Her bir MCP sunucusu, analiz amacıyla herkese açık fiyatlar, haberler ve diğer veriler gibi harici kaynakları ekleyebilir.

Bu mimari her iki yönde de çalışır. Yerleşik AI Assistant, MetaTrader ve MetaEditor MCP araçlarını kullanır; ancak aynı sunucular, OpenAI Codex, Claude Code ve diğer çözümler de dahil olmak üzere protokolle uyumlu harici ajan tabanlı sistemlere bağlanabilir. Bu nedenle kullanıcılar tek bir arayüze veya modele bağlı kalmazlar: platform gerekli araçları sağlar ve görev doğrultusunda uygun ajan seçilir.

Sistem, OpenAI, Anthropic, Gemini, DeepSeek, Ollama ve diğer uyumlu sağlayıcılar için kullanıcıların kendi API anahtarlarını desteklemektedir. MQL5.community hesaplarıyla giriş yapan kullanıcılar için ücretsiz MQL5 Lite planı otomatik olarak etkinleştirilir: AI Assistant ayarları, terminal ve MetaEditor arasında senkronize edilir.

İşlem Terminalinde AI Assistant

MetaTrader 5’teki yerleşik asistan, terminalin kendi bağlamı içinde çalışır. Belirli bir enstrümanın mevcut durumunu açıklayabilir, geçmiş fiyatları inceleyebilir, Piyasa Gözleminden enstrümanları görüntüleyebilir, açık pozisyonları ve işlem geçmişini analiz edebilir, riskli işlemleri tespit edebilir ve bir rapor oluşturabilir.

AI Assistant, MetaTrader 5’te işlem geçmişini analiz edebilir


Ağ araçları bağlandığında, ajan terminalin dahili verilerini harici bilgilerle birleştirebilir. Duyuruda gösterilen senaryolardan birinde, asistanın bir enstrümanla ilgili en son haberleri topladığı, bilgileri adım adım incelediği ve bunları fiyatlarla karşılaştırdığı gösterildi. Bu artık bir referans kaynağına yapılan tek bir istek değil, ajanın bağlamın gerekli parçalarını kendi başına topladığı çok aşamalı bir analizdir.

Alım-satım işlemleri ayrı denetimlere tabidir. Ayarlar bölümünde, bunları tamamen devre dışı bırakabilir, izin verebilir veya manuel onay gerektirebilir. Ağ istekleri ve komut satırı işlemleri de ayrı ayrı kontrol edilebilir. Asistanın önerileri yalnızca bilgilendirme amaçlıdır: alım-satımla ilgili nihai karar ve sorumluluk kullanıcıya aittir.

MetaEditor'da AI Assistant

MetaEditor’da, ajan doğal dilde yazılmış bir açıklamadan yeni bir MQL5 programı oluşturabilir, mevcut bir projeyi analiz edebilir, hataları bulabilir, düzeltme önerilerinde bulunabilir, kodu yeniden düzenleyebilir, kodun okunabilirliğini artırabilir ve karmaşık bir algoritmayı açıklayabilir. İlk sürümden en önemli fark, sonucun mutlaka sohbet içindeki metinle sınırlı kalmamasıdır: ajan bir dosya oluşturabilir veya düzenleyebilir, derleme çalıştırabilir ve sonucu doğrulayabilir.

AI Assistant, MetaEditor’da bir MQL5 programı oluşturabilir ve derleyebilir


Büyük kod tabanları için bu özellikle önemlidir. Asistan, birden fazla dosyada tanımlayıcıların tanımlarını ve kullanımlarını arayabilir, ilgili include modüllerini okuyabilir, proje yapısını dikkate alabilir ve görevi bir dizi işlem olarak gerçekleştirebilir. İstek geçmişi, Kılavuzdaki “Sohbetler” sekmesinde kaydedilir; böylece ajanla yapılan çalışma, tek seferlik bir kodlama önerisinden ziyade projenin bir parçası haline gelir.

Yapı 6060, düzenleyicinin kendisine de iyileştirmeler getirdi: artık kod blokları katlanabilir ve seçilen tanımlayıcının tüm tekrarları vurgulanabilir. Bu özellikler yapay zeka ile doğrudan ilişkili olmasa da, aynı senaryoyu - yani büyük ölçekli projelerin analizi ve bakımını - desteklemektedir.

Kod Yazmaktan "Geliştir - Test Et - İyileştir" Döngüsüne

Geliştirme çalışmalarının en önemli alanı, Strateji Sınayıcı ile ilgilidir. Açık test konusundaki yanıtlar, hedeflenen otomatik iş akışını açıklıyor:

  1. Yatırımcının gereksinimlerine dayalı bir strateji geliştir;
  2. Test yap ve parametre optimizasyonu gerçekleştir;
  3. Raporu analiz et, kodu veya ayarları değiştir ve testi yeniden çalıştır;
  4. Başarısızlık durumunda veya kabul edilebilir bir sonuç elde edildiğinde dur;
  5. Kullanıcıya nihai sürümü ve bir rapor sun.

Bu senaryo, “Yapay zeka karlı bir strateji bulacaktır” şeklindeki vaadden ayırt edilmelidir. Bir ajan, mühendislik döngüsünü otomatikleştirebilir ve daha fazla hipotezi test edebilir; ancak aşırı uyum, kaynak verilerdeki hatalar, piyasadaki istikrarsızlık veya bağımsız doğrulama ihtiyacını ortadan kaldıramaz. Burada MCP’nin değeri başka bir yerde yatmaktadır: sınayıcı, derleyici, proje dosyaları ve optimizasyon sonuçları, tek bir kontrollü eylem dizisi içinde birbirine bağlanabilir.

Beta testleri sırasında bu iş akışı kademeli olarak genişletildi; yüksek seviyeli Strategy Sınayıcı araçlarının bazıları hala eklenmekte ve yapılandırılmaktadır. Bu nedenle, burada açıklanan tam otonom döngü, herhangi bir karmaşık görevin kullanıcı müdahalesi olmaksızın halihazırda gerçekleştirilebileceğinin bir garantisi olarak değil, ajan tabanlı sistemin geliştirilmesine yönelik bir gidişat olarak değerlendirilmelidir.

Güvenlik: Ajana Sınırsız Bilgisayar Erişimi Değil, Araçlar Sağlama

Bir ajan ne kadar çok eylem gerçekleştirebilirse, net sınırların önemi o kadar artar. Erişim, açık izinler ilkesine dayanmaktadır. MQL5 çalışma dizini kaynak dosyalarıyla yapılan işlemler için kullanılabilirken, test ve günlük dizinlerine erişim salt okunur olarak sınırlandırılabilir. Kullanıcı profiline erişim ayrı olarak etkinleştirilir. Alım-satım, ağ erişimi ve komut satırı da ayrı ayarlarla kontrol edilmektedir.

PowerShell, Python ve diğer harici işlemler gibi komut satırı işlemleri özellikle güçlü ve potansiyel olarak tehlikelidir; bu nedenle arayüzde açıkça işaretlenmiştir ve ayrı olarak devre dışı bırakılabilir. Bu mod, asistanı çok amaçlı bir ajana dönüştürür, ancak aynı zamanda potansiyel saldırı yüzeyini de artırır.

Forumda yatırımcılarla yapılan tartışmalarda, geliştiriciler yedeklemelerin ve sürüm kontrolünün önemini de vurgulamışlardır. Ajan tabanlı geliştirme açısından Git, sadece bir kolaylık değil, aynı zamanda temel bir güvenlik mekanizmasıdır: değişikliklerin görünür, karşılaştırılabilir ve geri alınabilir olması gerekir. Burada, yeni AI mimarisi MQL5 Algo Forge ile sorunsuz bir şekilde entegre olmaktadır.

Proje Talimatları ve Beceriler

Bir ajanın dosyaları görmesi yeterli değildir; aynı zamanda belirli kod tabanının kurallarını da anlaması gerekir. Bu amaçla, MQL5\Profiles\Agents dizininde MetaEditor ve MetaTrader için talimat dosyaları kullanılmaktadır. Kullanıcılar, kodlama stili, adlandırma kuralları, doğrulama prosedürleri ve diğer kalıcı gereklilikleri tanımlamak için varsayılan talimatları kendi talimatlarıyla değiştirebilirler.

Bu dosyalar MQL5 alanında bulunduğundan, Algo Forge'da projelerle birlikte depolanabilirler. Dolayısıyla, depo sadece kaynak kodu ve README dosyasını değil, aynı zamanda AI için talimatları da içerebilir: projenin nasıl derleneceği, hangi dosyaların değiştirilmemesi gerektiği, hangi testlerin çalıştırılacağı ve sonucun hangi formatta sunulması gerektiği gibi.

Forum tartışmalarında geliştiriciler, tek tek projeler ve beceriler için yerel talimatları da tanıttılar - ajan için yeniden kullanılabilir, özelleşmiş prosedürler. Bu, sistemin hangi yönde geliştiğini göstermektedir: genel amaçlı bir sohbetten, platformun araçlarını ve belirli bir ekibin kurallarını bilen, özelleştirilebilir bir dijital proje katılımcısına.

Matrisler ve Vektörler: MQL5’i İleri Düzey Lineer Cebir için Hazırlama

Makine öğrenimi, istatistik ve sayısal yöntemler söz konusu olduğunda, sınıflar, şablonlar ve harici entegrasyonlar tek başına yeterli değildir. Vektörler, matrisler ve temel lineer cebir işlemleriyle çalışmanın pratik bir yolu da vazgeçilmezdir.

28 Ocak 2022’de, MQL5 matrix ve vector türlerini kullanıma sundu. Bu, yalnızca sözdizimsel açıdan değil, birçok açıdan önemli bir değişiklikti. Matrisler ve vektörler, sıradan diziler olarak değil, kendi özelliklerine ve metotlarına sahip nesneler olarak tasarlanmıştır.

Vektörler büyüklük kazanırken, matrisler satır ve sütun boyutları kazandı ve bunların etrafında ayrı bir metotlar kümesi geliştirilmeye başlandı. Geliştiriciler, hesaplama kodlarını yazmak için daha doğal bir yol elde ettiler: matrisler oluşturma, bunları transpoze etme, çarpma, ayrışmaları hesaplama, denklem sistemlerini çözme ve normlar, rank ve diğer sayısal özelliklerle çalışma.

Bu aşamaya gelindiğinde, MQL5, bir zamanlar her tikte basit Uzman Danışman mantığıyla başlayan dilden halihazırda belirgin bir şekilde farklılaşmıştı. Dil artık matematiksel modeller için yapılar içerirken, platform ise Python, ONNX, OpenCL ve bulut optimizasyonuna bağlantılar sunuyordu.

Ancak gerçek bir sayısal temel, sadece kullanışlı bir matris türünden daha fazlasını gerektirir. Ayrıca, karmaşık yöntemleri uygularken güvenilebilecek, kendini kanıtlamış bir lineer cebir kütüphanesi gerekiyordu. İşte bu nedenle bir sonraki önemli adım, OpenBLAS’ın entegrasyonu oldu.

Bu, bir sonraki bölümün konusu.


Neden OpenBLAS?

MQL5’te matrisler, vektörler, karmaşık sayılar, ONNX ve makine öğrenimi senaryoları ortaya çıktıktan sonra, bir sonraki soru kaçınılmaz hale geldi: hangi matematiksel temel yer almalı?

Tek tek metotları elle yazabilirsiniz. Matrisler için birkaç hızlı işlem ekleyebilirsiniz. Kendinizi çarpma, ayrışma ve denklem sistemlerini çözme ile sınırlayabilirsiniz. Ancak bu yaklaşım, kısa sürede geliştirilmesi, test edilmesi ve bakımı zor olan birbirinden bağımsız fonksiyonlardan oluşan bir koleksiyona yol açar.

MetaTrader 5 gibi bir platform için “sadece bir başka hızlı kütüphaneden” fazlasına ihtiyaç vardı. Lineer cebir için standart bir temele ihtiyaç vardı: kapsamlı, kanıtlanmış, taşınabilir ve MQL5 metotlarını kademeli olarak genişletmeye uygun.

OpenBLAS'ı seçmeden önce başka seçenekler de değerlendirildi: ALGLIB, LIBXSMM, Eigen ve oneMKL. Her birinin kendine özgü güçlü yanları vardır, ancak MQL5’in amacı, tek bir işlemi hızlandırmak ya da tek bir algoritma sınıfını kapsamaktan daha geniş bir kapsamdaydı.

ALGLIB, optimizasyon, yaklaşma, lineer cebir, istatistik ve diğer algoritmalar gibi alanlarda çok yönlü bir sayısal araç seti olarak öne çıkmaktadır. Ancak, bir platformun içindeki temel katman rolü söz konusu olduğunda, sadece özellik kümesi değil, aynı zamanda lisanslama modeli, kütüphane sürümleri, dağıtım koşulları, entegrasyonun öngörülebilirliği ve uzun vadeli destek de önemlidir.

LIBXSMM, özellikle küçük matrisler ve derin öğrenme temel bileşenlerini içeren problemlerde, yoğun ve seyrek matris işlemlerinde üstün performans gösterir. Bu da onu kullanışlı bir araç haline getirir, ancak daha sınırlı bir araçtır. Belirli bir işlem sınıfından en iyi şekilde yararlanmanız gereken durumlarda iyi sonuç verir; ancak geniş bir yelpazedeki lineer cebir metotları için LAPACK odaklı kapsamlı bir temelin yerini tutmaz.

Eigen, matrisler, vektörler, sayısal çözücüler ve ilgili algoritmalar için mükemmel bir C++ şablon kütüphanesidir. Ancak Eigen, temelde bir C++ yaklaşımıdır: yalnızca header dosyalarından oluşan bir kütüphane, şablonlar, ifade şablonları ve C++ koduyla sıkı entegrasyon. MQL5 platformuna dahili entegrasyon için farklı bir yaklaşıma ihtiyaç duyuldu: matrix, matrixf, matrixc ve matrixcf metotlarının uygulanması için temel oluşturabilecek istikrarlı bir hesaplama katmanı.

oneMKL de değerlendirildi. Bu, köklü bir geçmişe, güçlü optimizasyon özelliklerine ve geniş bir yetenek yelpazesine sahip, güçlü bir matematik kütüphanesidir. Ancak bir platform ürününde önemli olan tek şey hız değildir. Önemli faktörler arasında taşınabilirlik, tedarikçiye bağımlılık derecesi, dağıtım koşulları, entegrasyon üzerindeki kontrol ve farklı kullanıcı yapılandırmalarında davranışların öngörülebilirliği yer almaktadır.

OpenBLAS, en uygun çözüm olduğu ortaya çıktı. Bu, temel lineer cebir işlemlerinde yüksek performans sunan ve daha karmaşık yöntemlerin temelini oluşturan, açık kaynaklı, optimize edilmiş bir BLAS kütüphanesidir. MQL5 için en önemli faktör, tam da LAPACK görevlerini kapsamasıydı: sadece tek bir hızlı işlem değil, SVD, özdeğerler, doğrusal denklem sistemlerinin çözümü, en küçük kareler problemleri, çarpanlara ayırma ve çözümün iyileştirilmesi için geniş bir temel sunmasıydı.

Başka bir deyişle, OpenBLAS’ın seçilmesi, dekoratif bir karar değil, mühendislik temelli bir karardı. Amaç, temel matris işlemlerinden giderek daha karmaşık sayısal algoritmalara kadar, MQL5 için matematiksel yöntemleri sistematik bir şekilde geliştirmemizi sağlayacak bir temel oluşturmaktı.

MQL5'te OpenBLAS: Matrislerden Tam Bir Sayısal Temele

27 Eylül 2024’te, MetaTrader 5 yapı 4570'te OpenBLAS'ın yerel entegrasyonu kullanıma sunuldu. Aynı zamanda, MQL5, float verilerini kullanarak karmaşık sayı hesaplamalarını desteklemek üzere yeni veri türleri kazandı:

  • complexf - float veri kullanan bir karmaşık sayı;
  • vectorcf - complexf türünde elemanlar içeren bir vektör;
  • matrixcf - complexf türünde elemanlar içeren bir matris.

İlk bakışta bu, teknik bir ayrıntı gibi görünebilir. Aslında bu, MQL5’in matematiksel yeteneklerinin geleceği açısından önemli bir unsurdur. MQL5'te zaten matrix, vector, karmaşık sayılar ve matris metotları mevcuttu. Ancak OpenBLAS, daha kapsamlı bir tür kümesi gerektiriyordu: reel ve karmaşık veriler, double ve float türleri ve matris ve vektörlerin varyantları.

Bu nedenle MQL5, sadece “SVD metodu” ya da “özdeğer metodundan” daha fazlasını kazanır. Farklı veri türleri ve farklı sayısal problemler için algoritma ailelerinin oluşturulabileceği bir temel elde eder.

MQL5’teki ilk OpenBLAS metotları, tekil değer ayrışması ve özdeğerlerin hesaplanmasıyla ilgiliydi. Bu, doğal bir başlangıç noktasıydı. SVD ve özdeğer problemleri, kararlılık analizi ve boyut indirgemeden makine öğrenimi, istatistik, sinyal işleme ve model oluşturmaya kadar çok sayıda pratik algoritmanın temelini oluşturur.

SVD için çeşitli algoritmik varyantlar eklendi: böl ve fethet, QR, pivotlu QR, ikiye bölme, üst düzey Jacobi, alt düzey Jacobi ve iki köşegenli matrisler için metotlar. Bu önemli bir konudur, çünkü sayısal yöntemlerde her durum için tek bir “en iyi” çözüm nadiren bulunur. Hızlı bir metot, kötü koşullu verilerde daha az doğru sonuç verebilirken, daha istikrarlı bir yaklaşım hesaplama açısından daha fazla kaynak gerektirebilir. Platform, geliştiricilere bir seçenek sunmalıdır.

Özdeğer metotları, farklı bir problem sınıfını ele alır. Bunlar, kare matrislerin, simetrik ve Hermit matrislerin, sistem kararlılığının, spektral özelliklerin ve istatistik, optimizasyon ve modellemede kullanılan birçok hesaplama prosedürünün analizinde kullanılır.

MQL5 dokümantasyonunun OpenBLAS bölümü o zamandan beri genişlemeye devam ediyor. Bu önemli bir noktadır: OpenBLAS’ın entegrasyonu tek seferlik bir sürüm değil, devam eden bir geliştirme yönelimidir. Matris ve vektör metotları, matrix, matrixf, matrixc ve matrixcf olarak farklı matris türlerine uygulanabilen yeteneklerini giderek artırmaktadır.

Bir sonraki mantıklı adım, çözümlerin iyileştirilmesi, hata tahmini, sayısal kararlılığın artırılması ve ek çarpanlara ayırma metotlarını içermektedir. İşte sağlam bir matematiksel temel tam da bu şekilde oluşturulur: “hiçbir şeyden” “her şeye” bir anda atlayarak değil, giderek artan sayıda standart LAPACK problemini kademeli olarak kapsayarak.

Bu, Bir MQL Geliştiricisi İçin Neden Önemli?

Sıradan bir yatırımcı için OpenBLAS, matematikçiler, mühendisler ve bilimsel hesaplamalar için tasarlanmış bir kütüphane olarak, oldukça uzak bir kavram gibi görünebilir. Ancak MQL ekosisteminde, bu gelişmenin oldukça pratik sonuçları vardır.

Geliştiriciler, daha karmaşık modelleri doğrudan MQL5'te oluşturabilirler. Sadece bir göstergeyi çağırmak, iki değeri karşılaştırmak ve bir emir göndermek yerine, verileri diziler, vektörler ve matrisler olarak işleyebilirler. Ayrışma hesaplamaları yapabilir, denklem sistemlerini çözebilir, kararlılığı değerlendirebilir ve daha önce Python, C++ veya üçüncü taraf kütüphanelere aktarılması gereken metotları kullanabilirler.

Bu durum, Python, ONNX veya harici araçların artık kullanılmayacağı anlamına gelmez. Aksine, birbirlerini daha etkili bir şekilde tamamlamaya başlıyorlar. Python, araştırma, model eğitimi ve veri hazırlığı için son derece uygundur. ONNX, eğitilmiş bir modeli terminale aktarmak için kullanışlıdır. OpenBLAS, hesaplamaların platform içinde gerçekleştirilmesi gereken durumlar için MQL5’e sağlam bir sayısal temel sağlar.

Sonuç olarak, MetaTrader 5, kullanıcıların sadece işlem yapıp Uzman Danışmanları test edebilecekleri bir ortam olmanın ötesinde, tam kapsamlı bir hesaplama iş akışı oluşturabilecekleri bir ortama dönüşüyor:

  • Piyasa verilerini al;
  • Özellikleri ve matrisleri hazırla;
  • Bir ONNX modeli kullan;
  • Matris/Vektör kullanarak sayısal hesaplamalar yap;
  • Fikri Strateji Sınayıcıda test et;
  • Optimizasyonu paralelleştir;
  • Sonucu bir Uzman Danışman, gösterge veya hizmete entegre et.

İşte bu nedenle OpenBLAS, tek başına değil, önceki adımlarla birlikte değerlendirilmelidir: MQL5, MetaEditor, Python, ONNX, matrisler, vektörler ve AI Assistant.

Ajan Tabanlı AI Assistant, MCP ve OpenBLAS: Tek Bir Mühendislik Ortamının Üç Katmanı

İlk bakışta, ajan tabanlı AI Assistant, MCP ve OpenBLAS, platformun farklı bölümlerine ait gibi görünüyor. AI Assistant kullanıcının amacını işler, MCP modeli araçlara bağlar ve OpenBLAS sayısal algoritmaları çalıştırır. Ancak bunlar bir araya geldiğinde tutarlı bir hesaplama iş akışı oluştururlar.

AI Assistant, görevi formüle etmek ve parçalara ayırmaktan sorumludur: isteği anlamak, bir plan oluşturmak, eylemleri seçmek ve sonuçları yorumlamak. MCP, ajana terminale, MetaEditor’a, projelere, piyasaya, işlem geçmişine ve harici verilere kontrollü erişim sağlar. OpenBLAS, matris/vektör işlemleri, ONNX ve diğer teknolojiler, MQL5 programına modelin kendisini uygulamak için gereken hesaplama gücünü sağlar.

Eskiden geliştiriciler, düzenleyici, yardım dokümantasyonu, forum, Strateji Sınayıcı, bir Python not defteri ve harici kütüphaneler arasında manuel olarak geçiş yaparlardı. Şimdi, bu bağlam değişikliklerinden bazıları tek bir görev olarak tanımlanabilir: projeyi incelemek, kodu değiştirmek, programı derlemek, verileri hazırlamak, analizi yürütmek ve bir rapor hazırlamak. Ajan, derleyicinin, Strateji Sınayıcının veya matematik kütüphanesinin yerini almaz - bunları birbirine bağlar.

İşte bu nedenle MCP, dil modelinin kendisinden daha az önemli değildir. Özelleşmiş araçlar olmadan, ne kadar güçlü bir model olursa olsun, yine de sadece bir sohbet arkadaşı olarak kalır. MCP sayesinde, kullanıcı tarafından belirlenen izinler çerçevesinde kalarak platform içinde çalışma yeteneği kazanır.

Algo Forge: Kod, Bir Projeye Dönüşüyor

Modern bir mühendislik ortamı, ciddi bir geliştirme çalışması için vazgeçilmez olan başka bir katmana ihtiyaç duyar: sürüm kontrolü, değişiklik geçmişi, işbirliği ve projenin canlı bir depo olarak yayınlanması. MQL ekosistemi içinde, MQL5 Algo Forge bu rolü giderek üstlenmiştir.

Algo Forge’un öncülü, MetaEditor’a entegre edilmiş, MQL4/MQL5 kaynak kodları için bir çevrimiçi depo olan MQL5 Storage’dı. Bu, zaten önemli bir sorunu çözmüştü: geliştiriciler, kodlarını güvenli bir depoda saklayabilir, değişiklik geçmişini görüntüleyebilir, önceki sürümlere geri dönebilir ve ekip projeleri üzerinde doğrudan düzenleyiciden çalışabilirlerdi.

Ancak, önceki depo Subversion tabanlıydı ve artık güncelliğini yitirmişti. Mantığı, kaynak kodunu depolamak ve senkronize etmek için gayet iyi işliyordu; ancak modern yazılım geliştirme daha fazlasını gerektiriyor: yerel geçmiş, hızlı işlemler, deneme amaçlı dallar, değişikliklerin birleştirilmesi, çevrimdışı çalışma ve tek bir proje üzerinde birden fazla geliştirici arasında şeffaf işbirliği.

6 Haziran 2025’te, MetaTrader 5 yapı 5100 ile tamamen yeniden tasarlanmış bir kaynak kodu deposu kullanıma sunuldu: MQL5 Storage, Subversion’dan Git’e geçti ve aynı zamanda çevrimiçi proje yönetimi için yeni bir portal olan MQL5 Algo Forge kullanıma sunuldu.

Bu önemli bir dönüm noktasıdır. Kod Tabanı, “Hazır bir örneği nereden bulabilirim?” sorusuna yanıt verirken, Algo Forge ise farklı bir soruya yanıt veriyor: “Gelişim aşamasında olan bir projeyi nasıl yönetebilirim?” Karmaşık bir Uzman Danışman ya da kütüphane, artık tek bir MQ5 dosyasından ibaret değildir. Include dosyaları, test yapılandırmaları, parametre setleri, modeller, dokümantasyon, README dosyası, destek komut dosyaları, deney geçmişi ve çeşitli geliştirme dallarını içerebilir.

Git, bu tür kodlarla çalışma şeklinizi değiştirir. Bir geliştirici, yeni bir fikir için ayrı bir dal oluşturabilir, bunu Strateji Sınayıcıda test edebilir, değişiklikleri karşılaştırabilir, önceki bir duruma geri dönebilir, başarılı bir denemeyi ana sürüme birleştirebilir ve sonucu bir bulut deposuna gönderebilir. Proje geçmişi artık yazarın hafızasında ya da “final_new_2” gibi adlara sahip klasörlerde saklanmıyor. IDE’nin kendisinin bir parçası haline geliyor.

Algo Forge, buna bir sosyal boyut katıyor. Geliştiriciler, herkese açık projeleri inceleyebilir, yazarları takip edebilir, ekipler oluşturabilir, projeleri çatallayabilir, depoları klonlayabilir, dosyaları, commit’leri ve dalları görüntüleyebilir, dokümantasyon hazırlayabilir ve projeleri çevrimiçi olarak paylaşabilir. MQL ekosistemi açısından bu, tek tek kaynak kodu dosyalarını paylaşmaktan, tam teşekküllü bir işbirliğine dayalı geliştirme kültürüne geçiş anlamına geliyor.

Bu, özellikle makaleler ve eğitim materyalleri için önemlidir. Bir makaledeki kod, yalnızca bir arşivde veya ekli bir dosya kümesinde yer almamalıdır. Algo Forge'da bir proje olarak kurulabilir; net bir yapıya sahip, bir README.md dosyası içeren, değişiklik geçmişini koruyan ve okuyuculara sadece metin değil, aynı zamanda çalışır durumda bir giriş noktası da sunan bir proje. Makale konsepti açıklar, depo ise bunu uygulamalı olarak gösterir.

Böylece MetaEditor, rolünü bir kez daha genişletiyor. Başlangıçta kod yazmak ve derlemek için bir yerdi. Ardından dokümantasyon, projeler, hata ayıklama, profilleme, AI Assistant ve entegrasyonlar geldi. Artık tam teşekküllü bir Git iş akışı da bu resmin bir parçası oldu: geçmiş, dallar, commit’ler, senkronizasyon ve işbirliği.

Bu mantık çerçevesinde, Algo Forge ayrı bir “yan hizmet” değil, aynı geliştirme çizgisinin bir devamıdır. Bir MQL programı, tek bir grafikte çalışan basit bir Uzman Danışmandan, sürümleri oluşturulabilen, tartışılabilen, bir ekip tarafından geliştirilebilen, yayınlanabilen ve yıllarca sürdürülebilen bir mühendislik projesine dönüştü.

Uzman Danışmanlardan Mühendislik Ortamına

Geçmişin tamamına bakıldığında, MQL’nin gelişim süreci dikkat çekici bir tutarlılık sergiliyor.

İlk olarak Uzman Danışmanlar ortaya çıktı; bu, tam teşekküllü bir programlama dili bile henüz mevcut olmadan önceydi. Ardından ilk MQL ortaya çıktı: kısa bir dokümantasyon sayfası, birkaç değişken ve bir alım-satım stratejisini doğrudan terminalde çalıştırma imkanı. Daha sonra döngüler, diziler, veri türleri ve matematiksel fonksiyonlar ile MQL II takip etti. Özel göstergeler, dilin kullanım alanını Uzman Danışmanların ötesine genişletti.

MetaTrader 4, tüm bunları tek bir kitlesel pazar modelinde bir araya getirdi: terminal, MQL4, MetaEditor, dokümantasyon, Uzman Danışmanlar, göstergeler, komut dosyaları, kütüphaneler ve testler. MQL4.COM, topluluk, Kod Tabanı ve makaleleri ekledi. Şampiyonalar, otomatik alım-satımın herkese açık, rekabetçi ve geniş ölçekli olabileceğini ortaya koydu.

MetaTrader 5 ve MQL5, karmaşıklık düzeyini yükseltti. Nesne yönelimli programlama, yerel kod, standart kütüphane, yeni bir işlem modeli, geliştirilmiş Strateji Sınayıcı, bulut optimizasyonu ve MQL5.community, dili daha kapsamlı bir mühendislik aracına dönüştürdü.

Ardından MQL5 de MQL4’ün gelişimine katkıda bulundu: birleşik bir derleyici, birleşik bir MetaEditor, yeni bir dil, program koruması ve uygulamalar için Mağaza. Benimsenmiş bu kitlesel pazar ürünü, yeni bir teknolojik temele kavuştu.

MQL5 daha sonra geleneksel Uzman Danışmanların ötesine geçmeye başladı: OpenCL, özel semboller, .NET, hizmetler, ağ fonksiyonları, SQLite, DirectX, Python, ONNX, matrisler ve vektörler. Tüm bunlar, bir MQL programının ne olabileceğine dair kavramı giderek genişletti.

Ajan tabanlı AI Assistant, Model Bağlam Protokolü (MCP) ve OpenBLAS, bu hikayenin rastgele eklenmiş unsurları değildir. Bunlar, hikayenin mantıksal bir devamıdır; zira 2001 yılında bile açıkça görülen aynı ilkeye dayanmaktadırlar: kullanıcılara platform içinde daha fazla otonomi sağlamak.

O zamanlar, otonomi, bir Uzman Danışman yazabilme ve insan müdahalesi olmaksızın bir alım-satım işlemi gönderebilme yeteneği anlamına geliyordu. Günümüzde bunun anlamı çok daha geniş: bir ajana doğal dilde bir görev verme, MCP aracılığıyla araçlara kontrollü erişim izni verme, kod yazma ve derleme, harici bir makine öğrenimi modelini kullanma, sayısal lineer cebir işlemleri gerçekleştirme, sistemi geçmiş veriler üzerinde test etme ve MetaTrader altyapısında başlatma.

Sürümlerin Geçmişi Değil, Bir Fikrin Geçmişi

MQL’nin geçmişini uzun bir tarih, sürüm numaraları ve fonksiyon adları listesine dönüştürmek kolaydır. Ancak bu, asıl meseleyi gözden kaçırıyor.

Bu, bir sözdiziminin diğerinin yerini nasıl aldığına dair bir hikaye değildir. Bu, terminale giderek daha fazla menü öğesinin nasıl eklendiğiyle ilgili bir hikaye de değildir.

Bu, işlem platformunun bir geliştiricinin çalışmalarının giderek daha büyük bir kısmını kendi bünyesine nasıl dahil ettiğine dair bir hikayedir. İlk olarak Uzman Danışmanın yürütülmesi gerçekleşti. Ardından dil. Sonra düzenleyici. Daha sonra dokümantasyon, testler, Kod Tabanı, makaleler, şampiyonalar, Mağaza, bulut optimizasyonu, harici entegrasyonlar, makine öğrenimi, AI Assistant, sayısal lineer cebir ve Algo Forge aracılığıyla proje yönetimi.

Bu bakımdan, modern MetaEditor, eski bir Uzman Danışman düzenleme penceresinin basit bir devamı değildir. Bu, tüm MQL ekosisteminin entegrasyon noktasıdır: dil, dokümantasyon, projeler, hata ayıklama, profilleme, modeller, matematiksel metotlar, ajan tabanlı destek, MCP araçları ve işbirliğine dayalı geliştirme için Git altyapısı.

İşte bu nedenle, ilk Uzman Danışmanlardan, ajan tabanlı AI Assistant, MCP ve OpenBLAS’a uzanan bu yolculuk, birbirinden bağımsız olayların bir dizisi gibi değil, tek bir devamlı gelişim süreci gibi görünmektedir. MetaQuotes, en başından beri sadece piyasayı izlemek için bir terminal değil, bir alım-satım fikrinin programa, programın ise yönetilebilir bir mühendislik sürecine dönüştüğü bir ortam oluşturmaktadır.

Bu fikir, MQL’nin gelişimini yönlendirmeye devam ediyor.

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal makale: https://www.mql5.com/ru/articles/22768

Son yorumlar | Tartışmaya git (11)
Ryan L Johnson
Ryan L Johnson | 10 Ağu 2026 saat 21:29
fxsaber #:
Ama Marketwatch’ın 2001 sürümü neden bir saat dilimi gösteriyor ki?!
Muhtemelen, çoğu saat dilimi dönüşümü nihayetinde GMT'ye dayandığı için (yaz saati uygulaması nedeniyle) ve önceden iki kesin saat dilimini bilmeden saat dönüşümü yapmak bazı insanlar için zor olduğundan.
Aleksandr Slavskii
Aleksandr Slavskii | 11 Ağu 2026 saat 02:21
İyi yazılmış, okuması kolay ve ilginçti.
Wanateki Solutions LTD
Kelvin Muturi Muigua | 14 Ağu 2026 saat 14:53
Bu çok ilham verici bir makale. MetaQuotes kurucularının ve ekibinin uzun soluklu yolculuğu, vizyonu ve akıllı çalışmaları, MQL topluluğu ve yazarlarıyla birleşerek gerçekten olağanüstü bir şey yaratmaya devam ediyor. Yaşasın MQL!
Vladimir Perervenko
Vladimir Perervenko | 14 Ağu 2026 saat 18:35

Evet. Hatırlamak ilginçti. İnsanın hafızası tuhaf bir şeydir. Güzel şeyler çabucak unutulur, kötü olanlar ise uzun süre hafızaya kazınır. Gerçek parayla 600. sürüme yapılan stresli geçişi uzun süre hatırladım. Ayrıca o zamanlar R dilinin entegrasyonuna dair gerçekleşmeyen beklentiler de genel olarak canımı sıkmıştı. Tabii ki şimdi, zaman geçtikten sonra, topluluk, terminal ve dil açısından kaydedilen gelişmelere kıyasla bu önemsiz bir şey gibi görünüyor.

Uygulamaya konulan yapay zeka sistemlerine ilişkin ilk tepkiler ve sorulardan garip bir izlenim ediniliyor. Sunulan olanaklar, mevcut ihtiyaçların çok ötesinde.

Başarılar dilerim

Zhan Jin Yin
Zhan Jin Yin | 14 Ağu 2026 saat 20:46
Gerçekten de akılda kalıcı bir deneyim; o zamanlar sık sık gece geç saatlere kadar mesai yapan ben, gözümün önünden bir anda geçip giden o anılarla doluyum.
Yeni Raylara Adım Atın: MQL5'te Özel Göstergeler Yeni Raylara Adım Atın: MQL5'te Özel Göstergeler
Yeni terminalin ve dilin tüm yeni olanaklarını ve özelliklerini listelemeyeceğim. Bunlar sayısızdır ve bazı yenilikler ayrı bir makalede tartışılmaya değerdir. Ayrıca burada nesne yönelimli programlama ile yazılmış bir kod yoktur, geliştiriciler için ek avantajlar olarak bir bağlamda basitçe bahsedilemeyecek kadar ciddi bir konudur. Bu makalede, MQL4'e kıyasla göstergeleri, yapılarını, çizimlerini, türlerini ve programlama ayrıntılarını ele alacağız. Umarım bu makale hem yeni başlayanlar hem de deneyimli geliştiriciler için faydalı olacaktır, belki bazıları yeni bir şeyler bulacaktır.
Matrislerden Modellere: MQL5'te ML Veri Hattı Nasıl Oluşturulur ve ONNX'e Nasıl Dışa Aktarılır? Matrislerden Modellere: MQL5'te ML Veri Hattı Nasıl Oluşturulur ve ONNX'e Nasıl Dışa Aktarılır?
Makale, MetaTrader 5'te rollerin ayrıldığı koordine edilmiş bir makine öğrenimi (ML) veri hattının düzenlenmesini açıklamaktadır: Python, modeli eğitir ve ONNX'e dışa aktarır; MQL5 ise matris/vektör aracılığıyla normalleştirme ve PCA işlemlerini yeniden gerçekleştirir ve çıkarım yapar. Bu yaklaşım, modelin girdilerini kararlı ve doğrulanabilir hale getirir ve MetaTrader 5 strateji sınayıcı, sistem davranışını analiz etmek için ölçütler sağlar.
İşte Karışınızda Yeni MetaTrader 5 ve MQL5 İşte Karışınızda Yeni MetaTrader 5 ve MQL5
Bu MetaTrader 5 ile ilgili sadece kısa bir inceleme. Sistemin tüm yeni özelliklerini bu kadar kısa sürede açıklayamam, test süreci 09.09.2009’da başladı. Bu sembolik bir tarihtir ve şanslı sayı olacağına eminim. MetaTrader 5 terminalinin ve MQL5’in beta sürümünü beş gün önce aldım. Tüm özelliklerini deneme şansım olmadı ama şimdiden etkilendim.
MetaTrader 5'in Gücü: Birleşik Bir Ortamda Adım Adım Hata Ayıklamadan EX5 Korumasına MetaTrader 5'in Gücü: Birleşik Bir Ortamda Adım Adım Hata Ayıklamadan EX5 Korumasına
Bu makale, alım-satım algoritmalarının geliştirilmesine yönelik kapsamlı bir yaklaşımı incelemektedir: projenin kurulmasından ve mantık hatalarının giderilmesinden, bitmiş ürünün korunmasına kadar. MetaEditor'ın yerleşik araçlarını keşfedeceğiz: gerçek tikler kullanılarak adım adım hata ayıklama, performans profilleme ve hesaplamaları hızlandırmak için C++ DLL'leriyle doğrudan entegrasyon. Makalede ayrıca MQL5 Cloud Protector kullanılarak fikri mülkiyetin nasıl korunacağı da anlatılmaktadır. Açıklanan tekniklerin uygulanması, Uzman Danışman geliştirmeyi kaotik bir çözüm arayışından sistematik bir sürece dönüştürecek ve bir strateji geliştirmek için gereken süreyi önemli ölçüde azaltacaktır.