MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1793

 
Nerd Trader # :
Evet, gerçekten, zaten 8 parça var, ancak grafikte görünmüyor, 0 fiyatının önemli olmadığı gerçeği, satır hala imlece yapışıyor (onu takip ediyor)

ObjectDelete kullanmayın çünkü hat her seferinde "0" a çalışır

daha iyi
        ObjectSetString ( 0 , "line 1" , OBJPROP_NAME ,line_name);
       ObjectSetInteger ( 0 ,line_name, OBJPROP_COLOR , clrRed );
 
MakarFX # :

ObjectDelete kullanmayın çünkü hat her seferinde "0" a çalışır

daha iyi
Yeniden adlandırma seçeneğim var ve evet işe yarıyor. ObjectDelete () durumunda, neden aynı örnekte yeşil ve kırmızı çizgiler oluşturuluyor ve titremiyor? Ve sarı çizgi (Zararı Durdur) zaten varsa, koşul Teklif'in altındayken neden sonsuza kadar çoğalıyor?
 

0 yanlış anlamına gelir. 0 olmayan her şey doğrudur. Ancak, her türlü koşulun karıştırıldığı böyle bir kodun okunabilirliğini düşünen var mı?

 if (! ObjectFind ( "Buy Stop" ))

Bu bir boole değeri değil. Ancak kolayca bir boole dönüştürülebilir:

 bool objectExist( const long _chartID, const string _name) { return ( ObjectFind (_chartID, _name) >= 0 ); } // чётко определим условие существования объекта!
 if (!objectExist(0, "Buy stop" ))
   Print ( "Error! Object not found." )

Bu yüzden asıl mesele, kod yazmaya doğru yaklaşıma sahip olmaktır. Ve sonra asla böyle problemler yaşamazsınız .

 
Nerd Trader # :
Yeniden adlandırma seçeneğim var ve evet işe yarıyor. ObjectDelete () durumunda neden yeşil ve kırmızı çizgiler aynı anda oluşturuluyor ve titremiyor? Ve zaten sarı bir çizgi varsa, neden sonsuza kadar çoğalıyor?

Bu çizgiler sizin kontrolünüz altında.

 if (id== CHARTEVENT_OBJECT_CLICK ){

Ve titreşen çizgiler herhangi bir OnChartEvent'e tepki verir, çünkü

 if ( ObjectGetInteger ( 0 , "Button Stop Order" , OBJPROP_STATE ))
 
Mihail Matkovskij # :

0 yanlış anlamına gelir. 0 olmayan her şey doğrudur. Ancak, her türlü koşulun karıştırıldığı böyle bir kodun okunabilirliğini düşünen var mı?

Bu bir boole değeri değil. Ancak kolayca bir boole dönüştürülebilir:

Bu yüzden asıl mesele, kod yazmaya doğru yaklaşıma sahip olmaktır. Ve sonra asla böyle problemler yaşamazsınız .

 return ( ObjectFind (_chartID, _name) >= 0 )

Ve nesne "0" ana penceresindeyse, false döndürür mü?

 
MakarFX # :

Ve titreşen çizgiler herhangi bir OnChartEvent'e tepki verir, çünkü

Ona söyledim: düğmeye basılır - bir çizgi oluştururuz, düğmeye basılır - sileriz (ve eklenebilecek diğer nesne türleriyle). Ama dedi ki: bu saçmalık, her şeyi "normal" yapacağım. :)

 
Nerd Trader # :

Ve nesne "0" ana penceresindeyse, false döndürür mü?

Belgeleri okumak konusundaki isteksizliğinizi yenebilecek şey bu mu?!

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/en/objects/objectfind

Geri dönüş değeri

Başarı durumunda, fonksiyon bulunan nesnenin bulunduğu alt pencerenin ( 0 grafiğin ana penceresi anlamına gelir ) numarasını döndürür. Nesne bulunamazsa, işlev negatif bir sayı döndürür. hakkında daha fazla bilgi için   hata , işlevi çağırmanız gerekir   GetLastError() .

Документация по MQL5: Графические объекты / ObjectFind
Документация по MQL5: Графические объекты / ObjectFind
  • www.mql5.com
ObjectFind - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MakarFX # :

Bu çizgiler sizin kontrolünüz altında.

Ve titreşen çizgiler herhangi bir OnChartEvent'e tepki verir, çünkü

ve yeşil çizgi, genel olarak, tüm çizgiler imlecin hareketine de tepki verir. Sarı "Satış Durağı" için koşul, yeşil "Satın Al Durdurma" (fiyat < Teklif) için if( fiyat > Sor ) ve gri olan için "izin verilmez" olduğundan, üç satırın da yayılma bölgesinde oluşturulduğunu fark ettim. " ( fiyat > Teklif && fiyat < Sor )
 
Nerd Trader # :

Ve nesne "0" ana penceresindeyse, false döndürür mü?

 bool FindObject( string name)
  {
   if ( ObjectFind ( 0 ,name)) return ( false );
   return ( true );
  }
 
Mihail Matkovskij # :

Ona söyledim: düğmeye basılır - bir çizgi oluştururuz, düğmeye basılır - sileriz (ve eklenebilecek diğer nesne türleriyle). Ama dedi ki: Bu saçmalık, her şeyi normal şekilde yapacağım. :)

mülkiyet yoluyla renk değişimi hakkında? Böyle bir seçeneğim var, bunun neden işe yaramadığını anlamam gerekiyor.

Michael Matkovskij :

Belgeleri okumak konusundaki isteksizliğinizi yenebilecek şey bu mu?!

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/en/objects/objectfind

Peki, sorun ne, ana penceredeki nesne "0" olduğunda, işleviniz false döndürür? Momenti >= 0... veya sıfıra eşit olarak açıklayın