Hatalar, hatalar, sorular - sayfa 2729

 
Alexey Viktorov :

bu mql5'in bir özelliği değil, sadece siparişe alıştırmak için bazı girişimler.

sipariş, derleyicinin bir uyarı (veya hata) vereceği zamandır. tam sayıları kesirlere dönüştürmek 0 döndürür - bu bir emir değil, saçmalıktır. yani eski kodların %90'ı kırılacak.

ve, unutmayın, çalışan sürüm yine de int ile birlikteydi! onlar. bu, bir işleve ikame aşamasında tür dönüşümü ile ilgili değil, hesaplama aşamasında

EKLENDİ: MQ-demo'ya geçildi, güncellenmiş çalışma terminali. Bu sorunu yaşamıyor.

 
Derleme sırasında hata
 class A {  
public :
         static int i;
} a; //Error: unresolved static variable 'A::i'
int A::i = 0 ;
 
Igor Zakharov :

sipariş, derleyicinin bir uyarı (veya hata) vereceği zamandır. tam sayıları kesirlere dönüştürmek 0 döndürür - bu bir emir değil, saçmalıktır. yani eski kodların %90'ı kırılacak.

ve, unutmayın, çalışan sürüm yine de int ile birlikteydi! onlar. bu, bir işleve ikame aşamasında tür dönüşümü ile ilgili değil, hesaplama aşamasında

EKLENDİ: MQ-demo'ya geçildi, güncellenmiş çalışma terminali. Bu sorunu yaşamıyor.

Ve bu durumda olası seçeneklerin vurgulanmaması şüpheye neden olmaz mı?

   ObjectSetDouble ( 0 ,name, OBJPROP_ANGLE ,dir // тут должен появиться список вариантов переменных double
 
Çalışma hatası
 class A {  
public :
         A() { i = ++ii; printf ( "%d" , i ); }
        ~A() {            printf ( "%d" , i ); }
         int i;
         static int ii;
};
int A::ii = 0 ;
A a[ 2 ];
void OnStart () {}

  • MQL'de Sonuç: 1212
  • ve C++'da: 1221
 
Alexey Viktorov :

Ve bu durumda olası seçeneklerin vurgulanmaması şüpheye neden olmaz mı?

:)

 
Igor Zakharov :

:)

Evet... Garip, yanlış türdeki değişkenler bir süredir vurgulanmıyordu. Belki bilerek düzeltmişlerdir ya da bu diyaloğa dikkat edip tekrar düzelteceklerdir. Ancak, her ne olursa olsun, işlev double değişken türünü gerektiriyorsa, double değiştirilmelidir.

 
Her zaman bir hata vardı
 #define MACRO( X, Y )
MACRO( 1 , 2 , 3 ) //Warning: too many arguments for function-like macro 'MACRO'
neden uyarı? Üstelik bunlar her zaman aşırıdır ve bazen dikkat etmezsiniz.
 
Alexey Viktorov :

Evet... Garip, yanlış türdeki değişkenler bir süredir vurgulanmıyordu. Belki bilerek düzeltmişlerdir ya da bu diyaloğa dikkat edip tekrar düzelteceklerdir. Ancak her ne olursa olsun, işlev double değişken türünü gerektiriyorsa, double değiştirilmelidir.

Alexey, dokümantasyon bağlantılarını sevdiğini fark ettim, senin için bir tane var :)

https://www.mql5.com/ru/docs/basis/types/casting

int to double, veri kaybı olmadan geçerli bir örtük dönüştürmedir. yasal.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL5 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
 

strateji testçisinin çalışması hakkında bir soru .

Bir test yapıyorum. EA, SL ve TP ile bir pozisyon açar. Sonra bir rollover meydana gelir ve pozisyon yeniden açılmaz.

Bu ne? Böcek? Bir süredir test cihazını kullanmadım ve şimdi böyle bir sorun yoktu. Aşağıda test cihazının günlüğü bulunmaktadır. Pozisyonun açıldığını ve rollover sonrasında kapatıldığını görüyoruz ve sonrasında SATIN AL üzerinden açıldığı yazıyor ama aslında açık işlem olmadığı ekranda görünüyor. Test cihazına bir komut eklendi

Rollover'dan sonra açık pozisyonları kontrol etmek için PositionSelect(_Symbol), sonuç her zaman aynıdır - açık pozisyon yok.


2020.04.28 18:14:14.609 2014.01.09 05:00:00 anında satın al 1.00 AUDUSD 0.88800 sl: 0.88450 tp: 0.89200 (0.88750 / 0.88800 / 0.88750)

2020.04.28 18:14:14.609 2014.01.09 05:00:00 anlaşma #8 0.88800'den 1.00 AUDUSD satın alındı (8 numaralı siparişe göre)

2020.04.28 18:14:14.610 2014.01.09 05:00:00 anlaşma yapıldı [#8 0.88800'den 1.00 AUDUSD satın al]

2020.04.28 18:14:14.610 2014.01.09 05:00:00 sipariş 0.88800'den 1.00 alış gerçekleştirildi [#8 0.88800'den 1.00 AUDUSD satın]


2020.04.28 18:14:24.169 2014.01.09 23:59:59 anlaşma #9 0.88980'den 1.00 AUDUSD satıldı (9 numaralı siparişe göre)

2020.04.28 18:14:24.169 2014.01.09 23:59:59 rollover anlaşması yapıldı [#9 0.88980'den 1.00 AUDUSD sat]

2020.04.28 18:14:24.170 2014.01.09 23:59:59 #10 anlaşma 0.8899950'den 0.00 AUDUSD satın alındı (10 numaralı siparişe göre)

2020.04.28 18:14:24.170 2014.01.09 23:59:59 rollover anlaşması yapıldı [#10 0.8899950'den 0.00 AUDUSD satın al]


 
Igor Zakharov :

Alexey, dokümantasyon bağlantılarını sevdiğini fark ettim, senin için bir tane var :)

https://www.mql5.com/ru/docs/basis/types/casting

int to double, veri kaybı olmadan geçerli bir örtük dönüştürmedir. yasal.

Mesajdaki dökümanları tekrar yazmamak ve insanların dökümanları okumaya alışması için dökümantasyon linkleri veriyorum. Burada, forumda, belgelerin varlığından hiç haberdar olmayanların olduğunu hayal edin. Şahsen bana gelince, belgelerde böyle bir resim gördüm, ancak tam olarak anlamaya çalışmadım. Fonksiyonun gerektirdiği türden değişkenleri kullanma alışkanlığım bana yetiyor. Son çare olarak istenilen tipe zorunlu alçı koyacağım.