Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 727

 
Vitaly Muzichenko :

Oluşturma sırasında bir nesneyi nasıl seçeceğimi ve seçimi kaybetmemesi için bana bir nesneyi nasıl seçeceğimi söyleyin, peki, kullanıcı seçimi kaldırdığında kendini göstermez. Dördüncüsü kolaydı, beşincisi çalışmıyor.

Böyleydi ve mükemmel çalıştı:

void SetHLine(..., double p, bool sel) {
   if ( ObjectFind (chart_ID,nm)!= 0 ) {
     ObjectCreate (chart_ID,nm, OBJ_HLINE , 0 , 0 , 0 );
     ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);
    ...
  }
   ObjectSetDouble (chart_ID,nm, OBJPROP_PRICE ,p);
}

Görüldüğü gibi oluştururken oluşturulan nesneyi hemen seçip seçmeyebiliyoruz ve artık değişmeyecek ve ona erişim yok ama beşincide bu olmuyor, seçmeden yaratıyor.

Oluşturma sırasında bir nesne seçebileceğiniz ve ardından gerektiğinde manuel olarak yönetebileceğiniz şekilde mql5'te nasıl yapılır - seçin / seçmeyin

OBJPROP_SELECTABLE
 

Öyle, ama simge vurgulanmadı

void SetArrow( string nm, string tooltxt= "" , datetime t= 0 , double p= 0 , color col= clrRed , long type= 0 ) {
if ( ObjectFind ( 0 ,nm)!= 0 ) {
     ObjectCreate ( 0 ,nm,type== 0 ? OBJ_ARROW_BUY : OBJ_ARROW_SELL , 0 , 0 , 0 );
     ObjectSetInteger ( 0 ,nm, OBJPROP_COLOR ,col);
     ObjectSetInteger ( 0 ,nm, OBJPROP_SELECTED , true );
     ObjectSetInteger ( 0 ,nm, OBJPROP_SELECTABLE , true );
     ObjectSetInteger ( 0 ,nm, OBJPROP_HIDDEN , false );
     ObjectSetString ( 0 ,nm, OBJPROP_TOOLTIP ,tooltxt);
   }
     ObjectSetDouble ( 0 ,nm, OBJPROP_PRICE ,p);
     ObjectSetInteger ( 0 ,nm, OBJPROP_TIME ,t);
}
 
Vitaly Muzichenko :

Öyle, ama simge vurgulanmadı

void SetArrow( string nm, string tooltxt= "" , datetime t= 0 , double p= 0 , color col= clrRed , long type= 0 ) {
if ( ObjectFind ( 0 ,nm)!= 0 ) {
     ObjectCreate ( 0 ,nm,type== 0 ? OBJ_ARROW_BUY : OBJ_ARROW_SELL , 0 , 0 , 0 );
     ObjectSetInteger ( 0 ,nm, OBJPROP_COLOR ,col);
     ObjectSetInteger ( 0 ,nm, OBJPROP_SELECTED , true );
     ObjectSetInteger ( 0 ,nm, OBJPROP_SELECTABLE , true );
     ObjectSetInteger ( 0 ,nm, OBJPROP_HIDDEN , false );
     ObjectSetString ( 0 ,nm, OBJPROP_TOOLTIP ,tooltxt);
   }
     ObjectSetDouble ( 0 ,nm, OBJPROP_PRICE ,p);
     ObjectSetInteger ( 0 ,nm, OBJPROP_TIME ,t);
}

Her şey göze çarpıyor:

seçim

Dosyalar:
OBJ_ARROW.mq5  22 kb
 
Vladimir Karputov :

Her şey göze çarpıyor:

Kahretsin, bir işlevi yönettim ve diğerini kontrol ettim, her şey çalışıyor. Teşekkür ederim! Uyu)
 

Garip bir özellik fark ettim, bu şekilde kaydederseniz, oluştururken çizgiler vurgulanmıyor

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);
ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );

Ancak tam tersine, seçimle ilgili herhangi bir sorun yoktur:

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );
ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);

Bazı nedenlerden dolayı, şartların değiştirilmesinden miktar değişiyor mu?

 
Vitaly Muzichenko :

Garip bir özellik fark ettim, bu şekilde kaydederseniz, oluştururken çizgiler vurgulanmıyor

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);
ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );

Ancak tam tersine, seçimle ilgili herhangi bir sorun yoktur:

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );
ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);

Bazı nedenlerden dolayı, şartların değiştirilmesinden miktar değişiyor mu?

Görünüşe göre ne zaman

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);

son takım, grafik güncellendi

 
Vitaly Muzichenko :

Garip bir özellik fark ettim, bu şekilde kaydederseniz, oluştururken çizgiler vurgulanmıyor

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);
ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );

Ancak tam tersine, seçimle ilgili herhangi bir sorun yoktur:

ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );
ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);

Bazı nedenlerden dolayı, terimlerin değiştirilmesinden miktar değişiyor mu?

Başlangıçta, muhtemelen bir nesne oluştururken varsayılan özellik seçilemez olarak ayarlanır.

Sonra onu seçersiniz (ancak nesne seçili değildir), sırasıyla hiçbir şey seçilmez

Ardından seçilebilirlik özelliğini ona ayarlarsınız. Ama "Borjomi içmek için çok geç" ...
 

İşte tam kod:

void SetVLine( long chart_ID= 0 , string nm= "nm" , datetime tm= 0 , int wd= 1 , int st= 0 , color cl= clrRed ,
                                              string tooltxt= "" , bool sel= false , bool back= false ) {
if ( ObjectFind (chart_ID,nm)< 0 ) {
     ObjectCreate (chart_ID,nm, OBJ_VLINE , 0 ,tm, 0 );
     ObjectSetInteger (chart_ID,nm, OBJPROP_TIME ,tm);
     ObjectSetInteger (chart_ID,nm, OBJPROP_BACK ,back);
     ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE , true );
     ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,sel);
   // ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
     ObjectSetString (chart_ID,nm, OBJPROP_TOOLTIP ,tooltxt);
     ObjectSetInteger (chart_ID,nm, OBJPROP_COLOR ,cl);
     ObjectSetInteger (chart_ID,nm, OBJPROP_WIDTH ,wd);
     ObjectSetInteger (chart_ID,nm, OBJPROP_STYLE ,st);
   }
}

Evet, her tür nesnede kontrol ettim ve önce " SEÇİLEBİLİR " ve ardından " SEÇİLİ " yazmanız gerekiyor

Girişiniz ve yardımınız için teşekkür ederiz!

 
MetaTrader5, 3 bloktan bir Expert Advisor oluşturma yeteneğine sahiptir. 1 blok, bir göstergeden veya birkaç göstergeden sinyal üretir. 2 blok tır. 3 blok riski.

Lütfen söyleyin 1. 1 bloğa özel göstergeler eklemek mümkün müdür? Evet ise, nasıl yapılır?

2. İşlemlerin her iki yönde de açılması için kodu düzeltmek mümkün mü?
 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.