[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 862

 
FOReignEXchange:

Sie wollten fünf Minuten, nicht wahr?

So sollte es auch funktionieren. Alle 5 Minuten wird ein Redraw durchgeführt, wenn Sie die erforderlichen Parameter, die vom Indikator verwendet werden, auf Null setzen.


extern int timedraw=1; - dies ist eine Minute

Ich habe getan, was ich wollte mit Ihrer Hilfe. Wie für die Ticks, sie sind nicht sehr regelmäßig, aber es ist nicht entscheidend, sie werden nicht auf die Geschichte verwendet werden - dies ist ein Skript und Indikator für den manuellen Handel

drei Bildschirme, oder besser gesagt 4

ZS: Ihr Code - ja in der Tat ist es mehr nützlich für das Schreiben eines Indikators, der von der EA verwendet werden

 
FOReignEXchange:

Nur manchmal gibt es drei Minuten lang keine Ticks, wie jetzt. Auf dem M1-Chart des GBPUSD gab es keine 3-4-Minuten-Ticks. Sie können TimeCurrent() nicht auf History verwenden. Oder Sie können sie im Prüfgerät nicht verwenden, da es sich um die aktuelle Zeit handelt, die sich nicht ändert.

Anhand des obigen Codes können wir sagen, dass das Nachrichtensignal nicht alle 5 Minuten, sondern alle 5 Balken im Minutentakt erfolgen wird.


datetime TimeCurrent( )

Gibt die letzte bekannte Zeit des Servers (letzte angegebene Zeit) als die Anzahl der seit 00:00 Uhr am 1. Januar 1970 verstrichenen Sekunden zurück.

Hinweis: Bei den Tests wird die letzte bekannte Serverzeit simuliert.

Aber ist sie dennoch simuliert? Ja - es wird nicht exakt sein, mit einer nicht unerheblichen Fehlermarge, aber die Verwendung im Test ist möglich. Wenn ich etwas nicht weiß oder nicht verstehe, wäre ich Ihnen dankbar, wenn Sie es mir erklären.
 
usver:
Aber ist sie dennoch simuliert? Ja - mit einer nicht unerheblichen Fehlermarge wird es wohl nicht genau sein, aber die Verwendung bei einem Test ist möglich. Wenn ich etwas nicht weiß oder nicht verstehe, wäre ich Ihnen dankbar, wenn Sie es mir erklären könnten.

Ich glaube, Sie irren sich. Warten Sie einen Moment...

Ah, ich erinnerte mich, dass TimeCurrent() nicht verwendet werden kann, wenn die Historie des aktuellen Diagramms neu berechnet wird.

Wenn zum Beispiel der folgende Code angehängt ist

                                      while(i>0)
                                      {
if (iHigh(NULL,0,i)>X)     
   {
   t=TimeCurrent();
   }
                                      i--
                                      }                                 

merkt sich die aktuelle Echtzeit, nicht den i-ten Takt, bei dem iHigh(NULL,0,i)>X

Und im Testgerät weiß ich es nicht.

 
FOReignEXchange:

Ich glaube, Sie irren sich. Warten Sie einen Moment...

Ah, ich erinnerte mich, dass TimeCurrent() nicht verwendet werden kann, wenn die Historie des aktuellen Diagramms neu berechnet wird.

Wenn zum Beispiel der folgende Code angehängt ist

merkt sich die aktuelle Echtzeit, nicht den i-ten Takt, bei dem iHigh(NULL,0,i)>X

Und im Testgerät weiß ich es nicht.

TimeCurrent() Gibt die letzte bekannte Serverzeit (Zeit der letzten Kursankunft) als Anzahl der Sekunden zurück und hat nichts mit dem i-bar zu tun, sowohl im Tester, in der Demo als auch in der Realität
 
FOReignEXchange:

Ich glaube, Sie irren sich. Warten Sie einen Moment...

Ah, ich erinnerte mich, dass TimeCurrent() nicht verwendet werden kann, wenn die Historie des aktuellen Diagramms neu berechnet wird.

Wenn zum Beispiel der folgende Code angehängt ist

merkt sich die aktuelle Echtzeit, nicht den i-ten Takt, bei dem iHigh(NULL,0,i)>X

Und im Testgerät weiß ich es nicht.


Ja, das ist klar. Ich war nur verwirrt durch die Formulierung, dass TimeCurrent() nicht in der History und im Tester verwendet werden kann.

Wäre der folgende Code nicht fehlerhaft? Der Zeitpunkt des Eintreffens des letzten Angebots wird simuliert und wir verwenden ihn.

int time;
if (time==0)
   time=iTime(NULL,1,0); // Точка отсчета
if (TimeCurrent()-time>=300) // Проверяем сколько времени прошло - равно ли 5 минутам
   {
      // Выполняем, что хотели
      ...
      ...
      ...
      time=0;
    }

Ihre Lösung schien mir besser zu sein als die oben beschriebene.

 
Auch von mir ein Dankeschön. Wie man so schön sagt, ist alles Geniale einfach.
keekkenen:
 
Auch von mir ein Dankeschön. Wie man so schön sagt, ist alles Geniale einfach.
keekkenen:
 
Es stellt sich heraus, dass alles genial-einfach ist. Danke für Notepad.
keekkenen:
 
usver:

Der folgende Code wird nicht falsch sein?

int time;

   int start()
   {

if (time==0)  time=iTime(NULL,1,0);    // Точка отсчета

if ((TimeCurrent()-time)>=300)        // Проверяем сколько времени прошло - равно ли 5 минутам
   {
      // Выполняем, что хотели
      ...
      ...
      ...
      time=0;
    }

   }

int time; muss höher als die Startzeit gesetzt werden, sonst ist die Zeit immer gleich Null. Und es sollte durch(TimeCurrent()-time) eingeklammert werden

Der Rest des Codes scheint in Ordnung zu sein. Ich habe es nicht überprüft.

 

Wie lassen sich wichtige Daten/Variablen am besten speichern, wenn das Terminal sich aufhängt (Stromausfall)?

- globalen Variablen des Terminals? in eine Datei?

- Wie oft müssen sie gespeichert werden? (der letzte Equity-Wert und einige bools sind wichtig)