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
ArrayInitialize kodu çalışmıyor; döngünün yorumunu kaldırırsanız, her şey yolunda demektir.
Ve sınıftaki değişkenleri ve global düzeydeki göstergeyi aynı isimlerle bildirirken bir uyarı çıkıyor.
Hafta sonu, tık yokken, demo hesaplarındaki göstergede hata ayıkladım, son derlemede MT5 terminalinin iki örneğini çalıştırdım, ancak farklı şirketlerden: MetaQuotes ve EGlobal. Ayarlar her yerde aynı. Emin olmak için çevrimdışı olarak kontrol ettim, bu yüzden kene faktörü hariç tutuldu.
Sorun, farklı şirketlerin farklı terminallerindeki en basit "gösterge altı" kodunun (tam teşekküllü ve daha karmaşık bir göstergeden bahsetmiyorum bile) sonucun farklı bir miktarını göstermesidir:
1. Eglobal . 2. Meta alıntılar .
Her iki terminali de tamamen boşalttım (bellekteki işlemler için Görev Yöneticisi aracılığıyla kontrol ettim), tekrar yükledim ve her iki kodu da yeniden derleme durumunda. Sonunda - değişiklik yok.
MathRound() , 4 ve 5'te farklı çalışır, ancak aynı olmalıdır.
4. kod:
5. kod:
MathRound(), 4 ve 5'te farklı çalışır, ancak aynı olmalıdır.
4. kod:
5. kod:
Sorun burada:
bu değer 4-ke ve 5-ke'de farklı şekilde yuvarlanır.
Burada olması gerektiği gibi şaşırtıcı bir şey yok.
Test kesintiye uğrarsa MT5 neden siparişlerin geçmişini vb. kaydetmiyor? MT4'e kaydedildi.
Ayrıca, test tablosundan siparişlerin geçmişinde herhangi bir konumlandırma yoktur - büyük düşüşler alanındaki siparişleri grafiğe tıklayarak görüntülemek uygun oldu.
İyi akşamlar.
Lütfen bana SLeep() yönteminin nasıl çalıştığını açıklayabilir misiniz?
Fikre göre Uzman Danışmanı belli bir süre askıya almalı yoksa yanılıyor muyum?
{for (int uyku=0;uyku<10000;uyku++)
if ( BarsCalculated (Handle)>=o_bars_reoptimate)
{ Print(BarsCalculated(Tutamak)); kırmak; } başka Uyku(100);}
Bu koda göre şu sonucu bekliyorum - Belirli bir göstergenin Hesaplanan çubuk sayısı belirli bir değerin üzerine çıkarsa döngü kesintiye uğrar; Aksi takdirde, 100ms miktarında daha fazla kod yürütme Gecikmesi olur. Toplam olası toplam gecikme 100*10000 ms'dir....Göstergeyi hesaplamak için yeterli süre. O zaman kod neden çalışmaya devam ediyor? (bu döngüyü takip eder) Veya test cihazında bu işlev benim varsaydığım gibi çalışmıyor. Açıklamalar için şimdiden teşekkürler.
İyi akşamlar.
Lütfen bana SLeep() yönteminin nasıl çalıştığını açıklayabilir misiniz?
Fikre göre Uzman Danışmanı belli bir süre askıya almalı yoksa yanılıyor muyum?
{for (int uyku=0;uyku<10000;uyku++)
if (BarsCalculated(Handle)>=o_bars_reoptimizate)
{ Print(BarsHesaplanan(Tutamak)); kırmak; } başka Uyku(100);}
Bu koda göre şu sonucu bekliyorum - Belirli bir göstergenin Hesaplanan çubuk sayısı belirli bir değerin üzerine çıkarsa döngü kesintiye uğrar; Aksi takdirde, 100ms miktarında daha fazla kod yürütme Gecikmesi olur. Toplam olası toplam gecikme 100*10000 ms'dir....Göstergeyi hesaplamak için yeterli süre. O zaman kod neden çalışmaya devam ediyor? (bu döngüyü takip eder) Veya test cihazında bu işlev benim varsaydığım gibi çalışmıyor. Açıklamalar için şimdiden teşekkürler.
Beynin çıngırağı, örneğin CopyBuffer gibi belgelerden kaynaklanır: " Gösterge değerlerini başka bir diziye ( gösterge arabelleği değil) kısmen kopyalamak gerekiyorsa, bu amaçlar için bir ara dizi kullanmak gerekir. gerekli miktarda kopyalanır. Ve bu aracı diziden, istenen sayıda değerin alıcı dizide istenen yerlere eleman-eleman kopyalanmasını üretmek için. "
Buffer_num'a açıkça atıfta bulunuluyorsa, o zaman kesinlikle ilk önce alıcı diziyi bir veya başka bir sıra numarası altındaki gösterge arabelleğiyle SetIndexBuffer aracılığıyla, büyük olasılıkla INDICATOR_CALCULATIONS kisvesinde bağlama ihtiyacı anlamına gelir. Ancak " gösterge değerlerinin kısmi bir kopyasını başka bir diziye (gösterge arabelleği değil) yapmak gerekirse ", o zaman herhangi bir buffer_num söz konusu olamaz, çünkü bu bir gösterge değildir ve tanım gereği yapmadık. herhangi bir şeye bağla.
Çelişki mi?
belirsizlik?
Yoksa tamamen programlanmış mıyım?
Gösterge arabelleğinin net bir tanımını kendi başıma bulmaya çalıştım ama bulamadım. SetIndexBuffer aracılığıyla bağlantılı mı, yoksa bu yeterli değil mi ve ID INDICATOR_DATA olan bir dizi olması gerekiyor mu?