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

 
Alexey Viktorov:

Lesen Sie die Dokumentation und den Beispielcode sorgfältig durch. Ihre Schleife ist nicht richtig organisiert.

Erzählen Sie mir nicht, dass for- und while-Schleifen auf die gleiche Weise funktionieren. Das ist nicht das Problem, es sind die hervorgehobenen Zeilen.

Danke, ich habe es gelesen (damit habe ich angefangen)

Alles funktioniert in meinem Code, nur ein Glitch in MT4, Charts 8 aber sieht 7(

2021.03.10 11:59:23.914 Label EURCAD,M15: 9/
2021.03.10 11:59:23.914 Label EURCAD,M15: 8/
2021.03.10 11:59:23.914 Label EURCAD,M15: 7/
2021.03.10 11:59:23.914 Label EURCAD,M15: 6/EURUSD
2021.03.10 11:59:23.914 Label EURCAD,M15: 5/EURUSD
2021.03.10 11:59:23.914 Label EURCAD,M15: 4/EURUSD
2021.03.10 11:59:23.914 Label EURCAD,M15: 3/EURUSD
2021.03.10 11:59:23.914 Label EURCAD,M15: 2/EURUSD
2021.03.10 11:59:23.914 Label EURCAD,M15: 1/EURUSD
2021.03.10 11:59:23.914 Label EURCAD,M15: 0/EURUSD
 
Unwahrscheinlich. So oft ich mich über die Plattform versündigt habe, habe ich mich immer wieder selbst getäuscht.
 
Aleksei Stepanenko:
Unwahrscheinlich. Wie oft habe ich der Plattform die Schuld gegeben, und es hat sich immer herausgestellt, dass ich selbst falsch lag.
Ich kann ein bestimmtes Diagramm nicht sehen, aber alle anderen, und wenn ich neue Diagramme hinzufüge, kann ich sie sehen.
 
long currChart=ChartFirst();
int i=0;
while(currChart>=0)
  {
  Print(i,ChartSymbol(currChart)," ID =",currChart);
  currChart=ChartNext(currChart); // на основании предыдущего получим новый график
  i++;// не забудем увеличить счетчик
  }

Warum versuchst du das nicht?

 
Aleksei Stepanenko:

Warum versuchst du das nicht?

Das ist dasselbe.

2021.03.10 12:45:48.434 Label EURCAD,M15: 8/
2021.03.10 12:45:48.434 Label EURCAD,M15: 7/EURUSD
2021.03.10 12:45:48.434 Label EURCAD,M15: 6/EURUSD
2021.03.10 12:45:48.434 Label EURCAD,M15: 5/EURUSD
2021.03.10 12:45:48.434 Label EURCAD,M15: 4/EURUSD
2021.03.10 12:45:48.434 Label EURCAD,M15: 3/EURUSD
2021.03.10 12:45:48.434 Label EURCAD,M15: 2/EURUSD
2021.03.10 12:45:48.434 Label EURCAD,M15: 1/EURUSD
 

Warum ist der Druck anders? Anderer Code?

Print(i,ChartSymbol(currChart)," ID =",currChart);
2021.03.10 12:45:48.434 Label EURCAD,M15: 1/EURUSD

Wie viele und welche Karten sind geöffnet? Symbol, Punkt.

Ungefaltet/ungefaltet?
 
MakarFX:

Danke, das habe ich auch gelesen (damit habe ich angefangen).

Alles funktioniert in meinem Code, nur ein Glitch in MT4, Charts 8 aber sieht 7(

Sehr schlechte Lektüre. Wahrscheinlich wie die Zwangslektüre in der Schule. Ich habe es gelesen, aber nichts hat sich in mein Gehirn eingeprägt.

Hier ist ein Beispiel. Der Zweck ist dort ein anderer, aber dennoch ändert sich die Aufzählung der offenen Diagramme nicht je nach Zweck der Aufzählung.

Oder hier ist der Code

/********************Script program start function*******************/
void OnStart()
 {
  long prevChart = 0;
  int i = 0;
  do
   {
    prevChart = ChartNext(prevChart);
    ChartSetInteger(prevChart, CHART_BRING_TO_TOP, 0, true);
    Sleep(200);
    i++;
   }
  while(prevChart >= 0);
 }/*******************************************************************/
Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2021.01.15
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Aleksei Stepanenko:

Warum ist der Druck anders? Anderer Code?

Wie viele und welche Karten sind geöffnet? Symbol, Punkt.

Ungefaltet/ungefaltet?
Alexey Viktorov:

Sehr schlechte Lektüre. Das muss wie eine Zwangslektüre in der Schule gewesen sein. Ich meine, ich habe es gelesen, aber nichts ist mir im Kopf geblieben.

Hier ist ein Beispiel. Das Ziel ist dort ein anderes, aber dennoch ändert sich die Aufzählung der offenen Diagramme nicht je nach dem Zweck dieser Aufzählung.

Oder hier ist der Code

Das Problem wird beseitigt, indem das Terminal neu gestartet wird

 

Helfen Sie mir, Array außerhalb des Bereichs in diesem Code zu vermeiden

double GetExtremumZigZagPriceHigh(string symbol="",ENUM_TIMEFRAMES timeframe=0,int extremum_number=0)//,int depth=12,int deviation=5,int backstep=3)
  {
   if(symbol=="") //Если symbol = "" , то..
      symbol=Symbol(); //Присвоить переменной symbol значение текущего символа на графике.

//Объявить необходимые переменные:
   double price[];                                                 //Цена экстремума выбранная из массива таймсерии.
//datetime time[];
   int    count;                                                   //Счетчик цикла.
int bars_quantity=1000; //Количество баров на графике.
int extremum_count=0;                                           //Счетчик экстремумов.

   ArraySetAsSeries(price,true);                   //Устанавить флаг, чтобы индексация массива производилась как в таймсериях.
   CopyBuffer(handle,1,0,bars_quantity,price);     //Скопировать в динамический массив price[] цены указанного количества баров.

   for(count=1; count<bars_quantity; count++) //Запустить цикл, который будет бежать по каждому бару.
     {
      if(price[count]!=0) //Если Цена Зигзага есть, то есть не равна нулю, то..
        {
         extremum_count++;        //Увеличить счетчик экстремумов на одну единицу.

         if(extremum_count>extremum_number) //Если счетчик экстремумов превысил значение указанного номера экстремума, то..
            return(price[count]);                 //Вернуть эту цену.
        }
     }
//Print("GetExtremumZigZagPrice(): Экстремум ЗигЗага ",extremum_number," не найден"); //А до тех пор, пока ЗигЗаг не показывает цену,
   return(0);                                                                          //Печатать Print, и возвращать ноль.
  }

Es ist dieser Ort, der weggeworfen wird.

if(price[count]!=0)
 
CopyBuffer

Возвращаемое значение

Anzahl der kopierten Array-Elemente oder -1 im Falle eines Fehlers.

Hinweis

Wenn Daten von einem Indikator angefordert werden und die angeforderten Zeitreihen noch nicht erstellt wurden oder vom Server heruntergeladen werden müssen, gibt die Funktion sofort -1 zurück, aber der Lade-/Erstellungsprozess selbst wird eingeleitet.

Wenn Daten vom Expert Advisor oder einem Skript angefordert werden, wird das Laden vom Server eingeleitet, wenn das Terminal diese Daten nicht lokal hat, oder der Aufbau der erforderlichen Zeitreihen beginnt, wenn die Daten aus der lokalen Historie aufgebaut werden können, aber noch nicht bereit sind. Die Funktion gibt die Datenmenge zurück, die nach Ablauf der Zeitüberschreitung zur Verfügung steht.

Prüfen Sie, ob Sie dort bars_quantity haben

Grund der Beschwerde: