Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 18
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ve size sormama izin verin, neden statik ?
Bağlamdan çıkarıldığı için - orijinal gönderiye bakın.
OnInit() işlevinin belgelenmiş bir özelliği değildir, bu işlev programın herhangi bir bölümünde çalıştırılabilir. Test kodu.
sonuç
...
OnInit() işlevinin belgelenmiş bir özelliği değildir, bu işlev programın herhangi bir bölümünde çalıştırılabilir. Test kodu.
Tüm Açık işlevler sıradan işlevlerdir ve buna göre herhangi bir zamanda çağrılabilirler. Ya OnCalculate ya da OnTradeTransaction.
Tüm Açık işlevler sıradan işlevlerdir ve buna göre herhangi bir zamanda çağrılabilirler. Ya OnCalculate ya da OnTradeTransaction.
ama belgelerde yazmıyor
OnInit
OnInit() işlevi, Init olayının işleyicisidir. void veya int türünde olabilir , parametresi yoktur:
geçersiz OnInit ();
Başlatma olayı, bir Uzman Danışman veya gösterge yüklendikten hemen sonra oluşturulur; bu olay komut dosyaları için oluşturulmaz. Başlatma için OnInit() işlevi kullanılır. OnInit() bir int dönüş değerine sahipse, sıfır olmayan bir dönüş kodu başlatma başarısızlığını gösterir ve REASON_INITFAILED başlatmadan kaldırma neden koduyla bir Deinit olayı oluşturur .
Expert Advisor'ın giriş parametrelerini optimize etmek için dönüş kodu olarak ENUM_INIT_RETCODE numaralandırmasındaki değerlerin kullanılması önerilir. Bu değerler, en uygun test ajanlarının seçimi de dahil olmak üzere optimizasyon sürecinin yönetimini organize etmeye yöneliktir. Expert Advisor'ın başlangıcında, testin kendisinin başlamasından önce bile, TerminalInfoInteger() işlevini kullanarak aracının yapılandırması ve kaynakları (çekirdek sayısı, boş bellek, vb.) hakkında bilgi talep edebilirsiniz. Ve alınan bilgilere dayanarak, bu Uzman Danışmanı optimize ederken bu test aracının kullanımına izin verin veya reddedin.
ENUM_INIT_RETCODE
tanımlayıcı
Tanım
INIT_SUCCEDED
Başlatma başarılı oldu, Expert Advisor'ı test etmeye devam edebilirsiniz.
Bu kod, sıfır değeriyle aynı anlama gelir - Expert Advisor'ın test cihazında başlatılması başarılı olmuştur.
INIT_FAILED
Başarısız başlatma, ölümcül hatalar nedeniyle teste devam etmek mantıklı değil. Örneğin Expert Advisor'ın çalışması için gerekli olan bir indikatörün oluşturulması mümkün olmamıştır.
Bu değerin döndürülmesi, sıfır olmayan bir değerin döndürülmesiyle aynı anlama gelir - Test cihazında Expert Advisor'ın başlatılması başarısız oldu.
INIT_PARAMETERS_YANLIŞ
Programcının yanlış bir dizi giriş parametresini göstermesi amaçlanmıştır; genel optimizasyon tablosunda, böyle bir dönüş koduna sahip sonuç satırı kırmızı ile vurgulanacaktır.
Bu uzman parametre seti için test yapılmayacaktır, aracı yeni bir görev almakta serbesttir.
Bu değer alındığında, strateji test cihazının bu görevi yeniden yürütme için diğer aracılara aktarmaması garanti edilir.
INIT_AGENT_NOT_SUITABLE
Başlatma sırasında programda herhangi bir hata olmadı, ancak bu aracı nedense test için uygun değil. Örneğin yeterli RAM yok , OpenCL desteği yok vb.
Bu kod döndükten sonra, aracı bu optimizasyonun sonuna kadar artık iş almayacak.
Void türündeki OnInit() işlevi her zaman başarılı başlatma anlamına gelir.
ama belgelerde yazmıyor
OnInit
OnInit() işlevi, Init olayının işleyicisidir. void veya int türünde olabilir , parametresi yoktur:
geçersiz OnInit ();
Başlatma olayı, bir Uzman Danışman veya gösterge yüklendikten hemen sonra oluşturulur
Bunun bir fonksiyon olduğunu söylüyor.
OnInit'ten önce ve OnDeinit'ten sonra, global nesnelerin yapıcılarına/yıkıcılarına hala çağrılar var (Yardım'da yanlışlık). Bu nedenle, örneğin, OnInit olmadan göstergelerdeki gösterge arabelleklerini bildirmek mümkündür. İlkeler böyle.
Dizi daha küçükse, renklerin yalnızca bir kısmı iletilir. Dizi daha büyükse, kesilir.
Genişlik ve stil dizileri için ilke aynıdır.
Aşırı yüklenmiş (yukarıya bakın) HistoryDealSelect, OrderSendSync'te çağrılır.
Son pozisyonun açılma zamanını, son pozisyonun kapanma zamanını nasıl belirleyebilirsiniz?
Ve genel olarak, mql5'deki açık/kapalı pozisyonlar hakkında bilgi elde etmek için genel prensipleri ve algoritmaları bilmek istiyorum.
Nelere dikkat edilmesi gerekiyor, şu anda hangi özellikler var?
Son pozisyonun açılma zamanını, son pozisyonun kapanma zamanını nasıl belirleyebilirsiniz?
Ve genel olarak, mql5'deki açık/kapalı pozisyonlar hakkında bilgi elde etmek için genel prensipleri ve algoritmaları bilmek istiyorum.
Nelere dikkat edilmesi gerekiyor, şu anda hangi özellikler var?
Bütün bunlar, siparişlerin ve işlemlerin geçmişinin seçimi ve daha sonra siparişlerin özelliklerinin okunmasıyla belirlenir.
POSITION_IDENTIFIER
Pozisyon Kimliği, her yeni açılan pozisyona atanan ve kullanım ömrü boyunca değişmeyen benzersiz bir numaradır. Pozisyonu açan sipariş biletine karşılık gelir.
Pozisyon kimliği, onu açan, değiştiren veya kapatan her siparişte (ORDER_POSITION_ID) ve anlaşmada (DEAL_POSITION_ID) belirtilir. Bir pozisyonla ilişkili siparişleri ve anlaşmaları aramak için bu özelliği kullanın.
Netleştirme modunda bir pozisyon tersine çevrildiğinde (tek bir giriş/çıkış anlaşması ile), pozisyon kimliği POSITION_IDENTIFIER değişmez. Ancak aynı zamanda POSITION_TICKET, iptalle sonuçlanan siparişin bileti olarak değiştirilir. Riskten korunma modunda pozisyonun tersine çevrilmesi sağlanmaz.
uzun
Ve enumdaki özellikleri kullanarak ENUM_DEAL_ENTRY
DEAL_ENTRY_IN
Market girişi
DEAL_ENTRY_OUT
Pazar çıkışı
DEAL_ENTRY_INOUT
tersine çevirme
DEAL_ENTRY_OUT_BY
Zıt pozisyonla kapanış