[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 447

 
Vielleicht habe ich etwas falsch erklärt, Sie müssen nur die erste Kerze auf m1 m5 m15 m30 h1 h4 markieren, die um 16:00 Uhr Moskauer Zeit beginnt, und der Indikator markiert (zum Beispiel auf m15 vier Kerzen).
 
Yulia:
Vielleicht habe ich etwas falsch erklärt, Sie brauchen nur die erste Kerze auf m1 m5 m15 m30 h1 h4 zu markieren, die um 16:00 Uhr Moskauer Zeit beginnt, und der Indikator markiert (also zum Beispiel auf m15 vier Kerzen).

Helfen und tun sind zwei verschiedene Dinge. Meinen Sie nicht auch?
 
Vinin:

Müssen Sie nicht die Größe des Arrays festlegen?


Ja, ich habe es wirklich vergessen, ich habe mich verzettelt. Jetzt ist das Feld voll, aber die Zeilen werden immer noch nicht angezeigt. Arrays sind mit Puffern verknüpft

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

void init()
        {
        SetIndexBuffer(0, HighMass);
        SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1);
        SetIndexBuffer(1, LowMass);
        SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);
        }
 
sss2019:


Ja, in der Tat, ich habe vergessen, dass ich mich bereits verzettelt habe. Jetzt ist das Feld voll, aber die Zeilen werden immer noch nicht angezeigt. Arrays sind mit Puffern verknüpft


Sie hätten mir den ganzen Code geben sollen. Sie wollen nicht raten, was für Sie klar ist.
 
Vinin:

Helfen und Tun sind zwei verschiedene Dinge. Meinen Sie nicht auch?

Ich stimme Ihnen vollkommen zu, ich habe um Hilfe gebeten, ich habe zwei Wochen lang herumgestochert und kein Ergebnis erzielt, also passt Ihre Option auch nicht zu mir, vielen Dank, ich werde es selbst herausfinden.
 

Guten Tag... Frage zur Funktion ArrayGetAsSeries. Um zu verstehen, wie die Funktion ArrayGetAsSeries funktioniert, hat das folgende Skript geschrieben:

//+------------------------------------------------------------------------------------------+
//|                                                                ArrayGetAsSeries_плюс.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                           //функция start
  {                                                   //начало start
   double Timestart=GetTickCount();                   //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   double array1[];                                   //объявляем массив-приемник (массив, куда будут скопированы данные)
   int element=ArrayCopy(array1,Open,0,0,WHOLE_ARRAY);//копируем данные по ценам открытия в пользовательский массив (начиная с нулевого бара)
   int size=ArraySize(array1);                        //устанавливаем количество элементов массива array1
   for(int i=0;i<=4;i++)                              //цикл по просмотру скопированных значений (первых пяти)
       {                                              //начало for
        Alert("Значение цены открытия бара № ",i," равно ",array1[i],
              "\nВремя цены открытия бара № ",i,": ",TimeToStr(iTime(NULL,0,i),TIME_DATE|TIME_MINUTES));//cообщение на экран
       }                                                                 //конец for
//----------------------------------------------------------------------------------------- 2 -
   Comment("\nФункция ArrayCopy(array1[],Open,0,0,WHOLE_ARRAY) вернула: ",element,
           "\nФункция ArraySize(array1) вернула: ",size,
           "\nФункция ArrayGetAsSeries(array1) вернула: ",ArrayGetAsSeries(array1),
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000),
           " секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать 
           //сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

Das Skript kopiert eine Array-Zeitreihe von Bar-Eröffnungspreisen in ein benutzerdefiniertes Array. Offensichtlich ist dieses benutzerdefinierte Array als Zeitreihen-Array organisiert, da die Array-Elemente vom letzten zum ersten indiziert sind (dies wird im Screenshot demonstriert, wo die Alert-Funktion die Eröffnungszeit und den Preis des vierten Balkens ausgegeben hat. Dieser Balken ist mit einer vertikalen Linie auf dem Diagramm markiert; wir können auch den Eröffnungskurs dieses Balkens sehen und im Eigenschaftsfenster sehen wir, dass die Zeit des Balkens die gleiche ist wie die, die von derAlert-Funktion angezeigt wird). Aber die Funktion ArrayGetAsSeries gibt 0 zurück, was bedeutet, dass das Benutzer-Array NICHT als Zeitreihen-Array organisiert ist (linke obere Ecke des Screenshots).

Frage: warum hat die Funktion ArrayGetAsSeries 0 zurückgegeben, obwohl das Benutzer-Array als Zeitreihen-Array organisiert ist?

P.S. Um das Forum nicht zu überladen, danke im Voraus für die Antwort


 
7777877:
F: Warum gibt die Funktion ArrayGetAsSeries 0 zurück, obwohl das Benutzer-Array als Zeitreihen-Array organisiert ist?
Nur weil Sie die Daten in einer bestimmten Reihenfolge kopiert haben, bedeutet das nicht, dass das Array wie eine Zeitreihe organisiert ist.
 
ilunga:
Nur weil Sie die Daten in einer bestimmten Reihenfolge kopiert haben, bedeutet das nicht, dass das Array wie eine Zeitreihe organisiert ist

Der Punkt ist jedoch, dass die Eröffnungskurse, die in der for-Schleife aus einem bereits kopierten Balken reproduziert werden, vom letzten zum ersten indiziert werden. Aber, soweit ich verstehe, bedeutet dies (d.h. Indexierung vom letzten zum ersten), dass das Array als eine Zeitreihe organisiert ist?

P.S. Danke für die Antwort auf meine vorherige Frage zu den Funktionen FileIsEnding und FileIsLineEnding

 
7777877:

Der Punkt ist jedoch, dass die Eröffnungskurse, die in der for-Schleife aus einem bereits kopierten Balken reproduziert werden, vom letzten zum ersten indiziert werden. Aber, soweit ich verstehe, bedeutet dies (d.h. Indizierung vom letzten zum ersten), dass das Array als eine Zeitreihe organisiert ist?

P.S. Danke für die Antwort auf meine vorherige Frage zu den Funktionen FileIsEnding und FileIsLineEnding

Nein, es bedeutet nur, dass die Daten mit einem Teil der Geschichte übereinstimmen.

Sie hätten ihn zum Beispiel manuell eingeben können. Oder aus einer Textdatei geschrieben. Oder es in der Berechnung erhalten.


Immerhin, auch durch die Eingabe einiger bedingter Daten "1,25 1,16 1,73 1,35" dort können wir die Geschichte für einige Währung vor vielen Jahren zu bekommen. Das bedeutet aber nicht, dass wir eine Zeitreihe erstellt haben

 

Bitte entschuldigen Sie, dass ich eine Frage doppelt stelle, aber ich kann die folgenden Beispiele nicht ausführen, bis ich das Problem gelöst habe.

Bitte helfen Sie mir, es herauszufinden.

Ich habe ein einfaches Skript geschrieben, um eine Bestellung zu öffnen (aus dem MQL4-Tutorial).

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   Alert (GetLastError());
   return;                                   // Выход из start()
  }

Ich habe es für 4-stellige Instrumente codiert.

Ich habe ein Konto bei einem Unternehmen, das 5 Ziffern nach dem Punkt hat.

Können Sie bitte den Code für 5 Ziffern ändern und warum wird der Fehler 4109 (Handel nicht erlaubt) angezeigt, wenn das Skript ausgeführt wird?


Grund der Beschwerde: