Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1205

 

warum gibt der Compiler in dieser Zeile eine Warnung aus?

datetime time_setup=OrderGetInteger(ORDER_TIME_SETUP);
possible loss of data due to type conversion    
 
Können Sie mir einen Tipp geben? Wenn ich eine Zahl subtrahiere, erhalte ich 3e-5. Wie kann ich erreichen, dass es wie 0,00003 aussieht? Ich danke Ihnen.
 
awsomdino:

Warum gibt der Compiler in dieser Zeile eine Warnung aus?

Denn XxxxGetInteger gibt long (Ganzzahl mit Vorzeichen) zurück, während datetime eine Ganzzahl ohne Vorzeichen und ein eigener Typ ist. Wir sollten angeben

datetime timeProperty = (datetime)XxxGetInteger(...)

 
prom18:
Sagen Sie es mir. Wenn ich subtrahiere, erhalte ich die Zahl 3e-5. Wie kann ich erreichen, dass es wie 0,00003 aussieht? Ich danke Ihnen.

Woher bekommen Sie es?

 

Hallo!

Die Funktion OnCalculate gibt periodisch 0

prev_calculated = 0

Ich denke, das liegt daran, dass das Diagramm mit Zitaten aus einer fremden Quelle gefüllt wird. Es sieht aber nicht so aus, als würde das Diagramm überschrieben werden.

Wie kann ich die neuen Daten überschreiben, ohne die alten zu überschreiben?

Ich erstelle nur einen Indikator mit einigen Berechnungen, ich versuche nicht, Notierungen zu laden.

void filter(const int rates_total,const int prev_calculated)
  {
 
   int start=prev_calculated;
//--- если значения индикатора уже были рассчитаны на предыдущем тике, то работаем на последнем баре
   if(prev_calculated>0)
      start--;
//---
   for(int p=2; p<Pmax; p++) // отбор по периодам
      for(int b=start>rates_total-Pmax?start:rates_total-Pmax; b<rates_total; b++)
        {
 
Ich wünsche Ihnen allen eine gute Zeit. Frage: Wie berechnet der MT4-Tester bei der Arbeit mit Crosses (Paare ohne Pfund) die Ergebnisse geschlossener Positionen, wenn es sich bei dem Konto, auf dem die Tests durchgeführt werden, um ein Dollarkonto handelt? Nimmt der Prüfer für die Neuberechnung der Positionssummen in Dollar den Wechselkurs der Basiswährung des Kreuzes zum Dollar zum aktuellen Zeitpunkt oder zum Zeitpunkt des geprüften Intervalls? Ich habe den starken Verdacht, dass dies zum jetzigen Zeitpunkt der Fall ist. Wenn ja, ist es dann nicht möglich, sie zum Zeitpunkt der Pause zählen zu lassen?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Mihail Matkovskij:

In MQL4 nur auf diese Weise:

Ergebnis:


Herzlichen Dank für Ihre Hilfe.

 
Mihail Matkovskij:

Woher bekommen Sie es?

Genau hier.

double price1=1.23450;
double price2=1.23447;
double delta=price1-price2;
Alert("Разбег ",delta);
 
prom18:

Genau hier.

Alert("Разбег "+DoubleToString(delta,_Digits));

oder Alert(StringFormat("Spread %.5f",delta));

Gewöhnen Sie sich daran, dass es sich nur um unterschiedliche Darstellungen derselben Zahl handelt. Erinnern Sie sich an Ihre wunderbare Schulzeit - da kommt es her

 
Top2n:

Hallo!

Die Funktion OnCalculate gibt periodisch 0

Ich denke, das liegt daran, dass das Diagramm mit Zitaten aus einer fremden Quelle gefüllt wird. Es sieht aber nicht so aus, als würde das Diagramm überschrieben werden.

Wie kann ich die neuen Daten überschreiben, ohne die alten zu überschreiben?

Ich erstelle nur einen Indikator mit einigen Berechnungen, ich versuche nicht, Notierungen zu laden.

Deklarieren Sie eine globale Variable (nicht zu verwechseln mit den globalen Variablen des Terminals)

 bool firstRun = false;

und nur beim ersten Tick eine vollständige Neuberechnung vornehmen

// простейшее условие пересчёта
if(!firstRun) {
  // пересчёт ...
  firstRun = true;
}

Wenn firstRun zusammen mit den OnCalculate-Parametern ebenfalls zurückgesetzt wird, startet der Indikator neu.