초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1364

 

Expert Advisor에서 배열을 꺼내기 위해 클래스에서 배열을 선언하는 방법을 알려주십시오.

 m_pr_hl2[b] = MathAbs (( iHigh ( this .m_symbol, this .m_timeframe,b) + iLow ( this .m_symbol, this .m_timeframe,b))/ 2 );
 class CNewBar : public CObject
  {
private :
   string             m_symbol;
   ENUM_TIMEFRAMES    m_timeframe;
   datetime           m_time;
   double              m_pr_hl2[];
   datetime           Time( void );
   string              Symbol ( void )         { return this .m_symbol;    }
public :
   ENUM_TIMEFRAMES    Timeframe( void )      { return this .m_timeframe; }
   datetime           GetTime( void )        { return this .m_time;      } //  Возвращает время последнего обращения
   int                PriceHL2( void );       
   bool               IsNewBar( void );                                   //  Основная функция класса
                     CNewBar( const string symbol, const ENUM_TIMEFRAMES timeframe);
                    ~CNewBar( void ) {;}
  };
//+------------------------------------------------------------------+
//| Конструктор                                                      |
//+------------------------------------------------------------------+
CNewBar::CNewBar( const string symbol, const ENUM_TIMEFRAMES timeframe) : m_time( 0 )
  {
   this .m_symbol = symbol;
   this .m_timeframe = (timeframe == PERIOD_CURRENT ? Period () : timeframe);
   m_rt= this .RatesTotal();
   m_pc= 0 ;
   PriceHL2();
  }
//+------------------------------------------------------------------+
//| CNewBar Time Возвращает время нулевого бара                      |SERIES_LASTBAR_DATE
//+------------------------------------------------------------------+
datetime CNewBar::Time( void )
  {
   datetime array[ 1 ], ret;
   ret = CopyTime ( this .m_symbol, this .m_timeframe, 0 , 1 , array) == 1 ? array[ 0 ] : 0 ;
   return (array[ 0 ]);
  }

//+------------------------------------------------------------------+
//| Расчет цены                                                      |
//+------------------------------------------------------------------+
int CNewBar:: PriceHL2 ( void )
  {
   int res= ArrayResize ( this .m_pr_hl2, this .m_rt);
   for ( int b= this .m_pc; b< this .m_rt; b++)
       m_pr_hl2[b] = MathAbs (( iHigh ( this .m_symbol, this .m_timeframe,b) + iLow ( this .m_symbol, this .m_timeframe,b))/ 2 );
   return (res);
  }
//+------------------------------------------------------------------+
//| CNewBar IsNewBar Основная функция класса                         |
//+------------------------------------------------------------------+
bool CNewBar::IsNewBar( void )
  {
   datetime tm= this .Time();
   if (tm== 0 )
       return false ;
   if (tm!= this .m_time)
     {
       //--- определяем время
       this .m_time=tm;
       this .PriceHL2();
       return true ;
     }
   return false ;
  }
 
표시기의 " 중간 계산 "을 위한 배열을 생성할 때 간단히 생성하면 모든 것이 작동하거나 INDICATOR_CALCULATION 속성을 지정할 수 있습니다.
왜 이런거야? 어떤 기회를 제공합니까?
 
Evgeny Dyuka # :
표시기의 " 중간 계산 "을 위한 배열을 생성할 때 간단히 생성하면 모든 것이 작동하거나 INDICATOR_CALCULATION 속성을 지정할 수 있습니다.
왜 이런거야? 어떤 기회를 제공합니까?

동적 배열을 표시기 버퍼에 연결한 경우 터미널은 이 배열에 대한 메모리 할당을 담당하고 이 배열의 크기는 차트의 막대 수와 같습니다.

이것은 그리기에 사용되는 표시기 버퍼 INDICATOR_DATA와 INDICATOR_CALCULATIONS - 계산을 위한 보조 버퍼 모두에 적용됩니다.

 
Igor Makanu # :

동적 배열을 표시기 버퍼에 연결한 경우 터미널은 이 배열에 대한 메모리 할당을 담당하고 이 배열의 크기는 차트의 막대 수와 같습니다.

이것은 그리기에 사용되는 표시기 버퍼 INDICATOR_DATA와 INDICATOR_CALCULATIONS - 계산을 위한 보조 버퍼 모두에 적용됩니다.

감사합니다
 
말해봐, 그래픽 개체(추세선, fibo 그리드)의 자화를 MT5 플랫폼의 표시기로 설정할 수 있습니까? 예를 들어 fibo 그리드 값 "0"이 이동 평균 으로 자화되도록 합니다. 그녀의 핍에 스트레이트가 떨어졌습니다.
 
차트 창의 특정 위치에 그래픽 개체를 고정해야 합니다. 예를 들어 왼쪽 하단 모서리에 있는 사각형입니다. Y 좌표를 결정하기 위해 CHART_PRICE_MIN 이 있으며 X의 최소 시간을 찾는 방법은 무엇입니까?
ENUM_CHART_PROPERTY_INTEGER에서 적절한 항목을 찾지 못했습니다.

또는 더 광범위한 질문을 하십시오. 차트 자체에 묶이지 않고 차트 창에서 개체의 위치를 올바르게 수정하는 방법(예: "중앙에")은 무엇입니까?


 
차트 속성 에는 CHART_SCALEFIX_11 "1:1 scale mode"가 있으며, 무엇을 위한 것인지, 어떻게 사용하는지 공개되어 있지 않습니다.
그것은 스케일에 묶일 그래픽 개체의 크기입니까?
그렇다면 어떤 단위로 개체의 크기를 지정하여 축척으로 관련되도록 합니까?

일반적으로 그리기 개체를 차트 눈금과 올바르게 연결하는 방법은 무엇입니까?
 
Evgeny Dyuka # :
차트 창의 특정 위치에 그래픽 개체를 고정해야 합니다. 예를 들어 왼쪽 하단 모서리에 있는 사각형입니다. Y 좌표를 결정하기 위해 CHART_PRICE_MIN 이 있으며 X의 최소 시간을 찾는 방법은 무엇입니까?
ENUM_CHART_PROPERTY_INTEGER에서 적절한 항목을 찾지 못했습니다.

또는 더 광범위한 질문을 하십시오. 차트 자체에 묶이지 않고 차트 창에서 개체의 위치를 올바르게 수정하는 방법(예: "중앙에")은 무엇입니까?


이 비밀 지식이 정말 필요해요
 
Evgeny Dyuka # :
차트 속성 에는 CHART_SCALEFIX_11 "1:1 scale mode"가 있으며, 무엇을 위한 것인지, 어떻게 사용하는지 공개되어 있지 않습니다.
그것은 스케일에 묶일 그래픽 개체의 크기입니까?
그렇다면 어떤 단위로 개체의 크기를 지정하여 축척으로 관련되도록 합니까?

일반적으로 그리기 개체를 차트 눈금과 올바르게 연결하는 방법은 무엇입니까?
...그리고 이것도
 
Evgeny Dyuka # :
차트 창의 특정 위치에 그래픽 개체를 고정해야 합니다. 예를 들어 왼쪽 하단 모서리에 있는 사각형입니다. Y 좌표를 결정하기 위해 CHART_PRICE_MIN 이 있으며 X의 최소 시간을 찾는 방법은 무엇입니까?
ENUM_CHART_PROPERTY_INTEGER에서 적절한 항목을 찾지 못했습니다.

또는 더 광범위한 질문을 하십시오. 차트 자체에 묶이지 않고 차트 창에서 개체의 위치를 올바르게 수정하는 방법(예: "중앙에")은 무엇입니까?


CHART_FIRST_VISIBLE_BAR

차트에 표시되는 첫 번째 막대의 번호입니다. 막대 인덱싱은 시계열 에 해당합니다.

int r/o


그러나 모든 개체가 이런 방식으로 묶일 수 있는 것은 아닙니다.

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
사유: