Hatalar, hatalar, sorular - sayfa 2784

 

printf(), çift, bilimsel form. Ondalık basamak sayısını, sayının toplam uzunluğunu ayarlayabilirim - şunları ayarlayabilirim:

 double d= 12.3456789 ;
printf ( "d=%012.4E" ,d);

Sonuç: d=001.2346E+01

Derecenin önüne sıfır eklemek mümkün müdür? Bunun gibi olmak için: d=001.2346E+0001
 
sershi87 :
Yukarıda yazdığım gibi güncellemeden sonra terminal yavaşlamaya ve tamamen donmaya başladı. Güncellemeden önce böyle bir sorun yoktu ve her şey mükemmel çalıştı. Debian'a gelince, bunun çok kararlı bir dağıtım olduğunun farkındayım ve tamamen katılıyorum. Yine de, yerel bir sürüme olan ihtiyacın olgunlaştığına ve bunu başarmamız gerektiğine inanıyorum.

Frenlerin ve donmaların geçmiş sunucusuyla yanlış senkronizasyondan kaynaklandığına dair bir varsayımım var.
Yani, örneğin, terminal penceresinde çubuk görüntüleme ayarı 100000'dir, koddan örneğin, 3000 çubuk istiyorum
ancak senkronizasyon aksayabilir ve sunucudaki mevcut tüm geçmişle senkronizasyona başlayabilir ve tüm geçmişi sunucudan indirebilir.
Geçmişin bu eksiksiz indirilmesi nedeniyle, terminal, sunucunun mevcut tüm geçmişini indirene kadar askıda kalır.
Bunun dışarı pompalanmasını beklerseniz, terminal kapanır ve çalışmaya başlar.

 
Roman :

Frenlerin ve donmaların geçmiş sunucusuyla yanlış senkronizasyondan kaynaklandığına dair bir varsayımım var.
Yani, örneğin, terminal penceresinde çubuk görüntüleme ayarı 100000'dir, koddan örneğin, 3000 çubuk istiyorum
ancak senkronizasyon aksayabilir ve sunucudaki mevcut tüm geçmişle senkronizasyona başlayabilir ve tüm geçmişi sunucudan indirebilir.
Geçmişin bu eksiksiz indirilmesi nedeniyle, terminal, sunucunun mevcut tüm geçmişini indirene kadar askıda kalır.
Bunun dışarı pompalanmasını beklerseniz, terminal kapanır ve çalışmaya başlar.

Frenler sadece cam açıldığında çalışır. Camı kapatıyorsun ve her şey yolunda. Ama onsuz çalışamazsın.
 

MT5 (inşa 2496), kullanıcı tarafından belirtilen bir formüle göre hesaplanan özel grafiklerle ÇOK kötü bir şey.
CPU'yu kalıcı olarak yükler - çekirdek üzerindeki yük %100'dür.
Diski kalıcı olarak yükler - oraya sadece 3 GB veya daha fazla veriden yazar.
Ana pencerede çizim için arabelleğe sahip herhangi bir gösterge eklerseniz terminali kapatır (örneğin, Göstergeler/Trend/Uyarlanabilir Hareketli Ortalama).


Oynamak için adımlar:
MetaQuotes-Demo, Hedge hesabı.
Ayarlarda, grafik başına maksimum çubuk sayısı: 1000

Özel sembol oluştur: Ctrl+U ==> Özel Sembol Oluştur:
- Sembol : NZDUSD_AUDUSD
- Formül : NZDUSD-AUDUSD
- Negatif fiyatlara izin ver: Doğru

Sonuç - sistem diskte 3 GB'a kadar yemeye başlar.
Özel bir sembol içeren bir grafik açarsanız, çekirdek üzerindeki yük %100'ün altına düşecektir.
Bir gösterge eklerseniz (örneğin, Göstergeler/Trend/Uyarlanabilir Hareketli Ortalama) ve TF'yi değiştirirseniz, "Veri Penceresi" penceresi sarsılmaya başlayacak ve terminal birkaç saniye içinde yanıt vermeyi kesecektir.


 
UPD. Ayrıca, günlüğe on binlerce monoton giriş yazılır:
QG       0        18 : 18 : 12.209     Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06 . 19 to 2020.06 . 19 ( 4294967295 M1 bars from 1970.01 . 01 00 : 00 to 2020.06 . 19 23 : 54 )
ML       0        18 : 18 : 12.209     Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
LF       0        18 : 18 : 12.212     Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06 . 19 23 : 54 updated
GO       0        18 : 18 : 12.212     Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06 . 19 to 2020.06 . 19 ( 4294967295 M1 bars from 1970.01 . 01 00 : 00 to 2020.06 . 19 23 : 54 )
CD       0        18 : 18 : 12.212     Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
QN       0        18 : 18 : 12.215     Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06 . 19 23 : 54 updated
FG       0        18 : 18 : 12.215     Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06 . 19 to 2020.06 . 19 ( 4294967295 M1 bars from 1970.01 . 01 00 : 00 to 2020.06 . 19 23 : 54 )
JL       0        18 : 18 : 12.215     Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
FF       0        18 : 18 : 12.218     Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06 . 19 23 : 54 updated
QO       0        18 : 18 : 12.218     Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06 . 19 to 2020.06 . 19 ( 4294967295 M1 bars from 1970.01 . 01 00 : 00 to 2020.06 . 19 23 : 54 )
MD       0        18 : 18 : 12.218     Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
LN       0        18 : 18 : 12.221     Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06 . 19 23 : 54 updated
GG       0        18 : 18 : 12.221     Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06 . 19 to 2020.06 . 19 ( 4294967295 M1 bars from 1970.01 . 01 00 : 00 to 2020.06 . 19 23 : 54 )
CL       0        18 : 18 : 12.221     Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
NF       0        18 : 18 : 12.223     Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06 . 19 23 : 54 updated
IO       0        18 : 18 : 12.223     Synthetic Symbol        NZDUSD_AUDUSD: there is data from 2020.06 . 19 to 2020.06 . 19 ( 4294967295 M1 bars from 1970.01 . 01 00 : 00 to 2020.06 . 19 23 : 54 )
ED       0        18 : 18 : 12.223     Synthetic Symbol        NZDUSD_AUDUSD: M1 bars processing finished
RN       0        18 : 18 : 12.227     Synthetic Symbol        NZDUSD_AUDUSD: M1 bar 2020.06 . 19 23 : 54 updated

Toplam günlük boyutu 1 GB olarak ayarlanmıştır.


UPD .. Tüm hesaplamalardan sonra terminal kapatılır ve yeniden açılırsa, hesaplanan verilerin 3-8 GB'ının tümü başarıyla silinir ve daha mütevazı bir alan kullanılırken hesaplama yeniden başlar - yaklaşık 500 MB.
Terminali yeniden başlattıktan sonra özel sembollü bir grafik açarsanız, herhangi bir nedenle boş olduğu ortaya çıkar, M1'de yalnızca 3 çubuk vardır (davranış, "Negatif fiyatlara izin ver" bayrağının kapalı olmasına benzer).

 

Ve geliştiricilerin bunlara tepki vermesi için hata raporları nereye gönderilir?

Bazı yayınlardan başlayarak, statik işlevleri çağıran şablon sınıflarının derlenmesi bozulur. Misal:

Bar sınıfı daha önce hem 64-bit hem de 32-bit MQL5 ile derlenmişti. Şimdi hata veriyor. build2485 05 Haz 2020

 class Foo {
public :
     static void Start() {
         Print ("Hallo!");
    }
};

template < typename T>
class Bar {
public :
    Bar() {
        T::Start();
    }
};

class Foz {
public :
    Foz() {
    }

     void Start() {
         Print ("Hallo!");
    }
};

template < typename T>
class Baz {
public :
    Baz() {
        T t;
        t.Start();                                                                                                                                                                                          
    }
};

void OnStart () {
    Bar<Foo> var;
    Baz<Foz> vaz;
}

template_static_bug.mq5 : information: compiling 'template_static_bug.mq5'
template_static_bug.mq5( 12 , 12 ) : error 256 : 'Start' - undeclared identifier
Result: 1 errors, 0 warning
 
YanGillan :

Ve geliştiricilerin bunlara tepki vermesi için hata raporları nereye gönderilir?
Bazı yayınlardan başlayarak, statik işlevleri çağıran şablon sınıflarının derlenmesi bozulur. Misal:
Bar sınıfı daha önce hem 64-bit hem de 32-bit MQL5 ile derlenmişti. Şimdi hata veriyor. build2485 05 Haz 2020

Bu hatadan şu veya bu şekilde şikayet eden 5. kullanıcı olacaksınız...

 
Sergey Dzyublik :

Bu hatadan şu veya bu şekilde şikayet eden 5. kullanıcı olacaksınız...

Evet, ama ne yapmalı? Temel sınıf aracılığıyla geçici çözümü biliyorum, ancak bu bir ppc koltuk değneği. Ve tüm kodu yamalamak artık bir şekilde konu dışı.

Önceki yapıları nereden indirebilirim? Brokerde bulamadım, mt5 web sitesinde de bulamadım.

 
YanGillan :

Evet, ama ne yapmalı? Temel sınıf aracılığıyla geçici çözümü biliyorum, ancak bu bir ppc koltuk değneği. Ve tüm kodu yamalamak artık bir şekilde konu dışı.

Önceki yapıları nereden indirebilirim? Brokerde bulamadım, mt5 web sitesinde de bulamadım.

 
YanGillan :

Temel sınıf aracılığıyla geçici çözümü biliyorum, ancak bu bir ppc koltuk değneği. Ve tüm kodu yamalamak artık bir şekilde konu dışı.

Bu yöntemden mi bahsediyorsunuz yoksa başka bir yöntemden mi?

 template < typename T>
class GetClassType{
public :
   class type : public T{}; 
};


class Foo {
public :
     static void Start() {
         Print ( "Hallo!" );
    }
};

template < typename T>
class Bar {
public :
    Bar() {
         GetClassType<T>::type ::Start();
    }
};

void OnStart () {
    Bar<Foo> var;
}