MQL uzmanları için soru - sayfa 4

 
Çılgınca... "MQL Uzmanları İçin Soru"ya girdim... Kusura bakmayın, ben bir programcıyım, kurşun gibi... :) ama her zaman objektifim! :)
 
leonid553 :

gibi anladım. Fonksiyonda nesnenin adını belirledim.

ObjectCreate( name+ WindowExpertName() , OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);


Nesnelerle ilgili değil.

init() içinde yazılır

IndicatorShortName( "CC-STOKS " );

ve işleme işlevinde, göstergenin adı olarak WindowExpertName() kullanın.

zaten karar verdin dostum (aşinalık için üzgünüm) veya göstergene "CC-STOKS" denir (öz bir takma addır) veya bir uzman adına ..

 

Ve benimkiyle ilgili...

Şey, bir nesnenin varlığı için bir kontrol görmüyorum.

 

GöstergeShortName("CC-STOKS "); satırı kaldırıldı.

Şimdi çalışıyor gibi görünüyor.

//------------------------------------------------

Bir kontrol yaptı.

 string info = ObjectFind ( "Symbol1+WindowExpertName()" );
     IndicatorShortName(info);     

Yorum "-1" döndürür

Ayrıca, - "takma adın" veya kaldırılmış olmasına bakılmaksızın.

 

Sorun değil. İşler...

Yardımcı olan ve soruları cevaplayan herkese teşekkürler!

 

Biraz bira içtim ama beynimi çıkarıyorsun..

açıklığa kavuşturmak için böyle bir şey yapın.


veya

1. kısa isim yok ve

 static int WINDOW = - 1 ;

int start(){
   if (WINDOW == - 1 ) WINDOW = WindowFind( WindowExpertName() );
}

init()'iniz olduğu gibi

veya int() içindeki kısa adı ayarlayın

 string short = "CC-STOKS" ;

int init(){
   IndicatorShortName( short );
   // остальное прочее
}

int start(){
   if (WINDOW == - 1 ) WINDOW = WindowFind( short );
}

ve sonra nesneleri çizerken, alt pencerenin numarası olarak WINDOW'u kullanırız.

 ObjectCreate (name + WindowExpertName(), OBJ_LABEL , WINDOWS, 0 , 0 );

genel olarak, nesne işlevini bu biçimde yazmak daha iyidir

 void object( string name, int window, string text, color col, int corner,
             int x, int y, bool back = false, int fontsize = 9 , 
             string fontname = "Tahoma" ) {
   if ( ObjectFind (name)==- 1 )      
       ObjectCreate (name, OBJ_LABEL , window, 0 , 0 );
   ObjectSetText(name, text, fontsize, fontname, col);
   ObjectSet(name, OBJPROP_CORNER , corner);
   ObjectSet(name, OBJPROP_BACK ,back);
   ObjectSet(name, OBJPROP_XDISTANCE , x);
   ObjectSet(name, OBJPROP_YDISTANCE , y);     
}

bu nedenle tüm anahtar nitelikler parametre olarak iletilir ve bu arada, nesnenin adını işlevin dışında oluşturmak mantıklıdır..

 
TAMAM. talimatlarını takip ediyorum...
 

Tünaydın. Lütfen. söylemek.

Gösterge penceresinde bir üçgen çizmek mümkün müdür? Eğer öyleyse, koordinatlar nasıl ayarlanır?

Yardımda, mql, gösterge penceresi için üçgen koordinatlarını ayarlamanın bir yolunu bulamadı.

 
Rita :

Tünaydın. Lütfen. söylemek.

Gösterge penceresinde bir üçgen çizmek mümkün müdür? Eğer öyleyse, koordinatlar nasıl ayarlanır?

Yardımda, mql, gösterge penceresi için üçgen koordinatlarını ayarlamanın bir yolunu bulamadı.


 ObjectCreate (имя_объекта, OBJ_TRIANGLE , 0 , вершина 1 _время, вершина 1 _цена, вершина 2 _время, вершина 2 _цена, вершина 3 _времявершина 3 _цена);
Ana alt pencerede gerekli değilse, 0 yerine ilgili alt pencerenin numarasını kullanın: https://docs.mql4.com/en/windows/WindowFind
 


ObjectCreate(name, OBJ_TRIANGL E, WindowFind(WindowExpertName() , Time[-1] ,top1_price,

Zaman[-5],top2_fiyat,

Zaman[-7],top3_fiyat, );

//------------------------------------------------ -------------------------------------------------- --------------------------

Üçgen köşelerinin koordinatlarını zamana göre ayarladım (örneğin, gelecekteki çubukların açılma zamanına göre). Bundan sonra ne olacağı benim için tamamen açık değil. Gösterge penceresinin ölçeği fiyatı göstermez. Gösterge değerlerinin derecelendirilmesi.

Ama fiyatı ne olursa olsun, köşeleri katı bir şekilde sabitlenmiş bir üçgen "yerleştirmem" gerekiyor.

Ve sağ (veya sağ alt) köşeye sıkıca sabitlemek istenir.

Ve köşelerinin koordinatlarını nasıl ayarlayacağımı anlamıyorum - gösterge ölçeğinin dikey ekseni boyunca: