Fehler, Irrtümer, Fragen - Seite 3026

 
Сергей Таболин:

Und auf welchem höheren TF erscheint die Kerze nicht zusammen mit der Kerze auf dem niedrigeren TF?

Der Indikator auf M1 verwendet einen anderen Indikator von M5.

Im Allgemeinen wäre das kein Problem, wenn es nicht zu einem ungerechtfertigten Anstieg des Verbrauchs von Rechenressourcen käme, der während der Optimierung kritisch ist (in meinem Fall führt jede neue M5 zu einer vollständigen Neuberechnung des Indikators für die gesamte Historie, und das Projekt ist noch nicht vollständig abgeschlossen, ich plane, 16 Indikatoren aus verschiedenen TFs zu verwenden).

 
Andrey Dik:

Indikator auf M1 verwendet einen anderen Indikator von M5.

Im Allgemeinen wäre dies kein Problem, wenn es nicht zu einem ungerechtfertigten Anstieg des Verbrauchs von Rechenressourcen käme, der während der Optimierung kritisch ist (in meinem Fall führt jede neue M5 zu einer vollständigen Neuberechnung des Indikators für die gesamte Historie, während das Projekt noch nicht vollständig abgeschlossen ist und ich plane, 16 Indikatoren aus verschiedenen TFs zu verwenden).

Andrey, aber die Kerze M5 öffnet sich zur gleichen Zeit wie die Kerze M1. Oder meinen Sie die Belastung durch das Neuzeichnen (Neuberechnen) von Indikatoren? Wenn wir ihnen also verbieten, neu zu zeichnen, was zum Teufel brauchen sie dann? Dann werden Sie keine neuen Daten von ihnen erhalten...

 

Kompilierungsfehler:

#define  MACRO( X )      X##X
void OnStart()
{
    Print( 11 );        //(1) нормально
    Print( MACRO( 1 )); //(2) Error: '11' - undeclared identifier
}
und was ist der Unterschied zwischen (1) und (2)?
 
Сергей Таболин:

Andrey, aber die Kerze M5 öffnet sich zum gleichen Zeitpunkt wie die Kerze M1. Oder meinen Sie die Belastung durch das Neuzeichnen (Neuberechnen) von Indikatoren? Wenn wir ihnen also verbieten, neu zu zeichnen, was zum Teufel brauchen sie dann? Dann werden Sie keine neuen Daten von ihnen erhalten...

Sobald ein neuer Zeitrahmenbalken erscheint, aus dem die Daten stammen, wird der Zähler prev_calculated zurückgesetzt, d.h. der Indikator wird neu berechnet, als ob er zum ersten Mal gestartet worden wäre.

Ist Ihnen eine solche Konstruktion bekannt?

if (rates_total == prev_calculated) return rates_total;
  
int startInd = rates_total - prev_calculated;

for (int i = startInd; i >= 0; i--)
{
  //тут считаем индикатор, который обращается к другому индикатору на старшем ТФ
}

Es geht nicht um die EA-Logik (Neuzeichnen, nicht Neuzeichnen, Unterzeichnen oder was auch immer), sondern um die Tatsache, dass prev_calculated zurückgesetzt wird, ohne dass jemand darum gebeten hat!

 
Andrey Dik:

Sobald es einen neuen Zeitrahmenbalken gibt, aus dem die Daten stammen, wird der Zähler prev_calculated zurückgesetzt. Das bedeutet, dass der gesamte Indikator neu berechnet wird, als ob er das erste Mal ausgeführt worden wäre.

Ist Ihnen eine solche Konstruktion bekannt?

Es geht nicht um die EA-Logik (neu zeichnen, nicht neu zeichnen, zu wenig zeichnen oder was auch immer), sondern darum, dass prev_calculated zurückgesetzt wird, ohne dass jemand darum gebeten hat!

Indikatoren sind mein schwächster Punkt ))))

Aber!

Entweder verstehe ich überhaupt nichts, oder Sie irren sich ein wenig.

Soviel ich weiß, ist prev_calculated ein Zähler für nicht berechnete Daten. Und sobald die eingehenden Daten gezählt sind, wird dieser Zähler zurückgesetzt... Das war's dann wohl, keine neuen Daten mehr zu berechnen.... )))

Und aus welchem Grund der Indikator in einem solchen Fall komplett neu berechnet werden sollte - ich weiß es nicht!

---------------

Ein wenig gelogen ))))

Es sind nicht die Indikatoren, die neu berechnet werden, es sind die "Indizes", die neu gezeichnet werden, nur um in der Historie "schön" auszusehen ;)

 
Сергей Таболин:


Ich habe ein wenig gelogen ))))

Die Indikatoren werden nicht neu gezeichnet, die "Indizes" werden nur neu gezeichnet, damit sie in der Historie gut aussehen ;)

Deshalb verkaufen sie sich auch wie warme Semmeln. Denn sie sehen immer SCHÖN und SCHÖN aus.

 
Vladislav Andruschenko:

Deshalb verkaufen sie sich auch wie warme Semmeln. Denn sie sehen immer SCHÖN und SCHÖN aus.

100500 ))))))

 
Сергей Таболин:


Soviel ich weiß, ist prev_calculated ein Zähler für nicht berechnete Daten.

Leider stimmt Ihr Wissen nicht mit der Dokumentation überein.

OnCalculate()

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Woher weiß ich intern, dass EX5 im Debug-Modus kompiliert wurde? Nicht im Debug-Modus ausführen, sondern einmal durch Debug kompilieren und normal ausführen.

Ich habe es gefunden.

void OnStart()
{      
  #ifdef _DEBUG
    Alert("EX5 - debug.");
  #endif

  if (MQLInfoInteger(MQL_DEBUG))
    Alert("Debugging...");
}


Und woher weiß ich, dass EX5 geschützt ist?

Grund der Beschwerde: