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

 
안녕하세요! .. 아마도 간단한 질문이지만 어디서부터 시작해야 할지 모르겠습니다. 생성 날짜와 시간이 포함된 제목이 있는 사각형을 그리는 스크립트가 필요합니다. 누군가가 내 작업에 맞는 모범을 보일 수 있습니다.

미리 감사드립니다 :)..
 
svob :
안녕하세요! .. 아마도 간단한 질문이지만 어디서부터 시작해야 할지 모르겠습니다. 생성 날짜와 시간이 포함된 제목이 있는 사각형을 그리는 스크립트가 필요합니다. 누군가가 내 작업에 맞는 모범을 보일 수 있습니다.

미리 감사드립니다 :)..

참조 예 OBJ_RECTANGLE 을 기준으로 삼고,

그냥 이 줄을 변경

 //--- создадим прямоугольник
   if (!RectangleCreate( 0 , InpName , 0 ,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
       return ;
     }

이에:

 //--- создадим прямоугольник
   if (!RectangleCreate( 0 , TimeToString ( TimeCurrent (), TIME_DATE | TIME_SECONDS ) , 0 ,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
       return ;
     }
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
  • www.mql5.com
//| Cоздает прямоугольник по заданным координатам                    |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Перемещает точку привязки прямоугольника                         |...
 
Vladimir Karputov :

참조 예 OBJ_RECTANGLE 을 기준으로 삼고,

그냥 이 줄을 변경

이에:

고맙습니다! :) 이해했다..

 
좋은 오후입니다. 표시기(별도 창에서)의 소수점 이하 자릿수는 _Digits 도구에 따라 달라집니까? 그렇다면 어떻게 우회할 수 있습니까? 그렇지 않으면 표시기에서 분수 값을 얻지만 눈금에는 정수만 표시됩니다.
 
VANDER :
좋은 오후입니다. 표시기(별도 창에서)의 소수점 이하 자릿수는 _Digits 도구에 따라 달라집니까? 그렇다면 어떻게 우회할 수 있습니까? 그렇지 않으면 표시기에서 분수 값을 얻지만 눈금에는 정수만 표시됩니다.

지표 예 [데이터 폴더]\MQL5\Indicators\Examples\ATR.mq5

OnInit() -> 표시 정확도 지정

 //+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ()
  {
//--- check for input value
   if (InpAtrPeriod<= 0 )
     {
      ExtPeriodATR= 14 ;
       printf ( "Incorrect input parameter InpAtrPeriod = %d. Indicator will use value %d for calculations." ,InpAtrPeriod,ExtPeriodATR);
     }
   else ExtPeriodATR=InpAtrPeriod;
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,ExtATRBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ExtTRBuffer, INDICATOR_CALCULATIONS );
//---
   IndicatorSetInteger ( INDICATOR_DIGITS , _Digits );
//--- sets first bar from what index will be drawn


예제 #2 -> [데이터 폴더]\MQL5\Indicators\Examples\Custom 이동 평균 .mq5

여기에서 정확도는 이미 더 높습니다

 //+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,ExtLineBuffer, INDICATOR_DATA );
//--- set accuracy
   IndicatorSetInteger ( INDICATOR_DIGITS , _Digits + 1 );


예제 #3 -> [데이터 폴더]\MQL5\Indicators\Examples\ADX.mq5

Digits()에 관계없이 항상 두 값의 정밀도가 있습니다.

 //+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ()
  {
//--- check for input parameters
   if (InpPeriodADX>= 100 || InpPeriodADX<= 0 )
     {
      ExtADXPeriod= 14 ;
       printf ( "Incorrect value for input variable Period_ADX=%d. Indicator will use value=%d for calculations." ,InpPeriodADX,ExtADXPeriod);
     }
   else ExtADXPeriod=InpPeriodADX;
//---- indicator buffers
   SetIndexBuffer ( 0 ,ExtADXBuffer);
   SetIndexBuffer ( 1 ,ExtPDIBuffer);
   SetIndexBuffer ( 2 ,ExtNDIBuffer);
   SetIndexBuffer ( 3 ,ExtPDBuffer, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 4 ,ExtNDBuffer, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 5 ,ExtTmpBuffer, INDICATOR_CALCULATIONS );
//--- indicator digits
   IndicatorSetInteger ( INDICATOR_DIGITS , 2 );
 

전략 테스터 의 다른 차트에 시각적 모드(다중 통화 테스트 중)에 액세스할 수 있습니까? 예를 들어:

 int OnInit ()
  {
   int bars= iBars ( "EURUSD" , PERIOD_H1 );
   bars= iBars ( "GBPUSD" , PERIOD_H1 );
   bars= iBars ( "USDJPY" , PERIOD_H1 );
   
   return ( INIT_SUCCEEDED );
  }
void OnTick ()
  {
   long arr[];
   ArrayResize (arr, 1 );
   arr[ 0 ]= ChartFirst ();
   long id=arr[ 0 ];
   while (! IsStopped ()){
      id= ChartNext (id);
       if (id>= 0 ){
         int s= ArraySize (arr);
         ArrayResize (arr,s+ 1 );
         arr[s]=id;
      }
       else break ;
   }
   Comment ( "Total charts: " , ArraySize (arr));   
  }

이 Expert Advisor를 전략 테스터에서 실행하면 EURUSD, GBPUSD, USDJPY 차트가 시각화 도우미에서 열리지만

 Comment ( "Total charts: " , ArraySize (arr));

그래프가 1개만 있음을 알려줍니다.

 

글꼴 크기와 텍스트 길이를 고려하여 레이블의 크기를 찾는 방법은 무엇입니까? 다른 요소에 상대적으로 배치하려면

 ObjectGetInteger ( 0 , "label" , OBJPROP_XSIZE , 0 );

0 제공

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 
Maksym Mudrakov :

전략 테스터 의 다른 차트에 시각적 모드(다중 통화 테스트 중)에 액세스할 수 있습니까? 예를 들어:

이 Expert Advisor를 전략 테스터에서 실행하면 EURUSD, GBPUSD, USDJPY 차트가 시각화 도우미에서 열리지만

그래프가 1개만 있음을 알려줍니다.

이것은 렌더러 창 핸들을 가져오는 데 문제가 있습니다. 그리고 그녀를 이길 방법은 없습니다.

 
Roman Sharanov :

글꼴 크기와 텍스트 길이를 고려하여 레이블의 크기를 찾는 방법은 무엇입니까? 다른 요소에 상대적으로 배치하려면

0 제공

"Courier New"와 같은 고정 폭 글꼴을 사용하고 있으며 각 문자의 너비는 대략 글꼴 크기입니다.
 
일반 - 안 돼요. 간접적으로 - 줄 길이와 글꼴 크기 를 통해.
사유: