Hatalar, hatalar, sorular - sayfa 2392

 

Grafik nesneler aracılığıyla ticaret seviyesinin uygulanmasını nerede görebilirim?

Terminalin kendisinin yaptığına mümkün olduğunca yakın olması gerekiyor.

 
fxsaber :

Grafik nesneler aracılığıyla ticaret seviyesinin uygulanmasını nerede görebilirim?

Terminalin kendisinin yaptığına mümkün olduğunca yakın olması gerekiyor.

OBJPROP_TEXT içinde DASHDOT stili ve açıklaması olan yatay bir çizgi.

 
Andrey Khatimlianskii :

OBJPROP_TEXT içinde DASHDOT stili ve açıklaması olan yatay bir çizgi.

Teşekkürler, text özelliğini bilmiyordum.


aşmaz. Neyi yanlış yapıyorum?

 void OnStart ()
{
   const string Name = __FUNCTION__ ;
  
   ObjectCreate ( 0 , Name, OBJ_HLINE , 0 , 0 , SymbolInfoDouble ( _Symbol , SYMBOL_BID ));
   ObjectSetString ( 0 , Name, OBJPROP_TEXT , "12345" );
   ObjectSetString ( 0 , Name, OBJPROP_LEVELTEXT , "12345" );
}

Metin görünmüyor.

 
fxsaber :

Teşekkürler, text özelliğini bilmiyordum.


aşmaz. Neyi yanlış yapıyorum?

Metin görünmüyor.

Grafik ayarlarında grafik nesneler için metin etiketlerinin görüntülenmesini etkinleştirin.
 
Artyom Trishkin :
Grafik ayarlarında grafik nesneler için metin etiketlerinin görüntülenmesini etkinleştirin.

Teşekkür ederim!

 
fxsaber :

Teşekkür ederim!

Programatik olarak da.
 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 
Ilya Malev :

MQL5 ME 2006

MQL4'te olması gerektiği gibi aynı kod " 'f' fonksiyonunun bir gövdesi olmalıdır"

Mesaj için teşekkürler.

Düzeltme yapılır, doğru hata üretilir.

 
Ilyas :

Sitedeki özel mesajları ne zaman düzelteceksiniz?

1. Sürekli olarak ürünün güncellenmesiyle ilgili mesajlar (sitede ve terminalde) çıkıyor. aynı üründen. Okuyorsun ve onlar yine okuyorsun - tekrar;

2. Kendi mesajlarınız vurgulanır (terminalde). Ne yazdığımı ve kime yazdığımı biliyorum. Kendi mesajlarınızı yeni olarak öne çıkarmanıza gerek yok!

 

Merhaba.

Birkaç metin etiketini tek bir uzun dizede birleştirmeye çalışıyorum. Bazı nedenlerden dolayı, kenelerin yokluğunda (izin günü) ve normal modda bile, ObjectGetInteger (0,name,OBJPROP_XSIZE) işlevi, "name" nesnesi kesinlikle mevcut olsa bile periyodik olarak (her zaman değil) 0 döndürür. Test cihazında hatalar daha az yaygındır, ancak aynı zamanda görünürler.

Hata kodu 0 ve değer alınmadı. Geliştiricilere ve bilenlere soru. Niye ya? Neyi yanlış yapıyorum yoksa bu bir hata mı?

 2019.02 . 28 13 : 58 : 16.922 DBS_Bug3 (RTS- 3.19 ,M4)  DBS_Bug3: GetLastX: Не удалось получить размер объекта dbs_inf_11! Код ошибки: 0 . Операция выполнена успешно.

aşağıdaki EA kodunu test edin

 //+------------------------------------------------------------------+
//|                                                     DBS_Bug3.mq5 |
//|                                            Copyright © 2019, DBS |
//+------------------------------------------------------------------+
#include "Include\Errors.mqh"
//+------------------------------------------------------------------+
//| Входные параметры эксперта                                       |
//+------------------------------------------------------------------+
sinput int      Renew_Interval= 5 ;             //Интервал обновления, сек.
sinput string   iFontName= "Tahoma" ;           //Название шрифта
sinput int      iFontSize= 9 ;                   //Размер шрифта
sinput color    iColorBase= clrYellow ;         //Основной цвет
sinput int      iText_X= 300 ;                   //Смещение от левого края графика, пикс.
sinput int      iText_Y= 5 ;                     //Смещение от верхнего края графика, пикс.
sinput string   iName_pref= "dbs_inf_" ;         //Префикс имени объектов текста
//+------------------------------------------------------------------+
//| Глобальные переменные                                            |
//+------------------------------------------------------------------+
datetime LastCalculateTime= 0 ;                 //время последнего расчёта
//+------------------------------------------------------------------+
//| Обработчик события OnInit                                        | 
//+------------------------------------------------------------------+
int OnInit ()
  {
   EventSetTimer (Renew_Interval);                                     //установка таймера
   ShowInfo();                                                         //отобразить информацию   
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Обработчик события Deinit                                        | 
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   ObjectsDeleteAll ( 0 ,iName_pref);                                     //удаляем все свои объекты текста
   ChartRedraw ();
  }
//+------------------------------------------------------------------+
//| Обработчик событий таймера                                       |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   if ( SymbolInfoInteger ( _Symbol , SYMBOL_TIME )>LastCalculateTime)       //проверка периода перерасчёта
      ShowInfo();                                                     //вывести информацию
  }
//+------------------------------------------------------------------+
//| Выводит на экран информацию про некоторые параметры эксперта     |
//+------------------------------------------------------------------+
void ShowInfo()
  {
   string t10= "Прибыль: " + IntegerToString ( MathRand ())+ " " ;
   string t11= "Убыток: " + IntegerToString ( MathRand ())+ " " ;
   string t12= "Баланс: " + IntegerToString ( MathRand ())+ " " ;
   TextCreate( 10 ,t10,iText_X,iText_Y);
   TextCreate( 11 ,t11,GetLastX( 10 ),iText_Y);
   TextCreate( 12 ,t12,GetLastX( 11 ),iText_Y);
   LastCalculateTime= TimeCurrent ();                                   //запомним время последнего пересчёта
  }
//+------------------------------------------------------------------+
//| Функция получает значение координаты X конца заданного объекта   |
//+------------------------------------------------------------------+
int GetLastX( int a_idx)
  {
   string name=iName_pref+ IntegerToString (a_idx);                     //имя объекта
   long x= ObjectGetInteger ( 0 ,name, OBJPROP_XDISTANCE );
   long size= ObjectGetInteger ( 0 ,name, OBJPROP_XSIZE );
   if (size== 0 )
       PrintFormat ( "%s: %s: Не удалось получить размер объекта %s! Код ошибки: %i. %s." ,EXPERT_NAME, __FUNCTION__ ,name, _LastError ,ErrorDescription( _LastError ));
   return ( int (x+size));
  }
//+------------------------------------------------------------------+ 
//| Создает объект "Текстовая метка"                                 | 
//+------------------------------------------------------------------+ 
bool TextCreate( const int     name_idx,                                 //индекс имени объекта 
                 const string text,                                     //текст
                 const int     x= 0 ,                                     //координата по оси X 
                 const int     y= 0 ,                                     //координата по оси Y
                 const color   a_color= clrNONE )                         //цвет текста                
  {
   string name=iName_pref+ IntegerToString (name_idx);                   //формируем имя объёкта
   if (! ObjectCreate ( 0 ,name, OBJ_LABEL , 0 , 0 , 0 )) // создадим объект "Текстовая метка" 
     {
       PrintFormat ( "%s: %s: Не удалось создать объект %s! Код ошибки: %i. %s." ,EXPERT_NAME, __FUNCTION__ ,name, _LastError ,ErrorDescription( _LastError ));
       return ( false );
     }
   ObjectSetInteger ( 0 ,name, OBJPROP_XDISTANCE ,x);                       //установим координаты привязки объекта
   ObjectSetInteger ( 0 ,name, OBJPROP_YDISTANCE ,y);
   ObjectSetString ( 0 ,name, OBJPROP_TEXT ,text);                         //установим текст 
   ObjectSetString ( 0 ,name, OBJPROP_TOOLTIP ,text);
   ObjectSetString ( 0 ,name, OBJPROP_FONT ,iFontName);                     //установим шрифт текста 
   ObjectSetInteger ( 0 ,name, OBJPROP_FONTSIZE ,iFontSize);               //установим размер шрифта
   color font_color=(a_color== clrNONE )?iColorBase:a_color;             //если цвет не задан - используем установленный в настройках
   ObjectSetInteger ( 0 ,name, OBJPROP_COLOR ,font_color);                 //установим цвет объекта
   ObjectSetInteger ( 0 ,name, OBJPROP_BACK , false );                       //отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger ( 0 ,name, OBJPROP_SELECTABLE , false );                 //включим (true) или отключим (false) режим перемещения объекта мышью 
   ObjectSetInteger ( 0 ,name, OBJPROP_SELECTED , false );                   //включим (true) или отключим (false) режим выделенности объекта
   ObjectSetInteger ( 0 ,name, OBJPROP_HIDDEN , true );                       //скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ChartRedraw ();                                                     //обновим график   
   return ( true );
  }
//+------------------------------------------------------------------+


Not Bu arada, geliştiricilerin hiçbiri önceki soruma cevap vermedi.

Dosyalar:
DBS_Bug3.mq5  13 kb