Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 225
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
Bu ne anlama geliyor? Biraz daha açabilir misiniz?
Kontrol etmek için zamanım oldu: evet, hile başarısız oldu, görsel ve görsel olmayan için ChartID()=12345...(test edenin sabit bir ChartID'si).
Ancak ChartGetInteger(ChartID(),CHART_WIDTH_IN_PIXELS) ekran yoksa dürüst bir -1 verir. Bunu fiziği belirlemek için kullanabilirsiniz - bir şeyin çıktısını almak için bir yer olup olmadığını. Çünkü çok fazla bayrak var ve VPS'de ne olduğunu hiç bilmiyoruz
Bir başka ani MQL nüansı - sanal yöntemler kuruculardan çağrılmaz.
kod içinde
bunu böyle yapamazsınız :-)) Ana sınıfın OnAttach'ı yapıcıdan çağrılacaktır; Ve normal erişim sırasında - çocuk sınıfın.
bunu anlayamazsınız, ezberlemeniz gerekir :-)
MQL'in bir başka ani nüansı - sanal yöntemler kuruculardan çağrılmaz.
kod içinde
bunu böyle yapamazsınız :-)) Ana sınıfın OnAttach'ı kurucudan çağrılacaktır; Ve normal erişim sırasında - çocuk sınıfın.
anlayamazsınız, ezberlemek zor undasınız :-)
Bunu anlamak neden imkansız? Sanal yöntemler tablosundaki bir yöntemin işaretçisinin başlatılması yapıcıda gerçekleşir. Önce ana sınıfın yapıcısı, ardından ardıl sınıfın yapıcısı çağrılır. Buna göre, ana sınıf kurucusunun gövdesi çalıştırıldığında, sanal yöntemler tablosunda işaretçi temel sınıf yönteminin adresini gösterir.
NOT. Bu, C++ öğrenmeniz gerekip gerekmediğine dair ebedi cholivar içindir. Eğer çalışırsanız, her şeyin özüne inerseniz ve tıkıştırmazsanız, bu tür şeyler kendiliğinden ortaya çıkar).
Bunu anlamak neden imkansız? Sanal yöntemler tablosundaki bir yöntemin işaretçisinin başlatılması yapıcıda gerçekleşir. Önce ana sınıfın yapıcısı, ardından ardıl sınıfın yapıcısı çağrılır. Buna göre, ana sınıf kurucusunun gövdesi çalıştırıldığında, işaretçi sanal yöntemler tablosundaki temel sınıf yönteminin adresini gösterir.
NOT. Bu, C++ öğrenip öğrenmemeniz gerektiği konusundaki ebedi tartışma içindir. Eğer çalışırsanız, bir şeylerin özüne inerseniz ve tıkıştırmazsanız, bu tür şeyler kendiliğinden ortaya çıkar).
Her şeyin mümkün olduğu senaryolardan sonra, "bir kurucunun sanal olamaması" biraz şaşırtıcıdır :-))
Her şeyin mümkün olduğu senaryolardan sonra, "bir kurucunun sanal olamaması" biraz şaşırtıcı :-)
Sizin "sorununuz" için böyle bir çözüm var: https: //habr.com/ru/post/64369/.
NOT. Elbette tam olarak aynı değil, ancak genel bir düşünce yönü olarak
Her şeyin mümkün olduğu senaryolardan sonra, "bir kurucunun sanal olamaması" biraz şaşırtıcı :-)
Beklenmedik mi?
HiLow::OnAttach'ın çağrıldığını düşünün. HiLow'da yeni alanlar olsaydı ve OnAttach bunları okusaydı, "başlatılmamış değişkenlerin kullanımı" olurdu (çünkü HiLow kurucusu henüz çalışmaya başlamadı).
POSITION_TIME_UPDATE yalnızca bir pozisyonun lotunun değiştirilmesiyle ilgilidir. Örneğin, herhangi bir hesap türünde bir pozisyonun kısmi olarak kapatılması veya netleştirmede yeniden doldurulması.
SL/TP seviyelerindeki değişiklikler POSITION_TIME_UPDATE'i etkilemez.
Başka bir deyişle, POSITION_TIME_UPDATE yalnızca İşlem Geçmişi - işlemlere yansıtılan değişikliklerden etkilenir. SL/TP seviyeleri bu tür değişikliklere ait değildir, bu nedenle onları etkilemezler.
Evet, gerçekten de gerçek bir hesapta öyle.
Ancak Uzman Danışmanı oluşturduktan sonra, test cihazında deniyorum ve test cihazında SL / TP seviyelerindeki değişikliklerin POSITION_TIME_UPDATE'i etkilediği ortaya çıkıyor.
İşte günlüklerden bir alıntı.
Burada pozisyon açma zamanını sarı renkle ve ardından (bir sonraki tikte) SL ve TP'yi değiştirme (yerleştirme) zamanını kırmızı renkle vurguladım. Sonra POSITION_TIME ve POSITION_TIME_UPDATE zamanlarını yazdırmayı kullanarak kontrol ediyorum -bunlar farklı.
SL ve TP modifikasyonunun aynı saniye içinde olduğu durumlarda, POSITION_TIME ve POSITION_TIME_UPDATE süreleri elbette aynıdır.
Bilgi için teşekkürler!
Emirler kısmen uygulandığında ORDER_TIME_SETUP_MSC alanı değişir.
Sonuç olarak, DEAL_TIME_MSC, siparişinin ORDER_TIME_SETUP_MSC 'sinden daha az olabilir.
Örnek.