Hatalar, hatalar, sorular - sayfa 460

 
voix_kas :

EA, göstergeye erişim gerektirir. Bunu en az üç şekilde alabilirsiniz: IndicatorCreate(...) veya iCustome(...) veya standart bir gösterge ise, örneğin, iMA(...).

Anladığım kadarıyla, herhangi bir seçeneği kullanırken, alınan tanıtıcıyı (IndicatorRelease) açıkça serbest bırakmalısınız.

Soru, göstergeyi aramanın yolunu seçmektir. Her yöntemin artıları ve eksileri nelerdir? İşlem hızına öncelikli ilgi.

IndicatorCreate - standart göstergeler için, bu nedenle bir el hareketi durumunda, bunlar iMA'yı çağırmanın analoglarıdır. iCustom - "özel" özel göstergeler için. Onlar. temelde farklı şeyler.

iMA ve IndicatorCreate(IND_MA) arama hızı karşılaştırılabilir olmalıdır, ancak test etmedim.

IndicatorRelease ile ilgili olarak - hesaplamadan sonra artık bu türkiye'ye dönmeniz gerekmiyorsa aramak mantıklıdır. Böyle durumlarım yok - eğer bir tür hindi gerekiyorsa (belirli bir parametre seti ile), o zaman yeniden hesaplama/yeniden hesaplama için gerekli olacak ve komut dosyası giriş parametreleri değişirse, her şey yeniden başlatılacak ve yeni tutamaçlar yaratılacak.

 

Aslında, vakaların %99'unda IndicatorRelease çağrısı bir programcının mantıksal hatasıdır.

Gösterge oluşturmak, çok derin hesaplama mekanizmalarını tetikleyen en pahalı işlemlerden biridir. Gösterge tutamağını kapatmaya çalışmak, uygulamasının gerçek derin süreçlerini düşünüyorsanız, aynı zamanda çok pahalı bir işlemdir. Göstergelerin sık sık oluşturulması ve kapatılması, geliştiricinin işlemlerin özünü hiç anlamadığını gösterir.

Bunu anlamak çok basit.

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
 
Renat :

Aslında, vakaların %99'unda IndicatorRelease çağrısı bir programcının mantıksal hatasıdır.

Gösterge oluşturmak, çok derin hesaplama mekanizmalarını tetikleyen en pahalı işlemlerden biridir. Gösterge tutamağını kapatmaya çalışmak, uygulamasının gerçek derin süreçlerini düşünüyorsanız, aynı zamanda çok pahalı bir işlemdir. Göstergelerin sık sık oluşturulması ve kapatılması, geliştiricinin işlemlerin özünü hiç anlamadığını gösterir.

Bunu anlamak çok basit.

Sohbete müdahale edeyim ve şunu söyleyeyim: programın mekanizmaları, terminal, forex (aslında neden buradayız)

basit gerçeklerdir, bu yüzden onları anlamamızı ve ruble biçmemizi engeller - veya satacağımız programları,

ve bunu yapmanın bir yolu yoksa, o zaman bir "mucize" olana kadar sessiz kalmalısınız!

 
Im_hungry :

Sohbete müdahale edeyim ve şunu söyleyeyim: programın mekanizmaları, terminal, forex (aslında neden buradayız)

basit gerçeklerdir, bu yüzden onları anlamamızı ve ruble biçmemizi engeller - veya satacağımız programları,

ve bunu yapmanın bir yolu yoksa, o zaman bir "mucize" olana kadar sessiz kalmalısınız!

Anlaşılmaz bir düşünce akışının güzel bir örneği. Zaten kıskançlık bu tür yeteneklerden alıyor.
 
Renat :
Anlaşılmaz bir düşünce akışının güzel bir örneği. Zaten kıskançlık bu tür yeteneklerden alıyor.

Muhtemelen seviye 80 Jedi, Usta Yoda sessizce kenarda meditasyon yapıyor :)

Ve “bu durumda evsiz çocuklara yardım ettiler” (c) 12 sandalyenin altını kazamazsınız.

 

Çok uzun zaman önce, çalışma kodum derlemeyi durdurdu.

Standart kitaplıktaki koda yemin eder:

'GetLastError' - ambiguous call to overloaded function with the same parameters SymbolInfo.mqh  718     10
'GetLastError' - ambiguous call to overloaded function with the same parameters	SymbolInfo.mqh	725	57
Muhtemelen kodumda olduğu gerçeğinden dolayı:
 #import "kernel32.dll"
uint GetLastError ();
#import
.....
kernel32:: GetLastError () 
.... 

Programımın tekrar çalışması için bunu nasıl "sindirebilirim"? Yeni MQL yapısında neyin değiştiğini tam olarak anlamıyorum.

İçe aktarılan işlevler yerleşik işlevlerle aynı ada sahip olamaz mı? O zaman nasıl yaşanır?

 
7134956 :

Programımın tekrar çalışması için bunu nasıl "sindirebilirim"? Yeni MQL yapısında neyin değiştiğini tam olarak anlamıyorum.

sadece içine bir parametre ekleyin

 #import "Kernel32.dll"
uint GetLastError ( int );
#import
 
sergeev :

sadece içine bir parametre ekleyin

Teşekkür ederim! Yardım etmiş gibi görünüyor. Ancak bir şekilde gereksiz olan bir parametreyi geçmek bir koltuk değneğidir.
 
Bunu bir özellik veya bir otomatik hata olarak düşünelim.
 
sergeev :
Bunu bir özellik veya bir otomatik hata olarak düşünelim.

Çıkarıp yeniden adlandırarak ayrı bir kitaplığa sarabilirsiniz.

Ayrıca adlandırılmış boşluklar istemeyi deneyebilirsiniz, ancak muhtemelen işe yaramaz.