Gösterge Çeşitli Sorular - sayfa 11

 
Bu yorumdaki örnek kodumu görebiliyor musunuz #99
 

Ah tamam o kod.

ObjectCreate() ayrıca grafik kimliğine ihtiyaç duyar:

 bool    ObjectCreate (
   long          chart_id,       // chart identifier
   string        name,           // object name
   ENUM_OBJECT   type,           // object type
   sub_window   nwin,           // window index
   datetime      time1,         // time of the first anchor point
   double        price1,         // price of the first anchor point
   ...
   datetime      timeN= 0 ,       // time of the N-th anchor point
   double        priceN= 0 ,       // price of the N-th anchor point
   ...
   datetime      time30= 0 ,       // time of the 30th anchor point
   double        price30= 0        // price of the 30th anchor point
   );

İlk parametre olarak.

 int OnInit ()
  {
   Print ( "Outside" );

   ObjectCreate ( "Object Outside" , OBJ_LABEL , 0 , 0 , 0 );
   ObjectSetInteger ( 0 , "Object Outside" , OBJPROP_XDISTANCE , 20 );
   ObjectSetInteger ( 0 , "Object Outside" , OBJPROP_YDISTANCE , 20 );
   ObjectSetString ( 0 , "Object Outside" , OBJPROP_TEXT , "Outside" );

   if ( DayOfWeek ()== 5 )
     {
       Print ( "Inside" );

       ObjectCreate ( "Object Inside" , OBJ_LABEL , 0 , 0 , 0 );
       ObjectSetInteger ( 0 , "Object Inside" , OBJPROP_XDISTANCE , 20 );
       ObjectSetInteger ( 0 , "Object Inside" , OBJPROP_YDISTANCE , 40 );
       ObjectSetString ( 0 , "Object Inside" , OBJPROP_TEXT , "Inside" );
     }
  }

Ancak nesne adıyla başlarsınız.

Ayrıca bir taban köşesi/bağlantı noktası belirleyebilirsiniz.

Lütfen bakın: https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_label

 //+------------------------------------------------------------------+
//| Create a text label                                              |
//+------------------------------------------------------------------+
bool LabelCreate( const long               chart_ID= 0 ,               // chart's ID
                 const string             name= "Label" ,             // label name
                 const int                sub_window= 0 ,             // subwindow index
                 const int                x= 0 ,                       // X coordinate
                 const int                y= 0 ,                       // Y coordinate
                 const ENUM_BASE_CORNER   corner= CORNER_LEFT_UPPER , // chart corner for anchoring
                 const string             text= "Label" ,             // text
                 const string             font= "Arial" ,             // font
                 const int                font_size= 10 ,             // font size
                 const color              clr= clrRed ,               // color
                 const double             angle= 0.0 ,                 // text slope
                 const ENUM_ANCHOR_POINT anchor= ANCHOR_LEFT_UPPER , // anchor type
                 const bool               back= false ,               // in the background
                 const bool               selection= false ,           // highlight to move
                 const bool               hidden= true ,               // hidden in the object list
                 const long               z_order= 0 )                 // priority for mouse click
  {
//--- reset the error value
   ResetLastError ();
//--- create a text label
   if (! ObjectCreate (chart_ID,name, OBJ_LABEL ,sub_window, 0 , 0 ))
     {
       Print ( __FUNCTION__ ,
             ": failed to create text label! Error code = " , GetLastError ());
       return ( false );
     }
//--- set label coordinates
   ObjectSetInteger (chart_ID,name, OBJPROP_XDISTANCE ,x);
   ObjectSetInteger (chart_ID,name, OBJPROP_YDISTANCE ,y);
//--- set the chart's corner, relative to which point coordinates are defined
   ObjectSetInteger (chart_ID,name, OBJPROP_CORNER ,corner);
//--- set the text
   ObjectSetString (chart_ID,name, OBJPROP_TEXT ,text);
//--- set text font
   ObjectSetString (chart_ID,name, OBJPROP_FONT ,font);
//--- set font size
   ObjectSetInteger (chart_ID,name, OBJPROP_FONTSIZE ,font_size);
//--- set the slope angle of the text
   ObjectSetDouble (chart_ID,name, OBJPROP_ANGLE ,angle);
//--- set anchor type
   ObjectSetInteger (chart_ID,name, OBJPROP_ANCHOR ,anchor);
//--- set color
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr);
//--- display in the foreground (false) or background (true)
   ObjectSetInteger (chart_ID,name, OBJPROP_BACK ,back);
//--- enable (true) or disable (false) the mode of moving the label by mouse
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTABLE ,selection);
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTED ,selection);
//--- hide (true) or display (false) graphical object name in the object list
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN ,hidden);
//--- set the priority for receiving the event of a mouse click in the chart
   ObjectSetInteger (chart_ID,name, OBJPROP_ZORDER ,z_order);
//--- successful execution
   return ( true );
  }
//+------------------------------------------------------------------+

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_LABEL
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_LABEL
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_LABEL - Reference on algorithmic/automated trading language for MetaTrader 5
 

Sadece endişeleniyorum sorunumu açıklayamıyorum, denemek istedim lütfen denediniz mi? O zaman bu kodla ilgili sorunumun ne olduğunu öğrenebilirsiniz.

Ben sadece şöyle deniyorum - 1. Örnek dosyamı grafiğe ekledim ardından MT4'ü kapattım. 2. MT4'ü açın - o zaman Inside Label Object'imi göremiyorum.

Bu yüzden sorunuma çözüm bulmaya çalışıyorum. : /


Belki pazartesi kesin olurum.

(Bu kadar kolay olduğunu düşündüğümde, o kadar kolay şeylere çok zaman harcıyorum - bu kadar zor olduğunu düşündüğümde onları çok kolay yaptım... - Yapmak istediklerimin hemen hemen hepsini. Önce okumaya çalışıyorum. belgeler... )

 

Denedim ve gösterilen iki nesne var.

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
       Print ( "Outside" );

   ObjectCreate ( 0 , "Object Outside" , OBJ_LABEL , 0 , 0 , 0 );
   ObjectSetInteger ( 0 , "Object Outside" , OBJPROP_XDISTANCE , 20 );
   ObjectSetInteger ( 0 , "Object Outside" , OBJPROP_YDISTANCE , 20 );
   ObjectSetString ( 0 , "Object Outside" , OBJPROP_TEXT , "Outside" );

   if ( DayOfWeek ()== 5 )
     {
       Print ( "Inside" );

       ObjectCreate ( 0 , "Object Inside" , OBJ_LABEL , 0 , 0 , 0 );
       ObjectSetInteger ( 0 , "Object Inside" , OBJPROP_XDISTANCE , 20 );
       ObjectSetInteger ( 0 , "Object Inside" , OBJPROP_YDISTANCE , 40 );
       ObjectSetString ( 0 , "Object Inside" , OBJPROP_TEXT , "Inside" );
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+


 

Güzel!

Ekran görüntüsüme bakın lütfen.

bir sorun var

Zaman ayırdığınız için çok teşekkürler Bay Marco

 

Kodun bir kısmının Göstergede bana farklı sonuç vereceğini asla umursamıyorum. : /
Gösterge Dosyamda kodun bu bölümünü deniyorum.

( Trade Panel dosyamda değil, gösterge dosyalarında bazı kodlar yazmaya karar verdim. )


2. kez düzenlendi

Yönteminizi zaten kullanıyorum - şimdi sorunsuz çalışıyor, umarım işe yarar.

Çok teşekkürler Bay Marco


#Pazartesi Değil - Kapalı
 

#Yenile - Aç

Bu sorunumu çözdükten sonra - göstergem ana MT4 platformumda iyi çalışıyor - ancak MT4 platformunu başlattığımda göstergemin yenilenmesi gereken 2. MT4 platformunu kullanıyorum.
Bu sorunun nereden geldiği hakkında hiçbir fikrim yok... tam olarak bununla ilgili bir şey soruyorum.

S: Biri bana bu tuhaf durum hakkında bir şey söyleyebilir mi, lütfen?

Şimdiden teşekkürler.

 

Yani iki platform arasında farklı davranışlara mı tanık oluyorsunuz?

Aynı yapıdalar mı?

 
Marco vd Heijden :

Yani iki platform arasında farklı davranışlara mı tanık oluyorsunuz?

Aynı yapıdalar mı?

Evet kesinlikle farklı bir davranış...

Ayrıca evet ikisi de 1065 Yapı

 

Belki de bu garip sorunların nereden geldiğini buldum ...

Yük şablonunun ne sırrı?
Beni tamamen yok eden mistik şeyler var... bu beni gerçekten deli ediyor... - EA'larım ve Göstergelerim için şimdiye kadar harcadığım kadar çok zaman harcamadığım çok büyük şeyler yaptım. birkaç küçük sorun...

Nasıl? Basit!

EA'mın dosyalarına bazı komut dosyaları koymamam gerektiğine karar verdikten sonra - sürekli olarak SEO'da çözüm bulamadığım küçük sorunlarla karşılaşıyorum. (aslında bazen SEO ile ilgili büyük EA sorunlarıma kolayca çözüm buluyorum - ama bu küçük sorunlar.)

---

Bu basit kodu örnek gösterge dosyama koydum.

 int OnInit ()
{
   Print ( "This Year", Year () );
   return ( INIT_SUCCEEDED );
}

Bu örnek dosyayı grafiğime yüklemeye çalıştığımda. TimeFrame'i değiştirene kadar düzgün çalışmıyor.
(bugün şimdiden yorulmuş olabilirim)
(Ayrıca, bu kodu OnCalculate(...) içine koyarsam bu sorunu çözebileceğimi biliyorum - ama sadece bu kodu OnInit() içine koymam gerekiyor)

Lütfen, bu konu için daha net bir açıklamaya ihtiyacım var. Gerçekten buna ihtiyacım var, çünkü birkaç göstergemde aynı alakasız sorunlar var. (bunu EA'mın dosyalarına koyarsam düzgün çalışacaktır)

Şimdiden teşekkürler.
İyi hafta sonları.

Neden: