표시기 기타 질문 - 페이지 11

 
이 주석 #99 에서 내 예제 코드를 볼 수 있습니까?
 

오 좋아 그 코드.

ObjectCreate()에는 차트 ID도 필요합니다.

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

첫 번째 매개변수로.

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

그러나 객체 이름으로 시작합니다.

또한 기준 모서리/기준점을 지정할 수 있습니다.

참조: 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
 

내가 묻고 싶은 내 문제를 설명하지 못한 것이 걱정스럽습니다. 시도해 보셨나요? 그러면 그 코드에 대한 내 문제가 무엇인지 알 수 있습니다.

1. 차트에 예제 파일을 추가한 다음 MT4를 닫습니다. 2. MT4를 엽니다. 그러면 내부 레이블 개체 가 표시되지 않습니다.

그것이 내가 내 문제에 대한 해결책을 찾으려고 노력하는 것입니다. : /


아마도 나는 월요일이 될 것입니다.

(이게 너무 쉽다고 생각하면 그 쉬운 일에 시간을 많이 할애한다 - 이게 너무 어렵다고 생각될 때 나는 그것을 너무 쉽게 해냈다... - 내가 하고 싶은 거의 모든 것. 먼저 나는 읽으려고 노력한다) 문서... )

 

나는 그것을 시도하고 두 개의 개체가 표시됩니다.

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


 

시원한!

제 스크린샷을 봐주세요.

문제가 있다

시간 내주셔서 감사합니다 Mr. Marco

 

나는 코드의 일부가 Indicator에서 다른 결과를 줄 것이라는 점을 신경 쓰지 않습니다. : /
내 표시 파일에서 코드의 해당 부분을 시도합니다.

(나는 내 트레이드 패널 파일이 아닌 지표 파일에 일부 코드를 작성하기로 결정했습니다. )


2번째 수정됨

나는 이미 당신의 방법을 사용하고 있습니다. 이제 문제 없이 작동합니다. 작동하기를 바랍니다.

고마워요 Mr. Marco


#월요일 아님 - 휴무
 

#새로고침 - 열기

이 문제를 해결하면 내 표시기가 내 기본 MT4 플랫폼에서 제대로 작동하지만 MT4 플랫폼을 시작할 때 표시기를 새로 고쳐야 하는 두 번째 MT4 플랫폼을 사용합니다.
나는 그 문제가 어디에서 왔는지 전혀 모릅니다. 나는 그것에 대해 정확히 질문합니다.

Q: 이 이상한 상황에 대해 알려주실 수 있으신가요?

미리 감사드립니다.

 

두 플랫폼 사이에서 다른 행동을 목격했다는 말씀이신가요?

같은 빌드인가요?

 
Marco vd Heijden :

두 플랫폼 사이에서 다른 행동을 목격했다는 말씀이신가요?

같은 빌드인가요?

그래 완전히 다른 행동...

또한 예 둘 다 1065 빌드

 

어쩌면 그 이상한 문제가 어디에서 오는지 찾았을 수도 있습니다 ...

로드 템플릿의 비밀은 무엇입니까?
나를 완전히 파괴하고 있는 신비로운 것들이 있습니다... 정말 정말 저를 화나게 만들고 있습니다... - 저는 이미 EA와 Indicator를 위해 엄청난 일을 했습니다. 몇 가지 사소한 문제 ...

어떻게? 단순한!

EA 파일에 일부 스크립트를 넣지 않기로 결정한 후 SEO에서 솔루션을 찾을 수 없는 사소한 문제에 계속 직면했습니다. (실제로 가끔 SEO에 대한 내 거대한 EA 문제에 대한 솔루션을 쉽게 찾을 수 있지만 이 사소한 문제가 있습니다. )

---

이 간단한 코드를 예시 표시기 파일에 넣었습니다.

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

이 예제 파일을 내 차트에 로드하려고 할 때. TimeFrame을 변경할 때까지 올바르게 작동하지 않습니다.
(오늘은 이미 피곤했을지도 몰라)
(또한 OnCalculate(...)에 해당 코드를 넣으면 이 문제를 해결할 수 있다는 것도 알고 있습니다. 하지만 해당 코드를 OnInit()에 넣으면 됩니다.)

제발, 나는 단지 이 문제에 대해 더 명확한 설명이 필요합니다. 내 지표에 동일한 관련 없는 문제가 있는 경우가 거의 없기 때문에 정말 필요합니다. (내 EA의 파일에 이것을 넣으면 올바르게 작동합니다)

미리 감사드립니다.
좋은 주말 되세요.

사유: