Hatalar, hatalar, sorular - sayfa 279

 
Rosh :
Numara.
Bu nedenle, eşzamanlı erişim düzenlenemez: (((
 
Olegts :
Bu nedenle, eşzamanlı erişim düzenlenemez: (((

MT5'te top bayrağı ile açılan dosyanın MT4 dahil diğer herhangi bir program için mevcut olması mümkündür.

Burada nasıl yapıldığını görün.

Not: Dosya MT4'te zaten açıksa, topun bayrağı MT5'i sorunsuz bir şekilde açmasına izin verecektir. MT4'ün her zamanki gibi çalıştığı ve MT5'in diğer programların kendisi tarafından açılmış bir dosyayı kullanmasına veya paylaşım bayrağı olmayan biri tarafından açılan bir dosyayı açmasına izin verebileceği ortaya çıktı.

 
Urain :

MT5'te top bayrağı ile açılan dosyanın MT4 dahil diğer herhangi bir program için mevcut olması mümkündür.

Burada nasıl yapıldığını görün.

Teşekkürler şimdi bakacağım...
 
Olegts :
Teşekkürler şimdi bakacağım...
Baktım, MT5 yazıyor ve MT4 okuyor, çalışıyor, ancak MT4 yazarsa, MT5 artık okuyamaz, çünkü dosya kilitli, her durumda başaramadım ...
 
Yardımda, veri türü açıklaması bölümünde şöyle yazıyor:

Bu bağlamda, böyle bir karşılaştırma doğru olmadığı için, eşitlik için iki gerçek sayının birbiriyle karşılaştırılması kategorik olarak önerilmez.

Ve özel bir karşılaştırma yöntemi önerilmiştir.

Hala eşitlik için iki gerçek sayıyı karşılaştırmanız gerekiyorsa, o zaman şunları yapabilirsiniz:

Ancak sonuçta, daha fazla \ daha az işlem yardımıyla bile gerçek sayıları karşılaştırmanın tavsiye edilmediği mantıklı bir sonuç çıkar, çünkü Yukarıda söylenenler anlamında böyle bir işlem, yalnızca özel bir yöntem kullanılarak, kontrol edilen değerlerin makine sıfırı anlamında eşit olmadığı önceden doğru bir şekilde belirlendiğinde doğrudur.

Onlar. gerçek sayılar için > ve < operatörlerinin de saf formlarında kullanılamayacağı ortaya çıktı. Her şeyi doğru anladım mı ve eğer öyleyse yardıma uygun bir yorum girebilir miyim?


Ancak, örneğin > gibi bir işlem yalnızca eşitsizlik için doğru bir denetimden sonra kullanılabilirse, >= için bir denetim nasıl organize edilir? Algoritmanın daha da karmaşık olması gerekiyor, yani. önce özellikleri kontrol edin. eşitlik için işlev, sonra özel. eşitsizlik işlevi (> kullanmadan önce)?


Belki birileri zaten tüm karşılaştırma durumları için ve her iki tür çift ve kayan nokta için bir kitaplık geliştirmiştir? Çift tip için bir şeyler çizdim - ne kadar doğru bilmiyorum:

 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на равенство двух вещественных чисел типа double
bool EqualDoubles( const double d1, const double d2)
   {  
       const double epsilon= 2.2204460492503131 e- 016 ; //DBL_EPSILON
       if (d1-d2>epsilon) return false ;
       if (d1-d2<-epsilon) return false ;
       return true ;
   }
// Конец функции проверки на равенство двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на неравенство двух вещественных чисел типа double
bool NotEqualDoubles( const double d1, const double d2)
   {      
       return !EqualDoubles(d1, d2);
   }
// Конец функции проверки на неравенство двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на меньшинство первого из двух вещественных чисел типа double
bool LessDoubles( const double d1, const double d2)
   {  
       if (NotEqualDoubles(d1, d2)&&(d1<d2))
      {
         return true ;
      }
       return false ;
   }
// Конец функции проверки на меньшинство первого из двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на большинство первого из двух вещественных чисел типа double
bool GreaterDoubles( const double d1, const double d2)
   {  
       if (NotEqualDoubles(d1, d2)&&(d1>d2))
      {
         return true ;
      }
       return false ;
   }
// Конец функции проверки на большинство первого из двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на меньшинство первого или равенство двух вещественных чисел типа double
bool LessEqualDoubles( const double d1, const double d2)
   {  
       if (LessDoubles(d1, d2)||EqualDoubles(d1, d2))
      {
         return true ;
      }
       return false ;
   }
// Конец функции проверки на меньшинство первого или равенство двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на большинство первого или равенство двух вещественных чисел типа double
bool GreaterEqualDoubles( const double d1, const double d2)
   {  
       if (GreaterDoubles(d1, d2)||EqualDoubles(d1,d2))
      {
         return true ;
      }
       return false ;
   }
// Конец функции проверки на большинство первого или равенство двух вещественных чисел типа double

PS, önceden hesaplanmışsa==0 yine her zamanki gibi çalışır. yüzen böcek?

 

Tünaydın!

Alım satım sinyalleri modülünde özel bir gösterge kullanmam gerekiyor.

Bunu yapmak için, anladığım kadarıyla, örnekte olduğu gibi, bu göstergenin nesnesine "göstergelerin toplanması (zaman serisi?)" için bir işaretçi eklemeniz gerekiyor:

indicators.Add( GetPointer (m_MA)))

burada m_MA, CiMA sınıfının bir nesnesidir.

iCustom ve IndicatorCreate işlevleri, oluşturulan göstergenin tanıtıcı numarasının tamsayı değerini döndürür, ancak anladığım kadarıyla bu göstergenin bir nesnesine ihtiyacım var.

Bana durumdan nasıl çıkacağımı söyle ???

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 
lVlaxim :

Tünaydın!

Alım satım sinyalleri modülünde özel bir gösterge kullanmam gerekiyor.

Bunu yapmak için, anladığım kadarıyla, örnekte olduğu gibi, bu göstergenin nesnesine "göstergelerin toplanması (zaman serisi?)" için bir işaretçi eklemeniz gerekiyor:

burada m_MA, CiMA sınıfının bir nesnesidir.

iCustom ve IndicatorCreate işlevleri, oluşturulan göstergenin tanıtıcı numarasının tamsayı değerini döndürür, ancak anladığım kadarıyla bu göstergenin bir nesnesine ihtiyacım var.

Bana durumdan nasıl çıkacağımı söyle ???

Anladığım kadarıyla CiCustom'a dayalı kendi gösterge nesnenizi yazmalısınız (CiMA'nın nasıl yazıldığına benzer).

Ben böyle hindilerle çalışmadığım için detaylı bir tavsiyede bulunamam ama sanırım çözersiniz ya da insanlar size özel bir uygulama söylerler.

not

Bu arada geliştiriciler lütfen CiCustom ile ilgili bölüme örnekler ekleyin...

 
-Alexey- :

Ve özel bir karşılaştırma yöntemi önerilmiştir.

Ancak sonuçta, daha fazla \ daha az işlem yardımıyla bile gerçek sayıları karşılaştırmanın tavsiye edilmediği mantıklı bir sonuç çıkar, çünkü Yukarıda söylenenler anlamında böyle bir işlem, yalnızca özel bir yöntem kullanılarak, kontrol edilen değerlerin makine sıfırı anlamında eşit olmadığı önceden doğru bir şekilde belirlendiğinde doğrudur.

Belki de sorunun özünü tam olarak anlamadım, ancak "<" işlemi kullanılarak iki gerçek sayı karşılaştırılırsa ve kontrol edilen gerçek sayılar "makine sıfırı anlamında eşittir", o zaman " <" işlemi yalnızca false döndürür ve bu kadar. Ne anlama gelecek: "ilk gerçek sayı ikinci gerçek sayıdan daha az değil".
 
lVlaxim :

Tünaydın!

Alım satım sinyalleri modülünde özel bir gösterge kullanmam gerekiyor.

Bunu yapmak için, anladığım kadarıyla, örnekte olduğu gibi, bu göstergenin nesnesine "göstergelerin toplanması (zaman serisi?)" için bir işaretçi eklemeniz gerekiyor:

burada m_MA, CiMA sınıfının bir nesnesidir.

iCustom ve IndicatorCreate işlevleri, oluşturulan göstergenin tanıtıcı numarasının tamsayı değerini döndürür, ancak anladığım kadarıyla bu göstergenin bir nesnesine ihtiyacım var.

Bana durumdan nasıl çıkacağımı söyle ???

Şimdilik bu dosyayı örnek alın.

CsignalCustomMACD sınıfı, standart dağıtımdan göstergenin "özel" sürümü üzerine inşa edilmesi dışında, CsignalMACD sınıfıyla kesinlikle aynıdır.

Uzmanın kaynak koduna aşağıdaki satırı eklemeyi unutmayın:

 #property tester_indicator "Examples\MACD.ex5"

aksi takdirde test cihazında çalışmayacaktır.

Göstergeler\Örnekler klasöründe MACD.ex5 dosyası yoksa, göstergenin derlenmesi gerekir.

Yakın gelecekte yardıma bir örnek eklenecektir.

Dosyalar:
 
Yedelkin :
Belki de sorunun özünü tam olarak anlamadım, ancak "<" işlemi kullanılarak iki gerçek sayı karşılaştırılırsa ve kontrol edilen gerçek sayılar "makine sıfırı anlamında eşittir", o zaman " <" işlemi yalnızca false döndürür ve bu kadar. Ne anlama gelir: "ilk gerçek sayı, ikinci gerçek sayıdan daha az değildir".
Bu mantıklı olurdu, ancak şimdi ">" ("<" kontrol etmedi) işlemi "makine sıfırı anlamında eşit" bu tür sayılar için doğru sonucu döndürebilir. Etki bulundu. sayısal hesaplamanın sonucunun, böyle bir etkinin bir sonucu olarak ve özel kullanıldıktan sonra teorik olarak daha mümkün olduğu ortaya çıktı. daha yüksek olan işlevler - doğru hale geldi. Bu nedenle, sertifikaya bir ek eklemeyi öneriyorum.
Neden: