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

 
Aleksey Mavrin:

Benötigt )

Alexey, ich danke dir!

Erklären Sie bitte einem unerfahrenen Menschen:
welche Rolle der Ordner MQL5/Sounds in unserem Leben spielen soll (darf)? (meine Frage steht oben auf Seite 1221)

 

Können Sie mir bitte sagen, warum der Balken seine Position im Diagramm nur dann ändert, wenn ein neuer Tick eintrifft? MT5, Just2Trade Build vom 5. Juni

#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
CAppDialog Main;
CBmpButton nadpr, nadlos, nadot;
CBmpButton podpr, podlos, podot;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
   Main.Create(0,"Main",0,50,50,260,130);
   Main.Run();
      
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Main.Destroy(reason);
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam)  // параметр события типа string
{
  Main.OnEvent(id,lparam,dparam,sparam);
}
 
Nikita Chernyshov:

Können Sie mir bitte sagen, warum der Balken seine Position im Diagramm nur dann ändert, wenn ein neuer Tick eintrifft? MT5, Just2Trade Build vom 5. Juni

Vergleichen Sie Ihren Code mit dem Beispiel des Panels aus dem Standard-[Datenordner]\MQL5\Experts\Examples\Controls\Controls.mq5

 

Guten Tag, eine Frage für Kenner:

Ich versuche, eine solche Konstruktion zu erstellen - eine Funktion, vier Variablen werden durch Links als Parameter und ein Array, aus dem Daten für die Berechnung dieser vier Variablen innerhalb der Funktion erhalten werden, zugeführt. Im Programm gibt es zwei solcher Arrays (die an die Funktion übergeben werden) - das obere und das untere Ende der Zickzacklinie. Die Funktion soll Punkte zum Zeichnen der Trendlinie berechnen.

Die Frage ist, wie man überprüfen kann, welches der beiden Arrays in einer bestimmten Iteration verwendet wird, um + oder - auf die Berechnung anzuwenden.

Wenn Sie ungeschickt formuliert sind, fragen Sie bitte noch einmal, ich erkläre es Ihnen gerne. Im Anhang finden Sie eine Skizze der Konstruktion.

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1, ind_time_2;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_1    = zigbuf[i];
      ind_time_1 = i;
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_2    = zigbuf[i];
      ind_time_2 = i;

   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться 
+ или - , < или >. 
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   //Вопрос не сложный - как это написать???   
} 

Das bedeutet, dass es für den Parameterzigbuf[] nur zwei Optionen gibt, die ersetzt werden können - entweder ZigzagPeakBuffer[] oderZigzagBottomBuffer[]. Wie kann ich innerhalb der Funktion prüfen, welche der Optionen gerade eingestellt ist?


 

Bisher habe ich erfunden, um festzustellen, welches der Arrays beteiligt ist - durch den Vergleich der gefundenen Wert, die eine übereinstimmt, dass man uns ist. Aber es gibt sicher eine schönere und kürzere Lösung.

Wissend - sagen Sie es uns bitte !!!

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1 = 0;
   int ind_time_2 = 0;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            price_1    = zigbuf[i];
            ind_time_1 = i;
            break;
      }
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            {
               if(zigbuf[i] == ZigzagPeakBuffer[i] && zigbuf[i] > price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
               if(zigbuf[i] == ZigzagBottomBuffer[i] && zigbuf[i] < price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
            }
      }
   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться + или - , < или >.
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   // Вопрос не сложный - как это написать???   
}
 

Hallo zusammen))


Frage: OBJ_FIBO zeigt beim Plotten kein Pop-up-Fenster im Diagramm an (OBJPROP_TOOLTIP). Alles wird grafisch durch OBJPOP_TXT organisiert/ Wie kann und ist es überhaupt möglich, ein Pop-up-Fenster in FIBO durch Tooltip zu machen?

Zweck: Wenn Sie mit der Maus über die Fibo-Ebene fahren, öffnet sich ein Fenster wie in HLINE (als Beispiel).

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
kopeyka2:

Hallo zusammen))


Frage: OBJ_FIBO zeigt beim Plotten kein Pop-up-Fenster im Diagramm an (OBJPROP_TOOLTIP). Alles wird grafisch durch OBJPOP_TXT organisiert/ Wie kann und ist es überhaupt möglich, ein Pop-up-Fenster in FIBO durch Tooltip zu machen?

Zweck: Wenn Sie den Mauszeiger auf die Fibo-Ebene bewegen, öffnet sich ein Fenster wie HLINE (als Beispiel).

Verwenden Sie die Eigenschaft OBJPROP_TEXT

ObjectSetString(chart_ID,name,OBJPROP_TEXT,"Это всплывающая подсказка");
 
Wie werde ich Demoprodukte los, die ich nicht benutze? Ich erhalte ständig Meldungen vom System "Neue Version ........".
 
Sergey Voytsekhovsky:

Bisher habe ich erfunden, um festzustellen, welches der Arrays beteiligt ist - durch den Vergleich der gefundenen Wert, die eine übereinstimmt, dass man uns ist. Aber es gibt sicher eine schönere und kürzere Lösung.

Leute, die es wissen - bitte sagt es mir!!!

Warum erfinden Sie Ihre eigenen Probleme? Sie werden auch so schon genug sein.

Machen Sie einfach zwei separate Funktionen.

 
Können Sie mir sagen, wie man einMqlParam-Array aus einer Set-Datei erhalten?