Hatalar, hatalar, sorular - sayfa 1221

 
Fry :

Hata

Telefon etmek:


bir günlük mesajıyla sonuçlanır:

HistoryBase 'RTS-12.14' 1 geçersiz çubuk kaldırıldı


Bu hatadan zaten bıktım. Diğer şeylerin yanı sıra, iletişim kanalını yükler.

Aynı hata, tanımlanmamış başka nedenlerle de ortaya çıkıyor.

Ancak, ilginç bir şekilde, diğer birçok enstrümanda görünmüyor. En önemlisi RTS vadeli işlemlerinde ortaya çıkıyor.


Servis masasına birkaç ay önce yazdım - cevap hayır ( Uygulama başladı: 2014.07.28 13:41 , #1046215) .


Mevcut (ve geçmiş) RTS vadeli işlemlerinin (broker "O..." ile demo hesabı) her işaretinde bu hataya neden olan hindi kodunu ekliyorum:

Bu terminalde bir hata mı? Yoksa komisyoncu mu? Veya ben?

Ne yapalım? D1 zaman dilimindeki çubuk sayısını başka nasıl öğrenebilirsiniz?

İyi akşamlar. Bunu denemedin mi?

 SeriesInfoInteger ( _Symbol , PERIOD_D1 , SERIES_BARS_COUNT );
 
Tapochun :

İyi akşamlar. Bunu denemedin mi?

Ve sana iyi akşamlar. Denedim - aynı.

Sonuç aynı. Hata, her tikte günlüğe tırmanıyor.

Fikir için teşekkürler. SeriesInfoInteger() dahili olarak Çubuklara başvurmuyorsa, bunun aracı sunucusunda "dar" bir veri sıkışması olması giderek daha olasıdır.

Ve bu da soruma tatmin edici bir cevap.

Sonuçta, hatanın nerede ortaya çıkacağını anlamıyorum, bundan kaçınabilir miyim, vb.

 
Fry :

Ve sana iyi akşamlar. Denedim - aynı.

Sonuç aynı. Hata, her tikte günlüğe tırmanıyor.

Fikir için teşekkürler. SeriesInfoInteger() dahili olarak Çubuklara başvurmuyorsa, bunun aracı sunucusunda "dar" bir veri sıkışması olması giderek daha olasıdır.

Ve bu da soruma tatmin edici bir cevap.

Sonuçta, hatanın nerede ortaya çıkacağını anlamıyorum, bundan kaçınabilir miyim, vb.

Belki de komisyoncu gerçekten bir hata yaptı, çünkü. mesaja göre, bazı "kırık" çubuklar silinir ... veya verilerin yolda "öldürmek" için zamanı vardır. Ancak, bu benim açımdan sadece bir spekülasyon. Bu arada GetLastError() bir şey veriyor mu? Oh, ve Bars() ne döndürür?
 
Tapochun :
Belki de komisyoncu gerçekten bir hata yaptı, çünkü. mesaja göre, bazı "kırık" çubuklar silinir ... veya verilerin yolda "öldürmek" için zamanı vardır. Ancak, bu benim açımdan sadece bir spekülasyon. Bu arada GetLastError() bir şey veriyor mu? Oh, ve Bars() ne döndürür?

Bars() 0 döndürürse, 4001 hatası (ERR_INTERNAL_ERROR 4001 Beklenmeyen dahili hata) döndürülür.

Ancak bir süre sonra Bars() hala çubuk sayısını döndürür ve ardından hata olmaz (Bars() hatanın durumunu değiştirmez).

 

MT4 yapı 722, ME4 yapı 989

Geçerli sıfır çubuğunun verilerini kopyalamaya çalışıyorum:

       MqlRates rates[ 1 ];
       int n= CopyRates ( _Symbol , PERIOD_CURRENT ,time[ 0 ], 1 ,rates); 
       Print ( "n=" ,n);

n=0 yazdırılır, yani veriler kopyalanmaz.

PERIOD_CURRENT yerine yazarsak   _Period sonra çalışır.

Sıfır olmayan bir çubuğun (zaman[1], vb.) verilerini kopyalarsanız, PERIOD_CURRENT veya _Period girişinden bağımsız olarak doğru olacaktır.

PS Bir SD yayınlamanız gerekiyor mu?

 
Fry :

Bars() 0 döndürürse, 4001 hatası (ERR_INTERNAL_ERROR 4001 Beklenmeyen dahili hata) döndürülür.

Ancak bir süre sonra Bars() hala çubuk sayısını döndürür ve ardından hata olmaz (Bars() hatanın durumunu değiştirmez).

Hatanın "sürprizi" bir kez daha bir şeyin ulaşmak için zamanı olmadığını ve bunun sonucunda bir hatanın oluştuğunu gösterir. Anladığım kadarıyla D1'deki çubukların sayısını bulmanız gerekiyor... peki bunu her tikte yapmak gerekli mi? Alternatif olarak, dakikada bir veya daha az veri talep edecek bir fonksiyon yazın. Ve bir hata olup olmadığına bakın.

 
kPVT :

MT4 yapı 722, ME4 yapı 989

Geçerli sıfır çubuğunun verilerini kopyalamaya çalışıyorum:

n=0 yazdırılır, yani veriler kopyalanmaz.

PERIOD_CURRENT yerine yazarsak   _Period sonra çalışır.

Sıfır olmayan bir çubuğun (zaman[1], vb.) verilerini kopyalarsanız, PERIOD_CURRENT veya _Period girişinden bağımsız olarak doğru olacaktır.

PS Bir SD yayınlamanız gerekiyor mu?

İyi akşamlar. Deneyin... bir alternatif olsa da, bu kusuru aramak için acele etmeleri pek olası değildir. Bir hafta askıda iki başvurum var ... cevap yok, selam yok.
 
Fry :

Ne yapalım? D1 zaman dilimindeki çubuk sayısını başka nasıl öğrenebilirsiniz?

Türkiye D1'e mi başladı?
 
MigVRN :
Türkiye D1'e mi başladı?

Tabii ki değil. Bütün mesele bu. Hindinin kendisi D1'de piyasaya sürüldüğünde, sadece " const   int Rates_total, // giriş zaman serisinin boyutu ".

İşte özel bir kullanım durumu.

Birkaç gösterge başlattık ve tutamaçlarını aldık (burada her şey yolunda). Ardından, ontik işlevinde, arama yapıldığında tüm verilerin gerekli tutamaçlarda (harici hindiler) zaten hesaplandığından emin olmanız gerekir. Ve işte yaptığım şey:

   //not all data may be calculated
   if ( BarsCalculated (hCCI)<rates_total) { Print ( "Not all data of trend CCI is calculated. Error#" , GetLastError ()); return ( 0 );}
   if ( Period ()!= PERIOD_D1 && BarsCalculated (hDayTrand)< Bars ( Symbol (), PERIOD_D1 )) return ( 0 );

Ayrıca, bu durumda, hDayTrand özyinelemeli bir tanıtıcıdır (aynı hindi, yalnızca D1'e yüklenir).

Her şeyi terminaldeki belgelere ve örneklere ve önerilere göre yapıyor gibiyim. Sonuç - tüm bu çöpler dergide yemin ediyor ve dakikada megabayt yiyor.

 
Fry :

Tabii ki değil. Bütün mesele bu. Hindinin kendisi D1'de piyasaya sürüldüğünde, sadece " const   int Rates_total, // giriş zaman serisinin boyutu ".

İşte özel bir kullanım durumu.

Birkaç gösterge başlattık ve tutamaçlarını aldık (burada her şey yolunda). Ardından, ontik işlevinde, arama yapıldığında tüm verilerin gerekli tutamaçlarda (harici hindiler) zaten hesaplandığından emin olmanız gerekir. Ve işte yaptığım şey:

Ayrıca, bu durumda, hDayTrand özyinelemeli bir tanıtıcıdır (aynı hindi, yalnızca D1'e yüklenir).

Her şeyi terminaldeki belgelere ve örneklere ve önerilere göre yapıyor gibiyim. Sonuç - tüm bu çöpler dergide yemin ediyor ve dakikada megabayt yiyor.

IMHO, bir komisyoncuyla iletişime geçmeniz gerekiyor (Anladığım kadarıyla Açılış). Gerçek hesaplarda buna sahip değiller, bu da meselenin büyük olasılıkla bir tür sunucu ayarlarında olduğu anlamına geliyor.
Neden: