Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 809

 
Hallo!
Können Sie mir bitte sagen, in welchem kodobase-Thema es ein Beispiel für einen Algorithmus gibt, der Zahlen so zeichnet, dass die Balkenindexnummern unten und/oder oben im Fenster angezeigt werden? Wie auf dem Bild.
Der Punkt ist, dass OBJ_TEXT auf Preis und Zeit und OBJ_LABEL auf die Fensterkoordinaten in Pixeln abgebildet wird. Aber wie kann man sie kombinieren?
 
Leo59:
Hallo!
Können Sie mir bitte sagen, welches Kodobase-Thema ein Beispiel für einen Algorithmus enthält, der die Zahlen so zeichnet, dass am unteren und/oder oberen Rand des Fensters Balkenindexzahlen angezeigt werden? Wie auf dem Bild.
Der Punkt ist, dass OBJ_TEXT auf Preis und Zeit und OBJ_LABEL auf die Fensterkoordinaten in Pixeln abgebildet wird. Aber wie kann man sie kombinieren?

Sie müssen auf den Preis gehen, und der Preis ist der Höchst- oder Tiefstwert der Kerze, dann werden die Objekte an Ort und Stelle sein

 
Vitaly Muzichenko:

Sie müssen auf den Preis gehen, und der Preis ist der Höchst- oder Tiefstwert der Kerze, dann werden die Objekte an Ort und Stelle sein

"am unteren und/oder oberen Rand des Fensters angezeigte Balkenindexnummern" und "Hoch- oder Tiefpunkt der Kerze angeben" ist nicht der "Fokus".

 
Leo59:

"unten und/oder oben im Fenster angezeigte Balkenindexnummern" und "das Hoch oder Tief der Kerze angeben" ist kein "Fokus".

Das hier?

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

Das hier?

Ich sehe diesen Abschnitt schon seit Jahren. Aber das ist alles, wofür ich einen Verstand habe:
#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:
Hallo!
Können Sie mir bitte sagen, in welchem Kodobase-Thema es ein Beispiel für einen Algorithmus gibt, der die Zahlen so zeichnet, dass am unteren und/oder oberen Rand des Fensters die Indexnummern der Balken angezeigt werden? Wie auf dem Bild.
Der Punkt ist, dass OBJ_TEXT auf Preis und Zeit und OBJ_LABEL auf die Fensterkoordinaten in Pixeln abgebildet wird. Aber wie kann man sie kombinieren?

Mitdiesen Funktionen könnenChartTimePriceToXY und ChartXYToTimePrice überall platziert werden

 
Leo59:
Hallo!
Können Sie mir bitte sagen, in welchem kodobase-Thema es ein Beispiel für einen Algorithmus gibt, der Zahlen so zeichnet, dass die Balkenindexnummern unten und/oder oben im Fenster angezeigt werden? Wie auf dem Bild.
Der Punkt ist, dass OBJ_TEXT auf Preis und Zeit und OBJ_LABEL auf die Fensterkoordinaten in Pixeln abgebildet wird. Aber wie kann man sie kombinieren?

Warum brauche ich Zahlen in einem Diagramm? Die Dokumentation bietet eine Lösung für die Anzeige der Balkenanzahl

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Leo59:
Ich habe diesen Abschnitt seit vielen Jahren gesehen. Aber mein Gehirn reicht nur dafür aus:

Eine unaufdringliche Empfehlung:

Wenn Sie versuchen, mql5 zu beherrschen, versuchen Sie, extern, int init(), int deinit() und int start() loszuwerden.

sie durch vollwertige Eingaben, int OnInit(), void OnDeinit(const int reason) und void OnTick() ersetzen

 

Grüße!


Können Sie mir sagen, wie ich ein Array von Instu

Ich versuche, es so zu machen:

Eingabe double Df_1 = 0,8;

Eingabe double Df_2 = 0,1;

Eingabe double Df_3 = 0,3;


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


aber es wird ein Fehler erzeugt:

Df_1" - konstanter Ausdruck erforderlich

Df_2" - konstanter Ausdruck erforderlich

Df_3" - konstanter Ausdruck erforderlich

Unter Bezugnahme auf die Array-Initialisierungszeichenfolge
 
Anttonnio:

Grüße!


Können Sie mir sagen, wie ich ein Array von Instu

Ich versuche, es so zu machen:

Eingabe double Df_1 = 0,8;

Eingabe double Df_2 = 0,1;

Eingabe double Df_3 = 0,3;


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


aber es wird ein Fehler erzeugt:

Df_1" - konstanter Ausdruck erforderlich

Df_2" - konstanter Ausdruck erforderlich

Df_3" - konstanter Ausdruck erforderlich

Unter Bezugnahme auf die Array-Initialisierungszeichenfolge

Das Array muss mit Konstanten initialisiert werden.

Wenn Sie ihn mit Eingabeparametern füllen wollen, deklarieren Sie ihn zunächst und spezifizieren ihn dann.

Grund der Beschwerde: