English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
MQL5 Cloud Network ile Hesaplamaları Hızlandırın

MQL5 Cloud Network ile Hesaplamaları Hızlandırın

MetaTrader 5Örnekler | 9 Aralık 2021, 12:41
137 0
MetaQuotes
MetaQuotes

MetaTrader 5'te Çok İş Parçacıklı Test

Yeni MetaTrader 5 alım satım platformunun tüm avantajlarını uzun süre sıralayabilir ve finansal piyasalarda teknik analiz ve alım satım için diğer programlardan daha iyi olduğunu iddia edebilirsiniz. Platform lehine tartışma götürmez bir argüman daha vardır. Ve bu son argüman, MetaTrader 5 İstemci Terminalinde Strateji Test Cihazıdır. Bu makalede, bunun harika özelliklerini tarif ediyor ve MetaQuotes Software Corp. geliştiricilerinin neden bu kadar gurur duyduğunu açıklıyoruz.

5. nesil istemci terminali, ticaret stratejilerini programlamak için yalnızca yeni, güçlü ve hızlı bir MQL5 diline sahip olmakla kalmayıp, aynı zamanda sıfırdan tasarlanmış tamamen yeni bir Strateji Test Cihazına da sahiptir. Test Cihazı, yalnızca geçmiş veriler üzerinde test edilen alım satım stratejilerinin sonuçlarını almak için kullanılmaz, aynı zamanda optimize edilmesini, yani optimum parametreleri bulmasını da sağlar.

Strateji optimizasyonu, bir alım satım stratejisinin, bağlı olduğu farklı parametre setleriyle aynı tarih aralığında birden çok çalışmasıdır. Bu, paralelleştirilebilen standart bir kütle hesaplama görevidir ve tahmin edebileceğiniz gibi - MetaTrader 5'teki test cihazı çok iş parçacıklıdır! Bunun aslında ne anlama geldiğini, şimdi standart dağıtım paketinden bir Uzman Danışman (EA) optimizasyon örneğinde göreceğiz.


Test Koşulları

Yukarıda belirtilen amaçlar için, Windows 7 64 bit ve MetaTrader 5 build 1075 İşletim Sistemine sahip Intel Core i7 (8 çekirdek, 3.07 GHz) ve 12 GB belleğe sahip bir bilgisayar kullanıyoruz.

Standart teslimat paketindeki Uzman Danışman Moving Average.mq5 aşağıdaki ayarlarla test edilir:

  • Sembol EURUSD H1
  • Test aralığı: 01.01.2011 ile 01.10.2011 arası
  • Fiyat simülasyon modu: 1 dakikalık OHLC (1 dakikalık çubuklarda Açılış, Yüksek, Düşük ve Kapanış fiyatları kullanılır)
  • Optimizasyon türü: yavaş tamamlama algoritması, toplam 14.040 geçiş
Optimize edilmiş parametreler:

Optimizasyon parametreleri


Yerel Aracılarda Optimizasyon

İlk olarak, optimizasyonu yerel aracılar üzerinde çalıştıralım. Sekiz test aracımız var - çekirdek sayısına göre en uygun sayı. Yerel ağdan uzak aracıların ve MQL5 Cloud Network’ün aracılarının kullanımını devre dışı bırakın:

Aracı gruplarını etkinleştirme/devre dışı bırakma

Optimizasyon sona erdikten sonra, Günlük adresine gidin: 8 yerel aracıda 14.040 geçiş 1 saat, 3 dakika ve 44 saniye sürdü.

2015.02.05 16:44:38	Statistics	locals 14040 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2015.02.05 16:44:38	Statistics	optimization passed in 1 hours 03 minutes 46 seconds
2015.02.05 16:44:38	Tester	optimization finished, total passes 14040


Yerel bir aracı çiftliği kullanarak optimizasyon

Paralel olarak daha fazla görev nasıl yapılır? Tabii ki, çok sayıda çekirdeğe sahip bir işlemci satın alabilirsiniz. Ancak bu, eşzamanlı görevlerin sayısını çarpmanıza izin vermez. Strateji Test Cihazı bu sorunu çözer. Yerel ağınızda kendi işleme aracıları çiftliğinizi oluşturabilirsiniz.


Bir aracı çiftliği nasıl oluşturulur?

Aracılar, yerel ağın her bilgisayarına yüklenmelidir. MetaTrader 5 bir bilgisayara kuruluysa, "Araçlar" menüsünden ilgili komutu kullanarak test aracıları yöneticisini açın.

Strateji Test Cihazı Aracıları Yöneticisi

Aksi takdirde, aracıları yönetmek için ayrı bir uygulama MetaTrader 5 Strateji Test Cihazı Aracısı indirin ve basit kurulum sürecini gerçekleştirin.

MetaTrader 5 Strateji Test Cihazı Aracısı

Yöneticide, Aracılar sekmesini açın:

  1. Kurulması gereken aracı sayısını seçin. Aracılar, mantıksal çekirdek sayısına göre kurulur. 
  2. Aracıları kullanım amacıyla bağlamak için kullanılacak parolayı girin.
  3. Bağlantı için bir dizi bağlantı noktası seçin.
  4. Ekle düğmesine tıklayın.

Hepsi bu kadar. Aracılar, yerel ağdaki diğer bilgisayarlardan kullanıma hazırdır.


Aracılarınızı nasıl bağlayabilirsiniz?

Aracılar sadece birkaç tıklamayla bağlanır. Terminalde strateji test cihazını açın ve "Aracılar" sekmesine gidin. "Yerel Ağ Çiftliği"ni seçin ve içerik menüsünden "Ekle" düğmesine tıklayın.

Uzak Aracıları Ekleme

En kolay ve en hızlı yol, bir dizi IP adresi ve bağlantı noktası için yerel ağı otomatik olarak taramaktır. Bunları seçin ve kurulum sırasında belirtilen aracı bağlantı parolasını girin.

LAN’da aracıları arama

"Bitir" düğmesine tıkladığınızda mevcut tüm aracılar test için hazır olacaktır.


Hız testi

8 yerel aracıya 20 uzak aracı ekledik. Böylece toplamda 28 aracımız var, bu da başlangıçta sahip olduğumuzdan 3,5 kat daha fazladır. Uzman Danışmanımızı (EA) optimize edelim ve bunun ne kadar hızlı gerçekleştirileceğini görelim.

02.05.2015 15:14:44 İstatistik yerel 3412 görev (%24), uzak 10628 görev (%75), bulut 0 görev (%0)
02.05.2015 15:14:44 İstatistik optimizasyonu 15 dakika 47 saniyede geçti
02.05.2015 15:14:44 Test cihazı optimizasyonu tamamlandı, toplam geçiş 14040

Görevlerin dörtte üçü uzak aracılar tarafından gerçekleştirildi. Optimizasyon süresi, neredeyse 4 kat daha hızlı olan 15 dakika 47 saniyeye düşürüldü.

Etkileyici bir hız artışı, ancak bu çözüm herkes için kullanılabilir değildir. Merak etmeyin. EA'yı daha da hızlı optimize etme fırsatı var - hadi MQL5 Cloud Network'ten aracıları kullanmayı deneyelim!


MQL5 Cloud Network’ü Kullanarak Optimizasyon

Bu sefer yerel aracılar kullanmıyoruz, bunun yerine yalnızca MQL5 Cloud Network aracılarını kullanıyoruz. "Başlat" düğmesine tıklayın ve optimizasyonun ilerlemesini izleyin. Video, süreci gerçek zamanlı olarak gösterir.


MQL5 Cloud Network ile optimizasyon süreci 150 kat daha hızlı!

Optimizasyon sırasında, MQL5 Cloud Network'ün her düğümü, görevleri (tek çalıştırmalar) mevcut aracılara dağıtır. Optimizasyon sadece 26 saniye sürdü ve 147 (!) kat hızlanma sağladı. Yatırımcıların makul bir sürede yüz binlerce optimizasyon geçişi yapması gerekebilir. MetaTrader 5 test cihazı ile MQL5 Cloud Network'teki hesaplamalar için sadece bir saate ihtiyacınız varken, ağ olmadan birkaç gün geçirirsiniz. Artık tek bir tıklama ile bir görevi çözmek için binlerce çekirdeği dahil edebilirsiniz. Ve bu, herkesin kullanımına açıktır! Fakat bu nasıl çalışıyor?


MQL5 Cloud Network Binlerce Bilgisayar İçerir

MQL5 Cloud Network, test aracılarının görevleri gerçekleştirmek için bağlandığı - özel olarak ayrılmış sunuculardan - düğümlerden oluşur. Bu düğümler, dünyanın dört bir yanındaki aracıları coğrafi konumlarına göre daha büyük havuzlarda birleştirdikleri için yöneticilerdir (havuzcular). Bekleme modunda olan her aracı, bir görevi gerçekleştirmeye hazır olduğunu bildiren bir mesaj gönderir. Bu tür mesajlar arasındaki aralık, MQL5 Cloud Network'ün mevcut yüküne bağlıdır.

Ağın her bir düğümü aynı zamanda MetaTrader 5 tarafından MQL5 Cloud Network’e bir erişim noktası olarak ele alınır; bir terminal bunlara MQL5.com hesap ayrıntılarını kullanarak bağlanır. MQL5 Cloud Network sunucularının listesi ve bunlar aracılığıyla kullanılabilen bulut aracılarının sayısı terminalde bulunabilir, Test Cihazı penceresi, "Aracılar" sekmesi.

Bir aracı, yerel bir bilgisayardan veya yerel ağdan alınan kendi yerel görevlerini yerine getirmekle meşgul değilse, boş, yani bekleme modundadır. Bir aracı meşgulken MQL5 Cloud Network'ten görev almaya çalışmaz. Yerel hesaplamaları tamamladıktan birkaç dakika sonra aracı, en yakın MQL5 Cloud Network düğümü ile iletişime geçer ve hizmetlerini sunar. Bu nedenle, test aracılarınız yalnızca ihtiyacınız olmadığında ağ üzerinde çalışır. Ve elbette, aracılar ağ üzerinde çizelge setine göre çalışır.

MetaTrader 5 Aracı Yöneticisinin kurulum kolaylığı ve minimum gerekli ayarları sayesinde, herhangi bir zamanda ağda binlerce test aracısı mevcuttur. MQL5 Cloud Network aracılarının ve tamamlanan görevlerin genel istatistikleri, projenin ana sayfasında https://cloud.mql5.com adresinde mevcuttur.


MQL5 Cloud Network Aracılarını Kullanarak Dağıtılmış Bilgi İşlem Çalıştırma

Geleneksel optimizasyonda olduğu gibi, tüm test seçeneklerini ve Uzman Danışmanın (EA) giriş parametrelerini ayarlamanız gerekir. Bundan önce, terminal ayarlarında MQL5.community oturum açma bilgilerinizi belirtmeyi ve MQL5 Cloud Network kullanımına izin vermeyi unutmayın. Gerekli dört adım aşağıdaki şekilde gösterilmiştir.

MQL5 Cloud Network kullanarak optimizasyon çalıştırma

"Başlat" düğmesine tıklayın ve optimizasyon işlemi başlar. Terminal, test aracıları için aşağıdakileri içeren bir görev hazırlar:

  • EX5 uzantılı derlenmiş bir Uzman Danışman (EA) dosyası
  • #property tester_indicator ve #property tester_library yönergeleri kullanılarak etkinleştirilen göstergeler ve EX5 kitaplıkları (bulutta DLL'lere kesinlikle izin verilmez)
  • #property tester_file yönergesi kullanılarak etkinleştirilen test için gerekli veri dosyaları
  • test/optimizasyon koşulları (finansal aracın adı, test aralığı, simülasyon modu vb.)
  • alım satım ortamı (sembol özellikleri, alım satım koşulları vb.)
  • tüm gerekli geçiş setini, yani görevleri oluşturan Uzman Danışman (EA) parametreleri seti

MetaTrader 5 terminali, MQL5 Cloud Network’ün düğümleriyle iletişim kurar ve her bir düğüme belirli geçişleri gerçekleştirmek için ayrı bir görev paketi verir. Her düğüm aslında bir proxy sunucusudur, çünkü bir görev ve bir geçiş paketi alır ve ardından bu görevleri kendisine bağlı aracılara dağıtmaya başlar. Bu durumda Uzman Danışmanların (EA) dosyaları, göstergeler, kitaplıklar ve veri dosyaları MQL5 Cloud Network sunucularının sabit sürücülerinde depolanmaz.

Ayrıca, EX5 dosyaları gizlilik nedeniyle bulut aracılarının sabit disklerinde depolanmaz. Veri dosyaları bir diske kaydedilir, ancak optimizasyondan sonra veri dosyaları silinir.

Bu, istemci terminaliniz ile MQL5 Cloud Network arasındaki iletişimin tüm prosedürüdür - aslında, ağa görev paketleri gönderir ve sonuçları bekler.


Bulutta Senkronizasyon ve Geçmişin Aracılara Dağıtılması

MQL5 Cloud Network'ün her düğümü, gerekli sembollerin geçmişini tutar ve talep üzerine kendisine bağlı aracılara gönderir. ABC aracısından XYZ sembolü geçmişi yoksa, düğüm gerekli geçmiş verilerini otomatik olarak terminalinizden indirir. Bu nedenle, terminaliniz bu tür bir hikaye sunmaya hazır olmalıdır.

MQL5 Cloud Network'e göndermeden önce bilgisayarınızda bir stratejinin ön tek testini çalıştırmanızı öneririz. Bu yaklaşım, bir alım satım sunucusundan gerekli tüm geçmişin otomatik olarak indirilmesini ve senkronizasyonunu sağlar.

Kural olarak, modern bir bilgisayara 4 ila 8 aracı kurulur, ancak geçmiş verileri MQL5 Strateji Test Cihazı Aracısı kurulum dizini tek bir klasörde depolanır. Bir MQL5 Strateji Test Cihazı Aracı yöneticisi tarafından kurulan tüm bulut aracıları, geçmişi bu klasörden alır. 8 aracı kuruluysa ve tümü MQL5 Cloud Network için kullanılabilir durumdaysa, gerekli geçmiş yalnızca bir kez indirilir. Bu, trafikten ve sabit disk alanından tasarruf etmenizi sağlar. Ayrıca, bulut aracıları ve dağıtılmış bilgi işlem ağının düğümleri arasında senkronizasyon gerçekleştirmek de uygundur.

Böylece, belirli bir zaman aralığında ve belirli bir sembol üzerinde bir alım satım stratejisinin optimizasyonunu gerçekleştiren tüm aracılara, otomatik olarak aynı senkronize geçmiş ve piyasa ortamı sağlanır.


Isınma

Optimizasyon, yerel bir bilgisayar optimizasyonunda nasıl çalışır? 8 çekirdeğiniz varsa, genellikle 8 varsayılan yerel aracı kullanımınıza sunulur. "Başlat" düğmesine tıkladığınızda, görevler yerel aracılara dağıtılır, gerekli olanlar indirilir (gerekirse) ve işlem başlar. Bu durumda optimizasyon neredeyse anında başlar. Ancak görevleri MQL5 Cloud Network'e dağıtırsanız prosedür biraz değişir.

Bulut aracıları ağ yöneticilerine kalıcı olarak bağlı değildir, teknik olarak gerekçeli değildir ve tüm nedenlerden dolayı maliyetlidir. Bunun yerine, aracılar düzenli aralıklarla MQL5 Cloud Network sunucularına kendileri için yeni görevler olup olmadığını sorar. Bu, gerekli sayıda aracının hızlı mobilizasyonunu sağlamak için yeterince sık ve ağ trafiğini bu tür mesajlarla aşırı yüklememek için yeterince nadir meydana gelir. Böylece optimizasyonu çalıştırdığınızda, görevlerinizin yerine getirilmesine bağlanan aracıların sayısındaki artışı görebilirsiniz. Bu, bulut aracılarının MQL5 Cloud Network'e nasıl eriştiğinin ve belirli geçişler için görevleri nasıl aldığının gerçek zamanlı sürecidir.

Görev yoksa, aracılar yöneticilerle oldukça nadiren iletişim kurar. Ama binlerce (on binlerce) görevin hesaplanması için bir emir gelirse, resim değişir. MQL5 Cloud Network'ün etkinliğinin arttığını ve görevi tamamladıktan sonra yeni görevler için aracıların uygulama sayısının azaldığını söyleyebiliriz. Ve örneğin Avrupa'dan bir görevi tamamladıktan sonra, Asya'dan diğer görevler için bir emir gelirse, ağ hızlı bir başlangıç için hazır olacaktır. Ağın bu davranışına "ısınma" diyebilirsiniz.

Hesaplamaları MQL5 Cloud Network'te Çalıştırma

Böylece MQL5 Cloud Network, bunları mümkün olan en kısa sürede gerçekleştirmek için yeni görevleri kabul etmeye yeniden hazır olur.


MQL5 Cloud Network’ü kullanın!

"Vakit nakittir" ifadesi her geçen yıl daha da güncel hale geliyor ve önemli hesaplamalar için onlarca saat hatta günlerce beklemeyi göze alamayız. Bu yazının yazıldığı sırada MQL5 Cloud Network, hesaplamaların yüz kat artmasını sağlıyor. Daha da artmasıyla, zamandaki kazanç bin kat veya daha fazla büyüyebilir. Ek olarak, dağıtılmış bilgi işlem ağı, yalnızca strateji optimizasyon görevlerini çözmenize izin vermez.

MQL5'te büyük matematiksel hesaplamalar uygulayan ve çok fazla CPU kaynağı gerektiren bir program geliştirebilirsiniz. MetaTrader 5 terminali için programların yazıldığı MQL5 dili, C++'ya çok yakındır ve diğer üst düzey dillerde yazılmış algoritmaları kolayca çevirmenize olanak tanır.

MetaTrader 5 terminali test cihazının önemli bir özelliği, büyük giriş değişkenleri setleriyle çözümler bulmayı amaçlayan zor matematiksel görevlerin test aracıları arasında kolayca paralelleştirilmesidir. Ve bunun için herhangi bir özel kod yazmanıza gerek yoktur - sadece dağıtılmış bilgi işlemin MQL5 Cloud Network’üne bağlanın!

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

MQL5'te Kendi Grafik Panellerinizi Oluşturun MQL5'te Kendi Grafik Panellerinizi Oluşturun
MQL5 programının kullanılabilirliği hem zengin fonksiyonu hem de ayrıntılı bir grafik kullanıcı arayüzü ile belirlenir. Görsel algı bazen hızlı ve istikrarlı çalışmadan daha önemlidir. Standart Kitaplık sınıfları temelinde kendi başınıza ekran panelleri oluşturmanız için adım adım bir kılavuzu aşağıda bulabilirsiniz.
Özel Grafik Kontrolleri. Kısım 3. Formlar Özel Grafik Kontrolleri. Kısım 3. Formlar
Bu, grafik kontrollere ayrılmış üç makalenin sonuncusudur. Ana grafik arayüz bileşeninin - form - oluşturulmasını ve diğer kontrollerle birlikte kullanımını kapsar. Kontrol kitaplığına form sınıflarının yanı sıra CFrame, CButton, CLabel sınıfları eklenmiştir.
Nesne Yönelimli Programlamanın Temelleri Nesne Yönelimli Programlamanın Temelleri
Nesne yönelimli programlamayı (OOP) kullanmak için polimorfizm, kapsülleme vb.'nin ne olduğunu bilmenize gerek yok... basit şekilde bu özellikleri kullanabilirsiniz. Bu makale, uygulamalı örneklerle OOP'nin temellerini kapsar.
Özel Grafik Kontrolleri. Kısım 2. Kontrol Kitaplığı Özel Grafik Kontrolleri. Kısım 2. Kontrol Kitaplığı
"Özel Grafik Kontrolleri" serisinin ikinci makalesi, bir program (Uzman Danışman (EA), komut dosyası, gösterge) ve bir kullanıcı arasındaki etkileşimde ortaya çıkan temel sorunları ele almak için bir kontrol kitaplığını tanıtmaktadır. Kitaplık çok sayıda sınıfı (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) ve bunların kullanım örneklerini içerir.