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

 
Alex:

Ich danke Ihnen für Ihre Antworten und Ihre Geduld.


Vladimir, ich habe dich wahrscheinlich schon gelangweilt:) Aber ich tue mich schwer mit den Grundlagen. Ich habe versucht, eine Testaufgabe mit Kopierfunktionen durchzuführen... Der Indikator ist nicht gezeichnet, aber es gibt Zahlen in Printe... Ich verstehe gar nichts.


Ein und dasselbe Array UpBar geht an zwei Puffer: 0 und 1.

Und für die Indizes, für die Sie keine Werte setzen wollen, schreiben Sie leere Werte.

Und soweit ich das verstanden habe, schreiben Sie Werte von 3 bis 3 Balken. Das bedeutet, dass die frühesten Werte geschrieben werden, nicht die neuesten (die Nummerierungsreihenfolge ist anders als bei mql4).

 
Alex:

Ich danke Ihnen für Ihre Antworten und Ihre Geduld.


Vladimir, ich habe dich wahrscheinlich schon gelangweilt:) Aber ich tue mich schwer mit den Grundlagen. Ich habe versucht, eine Testaufgabe mit Kopierfunktionen durchzuführen... Der Indikator ist nicht gezeichnet, aber es gibt Zahlen in Printe... Ich verstehe gar nichts.


//+------------------------------------------------------------------+
//|                                                        PBars.mq5 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot UpBar
#property  indicator_label1  "UpBar"
#property  indicator_type1   DRAW_HISTOGRAM
#property  indicator_color1  clrGreen
#property  indicator_style1  STYLE_SOLID
#property  indicator_width1  6
////--- plot DnBar
//#property indicator_label2  "DnBar"
//#property indicator_type2   DRAW_HISTOGRAM
//#property indicator_color2  clrRed
//#property indicator_style2  STYLE_SOLID
//#property indicator_width2  6
//--- input parameters
input int   Histori=30;
input ENUM_TIMEFRAMES TimeFrame=0;
input string  Simvol="EURUSD";
//--- indicator buffers
double         UpBar[];
//double         DnBar[];
double         O_Price[];
double         C_Price[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBar,INDICATOR_DATA);
//SetIndexBuffer(1,UpBar,INDICATOR_DATA);
   SetIndexBuffer(1,O_Price,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,C_Price,INDICATOR_CALCULATIONS);
//---
   ArraySetAsSeries(O_Price,true);
   ArraySetAsSeries(C_Price,true);
   ArraySetAsSeries(UpBar,true);
   ArrayInitialize(UpBar,0.0);
//---
   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[])
  {
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(close,true);

   if(prev_calculated==0)
     {
      ArrayInitialize(UpBar,0.0);
      ArrayInitialize(O_Price,0.0);
      ArrayInitialize(C_Price,0.0);
      Print(__FUNCTION__);
      ResetLastError();
      if(CopyOpen(Simvol,TimeFrame,0,Histori,O_Price)==-1)
         Print("Error CopyOpen #",GetLastError());
      ResetLastError();
      if(CopyClose(Simvol,TimeFrame,0,Histori,C_Price)==-1)
         Print("Error CopyClose #",GetLastError());
      for(int t=3; t<Histori; t++)
        {
         UpBar[t]=MathAbs(NormalizeDouble((O_Price[t]-C_Price[t]),Digits()));
         Print(IntegerToString(t)," ",DoubleToString(UpBar[t],Digits()));
         int g=0;
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

Und das Ergebnis:

Ergebnis

 
Karputov Vladimir:

Und das Ergebnis:


Nochmals herzlichen Dank.
 
Alex:
Nochmals herzlichen Dank.
Sie sind herzlich willkommen. Zögern Sie nicht, mich zu kontaktieren, wenn Sie Fragen zu MQL5 haben.
 

Gibt es irgendwelche Funktionen in MQL4, die maximale/minimale Preiswerte für eine bestimmte Anzahl von Bars geben?

Ich glaube, es gab eine, aber ich kann sie nicht finden...

 
-Aleks-:

Gibt es irgendwelche Funktionen in MQL4, die maximale/minimale Preiswerte für eine bestimmte Anzahl von Bars geben?

Ich glaube, es gab eine, aber ich kann sie nicht finden...

https://docs.mql4.com/ru/series/ihighest

https://docs.mql4.com/ru/series/ilowest

iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Ja, ja, danke - ich habe nicht gründlich genug gesucht - ich habe es bereits selbst gefunden.
 
-Aleks-:
Ja, danke - ich habe nicht gründlich genug gesucht - ich habe es bereits selbst gefunden.
Funktionen kompatibel mit mql5 CopyHigh und CopyLow dann im resultierenden Array ArrayMaximum und ArrayMinimum
 
Stimmt es, dass jeder Satz von Variablen, aus denen ein Handelssystem besteht, eine zufällige Verteilung von Gewinnen und Verlusten aufweist?
 
Евгений:
Stimmt es, dass jeder Satz von Variablen, aus denen ein Handelssystem besteht, eine zufällige Verteilung von Gewinnen und Verlusten aufweist?

Eine Gegenfrage.

Glauben Sie, dass die Entwicklung eines Währungspaares - Chart, Geld- und Briefkurse usw. - von einer Reihe von Variablen abhängt?

Grund der Beschwerde: