- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnInit
Fonksiyon, Init olayı meydana geldiğinde göstergeler ve uzman danışmanlarda çağrılır. Çalışan bir MQL5 programını başlatmak için kullanılır. Fonksiyon için iki seçenek vardır.
Sonucu geri döndüren versiyon
int OnInit(void); |
Geri dönüş değeri
int tip değeri sıfır, başarılı başlatma anlamına gelmektedir.
INIT_FAILED geri döndürüldüğünde, Uzman Danışman grafikten zorla kaldırılır.
INIT_FAILED geri döndürüldüğünde, gösterge grafikten kaldırılmaz. Grafik üzerinde kalan gösterge çalışmaz - olay işleyicileri göstergede çağrılmaz.
Gerçekleşim sonucunu geri döndüren OnInit() çağrısı sadece program başlatmasına izin verdiği için değil, ayrıca programın erken sonlandırılması durumunda hata kodunu geri döndürdüğünden dolayı kullanım için önerilmektedir.
Sonuç geri dönüşü olmayanversiyon sadece eski kodlarla uyumluluk için bırakılmıştır. Kullanım için önerilmemektedir
void OnInit(void); |
Not
Init olayı, bir uzman danışmanı veya bir indikatörü yükledikten hemen sonra oluşturulur. Olay, komut dosyaları için oluşturulmaz. OnInit() fonksiyonu bir MQL5 programını başlatmak için kullanılır. Eğer OnInit() int tipi geri dönüş değerine sahipse, sıfırdan farklı geri dönüş kodu, başarısız başlatma anlamanına gelmektedir ve REASON_INITFAILED sonlandırma neden kodu ile Deinit olayını oluşturur.
Void tipinin OnInit() fonksiyonu her zaman başarılı başlatma anlamına gelmektedir ve kullanım için önerilmemektedir.
Uzman danışman girdilerini optimize etmek için ENUM_INIT_RETCODE listesindeki değerleri bir geri dönüş kodu olarak kullanılması önerilir. Bu değerler, en uygun test temsilcilerinın seçimi de dahil olmak üzere, optimizasyon işlemi yönetimini oragize etmeyi amaçlanmaktadır. Testi çalıştırmadan önce uzman danışman başlatması sırasında, TerminalInfoInteger() fonksiyonunu kullanarak temsilci yapısı ve kaynakları (çekirdek sayısı, serbest bellek miktarı vb.) hakkında verileri talep edebilirsiniz. Elde edilen verilere dayanarak, test temsilcisinin kullanılmasına izin verebilir veya onu uzman danışman optimizasyonunu yapmasından yasaklayabilirsiniz.
Tanımlayıcı |
Açıklama |
---|---|
INIT_SUCCEEDED |
Başlatma başarılı, uzman danışman testi devam ettirilebilir. Bu kod sıfır değeri ile aynı anlamdadır – test aygıtındaki uzman danışman başlatımı başarılıdır. |
INIT_FAILED |
Başlatma başarısızdır. Kaçınılmaz hatalardan dolayı teste devam etmenin bir anlamı yoktur. Örneğin, uzman danışman işleyişi için gerekli bir gösterge oluşturmak imkansızdır. Bu değerin geri dönüşü sıfırdan farklı bir değerin geri dönüşü ile aynı anlamdadır – test aygıtındaki uzman danışman başlatımı başarısızdır. |
INIT_PARAMETERS_INCORRECT |
Bir programlayıcı tarafından yanlış bir girdi parametre kümesini belirtmek için tasarlanmıştır. Genel optimizasyon tablosunda, bu geri dönüş kodlu sonuç dizisi kırmızı olarak vurgulanacaktır. Bu gibi bir uzman danışman girdiler kümesi için bir test gerçekleştirilmemiştir . Temsilci, yeni bir görev almak için hazırdır. Bu değer alındığında, strateji sınayıcısı bu görevi tekrar gerçekleşimi için diğer temsilcilere aktarmaz. |
INIT_AGENT_NOT_SUITABLE |
Başlatma sırasında herhangi bir program gerçekleşim hatası yoktur. Ancak, bazı nedenlerden dolayı, temsilci, testi yürütmek için uygun değildir. Örneğin, yeterli RAM yoktur, OpenCL desteği yoktur, vb. Bu kodun geri dönüşü ile, temsilci bu optimizasyonun sonuna kadar artık görev almayacaktır. |
Strateji sınayıcısında INIT_FAILED/INIT_PARAMETERS_INCORRECT i geri döndüren OnInit() i uzman danışmanları optimize ederken kullanmanın dikkate alınması gereken bazı alışılmadık durumları vardır:
- OnInit() fonksiyonunun INIT_PARAMETERS_INCORRECT ı geri döndürmesini içeren parametrelerin kümesi, test için uygun kabul edilmez ve genetik optimizasyon sırasında bir sonraki popülasyonu elde etmek için kullanılmaz. Çok fazla "atılmış" parametre seti, en uygun uzman danışman parametrelerini ararken yanlış sonuçlara yol açabilir. Arama algoritması, optimizasyon kriteri fonksiyonunun düzgün olduğunu ve tüm girdi parametrelerinde boşluk olmadığını varsayar.
- Eğer OnInit() fonksiyonu INIT_FAILED değerini geri döndürürse, bu, bir sınamanın başlatılamayacağı ve uzman danışmanın temsilcinin belleğinden kaldırılacağı anlamına gelir. Uzman danışman, yeni bir parametre seti ile bir sonraki geçişi gerçekleştirmek için tekrar yüklenir. Sonraki optimizasyon geçişini başlatmak, TesterStop()'ı çağırmaktan çok daha fazla zaman alır.
Bir uzman danışman için örnek OnInit() fonksiyonu
//--- girdi parametreleri
|
Ayrıca bakınız
OnDeinit, Olay yönetimi fonksiyonları, Program yürütme, Müşteri terminali olayları, Değişkenlerin başlatılması, Nesneleri oluşturma ve silme