Hatalar, hatalar, sorular - sayfa 725

 
Snaf : İlk senaryoda kendim bir hata buldum, ancak ikincisi için yeterli beyin yok.

630 inşa

Örnek, MQL5 derleyicisinin yeni bir yapısı kullanılarak yazılmıştır. Özür dileriz, dikkate almadık. Ama yakında yayınlanacak, lütfen biraz bekleyin ve her şey derlenecek.
 
MetaDriver : Evet, kesinlikle. Ben de buggy hatlarının işlenmesi ile. İşlev, diğer işlevler tarafından döndürülen parçalardan uzun bir dize topladı (OpenCL program oluşturma). Hata ayıklayıcıda her şey saat gibi çalışır - yapı çöker ve "Erişim İhlali" yazar... ;)

Zaten servis masasına yazmak istedim ama burada sebepsiz yere aldı ve çalışmaya başladı. :) Daha fazla çoğaltamadım (dürüst olmaya çalışmama rağmen) ve servis masasına ne göndermeliyim? Burada homurdanmak ve gevezelik etmek için kalır.

Evet, CLProgramCreate() ile ilgili açık bir sorun var. Yürütme sırasında komut dosyasındaki ilk aksaklığın nerede olduğunu özellikle izledim, bu işlevde olduğu ortaya çıktı. Fonksiyon bir değer döndürmez.

Bir dize biçimindeki CL programı doğru şekilde yeniden üretilmiş gibi görünüyor. Ancak CL programının kendisi oluşturulmamıştır.

 
Çaprazlar üzerinde test yapılırken, karların ve marj gereksinimlerinin doğru dönüştürülmesi için diğer oranların doğru bir simülasyonu vardır.

Görselleştirmeyi çalıştırmayı deneyin ve piyasa saatindeki arka plan sembollerinin sayısına dayalı hesaplamaların miktarını hemen anlayacaksınız.
 
Lütfen bana dizüstü bilgisayarımı ve bilgisayarımı nasıl birleştireceğimi söyle, stratejileri test ederken, bilgisayarlar bir yönlendirici üzerinden, biri kablo üzerinden, diğeri Wi-Fi üzerinden çalışıyor, masaüstü bilgisayarımda bir mt5 dosyası oluşturmaya çalıştım, dizüstü bilgisayarıma attım , uzak bölüme ekledi ve aracıların adları dizüstü bilgisayardakiyle aynı
 

gönderiden https://www.mql5.com/ru/forum/1111/page736#comment_185306

sorunu noktaya göre yerelleştirdi:

- CFastFile ::ReadInteger sınıfından işlevler hakkında

630/64'te ya yapıların atanması ya da bir diziden diziye okumanın düştüğü ortaya çıktı. En kötü seçenek kendini gösterse de - imzalı (short / int / char) imzasıza (ushort / uint / uchar) dönüştürmek.

Bir yerde fazladan bitler veya bir ofset var. Sonuç olarak hiç okunması gereken bir sayı değil. Fonksiyonu anlamanız ve tekrar kontrol etmeniz daha kolay olacaktır.

Hata ayıklama modunda oynamaz . Ama aynı kodda 4 bilgisayarda stabil çalışıyor. (Kod büyük, arsa genişletilmeyecek)

 
lazarev-dm :
Lütfen bana dizüstü bilgisayarımı ve bilgisayarımı nasıl birleştireceğimi söyle, stratejileri test ederken, bilgisayarlar bir yönlendirici üzerinden, biri kablo üzerinden, diğeri Wi-Fi üzerinden çalışıyor, masaüstü bilgisayarımda bir mt5 dosyası oluşturmaya çalıştım, dizüstü bilgisayarıma attım , uzak bölüme ekledi ve aracıların adları dizüstü bilgisayardakiyle aynı
Yani çalışmıyor mu? İstemci terminali / Strateji test cihazı / Temsilciler
 
Yedelkin :
Yani çalışmıyor mu? İstemci terminali / Strateji test cihazı / Temsilciler
görünüşe göre çarpık bir şey yaptım, şimdi mt5 dosyasını tekrar oluşturdum, şimdi dizüstü bilgisayar bilgisayar işlemcilerini görüyor, ancak bağlantı testi sırasında hiçbir şey daha ileri gitmiyor, sorun ne olabilir ve eğer yapmazsam PC test cihazına dizüstü bilgisayar işlemcileri eklemeli miyim? PC'de kullanmıyor musun?
 

Geliştiriciler, bu hatayla beni kazandınız! "Ağladım" derler.

CFastFile'dan (::ReadInteger) gelen işlevler

         uint ReadArray( uchar &dst[], uint dst_start= 0 , int cnt= WHOLE_ARRAY ) { int r= ArrayCopy (dst, m_data, dst_start, m_pos, cnt); if (r> 0 ) m_pos+=r; return (r); }
         ushort ReadShort() { __2 b={ 0 }; __short d={ 0 }; ReadArray(b.v, 0 , 2 ); d=b; return (d.v); }
         uint ReadInteger( int sz=INT_VALUE)
        {
                 if (sz==SHORT_VALUE) { ushort s=ReadShort(); return (s); }
                 return (ReadInt());
        }


İncirlerde, SHORT_VALUE okurken hangi durumların saçma sapan döndüğünü anlayacaksınız.


Bir diziden okumak için farklı seçeneklerin etrafını sararak kazmaya başladım.

Ushort s=ReadShort() yerine ReadShort işlevinin gövdesini koyarsak, sayıların normal olarak okunduğu ortaya çıktı.

Ama sonra gerçekten ağladığım bir seçenek buldum .

         uint ReadInteger( int sz=INT_VALUE)
        {
                 if (sz==SHORT_VALUE) { ushort s=ReadShort(); if (s== 426 ) Print (s); return (s); }
                 return (ReadInt());
        }

Yani, biraz korkuyla , Print işlevi sihirli bir şekilde dövülmüş sayı s'yi doğru sayıya çevirir ve doğru değeri döndürür.


Sayın geliştiriciler, fikrinizi değiştirin! ortalığı karıştırıyorsun!!!

Kendi ürününüze karşı tavrınız sonucunda piyasadaki kayıpları nasıl telafi edeceksiniz?

Sonuçta, MT5 temelinde , üçüncü taraf programcılar tarafından sunulan devasa bir tüketici kaynağı yaratılıyor .

Ve siz, ihmalkar hareketlerinizle, onların yetkinliğine ve programlarının kalitesine şüphe düşürüyorsunuz!

 
sergeev :

Geliştiriciler, bu hatayla beni kazandınız! "Ağladım" derler.

CFastFile'dan (::ReadInteger) gelen işlevler

Bekle, bu senin CFastFile sınıf kodunuz mu? Peki ya platform geliştiricileri?

 //+------------------------------------------------------------------+
//|                                                         FastFile |
//|                                            Copyright © 2006-2012 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006-2012"
#property version "1.00"
#property library
 
Renat :

Bekle, bu senin CFastFile sınıf kodunuz mu? Peki ya platform geliştiricileri?



Evet Renat, bu benim kodum.

Önceki yapılarda çalışıyordu. Ancak mevcut 630/64'te çalışmayı durdurdu.

Ve 630/32'de başarıyla çalışmaya devam ediyor.


Bulduğum böcek çok garip ve açıkçası korkutucu.