Hatalar, hatalar, sorular - sayfa 1520

 
Slawa :

Henüz başka bir yol yok.

Programın yürütülmesini hemen durduracak yeni bir çıkış komutunun getirilmesini tartıştık, ancak çözülmemiş sorunlar var

Çok üzgünüm. Evet, C++'daki gibi çıkış() iyi olurdu. Şimdi, yuvalanmış işlevlerin yanıtını arayana çekmek oldukça sorunlu olabilir. Evet ve evrensel kitaplıklar yazılamaz.
 
Alexey Kozitsyn :
Çok üzgünüm. Evet, C++'daki gibi çıkış() iyi olurdu. Şimdi, yuvalanmış işlevlerin yanıtını arayana çekmek oldukça sorunlu olabilir. Evet ve evrensel kitaplıklar yazılamaz.
bir seçenek olarak, tüm program nesnelerini silmek için ayrı bir işlev oluşturun ve programın kendisini terminalden silme koşulu karşılanırsa, onu çağırın ve ardından ExpertRemove() , bu durumda daha hızlı bitmelidir ... olmasa da Bir gerçek :)
 
coderex :
bir seçenek olarak, tüm program nesnelerini silmek için ayrı bir işlev oluşturun ve programın kendisini terminalden silme koşulu karşılanırsa, onu çağırın, ardından ExpertRemove(), bu durumda daha hızlı bitmelidir ... olmasa da Bir gerçek :)

Daha önce yazdığım ve benden önce bu sitedeki bir makalede önerildiği gibi, derin yuvalanmış bir fonksiyonda hata olması durumunda, bölmeyi 0 veya dizi dışında çağırabilirsiniz. Ama güzel değil.

Evet ve buradaki mesele sadece OOP değil (anladığım kadarıyla bundan bahsediyorsunuz). Basitçe - hata düzeltilemezse - program sonlandırılır.

 
Slawa :
Duruyor ama hemen değil
Anlamıyorum, göstergelerde ExpertRemove() ile çalışmak doğru mu değil mi?
 
Alexey Kozitsyn :
Anlamıyorum, göstergelerde ExpertRemove() ile çalışmak doğru mu değil mi?

Göstergeler için bir işlev var gibi görünüyor veya artık alakalı değil

 ChartIndicatorDelete ();
 
Alexey Kozitsyn :
Anlamıyorum, göstergelerde ExpertRemove() ile çalışmak doğru mu değil mi?

Numara. ExpertRemove() göstergelerde çakışıyor.

"Durur, ancak hemen değil" - bu genellikle ExpertRemove hakkında söylenir. Bu fonksiyon programı kesintiye uğratmaz.

 
Slawa :

Numara. ExpertRemove() göstergelerde çakışıyor.

"Durur, ancak hemen değil" - bu genellikle ExpertRemove hakkında söylenir. Bu fonksiyon programı kesintiye uğratmaz.

Genel olarak, sorunu çıkış() ile çözmeyi planlıyor musunuz? Yoksa kullanıcılar koltuk değnekleriyle mi karar veriyor?)
 
Slawa :
Örnek vermek. Sorunu göstermek için göstergenin kaynağını verin
Metni, düzenleyicide varsayılan olarak oluşturulan göstergenin OnCalculate'e yapıştırın. Herhangi bir çizelgeye yerleştirin. Grafik penceresinin sol üst köşesinde göstergenin çalıştığını göreceksiniz. Gösterge listesinden "Sil"i seçtikten sonra iş durmaz, sol üst köşede görünür. Ve pencereyi kapattıktan sonra bile durmuyor. Ve yeni bir pencere açtıktan sonra yeni pencerede devam ediyor. Ayrıca, bu pencere mutlaka başlangıçtaki sembolle aynı değildir :)
Yalnızca terminal kapatıldığında gösterge çalışmayı durdurur. Ve durup durmadığı bilinmiyor - yeniden başlatmak için terminali görev yöneticisi aracılığıyla manuel olarak kaldırmak zorunda kaldım ...

IsStopped işlevinin yardımı, mql programının yürütülmesini sonlandırmak için bir komut alındığında, programın 3 saniye sonra zorla sonlandırıldığını söylerken.

   int i= 0 ;
   while ( true ){
       Comment (i++);
       Sleep ( 100 );
   }

Ayrıca while(true) yerine while(!IsStopped()) getirilirse, gösterge grafikten kaldırıldığında işini başarıyla tamamlar.

 

Dahili Derleyici Hatasının komik nedeni (göstergede kullanılan işlev):

void SaveData ( uint handle_, int wrdata_, int interv_, string dpath_, int tmode_, int tmult_, long ctime_, long & ltime_ )
{
int ierr, yazı;
// ----
if ( interval_ > 0 ) // çalışma modu
{
if ( MQLInfoInteger ( MQL_TESTER ) == 0 ) { wrtint = interv_; } // alakasız
başka { wrtint = interv_ * tmult_; } // alakasız
//
if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) ) // bu satırı yorumlarsanız hata kaybolur
{
// bazı veri kaydetme kodları ... önemli değil - kontrol edildi
//
ltime_ = ctime_; // genellikle de önemli değil
} // if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) )
} // if ( aralık_ > 0 )
// ----
dönüş;

} // SaveData'yı geçersiz kıl

(üzgünüm, SRC butonunu bilerek kullanmadım çünkü metinde doğru yerleri onunla seçmek mümkün değil)

Tedavi açıktır, ancak katılıyorum - çok komik bir aksaklık. :)))

 

One DC'nin 1 milyon ciro için 16x2 dolarlık bir komisyonu var.Sunucu ayarlarında 16 dolarlık bir komisyon koymuşlar anlaşılan. yeterli bir test sadece lot 10 ile yapılabilir.

Sunucu kurmadaki eğrilikleri mi yoksa MT5'in gerçek bir sınırlaması mı? Komisyonun test cihazında doğru bir şekilde işlenmesi için sunucularda tam olarak ne yapmaları önerilebilir?

Neden: