Hatalar, hatalar, sorular - sayfa 108

 
Interesting :

Daha güvenilir? Başlatma sırasında tanıtıcı almak neden güvenilir değil? Gerekli verileri kontrol etmek neden güvenilir değil? Ve dahası, neden çeklerin varlığı güvenilir değil?

Yeni başlayanlar için o kadar kolay olmayabilir, ancak zamanla her şey netleşecek ...

Genel olarak, hemen anlamaya çalışıyorum ve daha sonra değil ... Anlamını anlamadan bazı eylemleri aptalca kopyalamak istemiyorum. Neden bütün bu kodlar µl4'teki gibi yerleşik bir fonksiyon olarak yapılmıyor peki bar sayısı ile fazladan bir parametre ekle o yüzden sanırım bunu indikatör yüklemeyecek şekilde yapmışlar tüm çubuklardan veri?

 

Neden yükleniyor?

 
simpleton :

"Normal sayılar", aynı zamanda bir türü olan sabit ifadelerdir. Bu durumda, tür int'dir.

Her biri int türünden iki alt ifadenin çarpımından oluşan bir ifade de int türündedir. Taşma burada gerçekleşir.

Ve ancak o zaman, long türünde bir değişken başlatılırken, int ifade türünden long türüne örtük bir atama yapılır.

Burada her şey temiz. Bu arada, bu durumda işlenenlerin her birini uzun türe dökmek gerekli değildir. Birini vermek yeterlidir, ikincisi ise dolaylı olarak verilecektir.

Aslında bunu söylemeye çalıştım ama daha az akademik bir dille. Ve en önemlisi diğer arayanları uyarın.

Soru farklı. Talmud'un neresinde şöyle deniyor:

"Normal sayılar", aynı zamanda bir türü olan sabit ifadelerdir. Bu durumda, tür int'dir.

Örneğin, X 10000000000 değerine eşit yapılırsa, uzun bir tür olur mu? Neden ulong veya datetime veya hatta string değil.?

Ve 255 uchar veya short sayısının türü nedir?

 
gumgum :

Neden yükleniyor?

Belki GBPJPY çapraz bir çift olduğundan ve kodun bir yerinde marj hesaplamaları olduğundan. Benim nacizane fikrime göre
 
simpleton :

Günlük ve kod karıştırılmış gibi görünüyor. Verilen kod "temiz" çalışır. Ve böyle bir günlük elde etmek için, int veya uint türünün A ve B değişkenlerini ve uint türünün X değişkenini yapmak zorunda kaldım :

Ve işte orijinal kodun çalışması:

314 oluşturun (20 Ağu 2010).

Başka bir kod verdim.

 long A = AccountInfoInteger ( ACCOUNT_LOGIN );   // 661701
long B = A;
long C = 661701 ;

Print ( " A=" ,A, "  B=" ,B, "  C=" ,C);

long X =( long ) 10000 ;

long L1 = A*X;
long L2 = B*X;
long L3 = C*X;

Print ( " L1=" ,L1, "   L2=" ,L2, "   L3=" ,L3);

ilk satıra özellikle dikkat edin, hesabınızda farklı bir numara olabilir. Bakın ve uzun C = içine koyun

Sonucu tekrar kontrol ettim.

 2010.08 . 25 20 : 23 : 12      Servis (EURUSD,H1)       L1= 2322042704    L2= 2322042704    L3= 6617010000
2010.08 . 25 20 : 23 : 12      Servis (EURUSD,H1)       A= 661701   B= 661701   C= 661701

314 oluşturun (20 Ağu 2010).

 
Lütfen bana USDCHF çifti için SymbolInfoDouble (_Symbol,SYMBOL_POINT) işlevinin neden bu çiftin nokta değeri 0,0001 olduğunda, ondalık nokta 0,00001'den sonra beş basamaklı bir nokta boyutu verdiğini söyleyin?
Документация по MQL5: Получение рыночной информации / SymbolInfoDouble
Документация по MQL5: Получение рыночной информации / SymbolInfoDouble
  • www.mql5.com
Получение рыночной информации / SymbolInfoDouble - Документация по MQL5
 
rut_ :
Lütfen bana USDCHF çifti için SymbolInfoDouble (_Symbol,SYMBOL_POINT) işlevinin neden bu çiftin nokta değeri 0,0001 olduğunda, ondalık nokta 0,00001'den sonra beş basamaklı bir nokta boyutu verdiğini söyleyin?

Bu enstrümanda 4 karakter olduğu fikrini nereden aldınız, terminalde tırnakların 5 haneli olduğu açıkça görülüyor
 
sergey1294 :
Bu enstrümanda 4 karakter olduğu fikrini nereden aldınız, terminalde tırnakların 5 haneli olduğu açıkça görülüyor

Bu işlev, beş ondalık basamaklı hesaplarda bile farklı pip değerleri döndürebilir, bunların tümü aracının kabul ettiği ayarlara bağlıdır.

Örneğin, bir DC'de böyle bir yorum var

 1 pips (пункт) равен:

для валютных пар с 5 знаками после запятой - минимальному изменению 4 -го знака после запятой ( 0 , 0001 );
для валютных пар с 3 знаками после запятой - минимальному изменению 2 -го знака после запятой ( 0 , 01 ).

diğerinde ise beşinci hanede olduğu gibi 1 pip eşittir.

 
SHOOTER777 :

Aslında bunu söylemeye çalıştım ama daha az akademik bir dille. Ve en önemlisi diğer arayanları uyarın.

Soru farklı. Talmud'un neresinde şöyle deniyor:

"Normal sayılar", aynı zamanda bir türü olan sabit ifadelerdir. Bu durumda, tür int'dir.

Örneğin, X 10000000000 değerine eşit yapılırsa, uzun bir tür olur mu? Neden ulong veya datetime veya hatta string değil.?

Ve 255 uchar veya short sayısının türü nedir?

10000000000 sabiti zaten long türündedir.

Nasıl söylersin? Normal dillerde, açık tip döküm kullanmadan bir sabitin türünü belirtmenize izin veren değiştirici sonekler bulunur. MQL5 için bunu yalnızca float için buldum. Bu nedenle, uchar, ushort, uint, ulong, char, short ve long türündeki sabitleri (sabitin değeri int tipine uyuyorsa) açık tip döküm olmadan belirtmek imkansızdır.

255 sabitinin türü - int'dir. Bazıları tür bildirimlerinde bulunabilir; örneğin, karakter sabitlerinin ushort türünde olduğu bildirilir. Ayrıca tarih-saat tipi, renk tipi, bool tipi, double tipi ve string tipinin sabitlerinden de bahseder.

Sizeof işlemi tanıtıldığından beri sabit türün boyutunu yazdırmayı deneyebilirsiniz (neden tanıtıldı - geliştiricilerden biri açıklayacaktır):

 void OnStart ()
{
   Print ( "sizeof true                = " , sizeof true);
   Print ( "sizeof 'a'                 = " , sizeof 'a' );
   Print ( "sizeof 255                 = " , sizeof 255 );
   Print ( "sizeof 200000000           = " , sizeof 20000000 );
   Print ( "sizeof 10000000000         = " , sizeof 10000000000 );
   Print ( "sizeof C'128,128,128'      = " , sizeof C'128,128,128' );
   Print ( "sizeof D'2004.01.01 00:00' = " , sizeof D'2004.01.01 00:00' );
   Print ( "sizeof 1.0f                = " , sizeof 1.0 f);
   Print ( "sizeof 1.0                 = " , sizeof 1.0 );
   Print ( "sizeof \"Xa!\"               = " , sizeof "Xa!" );
   Print ( "sizeof \"Xa-xa-xa!!!\"       = " , sizeof "Xa-xa-xa!!!" );
}

/* Вывод в лог (хронология - сверху вниз):
GF      0       1 (EURUSD,M15)  02:03:23        sizeof true                = 1
IS      0       1 (EURUSD,M15)  02:03:23        sizeof 'a'                 = 2
LF      0       1 (EURUSD,M15)  02:03:23        sizeof 255                 = 4
JI      0       1 (EURUSD,M15)  02:03:23        sizeof 200000000           = 4
EQ      0       1 (EURUSD,M15)  02:03:23        sizeof 10000000000         = 8
DG      0       1 (EURUSD,M15)  02:03:23        sizeof C'128,128,128'      = 4
JN      0       1 (EURUSD,M15)  02:03:23        sizeof D'2004.01.01 00:00' = 8
GE      0       1 (EURUSD,M15)  02:03:23        sizeof 1.0f                = 4
GR      0       1 (EURUSD,M15)  02:03:23        sizeof 1.0                 = 8
QJ      0       1 (EURUSD,M15)  02:03:23        sizeof "Xa!"               = 12
ER      0       1 (EURUSD,M15)  02:03:23        sizeof "Xa-xa-xa!!!"       = 12
*/

Genel olarak, son eklerden yalnızca f çiftli sabitler için çalışır ve bunları, böyle bir sabitin tipinin boyutundan görülebilecek şekilde yüzer hale getirerek değiştirir.

Burada, sizeof işleminin tek, en azından bir şekilde anlamlı kullanımını buldum. :)

 
SHOOTER777 :

Başka bir kod verdim.

ilk satıra özellikle dikkat edin, hesabınızda farklı bir numara olabilir. Bakın ve uzun C = içine koyun

Sonucu tekrar kontrol ettim.

314 oluşturun (20 Ağu 2010).

Hayır, seninle aynı etkiye sahip değilim. Sadece MT5 sürümlerinin bitliğini kontrol etmek için kalır. 64 bit sürümüm var, peki ya sen?

Bu arada, çalıştırdığım değiştirilmiş kod size benimkiyle aynı sonuçları veriyor mu?

Eğer evet ise, o zaman olan şey, değerin "kökeni" ile ilişkilendirilen hataya çok benzerdir - yani kod, değerin orijinal olarak nereden geldiğine bağlı olarak farklı (hem doğru hem de yanlış) davranabilir. hangi diğer hesaplamalar yapılır.