Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 986
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
OnInit() içinde, sembolün zaman serilerine bir çağrı yapın: iTime(Symbol,Timeframe,1);
OnTick()'te, en başta, en azından aynı if( iTime(Symbol,Timeframe,10)==0) return;
Daha sonra danışman yeni bir çubuk tanımına ulaşmayacak ve bir sonraki onay işaretini bekleyecektir.
OnInit()'te, zaman serisi verilerini istedik, böylece veri sayfalamayı etkinleştirdik.
OnTick()'te, EA için gerekli minimum geçmişin kullanılabilirliğini kontrol ederiz ve henüz mevcut değilse, bir sonraki onay için beklemeye bırakırız.
Ve EA tarafından istenen tüm veriler alınana kadar bir sonraki onay işaretini beklemeye devam edecektir.
Gerekli tüm veriler indirilip alınır alınmaz EA, yeni bir çubuk ve ihtiyaç duyduğu geçmişle çalışmaya başlayacaktır.
Seri verileri güncel tutmak için en az iki dakikada bir erişim sağlamak gerekir. Yaklaşık bir buçuk dakika (90 saniye) için ikinci bir zamanlayıcı yapın ve içindeki istenen sembolün herhangi bir zaman serisine bakın, örneğin iTime(Symbol,Timeframe,1); Alınan verileri kontrol etmeden - sadece hikayeyi "taşıyın". Ardından sembol üzerindeki tüm veriler her zaman güncel olacaktır.
Tabii ki, tüm TF'ler için yeni bir çubuğu kontrol etme seçeneğini deneyeceğim, ancak eşzamanlı olarak olmuyor mu, MT4 değil. Ve sorun barda değil, göstergeden çağrılan göstergelerin çalışmamasında ve bu da EA'dan çağrılıyor.
Bir dakika çalışıyorum, bu yüzden fikre göre hikaye her zaman alakalı olmalı.
Ve tüm bu kontrolleri test için yapıyoruz, ancak gerçek hayatta sadece işi yavaşlatacaklar, çünkü her şey test cihazının sabit koşullarında olduğundan daha yavaş çalışıyor, göstergenin gerçek bir hesapta doğru çalıştığını tekrar ediyorum.
Problemi bu şekilde çözerken, ana koda başlamadan önce başarısız olan göstergelerin hazır olup olmadığını kontrol ettim.
Ancak bu yaklaşım evrensel değildir, çünkü tüm göstergeler nasıl listelenmelidir, test cihazının ortamının doğru çalışmasını sağlamak için daha evrensel başka bir yöntem var mı?
OnTick()'te, EA için gerekli minimum geçmişin kullanılabilirliğini kontrol ederiz ve henüz mevcut değilse, bir sonraki onay için beklemeye bırakırız.
Ve EA tarafından istenen tüm veriler alınana kadar bir sonraki onay işaretini beklemeye devam edecektir.
Gerekli tüm veriler indirilip alınır alınmaz EA, yeni bir çubuk ve ihtiyaç duyduğu geçmişle çalışmaya başlayacaktır.
Tarihin kullanılabilirliğini nasıl kontrol etmeyi önerirsiniz, bir şey anlamadım ...
Bu satırı MQL4 işlevinden önce ekleyin
ve MT5'te çalışacak.
Parlak. Çok teşekkürler!
Bana MT5'te bu tür düğmeleri uygulayabileceğinizi söyleyin, belki birileri zaten kodu paylaşmıştır ...
Kayma ve yeniden fiyat teklifi sağlayın.
Merhaba, CSymbolInfo sınıfından Ask and Bid fiyatlarında aşağı yukarı açıksa, o zaman örneğin, SessionInterest veya SessionBuyOrdersVolume veya SessionPriceLimitMin nasıl alınır, Sıfır verir, nedenini anlayamıyorum ...
Merhaba, CSymbolInfo sınıfından Ask and Bid fiyatlarında aşağı yukarı açıksa, o zaman örneğin, SessionInterest veya SessionBuyOrdersVolume veya SessionPriceLimitMin nasıl alınır, Sıfır verir, nedenini anlayamıyorum ...
Ticaret sunucusu bu bilgiyi yayınlarsa, alırsınız.
Kural olarak, bu bilgiler Brokerlar tarafından hisse senedi sembolleri için yayınlanır (Broker ve işlem merkezlerini karıştırmayın).
Ticaret sunucusu bu bilgiyi yayınlarsa, alırsınız.
Kural olarak, bu bilgiler Brokerlar tarafından hisse senedi sembolleri için yayınlanır (Broker ve işlem merkezlerini karıştırmayın).
Broker Açılışı, RTS Endeks Vadeli İşlemleri, en az SessionPriceLimitMin ve SessionPriceLimitMax yayınlaması gerektiğini düşünüyorum (çünkü anladığım kadarıyla açılış fiyatlarında piyasa emirlerinde kullanılıyorlar). Açılış gerçekten tercüme etmiyor mu ... Örneğin şunu yazıyorum:
Print(m_symbol.Ask()," ",m_symbol.SessionBuyOrdersVolume()); - danışmanınızdan
Dergide yalnızca Ask fiyatları alıyorum
Mevcut TF'ye kadar herhangi bir TF'de herhangi bir kayma ile son çubuğun tarihini doğru bir şekilde belirleyecek bir kod parçası yazmak için yardım istiyorum.
Böyle bir kod genellikle çalışır, ancak yalnızca mevcut çubuğun başlangıç zamanı gerçek (en yakın dakikaya yuvarlanmış) çubukla çakışırsa, mevcut grafiğim M1 olduğundan. Ve eşleşmezse, farklı TF'lere bağlı olarak çeşitli olaylar ortaya çıkar. Örneğin, son M1 çubuğunun son saatteki başlangıç tarihini bulmam gerekiyor, eğer 12 saat ise sorun yok, saat 12:59 ve 13 saat ise, o zaman saat Saatlik çubuk 14:00'te ve 14:05'te açılmadığından ve iBarShift işlevi en yakın çubuğu 14:00'a yani 13:59'a döndürdüğünden zaten 13:58 olacaktır.
Eklendi: bunu yaptım, işe yarıyor gibi görünüyor
Broker Açılışı, RTS Endeks Vadeli İşlemleri, en az SessionPriceLimitMin ve SessionPriceLimitMax yayınlaması gerektiğini düşünüyorum (çünkü anladığım kadarıyla açılış fiyatlarında piyasa emirlerinde kullanılıyorlar). Açılış gerçekten tercüme etmiyor mu ... Örneğin şunu yazıyorum:
Print(m_symbol.Ask()," ",m_symbol.SessionBuyOrdersVolume()); - danışmanınızdan
Dergide yalnızca Ask fiyatları alıyorum