오류, 버그, 질문 - 페이지 2392

 

그래픽 개체를 통해 거래 수준 의 구현을 어디에서 볼 수 있습니까?

터미널 자체가 하는 일에 최대한 근접해야 합니다.

 
fxsaber :

그래픽 개체를 통해 거래 수준 의 구현을 어디에서 볼 수 있습니까?

터미널 자체가 하는 일에 최대한 근접해야 합니다.

OBJPROP_TEXT에 DASHDOT 스타일과 설명이 있는 수평선.

 
Andrey Khatimlianskii :

OBJPROP_TEXT에 DASHDOT 스타일과 설명이 있는 수평선.

감사합니다, 텍스트 속성에 대해 몰랐습니다.


초과하지 않습니다. 내가 무엇을 잘못하고 있지?

 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" );
}

텍스트가 보이지 않습니다.

 
fxsaber :

감사합니다, 텍스트 속성에 대해 몰랐습니다.


초과하지 않습니다. 내가 무엇을 잘못하고 있지?

텍스트가 보이지 않습니다.

차트 설정에서 그래픽 개체에 대한 텍스트 레이블 표시를 활성화합니다.
 
Artyom Trishkin :
차트 설정에서 그래픽 개체에 대한 텍스트 레이블 표시를 활성화합니다.

고맙습니다!

 
fxsaber :

고맙습니다!

프로그래밍 방식으로도.
 
이 주제와 관련이 없는 댓글은 " MQL4 MT4 MetaTrader 4 초보자의 질문 "으로 이동되었습니다.
 
Ilya Malev :

MQL5 ME 2006

MQL4에서 " 함수 'f'에는 본문이 있어야 함"과 동일한 코드

메시지 주셔서 감사합니다.

수정하면 올바른 오류가 생성됩니다.

 
Ilyas :

사이트의 개인 메시지 는 언제 수정합니까?

1. 제품 업데이트에 대한 메시지를 지속적으로 팝업 (사이트 및 터미널). 같은 제품의. 당신은 읽고, 그들은 다시, 당신은 다시 읽습니다.

2. 자신의 메시지가 강조 표시됩니다(터미널에서). 나는 내가 무엇을 썼는지 알고 누구에게 썼는지 압니다. 자신의 메시지를 새 메시지로 강조 표시할 필요가 없습니다!

 

안녕하세요.

여러 텍스트 레이블을 하나의 긴 문자열로 연결하려고 합니다. 어떤 이유로 틱이 없는 경우(휴일), 일반 모드에서도 ObjectGetInteger (0,name,OBJPROP_XSIZE) 함수는 "이름" 개체가 확실히 존재하더라도 주기적으로(항상 그런 것은 아님) 0을 반환합니다. 테스터에서 오류는 덜 일반적이지만 나타납니다.

오류 코드 0 및 수신된 값이 없습니다. 개발자 및 전문가에게 질문합니다. 왜요? 내가 무엇을 잘못하고 있습니까 아니면 이것이 버그입니까?

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

아래 EA 코드 테스트

 //+------------------------------------------------------------------+
//|                                                     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 );
  }
//+------------------------------------------------------------------+


PS 그건 그렇고, 개발자 중 누구도 내 이전 질문 에 대답하지 않았습니다.

파일:
DBS_Bug3.mq5  13 kb