[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 89

 
keep87:
nicht möglich

es ist möglich))

Sie könnten z.B. den EA das Array in globale Variablen des Terminals laden lassen und es dann von dort lesen.

 
alsu:
Entscheiden Sie, wie die Ausgabe aussehen soll. Wenn der Wert der Maschine 5 Takte rückwärts ist, dann

oder identisch

Wenn ja,

es wird immer EMPTY_VALUE sein, da es kein verschobenes Handgelenk auf diesen Balken gibt

Verstanden, danke!
 
alsu:
Das Beste ist, Sie brauchen sich nicht um die Verschiebungen im EA zu kümmern, nehmen Sie einfach die Verschiebung 0 und die Nummer des gewünschten Balkens.
Ich habe jetzt mit dem Tester überprüft, es stellt sich heraus, dass der Handel 5 Kerzen nach dem Überschreiten der gleitenden Durchschnitte öffnet, und das ist nicht der Fall... Ich habe herausgefunden, was Sie tun können, verschieben Sie die anderen MA 5 Kerzen nach vorne, dann ist das Signal richtig...)
 
ierehon:
Ich überprüfte jetzt mit dem Tester, es stellt sich heraus, dass der Handel 5 Kerzen öffnet, nachdem die gleitenden Durchschnitte gekreuzt haben, und das ist nicht das gleiche... Ich habe herausgefunden, was zu tun ist, verschieben Sie eine weitere MA 5 Kerzen nach vorne, dann ist das Signal richtig...)

das ist das Gleiche))

Nullbalken des um 5 Balken nach rechts verschobenen MA = 5. Balken des nicht verschobenen MA

 
keep87:
nicht. Es ist möglich, Daten innerhalb von EA manuell von Array zu Array zu bewerten, wenn sie sich nicht von Optimierung zu Optimierung ändern, für die Zeit der Tests.
Aber in diesem Fall muss MT das Array jedes Mal(?) aus der Datei lesen, aber nicht aus einer separaten Datei, sondern aus dem Code.
- Wird es in diesem Fall einen Gewinn geben?
 
alsu:

es ist möglich))

Sie könnten zum Beispiel den Expert Advisor das Array in die globalen Variablen des Terminals laden und dann von dort lesen lassen.

Die Array-Elemente können mehrere Dutzend bis mehrere Hundert sein und müssen für jede Variable vorher deklariert werden.
Es wird ziemlich schwierig sein, sie umzusetzen (natürlich ist die Aufgabe auch nicht trivial).
 
chief2000:
Array-Elemente können mehrere Dutzend bis mehrere Hundert sein, und für jedes Element muss zuvor eine Variable deklariert werden.
Es ist etwas kompliziert zu implementieren (natürlich ist die Aufgabe auch nicht trivial).

Na und? Behandeln Sie die Variablen in der Schleife auf die gleiche Weise, wie Sie Array-Elemente behandeln würden. Beispiel für die Verwendung:

double a[];
int n;

...
ArrayResize(a,n);
...

//запись массива в глобальные переменные

string name;
for(i=0;i<n;i++)
{
   name = StringConcatenate("__ARRAY_",i);
   GlobalVariableSet(name,a[i]);
}

//чтение в массив из глобальных

int gv = GlobalVariablesTotal();
int index;

for(i=0;i<gv;i++)
{
   name = GlobalVariableName(i);
   if(StringFind(name,"__ARRAY_")==0)
   {
      index = StrToInteger(StringSubstr(name,8));
      if(index>=0&&index<n) a[index]=GlobalVariableGet(name);
      
      //опционально - если хотим очистить список
      //GlobalVariableDel(name);
   }
}


es könnte nicht einfacher sein))

 
alsu:

Na und? Behandeln Sie die Variablen in der Schleife auf die gleiche Weise, wie Sie Array-Elemente behandeln würden. Beispiel für die Verwendung:

es könnte nicht einfacher sein))

Soweit ich mich erinnere, habe ich auf diese Weise mit einigen tausend Variablen gearbeitet und keine Verlangsamung festgestellt. Für größere Mengen (Hunderttausende von Artikeln oder mehr) verwende ich normalerweise MySQL.
 
alsu:
Soweit ich mich erinnere, habe ich auf diese Weise mit einigen tausend Variablen gearbeitet und bin dabei auf keine Verzögerungen gestoßen. Für größere Mengen (Hunderttausende von Artikeln oder mehr) verwende ich normalerweise MySQL.
ICH DANKE IHNEN SEHR!
 

Können Sie mich beraten, es gibt eine csv-Datei mit Daten im Format 1.33027; 1.33023 und so weiter.

Dann lesen Sie diese Datei, aber aus irgendeinem Grund werden die Daten mit einer 4-stelligen Genauigkeit gelesen und ich muss mit 5.

Auf unterschiedliche Weise lesen und

FileReadString и FileReadDouble и FileReadInteger

hilft nicht