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

 
A100 :

Mümkün olanı yazmayacağım, yoksa aniden tekrar basit ve pavlick olduğu ortaya çıkacak_   yine ... havlar

Davranışını anlamıyorum.

 
Bu konuyla ilgili olmayan yorumlar " MQL5 MT5 MetaTrader 5 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 
Alexey Navoykov :
Bir işaretçiyi yayınlamak hiçbir şey yapmaz. Nasıl attığınız önemli değil, nesne aynıdır.

düzeltilmiş duruyorum.

 

Gerçek tikler üzerinde kimler test etmeye çalıştı, 1 dakikalık bir geçmiş oluşturmak gerekli mi yoksa indirilen kenelere göre mi oluşturulacak ( özel sembol )?

Nedense test bende çalışmıyor, yedi günlük kene indirdim, testi çalıştırdım, günlüklerde şu yazıyor:

 2018.12 . 24 22 : 04 : 16.925 Core 1   no data synchronized, 41 bytes read
2018.12 . 24 22 : 04 : 16.925 Core 1   symbol EURUSD_custom synchronization error
2018.12 . 24 22 : 04 : 16.925 Core 1   cannot get history EURUSD_custom,M1
 
forexman77 :

Gerçek tikler üzerinde kimler test etmeye çalıştı, 1 dakikalık bir geçmiş oluşturmak gerekli mi yoksa indirilen kenelere göre mi oluşturulacak (özel sembol)?

Nedense test bende çalışmıyor, yedi günlük kene indirdim, testi çalıştırdım, günlüklerde şu yazıyor:

Gerektiği kadar.

 

DoubleToString için "aynı" fiyat hesaplamaları farklı sonuçlar verebilir. Ancak DoubleToString, NormalizeDouble'dan farklı olabilir.

 #property strict

#define PRINT(A) Print ( #A + " = " + ( string )(A))

void OnStart ()
{
   const double Koef =   0.25 ;
   const int iDelta = 32 ;
   const double point = 0.00001 ;
  
   const double high = 1.06736 ;
   const double low = 1.06676 ;
  
   const double Avg = (high + low) * 0.5 ;  
   const double Size = (high - low) * Koef * 0.5 ;
  
   // Вычисление одной и той же цены разной последовательностью сложения одного и того же количества пипсов
   const double Price1 = Avg - Size - point * iDelta;
   const double Price2 = Avg - (Size + point * iDelta);  
  
  PRINT( DoubleToString (Price1, 5 ));   // DoubleToString(Price1,5) = 1.06666
  PRINT( DoubleToString (Price2, 5 ));   // DoubleToString(Price2,5) = 1.06667

  PRINT( NormalizeDouble (Price1, 5 )); // NormalizeDouble(Price1,5) = 1.06667
  PRINT( NormalizeDouble (Price2, 5 )); // NormalizeDouble(Price1,5) = 1.06667
}
 
fxsaber :

DoubleToString için "aynı" fiyat hesaplamaları farklı sonuçlar verebilir. Bu durumda DoubleToString, NormalizeDouble'dan farklı olabilir.

Açıklanan davranış, MQL5 dilinin özel bir özelliği değildir. " Gerçek sayıların makine belleğinde temsil edilme şekli IEEE 754 standardı tarafından tanımlanır ve platformlardan, işletim sistemlerinden ve programlama dillerinden bağımsızdır. "
 

Birdenbire, https://www.mql5.com/en/forum/1111/page2364#comment_10048274'e dayanan şablon çözülmemiş statik değişken konusunda birisi için faydalıysa

Yöntemin beyan edildiği yerde uygulanmasıyla sorun çözülür. Çok güzel değil ama işe yarıyor.

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.12.28
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Ilya Malev :

Birdenbire, https://www.mql5.com/ru/forum/1111/page2364#comment_10048274'e dayanan şablon çözülmemiş statik değişken konusunda birisi için faydalıysa

Yöntemin beyan edildiği yerde uygulanmasıyla sorun çözülür. Çok güzel değil ama işe yarıyor.

Orada fazladan bir statik kelimeniz var. Ders dışında kullanılmaz.

 
Alexey Navoykov :

Orada fazladan bir statik kelimeniz var. Ders dışında kullanılmaz.

(yorgunlukla) bu bir sorun olsaydı, "'k' - yeniden tanımlama; farklı tür değiştiriciler" hatası çıkıyordu, ancak ekranda değil. Yani derleyici umursamıyor ve mesele bu değil.