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

 
prom18:

Vielleicht gibt es Beispiele. Visuell wäre es einfacher zu verstehen. Ich danke Ihnen.

Wenn ich richtig verstanden habe, dass Sie Balken in einem bestimmten Zeitintervall benötigen, können Sie diese mit iTime auswählen
 
prom18:

Hallo. Ich lese gerade ein Lehrbuch. Es gibt einige Beispiele dafür, wie man Indikatoren schreiben kann. Ich habe eine Frage zum Indikator separatewindow.mq4. Dort kann man die Anzahl der berechneten Balken einstellen. Was, wenn Sie die Berechnung vom Eröffnungskurs des Tages (oder von Null) bis zum Schlusskurs des Tages angeben müssen? Wie soll ich das machen? Ich habe versucht, nach einer Lösung zu suchen, aber ich habe sie nicht gefunden.

Hier ist der Eröffnungskurs des Tages im aktuellen Zeitrahmen

//+------------------------------------------------------------------+
//|                                                      DayOpen.mq4 |
//|                                            Copyright 2018, IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         Label1Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i,limit;
   static double dayopen=0.0;
   static int lastday=0;
   if(prev_calculated==0)
     {
      limit=rates_total-1;
      dayopen=0.0;
      lastday=0;
     }
   else limit=rates_total-prev_calculated;
   for(i=limit; i>=0; i--)
     {
      if(TimeDay(time[i])!=lastday)
        {
         dayopen=open[i];
         lastday= TimeDay(time[i]);
        }
      Label1Buffer[i]=dayopen;
     }
   return(rates_total);
  }
 

Hallo! Ist es möglich, den richtigen Balken in der Historie RECHTS von einem bestimmten Balken durch eine Bedingung zu finden? Vielen Dank.

 
Sfinks35:

Hallo! Ist es möglich, den richtigen Balken in der Historie RECHTS von einem bestimmten Balken durch eine Bedingung zu finden? Vielen Dank.

Ja, das können wir.

 
Artyom Trishkin:

Sie können.

Wie machen Sie das? Bitte sagen Sie es mir.
 
Sfinks35:
Wie machen Sie das? Können Sie mir das bitte erklären?

Und wie findet man eine bestimmte Bar?

 
Artyom Trishkin:

Wie finden Sie eine bestimmte Bar?


Es hat lange gedauert, aber ich habe eine Funktion wie diese geschrieben:

double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
wenn
((Close[i] > Open[i]) &&
(Schließen[i+1] > Öffnen[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] wird für diese Kerze benötigt
(Schließen[i+3] < Öffnen[i+3]) &&
(Schließen[i+4] < Öffnen[i+4])

low3 = Low[i+2];
index = i+2;
}

zurück(low3);
}

 
Igor Makanu:

Hier ist der Eröffnungskurs des Tages im aktuellen TF

Vielen Dank, Igor. Aber ich habe es nicht richtig formuliert. Der Indikator wird für eine bestimmte Anzahl von Balken (in diesem Fall 50) berechnet und in einem separaten Fenster dargestellt. Er benötigt nicht den Eröffnungskurs, sondern den ersten Balken des Tages, um den MA anzuzeigen. Aber trotzdem, danke.

 
Igor Makanu:

Hier ist der Eröffnungskurs des Tages auf der aktuellen TF

Können Sie mir sagen, was in

int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated;

"==" , "?" , ": "

?

 
Sfinks35:


Es hat lange gedauert, aber ich habe eine Funktion wie diese geschrieben:

Gibt auch den Index im Funktionsparameter zurück, der durch den Link übergeben wurde