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

 
안녕하세요!
코드 베이스의 어떤 주제에 막대 인덱스 번호가 창의 맨 아래 및/또는 맨 위에 표시되도록 그림을 그리는 알고리즘의 예가 있는지 알려주실 수 있습니까? 그림처럼.
요점은 그래픽 개체 OBJ_TEXT가 가격과 시간에 첨부되고 OBJ_LABEL이 픽셀 단위의 창 좌표에 첨부된다는 것입니다. 하지만 어떻게 결합합니까?
 
Leo59 :
안녕하세요!
코드 베이스의 어떤 주제에 막대 인덱스 번호가 창의 맨 아래 및/또는 맨 위에 표시되도록 그림을 그리는 알고리즘의 예가 있는지 알려주실 수 있습니까? 그림처럼.
요점은 그래픽 개체 OBJ_TEXT가 가격 및 시간에 첨부되고 OBJ_LABEL이 픽셀 단위의 창 좌표에 첨부된다는 것입니다. 하지만 어떻게 결합합니까?

가격으로 이동하여 Higt 또는 Low 양초의 가격을 지정하면 개체가 제자리에 고정됩니다.

 
Vitaly Muzichenko :

가격으로 이동하여 Higt 또는 Low 양초의 가격을 지정하면 개체가 제자리에 고정됩니다.

"막대 지수 숫자가 창의 하단 및/또는 상단에 표시되었습니다 " 및 "고가 또는 저가 촛불 표시"는 "속임수"가 아닙니다.

 
Leo59 :

"막대 지수 숫자가 창의 하단 및/또는 상단에 표시되었습니다 " 및 "고가 또는 저가 촛불 표시"는 "속임수"가 아닙니다.

그것은 ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
В этом разделе представлены примеры для работы со свойствами графика. Для каждого свойства приведены одна или две законченные функции, которые позволяют задавать/получать значение этого свойства. Эти функции можно использовать в своих MQL5 программах как есть. На рисунке показана графическая панель для наглядной демонстрации того, как изменение...
 
Vitaly Muzichenko :

그것은 ?

나는 몇 년 동안이 스레드를보고 있습니다. 예, 내 두뇌 만 이것으로 충분합니다.
 #property   indicator_chart_window

extern int History = 35 ;                                               // Сколько баров мы имеем ввиду
extern int Multiple = 5 ;                                               // Кратность отображаемой разметки

color     Color= 0 ;
color     Color_multiple=Moccasin;                                     // Цвет индексов кратных "Multiple"
color     Color_between=MintCream;                                     // Цвет индексов промежуточных 
string    name= "" ;
string    Text= "" ;
int       Font_size= 0 ;
int       Font_size_multiple= 14 ;                                       // Размер шрифта индексов кратных "Multiple"
int       Font_size_between= 8 ;                                         // Размер шрифта индексов промежуточных

bool      Back= true ;                                                   //--- отобразим на переднем (false) или заднем (true) плане. Если (true), то подсветки дат не выводится
string    Font= "Arial" ;                                                 // Шрифт
double    Angle= 270.0 ;                                                 // Угол наклона в градусах

int       Style= STYLE_DOT ;                                             // Для всех - стиль пунктир
int       Width= 1 ;                                                     // Толщина линии

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| Custom indicator initialization function                    F  1 | int init()
//+------------------------------------------------------------------+
int init()
   {
//    IndicatorShortName (IN + " (" + ")" );                               // Короткое имя индикатора
     return ( INIT_SUCCEEDED );                                           // Успешная инициализация приложения
   }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| expert deinitialization function                             F 2 | int deinit()
//+------------------------------------------------------------------+
int deinit() // Время исполнения специальной функции deinit() ограничено периодом 2,5 секунды.
   {
     ObjectsDeleteAll ( 0 , "label" , 0 );                                   // Идентификатор графика, префикс имени объекта, индекс окна
     return ( 0 );                                                         // Выход из deinit()
   }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| Custom indicator iteration function                         F  3 | int start()
//+------------------------------------------------------------------+
int start()
   {
     int i= 0 ;
     int limit= Bars - IndicatorCounted ()- 1 ; 
     if (limit> 1 ) limit= MathMin ( Bars , History+(History== 0 )* Bars )- 1 ;
    
     for (i= 0 ; i<History; i++)
        {
         name = "label " +i;
         Text = DoubleToStr (i, 0 );
          
         if ( MathMod (i, Multiple) == 0 )                                     // MathMod() Возвращает вещественный остаток от деления двух чисел (i/Multiple).
             {
              Color = Color_multiple;
              Font_size = Font_size_multiple;

               if ( ObjectFind ( 0 , name)==- 1 )                                   // Если объект "name" не найден
                  {
                   ObjectCreate ( 0 ,name, OBJ_VLINE , 0 , Time [i], 0 );             // Создаем объект..
                   ObjectSetInteger ( 0 ,name, OBJPROP_STYLE ,Style);           //--- установим стиль отображения линии
                   ObjectSetInteger ( 0 ,name, OBJPROP_WIDTH ,Width);           //--- установим толщину линии
                   ObjectSetInteger ( 0 ,name, OBJPROP_COLOR ,Color);           //--- установим цвет
                   ObjectSetString ( 0 ,name, OBJPROP_TEXT ,Text);               //--- установим текст
                   ObjectSetString ( 0 ,name, OBJPROP_FONT ,Font);               //--- установим шрифт текста
                   ObjectSetInteger ( 0 ,name, OBJPROP_FONTSIZE ,Font_size);     //--- установим размер шрифта
                   ObjectSetDouble ( 0 ,name, OBJPROP_ANGLE ,Angle);             //--- установим угол наклона текста
                   // Для отображения текстового описания объекта необходимо включить галочку опции "Показывать описания объектов" в окне Графики->Свойства финансового инструмента (F8) > Общие.         
                   ObjectSetInteger ( 0 ,name, OBJPROP_BACK , Back);             //--- отобразим на переднем (false) или заднем (true) плане
                  }
               else                                                          // Если объект "name" найден
                  {
                   ObjectMove ( 0 ,name, 0 , Time [i], 0 );                     // Сообщение новых координат. 
                  }
             }
//         else
//             {
//              Color = Color_between;
//              Font_size = Font_size_between;
//
//              if(ObjectFind(0, name)==-1)                                  // Если объект "name" не найден
//                  {
//                   ObjectCreate(0,name,OBJ_VLINE,0,Time[i],0);             // Создаем объект..
//                   ObjectSetInteger(0,name,OBJPROP_STYLE,Style);           //--- установим стиль отображения линии
//                   ObjectSetInteger(0,name,OBJPROP_WIDTH,Width);           //--- установим толщину линии
//                   ObjectSetInteger(0,name,OBJPROP_COLOR,Color);           //--- установим цвет
//                   //ObjectSetString(0,name,OBJPROP_TEXT,Text);              //--- установим текст
//                   //ObjectSetString(0,name,OBJPROP_FONT,Font);              //--- установим шрифт текста
//                   //ObjectSetInteger(0,name,OBJPROP_FONTSIZE,Font_size);    //--- установим размер шрифта
//                   ObjectSetDouble(0,name,OBJPROP_ANGLE,Angle);            //--- установим угол наклона текста
//                   // Для отображения текстового описания объекта необходимо включить галочку опции "Показывать описания объектов" в окне Графики->Свойства финансового инструмента (F8) > Общие.         
//                   ObjectSetInteger(0,name,OBJPROP_BACK, Back);            //--- отобразим на переднем (false) или заднем (true) плане
//                  }
//               else                                                        // Если объект "name" найден
//                  {
//                   ObjectMove(0,name, 0, Time[i], 0);                     // Сообщение новых координат. 
//                  }
//             }
        }
     return ( 0 );
   }

 
Leo59 :
안녕하세요!
코드 베이스의 어떤 주제에 막대 인덱스 번호가 창의 맨 아래 및/또는 맨 위에 표시되도록 그림을 그리는 알고리즘의 예가 있는지 알려주실 수 있습니까? 그림처럼.
요점은 그래픽 개체 OBJ_TEXT가 가격과 시간에 첨부되고 OBJ_LABEL이 픽셀 단위의 창 좌표에 첨부된다는 것입니다. 하지만 어떻게 결합합니까?

이러한 함수 ChartTimePriceToXY 및 ChartXYToTimePrice의 도움으로 어디에나 배치할 수 있습니다.

 
Leo59 :
안녕하세요!
코드 베이스의 어떤 주제에 막대 인덱스 번호가 창의 맨 아래 및/또는 맨 위에 표시되도록 그림을 그리는 알고리즘의 예가 있는지 알려주실 수 있습니까? 그림처럼.
요점은 그래픽 개체 OBJ_TEXT가 가격과 시간에 첨부되고 OBJ_LABEL이 픽셀 단위의 창 좌표에 첨부된다는 것입니다. 하지만 어떻게 결합합니까?

차트에 숫자가 있는 이유는 무엇입니까? 문서에는 막대 번호를 보는 방법에 대한 기성 솔루션이 있습니다.

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Leo59 :
나는 몇 년 동안이 스레드를보고 있습니다. 예, 내 두뇌 만 이것으로 충분합니다 .

눈에 거슬리지 않는 권장 사항:

이미 mql5를 마스터하려는 경우 extern, int init(), int deinit() 및 int start()를 제거하십시오.

전체 입력, int OnInit(), void OnDeinit(const int reason) 및 void OnTick()으로 대체합니다.

 

인사말!


입력 배열을 만드는 방법을 알려주세요.

나는 이렇게 노력하고있다 :

입력 더블 Df_1 = 0.8;

입력 더블 Df_2 = 0.1;

입력 더블 Df_3= 0.3;


const 이중 Df[3] = {Df_1 ,Df_2 ,Df_3 };


하지만 오류가 발생합니다.

'Df_1' - 상수 표현식 필요

'Df_2' - 상수 표현식 필요

'Df_3' - 상수 표현식 필요

엄격한 배열 초기화 참조
 
Anttonnio :

인사말!


입력 배열을 만드는 방법을 알려주세요.

나는 이렇게 노력하고있다 :

입력 더블 Df_1 = 0.8;

입력 더블 Df_2 = 0.1;

입력 더블 Df_3= 0.3;


const 이중 Df[3] = {Df_1 ,Df_2 ,Df_3 };


하지만 오류가 발생합니다.

'Df_1' - 상수 표현식 필요

'Df_2' - 상수 표현식 필요

'Df_3' - 상수 표현식 필요

엄격한 배열 초기화 참조

배열은 상수로 초기화해야 합니다.

입력 매개변수로 채우려면 먼저 선언한 다음 요소별로 채우십시오.