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
Burada pratik bir sorum var.
CopyBuffer () 'ın her çağrısında gösterge tutamacının devre dışı olup olmadığını kontrol etmek neden gereklidir? EA'mda bu prosedürü bir kez yaptım (ilk işaretin gelmesiyle, veri senkronizasyonunu kontrol ettikten sonra) ve daha sonra 4807 Hatasıgösterge tanıtıcısı hatası almaya başladım. CSymTotal=7. Tanıtıcılar bir dizi halinde alındı:
Yazdırma kontrolü, yedi H_Ind[0..6] değerinin hepsinin sırasıyla 10..15 değerlerine sahip olduğunu, yani -1'den farklı olduğunu gösteriyor. Tutamaçlar geçerli görünüyor, ancak CopyBuffer(H_Ind[0-6]...) komutuna yanıt olarak CopyBuffer=-1, LastError=4807(!!!) alıyorum.Bazen normal gidiyor, bazen de hata veriyor.Bu makaledeki gibikontroller getirdikten sonra,
şu ana kadar her şey düzgün çalışıyor. Gizem.
Benim hatamın ne olduğunu anlamıyorum.... Ve en önemlisi, CopyBuffer () işlevini her kullandığımda tutamacın geçerliliğini kontrol etmek ve yeniden oluşturmakneden gerekli? Uzman Danışman işini bitirene kadar kaydedilmiyor mu? Bu genel olarak bir gereklilik mi yoksa sadece örneğin rahatlığı için mi?
Burada pratik bir sorum var.
CopyBuffer () 'ın her çağrısında gösterge tutamacının devre dışı olup olmadığını kontrol etmek neden gereklidir? EA'mda bu prosedürü bir kez yaptım (ilk işaretin gelmesiyle, veri senkronizasyonunu kontrol ettikten sonra) ve daha sonra 4807 Hatasıgösterge tanıtıcısı hatası almaya başladım. CSymTotal=7. Tanıtıcılar bir dizi halinde alındı:
Yazdırma kontrolü, yedi H_Ind[0..6] değerinin hepsinin sırasıyla 10..15 değerlerine sahip olduğunu, yani -1'den farklı olduğunu gösteriyor. Tutamaçlar geçerli görünüyor, ancak CopyBuffer(H_Ind[0-6]...) komutuna yanıt olarak CopyBuffer=-1, LastError=4807(!!!) alıyorum.Bazen normal gidiyor, bazen de hata veriyor.Bu makaledeki gibikontroller getirdikten sonra,
şu ana kadar her şey düzgün çalışıyor. Gizem.
Benim hatamın ne olduğunu anlamıyorum.... Ve en önemlisi, CopyBuffer () işlevini her kullandığımda tutamacın geçerliliğini kontrol etmek ve yeniden oluşturmakneden gerekli? Uzman Danışman işini bitirene kadar kaydedilmiyor mu? Bu bir gereklilik mi yoksa sadece örneğin rahatlığı için mi?
Genel olarak, soru daha geniş bir şekilde formüle edilmelidir:
Maksimum hız koşullarında (bir döngü içinde) yedi (on) enstrümanda şimdi ihtiyacım olan(!) 400(0) gösterge değerlerini GARANTİLİ olarak elde etmek için CopyBuffer()'dan ÖNCE ve SONRA hangi kontroller, koşullar veya gecikmeler getirilmelidir?
Çünkü, return(0) = "ah, şey, şimdi işe yaramadı, belki bir dahaki sefere işe yarar...".
İşte, bu arada, Copy'nin geri kalanı bunun yanında ...
NOT. Belki de zaten konu dışıdır. Soru yazar için değil, açıklığa kavuşturabilecek herkes için...
Örneklerimde koşul şu şekildedir: tanıtıcı geçerliyse, verileri kopyalamaya devam ederiz. değilse, göstergeyi yeniden oluştururuz ve göstergenin hesaplanması zaman aldığından bu işlevden çıkarız. aynı şey kopyalamada da olur, kopyalama sırasında gösterge yeniden hesaplanabilir, bu nedenle CopyBuffer () -1 döndürür, veriler hazır olur olmaz işlev işini yapar, bu yüzden hepsini kontrol etmek gerekir.
Evet, Sergey, anlıyorum. Makaleye ya da yazara gölge düşürmek istememiştim. Makale mükemmel. Bu bir şikayet değil, bir cevap bulma çabası. Bu konuda bulabildiğim en yakın tartışma bu. Muhtemelen siz de cevabı daha doğru bir şekilde bilmek istersiniz, değil mi? )
Belki de bunu ayrı bir başlığa koymalıyız?
Belki ayrı bir başlık açabilirsiniz?
https://www.mql5.com/ru/forum/1880.
Burada, konuya koyun. Sergey, makalenin kapsamı dışına çıktığım için özür dilerim. Memnun olacağım...)))
Birinin Para Yönetimi için 20 yöntem verebilmesini diliyorum !!!!!!
Bu makale için fikir çok iyi. Ancak OOP ve genel olarak programlama kavramını unutmuşsunuz: ÖZETLİLİK. Fonksiyonlarınızın içinde sabit kodlanmış göstergeler, mevcut sembol, mevcut periyot, gösterge parametreleri var. Fikir iyi, ancak tam olarak uygulanmıyor, mükemmellikten uzak. Örneğin - her biri farklı bir zaman diliminden ve farklı sembollerden gösterge çizgilerinin geçişini kontrol etmek istiyorum - bu bir. İkincisi - terminal geçici olarak sunucuyla bağlantısını kaybederse ve işlediğiniz üç çubuğu kaçırırsa işlevlerinize ne olur? Bir sinyal vardır - ancak giriş kaçırılmıştır. Bir sinyal araması bir ŞARJ ile yapılmalıdır. Ardından sinyalin daha önce işlenip işlenmediği kontrol edilmelidir. O kadar çok kesişme noktası bulabilirsiniz ki kendiniz de şaşıracaksınız. Parametreleri (gösterge numarası, sembol, zaman dilimi, arama başlangıcı, arama sonu, gösterge satırı...) fonksiyonlara aktarmak yeterlidir. - ve sisteminizi daha esnek hale getireceksiniz ve Uzman Danışman, insanlar için erişilemez olanı görebilecek - farklı sembollerin ve farklı zaman dilimlerinin çizgilerinin kesişimi. Bu, burada verilen işlevlerden çok daha iyidir. Ayrıca değişkenleri adlandırma kavramını da çözmeniz gerekir - hiçbir şey ifade etmeyen adlara sahip çok az değişkeniniz var - ancak bu ayrı bir konudur. Buna programlama stili denir. Herkesin kendi tarzı vardır. Ancak MT4'te kullanmaya çalıştığım kavramlara yavaş yavaş yaklaştığınızı görüyorum - bu çok cesaret verici.
Bu makale için fikir çok iyi. Ancak OOP ve genel olarak programlama kavramını unutmuşsunuz: ÖZETLİLİK. Fonksiyonlarınızın içinde sabit kodlanmış göstergeler, mevcut sembol, mevcut periyot, gösterge parametreleri var. Fikir iyi, ancak tam olarak uygulanmıyor, mükemmellikten uzak. Örneğin - her biri farklı bir zaman diliminden ve farklı sembollerden gösterge çizgilerinin geçişini kontrol etmek istiyorum - bu bir. İkincisi - terminal geçici olarak sunucuyla bağlantısını kaybederse ve işlediğiniz üç çubuğu kaçırırsa işlevlerinize ne olur? Bir sinyal vardır - ancak giriş kaçırılmıştır. Bir sinyal araması bir ŞARJ ile yapılmalıdır. Ardından sinyalin daha önce işlenip işlenmediği kontrol edilmelidir. O kadar çok kesişme noktası bulabilirsiniz ki kendiniz de şaşıracaksınız. Parametreleri (gösterge numarası, sembol, zaman dilimi, arama başlangıcı, arama sonu, gösterge satırı...) fonksiyonlara aktarmak yeterlidir. - ve sisteminizi daha esnek hale getireceksiniz ve Uzman Danışman, insanlar için erişilemez olanı görebilecek - farklı sembollerin ve farklı zaman dilimlerinin çizgilerinin kesişimi. Bu, burada verilen işlevlerden çok daha iyidir. Ayrıca değişkenleri adlandırma kavramını da çözmeniz gerekir - hiçbir şey ifade etmeyen adlara sahip çok az değişkeniniz var - ancak bu ayrı bir konudur. Buna programlama stili denir. Herkesin kendi tarzı vardır. Ancak MT4'te kullanmaya çalıştığım kavramlara yavaş yavaş yaklaştıklarını görüyorum - bu çok cesaret verici.