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

 

Man könnte so vorgehen: der unveränderliche Teil des Namens vorne, dann "RED-LINE", dann der veränderbare Teil des Namens.

Das Präfix würde nun lauten: der unveränderliche Teil des Namens plus "RED-LINE".

 
Aleksei Stepanenko:

Man könnte so vorgehen: der unveränderliche Teil des Namens vorne, dann "RED-LINE", dann der veränderbare Teil des Namens.

Das Präfix würde nun lauten: der unveränderliche Teil des Namens plus "RED-LINE".

Dort ist das, was vorne steht, auch veränderbar. Bisher ist die Frage, was genauin der Mitte des Namens steht.

 
Andrey Sokolov:

Was vorne steht, ändert sich auch. Die Frage ist, was genauin der Mitte des Titels steht.

Du kannst dich nicht über jemanden lustig machen, der versucht, dir zu helfen...

Wo werden die Objekte erstellt? Wie wird der Name des Objekts gebildet?

 
Alexey Viktorov:

Du kannst dich nicht über jemanden lustig machen, der versucht, dir zu helfen...

OK

 

Frage zuiMAOnArray()

Es gibt einen Code, wie wendet man ihn in mql5 an?

   double buff[1];
   for(i = 0; i < counter; i++)
      Array[i] = 2.0 * ma(i, val) - ma(i, a);
   for(i = 0; i < counter - a; i++)
     // buf_3[i] = iMAOnArray(Array, 0, period, 0, MODE_SMMA, i); // Оригинал mql4
      buf_3[i] = iMA(NULL, 0, period, 0, MODE_SMMA, PRICE_LOW); ???
      CopyBuffer(10,0,i,1,buff); ???
      buf_3[i] = buff[0];
 

Hallo.

Können Sie mir sagen, wie man im EA ein "Fenster" einrichten kann, in das man einen bestimmten Preis eingeben kann, damit der EA anschließend damit arbeiten kann. (Siehe Bild)

Dateien:
GBPUSDM5.png  35 kb
 
SanAlex:

Hier ist eine Möglichkeit - gefunden hierhttps://www.mql5.com/en/articles/81

Ich habe das gelesen, es ist zu schwer und nicht optimiert

 
SanAlex:

Hier ist eine Möglichkeit - gefunden hierhttps://www.mql5.com/en/articles/81

Das ist nicht der beste Weg

 
Vitaly Muzichenko:

Frage zuiMAOnArray()

Es gibt einen Code, wie wendet man ihn in mql5 an?

   double buff[1];
   for(i = 0; i < counter; i++)
      Array[i] = 2.0 * ma(i, val) - ma(i, a);
   for(i = 0; i < counter - a; i++)
     // buf_3[i] = iMAOnArray(Array, 0, period, 0, MODE_SMMA, i); // Оригинал mql4
      buf_3[i] = iMA(NULL, 0, period, 0, MODE_SMMA, PRICE_LOW); ???
      CopyBuffer(10,0,i,1,buff); ???
      buf_3[i] = buff[0];

Array[] sollte ein Puffer sein (wenn es ein Indikator ist)

Schauen Sie nun in das Standardpaket: \MQL5\Include\MovingAverages.mqh - es gibt eine Berechnung über den Puffer wie-MAOnBuffer()

 
Artyom Trishkin:

Array[] sollte ein Puffer sein (wenn es ein Indikator ist)

Werfen Sie nun einen Blick auf das Standardpaket: \MQL5\Include\MovingAverages.mqh - es gibt eine Berechnung über den Puffer wie-MAOnBuffer()

Ich danke Ihnen!

Ich habe es versucht und bekam eine Fehlermeldung, ich mache etwas falsch:

  double buff[];
   for(i = 0; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val_1) - ma_1(i, a);
   for(i = 0; i < counter - a; i++) {
      // buf_3[i] = iMAOnArray(Array_1, 0, period, 0, MODE_SMMA, i);
      SmoothedMAOnBuffer(rates_total, prev_calculated, i, period, Array_1, buff);
      buf_3[i] = buff[0];
   }
....

//+------------------------------------------------------------------+
int SmoothedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin,const int period,const double& price[],double& buffer[])
{
//--- check period
   if(period<=1 || period>(rates_total-begin))
      return(0);
//--- save as_series flags
   bool as_series_price=ArrayGetAsSeries(price);
   bool as_series_buffer=ArrayGetAsSeries(buffer);
   ArraySetAsSeries(price,false);
   ArraySetAsSeries(buffer,false);
//--- calculate start position
   int start_position;
   if(prev_calculated==0) { // first calculation or number of bars was changed
      //--- set empty value for first bars
      start_position=period+begin;
      for(int i=0; i<start_position-1; i++)
         buffer[i]=0.0; // array out of range (188,16)
      //--- calculate first visible value
      double first_value=0;
      for(int i=begin; i<start_position; i++)
         first_value+=price[i];
      buffer[start_position-1]=first_value/period;
   } else
      start_position=prev_calculated-1;
//--- main loop
   for(int i=start_position; i<rates_total; i++)
      buffer[i]=(buffer[i-1]*(period-1)+price[i])/period;
//--- restore as_series flags
   ArraySetAsSeries(price,as_series_price);
   ArraySetAsSeries(buffer,as_series_buffer);
//---
   return(rates_total);
}
//+------------------------------------------------------------------+
Grund der Beschwerde: