Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1039

 
Danke für die Antworten, das habe ich mir auch gedacht. Aber hier ist das Problem, die Tatsache ist, dass jeden Tag verliere ich den Anfang des Charts, auf dem Protokoll ist es etwa zwei oder drei Monate, so Wasser jeden Tag gibt es einen Schnitt Chart für den Tag, so Indikatoren beginnen, jeden Tag von einem anderen Ort zu zählen, warum ihre Messwerte ändern und in der Regel nicht möglich zu arbeiten, wie die Geschichte zu erhöhen, und am Anfang des Charts ist nicht verloren ... und am Morgen öffne ich MT und ich hatte alle Signale, weil Indikatoren begann von einem anderen Ort zu zählen????
 
nikelodeon: Jeden Tag fehlt mir der Anfang der Tabelle,

Service -> Einstellungen -> Historie Max Bar und Max BarGraphen im Fenster

Jetzt die Geschwindigkeit. Die meisten Indikatoren verarbeiten nur einen einzigen, letzten Balken pro Tick. Oder 2, wenn ein neuer Balken erscheint. Es gibt jedoch Indikatoren, die aufgrund von Programmierfehlern oder aufgrund eines bestimmten Algorithmus viele oder sogar alle Balken auf jedem Tick berechnen. Zunächst müssen wir sie identifizieren. Dies kann über den Task-Manager erfolgen, indem die CPU-Auslastung ermittelt wird. Oder, genauer gesagt, Sie können in den Indikator etwas einfügen wie

  if(XXX>1)Alert("Пересчитываем=",XXX,"   Bars=",Bars);
где XXX - количество пересчитывемых баров. При запуске будет много, затем на каждый новый бар 2

Es ist unwahrscheinlich, dass der Indikator alle Balken neu berechnen muss. Wir sollten prüfen, 1) was dieser Indikator durch den Operator Return zurückgibt 2) die Anzahl der neu berechneten Balken im Indikatorcode. 3) Maximale Anzahl von Balken im Fenster 4) Die Indikatoren, die von der iCustom-Funktion aufgerufen werden, sollten sich nicht im Chart befinden. Andernfalls kommt es zu einer Verdoppelung des Indikators und zu einer erhöhten Belastung des Prozessors.

Ich gebe den Text in Word ein und kopiere ihn über die Zwischenablage, um die Lesbarkeit zu verbessern. Andernfalls, vier Syntax und ein Komma...


 

Guten Tag, liebe Kollegen!

Bitte sagen Sie mir, was das Problem mit diesem Teil des Codes ist:

   int TF[6]={1,5,15,30,60,240};
   for(int TF=0;TF<6;TF++)
      for(int i=iBars(NULL,TF[TF]);i>=0;)
Der Compiler gibt dies aus:
'[' - array required        20      30
Hilfe und Tutorial sagt nichts über die Verwendung von Arrays in Zeitreihen, kann das Problem behoben werden? Wie können wir sonst eine Wiederholung aller Candlesticks auf mehreren TFs durchführen?
Herzlichen Dank!
 
Ekburg: Bitte sagen Sie mir, was das Problem mit diesem Teil des Codes ist:
 int TF[6]={1,5,15,30,60,240};
   for(int TF=0;TF<6;TF++)       TF[TF] ???????

TF wird als Array mit 6 Elementen beschrieben, d. h. es gibt: TF[0]=1, TF[1]=5, TF[2]=15, TF[3]=30 TF[4]=60 TF[5]=240
Die Angabe von TF ohne eckige Klammern, d. h. ohne Angabe eines Index, ist sinnlos. Welches Array-Element sollte ich verwenden?
Ich nehme an, Sie könnten etwas verwenden wie for(int NTF=0;NTF<6;NTF++) for(int i=iBars(NULL,TF[NTF]);i>=0;)
 
Ekburg:

Guten Tag, liebe Kollegen!

Können Sie mir sagen, was das Problem mit diesem Teil des Codes ist?

int TF[6]={1,5,15,30,60,240};
for(int i=0; i<6; i++) int b=iBars(NULL,TF[i]);
 
LRA:
TF wird als ein Array mit 6 Elementen beschrieben, d. h. es gibt: TF[0]=1, TF[1]=5, TF[2]=15, TF[3]=30 TF[4]=60 TF[5]=240
Der Zugriff auf TF ohne eckige Klammern, d.h. ohne Angabe eines Indexes, ist sinnlos. Welches Array-Element sollte ich verwenden?
Ich nehme an, Sie könnten etwas verwenden wie for(int NTF=0;NTF<6;NTF++) for(int i=iBars(NULL,TF[NTF]);i>=0;)
artmedia70:

Danke, Leute)

Die Tatsache, dass ich die Variable TF im erstenfor(int TF=0;TF<6;TF++) Operator definiert habe, verwechselt der Compiler sie also mit einem Array?

 
Ekburg Der Compiler verwechselt die Variable TF mit einem Array?

Es ist noch schlimmer... TF wird zweimal deklariert: 1) als Array und 2) als Integer-Variable. Die zweite Erklärung überdeckt (macht unsichtbar, zerstört fast) die erste.

Der Compiler erzeugt zunächst die Warnung: declaration of 'TF' hides local declaration ... The second declaration of TF hides the previous one. Jetzt ist TF kein Array, sondern eine Integer-Variable. Deshalb erfordert die nächste Verwendung von TF[] ein Array, das bereits ausgeblendet ist, und der Fehler: '[' - array required Array required.

 
LRA:

Es ist noch schlimmer... TF wird zweimal deklariert: 1) als Array und 2) als Integer-Variable. Die zweite Erklärung schließt die erste ab (macht sie unsichtbar, zerstört sie fast).

Der Compiler erzeugt zunächst die Warnung: declaration of 'TF' hides local declaration ... The second declaration of TF hides the previous one. Jetzt ist TF kein Array, sondern eine Integer-Variable. Deshalb erfordert die nächste Verwendung von TF[] ein Array, das bereits ausgeblendet ist, und der Fehler: '[' - array required Array required.



Das war's... Ich verstehe, vielen Dank.

alles behoben, es werden keine Fehler zurückgegeben (ich war jedoch verwirrt, weil bei der Deklaration der Variablen f anstelle der Variablen TF keine Fehler bei der Verwendung von TF[TF] auftraten),

aber das Skript öffnet sich nicht im Terminal, vielleicht geht es um Warnungen?

 
LRA:

Service -> Einstellungen -> Historie Max Bar und Max BarGraphen im Fenster


Jetzt die Geschwindigkeit. Die meisten Indikatoren verarbeiten nur einen einzigen, letzten Balken pro Tick. Oder 2, wenn ein neuer Balken erscheint. Es gibt jedoch Indikatoren, die aufgrund von Programmierfehlern oder aufgrund eines bestimmten Algorithmus viele oder sogar alle Balken auf jedem Tick berechnen. Zunächst müssen wir sie identifizieren. Dies kann über den Task-Manager erfolgen, indem die CPU-Auslastung ermittelt wird. Oder, genauer gesagt, Sie können in den Indikator etwas einfügen wie

Es ist unwahrscheinlich, dass der Indikator alle Balken neu berechnen muss. Wir sollten prüfen, 1) was dieser Indikator durch den Operator Return zurückgibt 2) die Anzahl der neu berechneten Balken im Indikatorcode. 3) Maximale Anzahl von Balken im Fenster 4) Die Indikatoren, die von der iCustom-Funktion aufgerufen werden, sollten sich nicht im Chart befinden. Andernfalls kommt es zu einer Verdoppelung des Indikators und zu einer erhöhten Belastung des Prozessors.

Ich gebe den Text in Word ein und kopiere ihn über die Zwischenablage, um die Lesbarkeit zu verbessern. Ansonsten gibt es 4 Syntaxen und 1 Komma...



Bei Fehlern ist es einfach. Danke für die Antwort, die überhaupt nicht hilfreich war. Ich bin mehr als nur ein Mkul-Benutzer. Alles, was Sie mir geschrieben haben, ist seit langem bekannt und getestet, der Indikator zählt einmal und dann mit der Ankunft eines neuen Bar, es zählt nur eine Bar, ich habe es alle deutlich sichtbar. Ich habe den maximalen Balkenverlauf im Fenster. Ich denke, dass mein Broker vielleicht etwas falsch macht. Zum Beispiel habe ich heute Daten über Gold in einer KQF-Datei gespeichert, aber sie unterscheiden sich inkonsistent von der Datei, die ich gestern gespeichert habe. Tagsüber scheint alles in Ordnung zu sein, aber mal sehen, was morgen passiert...
 

Ekburg!!! Alle Warnhinweise sollten beseitigt werden. Die erste Warnung bedeutet, dass die Anweisung keine Wirkung hat - sie wurde vom Compiler verworfen - das ist schlecht. Die letzte Warnung ist, dass die Größe der lokalen Variablen (Array) 512kB überschreitet und daher keine Wirkung hat - das ist schade. Der Rest der Warnungen - eine nicht initialisierte Variable könnte verwendet werden. Das ist so, wie wenn man vergisst, Geld auf die Karte zu setzen und versucht, es auszugeben. Wir müssen alle Zweige des Programms überprüfen. Manchmal ist der Compiler überversichert. In diesem Fall sollten Sie sie folgendermaßen deklarieren: int x=0; string y=""; bool z=false;