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

 
Reshetov:

Mache ich etwas falsch? Versuchen Sie die Linie
Alert("Time=",Time[0]);
Null bis s funktioniert nicht.
 
forexman77:
Vielleicht mache ich etwas falsch? Der Versuch, die Zeile Null durch s zu ersetzen, funktioniert nicht.
Schreiben Sie genau, was Sie erhalten möchten (das Wesentliche des Algorithmus). Handelt es sich außerdem um einen Indikator, ein Skript oder einen Expert Advisor?
 
barabashkakvn:
Schreiben Sie genau, was Sie erhalten möchten (die Essenz des Algorithmus). Ist es ein Indikator, ein Skript oder ein Expert Advisor?

Der Zeitpunkt der Bildung des Balkens, der durch die untere Linie gefunden wurde (das gefundene Minimum):

int s=ArrayMaximum(High,i,k);
Nein, es ist noch kein Indikator, sondern ein Skript zum Testen. Ich werde es in Zukunft als Expert Advisor verwenden. Ich werde es in Zukunft als Expert Advisor verwenden.
 
forexman77:

Der Zeitpunkt der Bildung des Balkens, der durch die untere Linie gefunden wurde (gefundenes Minimum):

Nein, es ist noch kein Indikator, sondern ein Skript, das getestet werden soll. Zu lernen. Ich werde es in Zukunft für einen EA verwenden.

Die Anzahl der kopierten Elemente wurde reduziert, um die Übersichtlichkeit und das Verständnis zu verbessern:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double High[];
   datetime Time[];
   ArraySetAsSeries(High,true);  // индексация элементов массива будет производиться как в таймсериях
   ArraySetAsSeries(Time,true);  // индексация элементов массива будет производиться как в таймсериях
   int i=0;
   int k=10;
//--- копируем цены High баров от "i" в количестве "k"
   CopyHigh(_Symbol,_Period,i,k,High); // теперь в массиве High "k" элементов
   int s=ArrayMaximum(High);           // индекс бара с максимальным значением
   double Maxi=High[ArrayMaximum(High)];  // найдено значение High максимального бара
//--- копируем время Time баров от "i" в количестве "k"
   CopyTime(_Symbol,_Period,i,k,Time);   // теперь в массиве Time "k" элементов
//--- на данный момент в массивах High и Time "k" элементов и они соответствуют друг другу
   Alert("s=",s);
   Alert("Time=",Time[s]);
   Alert("Maxi=",Maxi);
  }
//+------------------------------------------------------------------+
 
barabashkakvn:

Die Anzahl der kopierten Elemente wurde reduziert, um die Darstellung in der Grafik und das Verständnis zu erleichtern:

Großartig! Zählt. Ich nahm an, dass ich die Indizierung der Elemente einstellen sollte, wusste aber nicht, wie ich das anstellen sollte.
 
Die Frage ist, wie man die Farbe der Verkauf-Limit-Aufträge auf dem Diagramm zu ändern. Sie sind grün wie die realen Aufträge. machen sie zum Beispiel orange...
 
trora:
Die Frage ist, wie man die Farbe der Sell Limit Bids auf dem Chart ändern kann. Sie sind grün wie die echten Gebote. machen Sie sie orange oder so...
Das können wir nicht über das Farbschema erreichen. Es besteht jedoch ein Zusammenhang zwischen der Farbe der Bände und der Farbe aller Aufträge: Wenn wir die Farbe der Bände ändern, haben alle Aufträge und Bestellungen die gleiche Farbe.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 

Das Skript muss die Zählung eines Arrays ab einem bestimmten Datum mit einer bestimmten Anzahl von Balken beginnen, um innerhalb dieser Anzahl von Balken zu suchen. Das wäre in Ordnung, aber die Suche wird ab dem angegebenen Zeitpunkt von rechts nach links durchgeführt, während die Suche ab dem angegebenen Zeitpunkt und danach durchgeführt werden sollte. Die Variante mit Start- und Enddatum ist nicht geeignet, da es keine Möglichkeit gibt, die Anzahl der Balken einzustellen.

 
forexman77:

Das Skript muss die Zählung eines Arrays ab einem bestimmten Datum mit einer bestimmten Anzahl von Balken beginnen, um innerhalb dieser Anzahl von Balken zu suchen. Das wäre in Ordnung, aber die Suche wird ab dem angegebenen Zeitpunkt von rechts nach links durchgeführt, während die Suche ab dem angegebenen Zeitpunkt und danach durchgeführt werden sollte. Die Variante mit Start- und Enddatum ist nicht geeignet, da es keine Möglichkeit gibt, die Anzahl der Balken einzustellen.

Skizzieren Sie eine handschriftliche Zeitleiste und nummerieren Sie die Balken. Oder verwenden Sie ein Bildschirmfoto, um die Situation zu skizzieren (vorzugsweise vor einem weißen Hintergrund).
 
barabashkakvn:
Skizzieren Sie die Zeitachse von Hand und nummerieren Sie die Balken. Oder skizzieren Sie auf einem Screenshot die Situation (vorzugsweise vor einem weißen Hintergrund).

Die Erfassung der Entstehungszeit des Maximums ist kein Problem. Es ist nicht klar, wie man das Programm anweist, in den nächsten 8 Takten nach dem Minimum zu suchen. Das heißt, die Balken vor dem Maximum werden nicht gezählt, die Suche erfolgt in den Balken nach dem Maximum. Die Zählung nach Zeit von und bis ist nicht geeignet, da es unmöglich ist, die Anzahl der Takte anzugeben. Der letzte zu suchende Balken im Diagramm ist Null, wir gehen davon aus, dass es keine Balken nach dem letzten Pfeil gibt.



Grund der Beschwerde: