Hatalar, hatalar, sorular - sayfa 606

 
uncleVic :
Çok net değil neden? Sonuçta, programınız bir nesneyi silmişse, bunu bilir. Ve nesne silinirse ve bununla ilgili program "ne bir rüya ne de bir ruh" - buna göre Terminal sorumludur.

her şey o kadar basit değil (hizmet masasından her şeyin kaybolması üzücü, sorunu yeniden oluşturmaya çalışacağım).

Kullanıcı yanlışlıkla bir nesneyi grafikten sildiğinde durumu ele almak gerekir. Ancak bu nesne silinmemelidir. Örneğin, bu bir listenin veya açılır menünün arka planıdır.

Bu yüzden OnChartEvent kodunda bu olayı işlemem ve kontrolü yeniden çizmem gerekiyor.

Bu yüzden bu kontrolün diğer tüm nesnelerini silmem gerekiyor. Bu kontrolün tüm üst nesnelerini silmenin neden gerekli olduğunu açıklamaya gerek olmadığını düşünüyorum.

Sonuç olarak, bu olayı işlerken algoritmanın derin bir döngüye girdiği ortaya çıkıyor. Komut dosyası nesneleri silecek ve nesnelerin silindiği bir olayı alacak, bu da bu olayın tekrar işlenmesi gerektiği anlamına geliyor - sil ve çiz ... Kısacası, algoritmik bir rahip.

Mevcut CHARTEVENT seti içerisinde bu durumu nasıl çözeceğimi bilmiyorum. Bu nedenle, komut dosyasının - kimin kaldırıldığını - terminal tarafından (kurnaz bir kullanıcı tarafından) veya komut dosyasının kendisi tarafından (aynı programcı tarafından) anlamasını öneriyorum.

Kontrollerle aktif olarak çalışmaya başladığınızda er ya da geç bununla yüzleşeceksiniz.

 
sergeev :

her şey o kadar basit değil (hizmet masasından her şeyin kaybolması üzücü, sorunu yeniden oluşturmaya çalışacağım).

Mevcut CHARTEVENT seti içerisinde bu durumu nasıl çözeceğimi bilmiyorum. Bu nedenle, komut dosyasının - kimin kaldırıldığını - terminal tarafından (kurnaz bir kullanıcı tarafından) veya komut dosyasının kendisi tarafından (aynı programcı tarafından) anlamasını öneriyorum.

Kontrollerle aktif olarak çalışmaya başladığınızda er ya da geç bununla yüzleşeceksiniz.

yüzleştim. Eski kitaplığın ilk sürümlerinden birinde (kontroller açısından ), bu mekanizma uygulandı, ancak belirli nedenlerle kaldırıldı (hala daha sonra geri yüklemeyi planlıyorum).

Orada akıllı bir şey yok. Her kontrol kendini geri yükleyebilmelidir. Alt tabaka, çıkarıldığında üzerinde yatan her şeyi kaldırır. Daha fazla iyileşme olaylara göre gider.

 
uncleVic :


Orada akıllı bir şey yok. Her kontrol kendini geri yükleyebilmelidir. Alt tabaka, çıkarıldığında, üzerinde yatan her şeyi kaldırır. Daha fazla iyileşme olaylara göre gider.

peki, bu konuda ben de konuşuyorum, nesnenin kaldırılması olayının alınması sırasında kontrol kendini geri yükler.

Ancak kontrol kendini geri yüklemeye başlar başlamaz (en üstteki nesneleri silerek), silme olayları hemen yeniden akmaya başlayacaktır.

kısacası, neden tekrar rant edeyim ve bariz olanı ispat edeyim :)) şirketiniz standart kütüphanenin geliştirilmesi için bir mouse move olayına ihtiyaç duyduğunda, o zaman hemen çalışır durumda ve herhangi bir soru sormadan eklendi. Çifte standart uygulaması elde edilir....
Ama bana öyle geliyor ki, aynı teklif kullanıcıdan servis masasına gitseydi, o zaman açıklama ve şirketin neye ihtiyacı olduğu ile bir ay daha sürüklenirdi.

İnan bana, buna ihtiyacın var! Hizmet masasına zaten kendi iyiliğimiz için değil, MT5 ve MQL5'i tanıtmak için çalıştığımızı yazdım.

Dürüst olmak gerekirse, MQL'deki sorunlarımıza hızlı ve kompakt çözümler bulmak için sonuna kadar gidiyoruz. Bir engelle karşılaşırsak servis masasına yazıyoruz. Ama genellikle anlayış yoktur.

Daha önce de yazdığım gibi, kendinize bir kontrol kütüphanesi yaptığınız için çok memnunum. Sizin tarafınızdan anlamadan çözülmesi gereken tüm sorunlarımızı en azından biraz hissedin.

not.
Victor , çok ani olduğu için özür dilerim, sadece ağrılı bir noktaya bastılar.
Sadece şirketinizden MQL programcılarının isteklerini dinlemesini rica ediyorum. Sonuçta, MQL'de hayal edebileceğinizden çok daha çeşitli görevleri çözüyoruz. Bazen cevabı servis masasında daha sık duymak istersiniz: evet, bunu bir sonraki derlemede yapacağız.

Anlayışınız için teşekkürler.

 

sergeev :

... şirketiniz bir fare hareket olayına ihtiyaç duyduğunda...

Bunun için "yetişkin" programcılar hakkında yumruklarımı ne kadar kırmam gerektiğini bir bilseniz ...
 
Özgün görünmekten korkuyorum ama yine de ... Bayanlar ve Baylar - piyasa ne zaman açılacak? En azından kaba bir zaman dilimi bilen var mı?
 
uncleVic :
Bunun için "yetişkin" programcılar hakkında yumruklarımı ne kadar kırmam gerektiğini bir bilseniz ...
Victor , o halde aynı gemideyiz :)) birlikte olalım.
 

Borsa yürütmesinin uygulandığı bir komut dosyasına dayalı bir araçta uzun bir pozisyon açmaya çalışıyorum ( SYMBOL_TRADE_EXECUTION_EXCHANGE , Exchange yürütme).

 #include <Trade\Trade.mqh>                   
input double InpLots           = 0.1 ;  
input int      InpTakeProfit     = 500 ;
input int      InpSL             = 300 ;
CTrade       myTrade;

void OnStart ()
  {   
   double price= SymbolInfoDouble ( _Symbol , SYMBOL_ASK );
   double tp= SymbolInfoDouble ( _Symbol , SYMBOL_BID )+ InpTakeProfit * _Point ;
   double sl= SymbolInfoDouble ( _Symbol , SYMBOL_BID )- InpSL * _Point ;
   myTrade.SetTypeFilling( ORDER_FILLING_IOC );
   myTrade.PositionOpen( _Symbol , ORDER_TYPE_BUY , InpLots ,price, 0 , 0 , "Test Buy" );
   Sleep ( 500 ); // интервал задержки
   myTrade.PositionModify( _Symbol ,sl,tp);
  }

bir hata alıyorum:

  • 0.00000'den 0.10 EURUSD.e satın al;
  • başarısız değişim 0,10 EURUSD.e'yi 0,00000'den satın aldı [Geçersiz duraklar]

Onlar. terminal satın almak istediğim fiyatı görmüyor. Farklı fiyatlar denendi, hala 0,00000 veriyor.

Ve benzer bir komut dosyasını aynı değişim koşulları altında MT4'te çalıştırmayı denedim, orada çalıştı... MT5'te - hayır...

Lütfen hataya burnunuzu sokun.

 
denkir :
  • başarısız değişim 0,10 EURUSD.e'yi 0,00000'den satın aldı [Geçersiz duraklar]

Bu bir sunucu mesajıdır, terminal değil. Bu konuda daha fazla bir şey söyleyemem.

Hizmet Masasına bir istek gönderin .

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
papaklass :

Dizi taşması hatası neden oluşur?

Eh, aslında, genellikle okumadan önce bir şeyler yazarlar ...
 
papaklass :

Dizi taşması hatası neden oluşur?


ArrayResize çağrınız nerede?
Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5