Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1201

 
Константин:
@Artyom Trishkin

Können Sie mir einige geschäftliche Tipps geben?

Ich kann Ihnen viele verschiedene Informationen über Truthähne geben.

Zunächst einmal ist es ein Fasanenvogel. Es ist diätetisches Fleisch. Ich verfüttere es an meine Katze. Er sagt, es sei köstlich...

 
Константин:

Können Sie mir einen Hinweis darauf geben, worum es geht?

Und warum sollten Sie das Skript von einem Indikator aus ausführen wollen?

 
Mihail Matkovskij:

Was den Punkt betrifft, wer hat Ihnen gesagt, dass Sie so dumm sind, Skripte von einem Indikator auszuführen? :)

Und vor allem: Warum?

Ich möchte eine Schaltfläche auf dem Diagramm zu machen, so dass ich ein Skript durch Drücken einer Taste mit einem Parameter aus dem Indikator genommen laufen kann

 
Константин:

Ich möchte eine Schaltfläche auf dem Diagramm zu machen, so dass ich das Skript durch Drücken der Taste, mit dem Parameter aus dem Indikator genommen laufen kann

Sie schreiben den Code der Schaltfläche in den Indikatorcode und integrieren den Skriptcode als Funktion in den Indikatorcode. Drücken Sie die Taste - rufen Sie die Funktion auf, in der Sie den Indikatorparameter übergeben.

 
Константин:

Ich möchte eine Schaltfläche auf dem Diagramm, so dass ich das Skript durch Drücken der Taste, mit dem Parameter aus dem Indikator genommen laufen zu machen

Wenn das Problem in der Erstellung der Schaltfläche selbst liegt, finden Sie hier die Lösung:

//+------------------------------------------------------------------+
//|                                                  ClickButton.mq5 |
//|                                      Copyright 2020, © Cyberdev. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev."
#property version   "1.00"
#property indicator_chart_window

#property indicator_plots 0

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#include <ChartObjects\ChartObjectsTxtControls.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CChartObjectButton button;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
  button.Create(0, "pushBtn", 0, 30, 30, 80, 21);
  button.SetString(OBJPROP_TEXT, "Push my");
  button.SetInteger(OBJPROP_BGCOLOR, clrDodgerBlue);
  button.Color(clrWhite);
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[]) {
//---
//--- return value of prev_calculated for next call
  return(rates_total);
}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam
) {
  if(id == CHARTEVENT_OBJECT_CLICK) {
    if(sparam == button.Name()) {
      Alert("Button \""+sparam+"\" clicked!"); // Вместо этого функция с кодом...
      button.State(0);
      ChartRedraw(0);
    }
  }
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij:

Wenn das Problem in der Erstellung der Schaltfläche selbst liegt, finden Sie hier die Lösung:

Danke, ich glaube, ich habe die Schaltfläche verstanden, aber ich habe nicht herausgefunden, wie ich das Skript anhängen kann. Das Skript befindet sich unter C:\Benutzer\...\MQL4\Scripts\Order.ex4

 
Eine andere Frage. Ich benutze ein kleines Windows-Tablet ohne Maus, die Tasten auf dem Diagramm sind eine praktische Lösung für mich. Ist es möglich, den Tastaturbefehl Strg+F5 auszuführen, wenn ich die Schaltfläche auf dem Diagramm drücke, wäre es für mich bequemer, das folgende Profil anzuzeigen.
 
Константин:

Danke, ich glaube, ich habe die Schaltfläche gefunden, aber ich habe nicht herausgefunden, wie ich das Skript anhängen kann. Das Skript befindet sich unter C:\Benutzer\...\MQL4\Scripts\Order.ex4

Weisen Sie dem Skript eine Verknüpfung zu und simulieren Sie es mit WinAPI. Aber so etwas habe ich inMQL-Programmen noch nicht gemacht. Versuchen Sie also,"SendInput User32.dll WinAPI" zu googeln.

 

Guten Tag!

Könnten Sie mir bitte sagen, wie ich eine Frage lösen kann, die mich beschäftigt?

Die Idee ist die folgende: Ich ziehe eine Linie am vorherigen Maximum der Kerze. Ich möchte, dass die Linie in Abhängigkeit vom vorherigen Höchstwert verschoben wird.

void OnTick()
  {
//---
   double   o1 = iOpen(Symbol(),Period(),1);
   double   h1 = iHigh(Symbol(),Period(),1);
   double   l1 = iLow(Symbol(),Period(),1);
   double   c1 = iClose(Symbol(),Period(),1);
   double   c0 = iClose(Symbol(),Period(),0);
   double   rt = 0;
   double   rs1 = 0;


rt=MathAbs(c1-o1)/_Point; //размер тела свечи
rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи


if (rs1>=rt) // условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же всечи, то...   
{
double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум
ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию
Comment("ЦЕНА МАКС =======",PRH,"\n"); // комментарий пред. максимума
}
}
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
При создании пользовательского индикатора можно указать один из 18 типов графического построения (способа отображения на главном окне графика или в подокне графика), значения которых указаны в перечислении ENUM_DRAW_TYPE. В зависимости от стиля рисования, может потребоваться от одного до четырех буферов значений (отмеченных как INDICATOR_DATA...
 
Alexey Belyakov:

Guten Tag!

Könnten Sie mir bitte sagen, wie ich eine Frage lösen kann, die mich beschäftigt?

Die Idee ist die folgende: Ich ziehe eine Linie am vorherigen Maximum der Kerze. Ich möchte, dass die Linie in Abhängigkeit vom vorherigen Höchstwert verschoben wird.

Es gibt 2 Optionen
1. Sie müssen das Objekt löschen, bevor Sie es zeichnen.
2. Den Preis nach der Erstellung eines Objekts festlegen