Mql4 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 17

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2019.02.20 07:26

Fiyatlar, tüm Test Cihazı modlarında normalleştirilmemiştir!

Hafifçe söylemek gerekirse, bu bir Tester hatasıdır.


Bunun Doğum modu için de geçerli olup olmadığı - bilmiyorum.

 

Konu dışıysa özür dilerim (dilin gelişimini takip ettiğimi söyleyemem), bu satırın tam olarak ne işe yaradığını açıklar mısınız?

 #property strict

Açıklayacak.

İki (MT'de aynı) fiyatı karşılaştıran böyle bir komut dosyası var.

 #property strict

void OnStart ()
{
   const int Total = OrdersHistoryTotal ();
   int Prices1, Prices2;
   
   double open_price, close_price;
   OrderSelect ( "37027330" , SELECT_BY_TICKET , MODE_HISTORY );
   open_price = OrderOpenPrice ();
   close_price = OrderClosePrice ();

   Print (open_price);
   Print (close_price);
   Print (open_price-close_price);
   
   return ;
}

MT'de fiyatlar eşittir, ancak fark sıfır değildir (yukarıda belirtildiği gibi).

Bu satır ( #property strict) kaldırılırsa, fark sıfırdır.

Niye ya?

 
Dmitry Rannev :

Konu dışıysa özür dilerim (dilin gelişimini takip ettiğimi söyleyemem), bu satırın tam olarak ne işe yaradığını açıklar mısınız?

Açıklayacak.

İki (MT'de aynı) fiyatı karşılaştıran böyle bir komut dosyası var.

MT'de fiyatlar eşittir, ancak fark sıfır değildir (yukarıda belirtildiği gibi).

Bu satır ( #property strict) kaldırılırsa, fark sıfırdır.

Niye ya?

" #property strict" yalnızca mql4 ile kullanışlıdır. mql5 ile bu işe yaramaz çünkü "katı" mod her zaman doğrudur.
 
Alain Verleyen :
" #property strict" yalnızca mql4 ile kullanışlıdır. mql5 ile bu işe yaramaz çünkü "katı" mod her zaman doğrudur.

MT4'ten bahsediyoruz. Burada yukarıda normalleşme sorunu tartışıldı. Neden bazı fiyatların MT4'te eşit olduğunu, ancak karşılaştırıldığında eşit olmadığını anlamaya çalışıyoruz. Bu bir devamıdır.

 
Dmitry Rannev :

MT4'ten bahsediyoruz. Burada yukarıda normalleşme sorunu tartışıldı. Neden bazı fiyatların MT4'te eşit olduğunu, ancak karşılaştırıldığında eşit olmadığını anlamaya çalışıyoruz. Bu bir devamıdır.

Dmitry, bu konu deliklere izmusolina. Bir sırrı ifşa edersem beni bağışlayın ama Kirill namı diğer Programcı, Sergey gibi insanlar sizin için çalışıyor... Soyadını söylemeyeceğim, “denilemeyecek kadar ünlü” © Bütün bunları biliyorlar ...

 
Dmitry Rannev :

Konu dışıysa özür dilerim (dilin gelişimini takip ettiğimi söyleyemem), bu satırın tam olarak ne işe yaradığını açıklar mısınız?

Açıklayacak.

İki (MT'de aynı) fiyatı karşılaştıran böyle bir komut dosyası var.

MT'de fiyatlar eşittir, ancak fark sıfır değildir (yukarıda belirtildiği gibi).

Bu satır ( #property strict) kaldırılırsa, fark sıfırdır.

Niye ya?

 void OnStart ()
{
   double Price1 = DBL_EPSILON ;
   double Price2 = 0 ;

   Print (Price1 - Price2);           // 0 - грубо показывает.
   Print ((Price1 - Price2) * 1 e15); // не ноль
}


katı eşitliği etkilemez. Yalnızca Baskıda - sayıyı kabaca veya daha doğru bir şekilde gösterir.

 
Dmitry Rannev :

MT'de fiyatlar eşittir, ancak fark sıfır değildir (yukarıda belirtildiği gibi).

Bu satır ( #property strict) kaldırılırsa, fark sıfırdır.

double türündeki sayıların eşitliği kontrol edilemez (sıfır dahil), farklarını minimum değerle karşılaştırmanız gerekir ( DBL_EPSILON , FLT_EPSILON, Point )

 
Ilya Malev :

double türündeki sayıların eşitliği kontrol edilemez (sıfır dahil), farklarını minimum değerle karşılaştırmanız gerekir ( DBL_EPSILON , FLT_EPSILON, Point )

Başka bir şeyle ilgili.

 
fxsaber :

Başka bir şeyle ilgili.

Bu sorunun nedenini hayal etmeye çalıştım ve sadece Print ile ilgili bir soru değil, algoritmada bazı hatalar olabileceği sonucuna vardım.

 
Ilya Malev :

Bu sorunun nedenini hayal etmeye çalıştım ve sadece Print ile ilgili bir soru değil, algoritmada bazı hatalar olabileceği sonucuna vardım.

Sorun yukarıda fxsaber tarafından açıklanmıştır. Nedenini bulmaya çalışıyoruz.