Questions des débutants MQL5 MT5 MetaTrader 5 - page 809

 
Bonjour !
Pouvez-vous me dire quelle rubrique de kodobase contient un exemple d'algorithme qui dessine des nombres de sorte que les numéros d'index des barres soient affichés en bas et/ou en haut de la fenêtre ? Comme sur la photo.
L'essentiel est que OBJ_TEXT est mis en correspondance avec le prix et l'heure et OBJ_LABEL avec les coordonnées de la fenêtre en pixels. Mais comment les combiner ?
 
Leo59:
Bonjour !
Pouvez-vous me dire quel thème Kodobase a un exemple d'algorithme qui dessine les chiffres de sorte que le bas et/ou le haut de la fenêtre affiche les numéros d'index des barres ? Comme sur la photo.
L'essentiel est que OBJ_TEXT est mis en correspondance avec le prix et l'heure et OBJ_LABEL avec les coordonnées de la fenêtre en pixels. Mais comment les combiner ?

Vous devez aller au prix, et le prix est le plus haut ou le plus bas du chandelier, alors les objets seront en place.

 
Vitaly Muzichenko:

Vous devez aller au prix, et le prix est le plus haut ou le plus bas du chandelier, alors les objets seront en place.

"en bas et/ou en haut de la fenêtre s'affichent les numéros d'index des barres" et "spécifier le chandelier le plus haut ou le plus bas" n'est pas le "focus".

 
Leo59:

"le bas et/ou le haut de la fenêtre affichent les numéros d'index des barres" et "spécifient le haut ou le bas de la bougie" n'est pas un "focus".

Ça?

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

Ça?

Je vois cette section depuis des années. Mais c'est tout ce que j'ai comme cerveau :
#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:
Bonjour !
Pouvez-vous me dire quelle rubrique de Kodobase contient un exemple d'algorithme qui dessine les chiffres de manière à ce que le bas et/ou le haut de la fenêtre affiche les numéros d'index des barres ? Comme sur la photo.
L'essentiel est que OBJ_TEXT est mis en correspondance avec le prix et l'heure et OBJ_LABEL avec les coordonnées de la fenêtre en pixels. Mais comment les combiner ?

Avecces fonctions, ChartTimePriceToXY et ChartXYToTimePrice peuvent être placés n'importe où.

 
Leo59:
Bonjour !
Pouvez-vous me dire quelle rubrique de kodobase contient un exemple d'algorithme qui dessine des nombres de sorte que les numéros d'index des barres soient affichés en bas et/ou en haut de la fenêtre ? Comme sur la photo.
L'essentiel est que OBJ_TEXT est mis en correspondance avec le prix et l'heure et OBJ_LABEL avec les coordonnées de la fenêtre en pixels. Mais comment les combiner ?

Pourquoi ai-je besoin de chiffres sur un tableau ? Il existe une solution toute prête dans la documentation sur la façon d'afficher le numéro de barre.

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Leo59:
J'ai vu cette section pendant de nombreuses années. Mais mon cerveau ne suffit que pour ça:

Une recommandation discrète :

Si vous essayez de maîtriser mql5, essayez de vous débarrasser de extern, int init(), int deinit() et int start().

les remplacer par des entrées à part entière, int OnInit(), void OnDeinit(const int reason) et void OnTick()

 

Salutations !


Pouvez-vous me dire comment faire un tableau d'instu...

J'essaie de faire comme ça :

entrée double Df_1 = 0,8 ;

entrée double Df_2 = 0,1 ;

entrée double Df_3 = 0,3 ;


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


mais il génère une erreur :

Df_1 - expression constante requise

Df_2' - expression constante requise

Df_3 - expression constante nécessaire

En se référant à la chaîne d'initialisation du tableau
 
Anttonnio:

Salutations !


Pouvez-vous me dire comment faire un tableau d'instu...

J'essaie de faire comme ça :

entrée double Df_1 = 0,8 ;

entrée double Df_2 = 0,1 ;

entrée double Df_3 = 0,3 ;


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


mais il génère une erreur :

Df_1 - expression constante nécessaire

Df_2' - expression constante requise

Df_3 - expression constante requise

En se référant à la chaîne d'initialisation du tableau

Le tableau doit être initialisé avec des constantes.

Si vous voulez le remplir avec des paramètres d'entrée, commencez par le déclarer et ensuite le détailler.

Raison: