Çaydanlıktan gelen sorular - sayfa 69

 
rlx :

Her şey hatasız doğru bir şekilde dönüştürülür

" MQL5 Referansı / Dil Temelleri / Veri Tipleri / Tip Dökümü" bölümü iki şey söylüyor:

1) long=>çift dönüştürme, hassasiyet kaybına neden olabilir;

2) uzun tip yerine tarih saat tipi kabul edilebilir (8 bayt alırlar).

Teoride, datetime => çift dönüşümünün de hassasiyet kaybına yol açabileceği sonucuna vardım. Ama örnek veremem.

rlx :

Tarihi neden indikatörde...... veya çift tip arabelleklerde .... saklamıyorsunuz?

Çok fazla nokta ekledim, aksi takdirde bir çeşit bağlantı belirir.

İki sözcük arasına fazladan boşluk koymak daha kolaydır: "gösterge arabellekleri" (iki boşluk).

 
Yedelkin :

" MQL5 Referans / Dil Temelleri / Veri Tipleri / Tip Döküm " bölümü iki şey söylüyor:

1) long=>çift dönüştürme, hassasiyet kaybına neden olabilir;

2) uzun tip yerine tarih saat tipi kabul edilebilir (8 bayt alırlar).

Teoride, datetime => çift dönüşümünün de hassasiyet kaybına yol açabileceği sonucuna vardım. Ama örnek veremem.

İki sözcük arasına fazladan boşluk koymak daha kolaydır: "gösterge arabellekleri" (iki boşluk).

Ve basit bir dönüşüm testi yazın - her şeyi kendiniz göreceksiniz. Ve sonra herkese söyle

 
Vladix :

Ve basit bir dönüşüm testi yazın - her şeyi kendiniz göreceksiniz. Ve sonra herkese söyle

Gerçekten bir cevap var mı?

rlx tarafından zaten bir "basit dönüşüm testi" verilmiştir. Doğru çalışıyor gibi görünüyor. Referans materyale dayalı şüpheler yukarıda özetlenmiştir. Yanlış tarih saat =>çift dönüştürme örneği varsa - stüdyoya.

 
Yedelkin :

Gerçekten bir cevap var mı?

rlx tarafından zaten bir "basit dönüşüm testi" verilmiştir. Doğru çalışıyor gibi görünüyor. Referans materyale dayalı şüpheler yukarıda özetlenmiştir. Yanlış tarih saat =>çift dönüştürme örneği varsa - stüdyoya.

 void OnStart ()
  {   
   double vDbl = 1.7976931348623158 e+ 308 ;
   datetime vTime = ( datetime )vDbl;
   
   Print (( double )vTime);  
  }

2011.09.25 16:24:38 testi (EURUSD,H1) -9.22337203685476e+018

Bu, sorunların ortaya çıkabileceği bir örnektir, ancak bu kesinlikle sizin durumunuz değil.

 
Vladix :

2011.09.25 16:24:38 testi (EURUSD,H1) -9.22337203685476e+018

Bu, sorunların ortaya çıkabileceği bir örnektir, ancak bu kesinlikle sizin durumunuz değil.

TEŞEKKÜR! Yaşa ve öğren!
 
Vladix :

2011.09.25 16:24:38 testi (EURUSD,H1) -9.223372036854776e+018

Bu, sorunların ortaya çıkabileceği bir örnektir, ancak bu kesinlikle sizin durumunuz değil.

Pek doğru bir örnek değil, bir cam yaban turpu ile bir budalanın 20 dakika boyunca kumlanması gibi.

Şu anki tarih saat değeri 1316816136 bu 10 hane, bu 40 yılda ortaya çıktı, çift mantis 16 haneli,

dolayısıyla çift mantisin taşması ve daha sonra tarih saatinden çifte yanlış dönüşüm 6*40=240 yılda gerçekleşecektir.

Bence kullanabiliriz.

 
Yedelkin :
TEŞEKKÜR! Yaşa ve öğren!

Şimdi sadece sizin için bir örnek hazırladım. Çıktılar aşağıdaki gibidir:

tarih saat türü 31/12/3000 11:59:59 PM'den önce tanımlanır, bu 32535215999 tamsayılarına çevrilir

çift tip 1.7976931348623158 e+308 değerine kadar tanımlanır

Mümkün olan maksimum tarih saat değerini ikiye dönüştürürken, önemli basamak sayısı için hala izin verilen bir marj olduğu ortaya çıktı.

Dolayısıyla sonuç - her durumda doğru şekilde çalışacaktır.

Ukrayna :

Çok doğru bir örnek değil, 20 dakika boyunca bir cam yaban turpu için bir gritz gibi.

En iyi benzetme değil.

Bu, yalnızca kayıt için, türleri yayınlarken değerlerin sınırlarını kontrol etmeniz gerektiğinde bir örnektir. Ancak, yine, durum böyle değil.

 

Önceki hesaplamaları yanlış yaptım, daha doğrusu burada: 15 haneli mk 16'nın mevcudiyetinde kullanılıyor, bir dönüştürme hatası var

   long i,l; double d;
   for (i= 0 ;i< 999999999999999 ;i+= 365 * 86400 ){d=( double )i;l=( long )d; if (i!=l) break ;}
   Print ( "до " ,( 1970 +i/( 365 * 86400 )), " года datetime в double преобразуется верно" );

31711762'ye kadar tarih saat doğru şekilde ikiye dönüştürülür

Tehdit, böylece 31 milyonuncu yıla kadar huzur içinde uyuruz.

 

Ex5 kitaplığından içe aktarılan işlevleri çağırma .

Açıkla lütfen. https://www.mql5.com/ru/docs/runtime/imports adresini okuyun

Sistem kitaplıkları (DLL), işletim sisteminin kurallarına göre yüklenir. Kitaplık zaten yüklenmişse (örneğin, başka bir Uzman Danışman tarafından ve hatta paralel olarak başlatılan başka bir istemci terminalinden), çağrı önceden yüklenmiş kitaplığa gider.

ex5 kitaplıkları nasıl yüklenir? Kitaplık zaten yüklenmişse (örneğin, başka bir Uzman Danışman tarafından ve hatta paralel olarak başlatılan başka bir istemci terminalinden),

Test için bir kitaplık oluşturdu

lib.mq5

 #property library
int       i= 0 ;

int Get( void ) export { return (i++);}

lib.mq5'i lib.ex5'e derledi

Bir danışman oluşturdu

uzman.mq5

 #import "lib.ex5"
   int Get( void );
#import
void OnTick ()
  {
   Print (Get());
  }

Derlenmiş.

EURUSD konusunda bir uzman asıyorum.

baskılar

0

1

2

3

4

5

GBPUSD'de bir uzman (ek) asıyorum

baskılar

6 --- EURUSD EA'dan

0 --- GBPUSD EA'dan.

7 --- EURUSD EA'dan

1 --- GBPUSD EA'dan.

8 --- EURUSD EA'dan

2 --- GBPUSD EA'dan.

Onlar. lib.ex5 kitaplığının bir örneği daha GBPUSD Uzman Danışmanına yüklenir

yazdırmayı bilen var mı

6 --- EURUSD EA'dan

7 --- GBPUSD EA'dan.

8 --- EURUSD EA'dan

9 --- GBPUSD EA'dan.

10 --- EURUSD EA'dan

11 --- GBPUSD EA'dan.

Yalnızca MT5 özelliklerini kullanma

PS/// Veya bir şekilde özellikle .

///// Yani Bu ex5 kitaplığının bir kez yüklenmesine ihtiyacım var.

Документация по MQL5: Программы MQL5 / Вызов импортируемых функций
Документация по MQL5: Программы MQL5 / Вызов импортируемых функций
  • www.mql5.com
Программы MQL5 / Вызов импортируемых функций - Документация по MQL5
 

Merhaba. Lütfen bana söyle. Neden siparişlerin ve anlaşmaların bileti var da pozisyonların yok?

Bilet ile tanımlayıcı arasındaki fark nedir?