[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 305

 
artmedia70:

1. Wenn es eine geschlossene Take-Position gibt, ...

1.1 Wenn sein Typ OP_BUY ist, ...

1.1.2 Wenn es eine offene Position OP_SELL gibt, ....

1.1.3 Wenn die aktuelle Barzeit abzüglich der Open-Sell-Position-Zeit größer oder gleich der Anzahl der Bars für eine Verzögerung ist, ...

1.1.4 Eine Verkaufsposition schließen

1.2 Wenn sein Typ OP_SELL ist, ...

1.2.2 Wenn es eine offene Position OP_BUY gibt, ...

1.2.3 Wenn die aktuelle Barzeit abzüglich der Öffnungszeit der Kaufposition größer oder gleich der Anzahl der Bars für eine Verzögerung ist, ...

1.2.4. wir schließen die Kaufposition

Danke für den Algorithmus, er ist viel komplizierter, als ich erwartet hatte.

Könnten Sie bitte den Code im Allgemeinen skizzieren, denn ich habe so lange gebraucht, um den vorherigen Code zu schreiben, aber ich konnte keine ähnlichen EAs finden....

Ich kann keine ähnlichen EAs finden, aber ich wäre Ihnen sehr dankbar!

 
Bevor Sie versuchen, bis zum Äußersten zu gehen, ist es besser zu prüfen, ob Sie die Lösung brauchen.
Sie können viele ähnliche Funktionen hier finden - Nützliche Funktionen von KimIV. Es gibt auch eine fertige Lösung für Ihre Aufgabe.
 

Hallo.

Bitte helfen Sie mir, einen Fehler zu finden. Der Code zählt die Summe der Werte von RangeX0_D1

Das Ergebnis ist nur das letzte (sechste) Glied der Sequenz.

Ich danke Ihnen im Voraus.

  int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  = (iHigh(NULL,1440,k)-iLow(NULL,1440,k))/Point;
    if (RangeX0_D1>0)
    RangeX0_D1++;
   }
 
int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  += (iHigh(NULL,1440,k)-iLow(NULL,1440,k))/Point;
   }
 
FAQ:
Vielen Dank für Ihre Hilfe, Genauigkeit und Schnelligkeit :)
 
nemo811:
Vielen Dank für Ihre Hilfe, Genauigkeit und Schnelligkeit :)


Um die Berechnungen zu beschleunigen, ist es besser, ein wenig anders vorzugehen

int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  += (iHigh(NULL,1440,k)-iLow(NULL,1440,k));
   }
   RangeX0_D1 /= Point;

Die Aufteilung dauert sehr lange. Es ist besser, es einmal zu tun.

 
Guten Tag, könnten Sie mir bitte sagen, warum die Angebote vom 10. Juni bis 22. September dieses Jahres nicht hochgeladen werden können? Ich habe zwei bis drei Verlaufs-Uploads durchgeführt, und bei allen war die gleiche Lücke in den Daten vorhanden.
 
Guten Tag, ein Ratschlag: Die Schleife sucht nach Werten, die bestimmte Bedingungen erfüllen. Die gefundenen Werte werden in ein Array geschrieben. Da im Voraus nicht bekannt ist, wie viele Werte gefunden werden, ist auch die Größe des zu deklarierenden Arrays nicht bekannt. Aus Zeit- und Ressourcengründen würde ich lieber nicht zwei Durchläufe machen (damit ich im ersten Durchlauf die Anzahl der gefundenen Werte zählen, im zweiten Durchlauf das Array deklarieren und Daten in das Array schreiben kann). Gibt es eine Möglichkeit, das gewünschte Ergebnis in einem Durchgang zu erzielen?
 
Elenn:
Guten Tag, ein Ratschlag: Die Schleife sucht nach Werten, die bestimmte Bedingungen erfüllen. Die gefundenen Werte werden in ein Array geschrieben. Da im Voraus nicht bekannt ist, wie viele Werte gefunden werden, ist auch die Größe des zu deklarierenden Arrays nicht bekannt. Aus Zeit- und Ressourcengründen würde ich lieber nicht zwei Durchläufe machen (damit ich im ersten Durchlauf die Anzahl der gefundenen Werte zählen, im zweiten Durchlauf das Array deklarieren und Daten in das Array schreiben kann). Gibt es eine Möglichkeit, das gewünschte Ergebnis in einem Durchgang zu erzielen?

Im Indikator kann ein Array "unendlicher" Länge deklariert werden. Deklarieren Sie es und schreiben Sie dann in der Schleife sofort die gefundenen Werte in das Array. Die Frage ist nur, wie man die notwendige Auswahl in den Expert Advisor/Skript überträgt? Es gibt einige Instrumente, aber wir müssen die Komplexität bewerten. Vielleicht wäre es wirklich einfacher, 2 Durchläufe zu machen - im ersten zählen wir die Anzahl der gefilterten Werte, ändern dann die Dimension des Arrays, und im zweiten geben wir die Werte in das Array ein?
 
Elenn:
Guten Tag, ein Ratschlag: Die Schleife sucht nach Werten, die bestimmte Bedingungen erfüllen. Die gefundenen Werte werden in ein Array geschrieben. Da im Voraus nicht bekannt ist, wie viele Werte gefunden werden, ist auch die Größe des zu deklarierenden Arrays nicht bekannt. Aus Zeit- und Ressourcengründen würde ich lieber nicht zwei Durchläufe machen (damit ich im ersten Durchlauf die Anzahl der gefundenen Werte zählen, im zweiten Durchlauf das Array deklarieren und Daten in das Array schreiben kann). Gibt es eine Möglichkeit, das gewünschte Ergebnis in einem Durchgang zu erzielen?

Deklarieren Sie das Array größer als die maximal erforderliche Größe.
Grund der Beschwerde: