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

 

Hallo ich bin immer die Daten auf den Abschluss der Stunde Candlesticks, ich zeichne es, alles ist normal, ich möchte die Daten für die N-te Periode vor, schreibt Array außerhalb des Bereichs zu erhalten

Ich habe versucht, den Indikatorpuffer aus dem Array zu verwenden. Bitte teilen Sie mir mit, wie ich die Daten für den vorherigen Zeitraum erhalten kann.

{
 


if(prev_calculated<1) limit=rates_total-1;
if(prev_calculated>0)limit=rates_total-prev_calculated;
for(i=limit; i>=0; i--)
{  
int yesterday_weekday = TimeHour(iTime(Symbol(),0,i+1))-TimeHour(iTime(Symbol(),0,i));
if(yesterday_weekday!=0)  
  {
P=C; 
T = iTime(NULL,0,i+1); 
shift=iBarShift(NULL,PeriodGR,T); 
C= iClose(NULL,PeriodGR,shift);   
CB[n]=C;n++; 

 }
 CC[i]=C; 
 Comment(StringFormat("CC[i]=%G\r\nCB[n-2]=%G\r\n",CC[i],CB[n-2])); 
  }
   return(rates_total);
  }
 
PokrovMT5:

Guten Tag, ich erhalte Daten über den Abschluss der stündlichen Candlesticks, ich zeichne es, alles ist OK, ich möchte die Daten für die N-te Periode vor, schreibt ein leeres Array, habe ich versucht, den Indikator Puffer aus dem Array zu verwenden, beraten, wie man Daten für die vorherige Periode zu erhalten

Vielleicht hilft das

https://www.mql5.com/ru/code/7297

https://www.mql5.com/ru/code/20343

TZ-Breaktout
TZ-Breaktout
  • Stimmen: 2
  • 2007.09.14
  • Scriptor
  • www.mql5.com
Индикатор TZ-Breaktout.
 
PokrovMT5:

Hallo, ich bin immer die Daten auf den Abschluss der Stunde Candlesticks, ich zeichne es, alles ist normal, ich möchte die Daten für die N-te Periode zurück zu bekommen, schreibt Array außerhalb des Bereichs

Ich habe versucht, den Indikatorpuffer aus dem Array zu verwenden. Bitte teilen Sie mir mit, wie ich die Daten für den vorherigen Zeitraum erhalten kann.

limit=rates_total-1;

Ihr Limit zeigt auf den allerersten Balken in der Geschichte. Sie wollen aber i+1 - deshalb ist i außerhalb des Bereichs.

Versuchen Sie

limit=rates_total-2;

... obwohl das wahrscheinlich nicht hilft - es gibt wahrscheinlich noch viel mehr Berechnungswerte, die Sie nicht überprüfen...

 
Hallo. Ich habe eine Frage, der Indikator variable Grenze in mql4 zeigt 3555 Barren für Gold pro Tag, während mql5 zeigt die Hälfte davon? Wo sollen Zitate platziert werden? Eine weitere Frage bitte, fürlimit=rates_total-2; das wurde oben diskutiert, in meiner Variante gibt es keinen Array-Überlauf nur wennlimit=rates_total-5; das Programm funktioniert. Außerdem habe ich bemerkt, dass in mql5 die Codekompilierung erheblich verlangsamt wird, der Prozess dauert 13 Sekunden, ist das normal? Ich danke Ihnen.

 
mwwm:
Hallo. Meine Frage, kann es sein, dass der Indikator variable Grenze in mql4 zeigt 3555 Barren täglich für Gold und mql5 zeigt zweimal weniger? Wo sollen Zitate platziert werden? Eine weitere Frage bitte, fürlimit=rates_total-2; das wurde oben diskutiert, in meiner Variante gibt es keinen Array-Überlauf nur wennlimit=rates_total-5; das Programm funktioniert. Außerdem habe ich bemerkt, dass in mql5 die Codekompilierung erheblich verlangsamt wird, der Prozess dauert 13 Sekunden, ist das normal? Ich danke Ihnen.

Im MT5 werden die Kurse vom Server heruntergeladen: was da ist, ist da...

Über die Grenze müssen Sie nicht raten und zwicken, und Sie müssen genau berechnen - von welchen Variablen der Offset abhängt, und nehmen Sie eine Einheit aus rates_total und die Werte dieser Variablen (wenn sie nicht berechnet werden). Wenn die Variablen berechnet werden, sollten Sie den Wert des Schleifenindexes kontrollieren und, wenn er größer als rates_total-1 ist, diese Iteration überspringen (fortfahren)

 

Hallo, kann mir jemand sagen, wenn jemand weiß, lade ich Tick-Daten mit 99% zu testen, wie es sein sollte, alles funktioniert gut für 30-Minuten-Chart, aber sobald ich H4-Daten laden und versuchen, einen EA auf sie in den Tester laufen, - funktioniert nicht, gibt der Tester aus 2018.04.05 16:41:08.576 TestGenerator: Datei "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" kann nicht geöffnet werden [5]

Und 2018.04.05 16:41:08.535 TestGenerator: Datei "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" ist schreibgeschützt

was könnte der Grund sein??????
 
pryn:

Hallo, kann mir jemand sagen, wenn jemand weiß, lade ich Tick-Daten mit 99% zu testen, wie es sein sollte, alles funktioniert gut für 30-Minuten-Chart, aber sobald ich H4-Daten laden und versuchen, einen EA auf sie in den Tester laufen, - funktioniert nicht, gibt der Tester aus 2018.04.05 16:41:08.576 TestGenerator: Datei "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" kann nicht geöffnet werden [5]

Und 2018.04.05 16:41:08.535 TestGenerator: Datei "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" ist schreibgeschützt

was könnte der Grund sein??????
Sie müssen Ihre Fragen nicht vervielfachen.
 
Artyom Trishkin ...Wenndie aktuelle Zeit länger ist, dann speichern Sie sie in einer Variablen zur Überprüfung...

Danke, ich habe gefunden, was ich gesucht habe.

Eine weitere Frage: Wenn ich eine Position teilweise schließe, wie kann ich diesen geschlossenen Gewinn oder Verlust bei der Berechnung des aktuellen Gewinns berücksichtigen?

 
PolarSeaman:

Danke, ich habe gefunden, was ich gesucht habe.

Eine weitere Frage: Wenn ich eine Position teilweise schließe, wie kann ich diesen geschlossenen Gewinn oder Verlust bei der Berechnung des aktuellen Gewinns berücksichtigen?

Genau dasselbe wie beim vollständigen Schließen. Die Position wird geteilt: Der geschlossene Teil geht in die Historie ein und der verbleibende Teil erhält ein neues Ticket und bleibt auf dem Markt.

 
Artyom Trishkin:

ein geschlossener Teil geht in die Geschichte ein.

Woher weiß ich, dass in der Geschichte dieser bestimmten Position ein Teil geschlossen ist?

Ich habe eine Position mit 1,0 Loteröffnet, sie mit 0,5 und mit 10$ Verlust geschlossen. Später habe ich weitere 0,25 mit 5$ Gewinn geschlossen. Ich werde alles mit 50$ Gewinn schließen. Tatsächlich habe ich jetzt 50 Dollar Gewinn.

if (OrderProfit()+OrderSwap()>=50) ClosePosBySelect();

Wie schließe ich -$10 und +$5 bei der Berechnung des aktuellen Gewinns? Mit 55 $ Gewinn abschließen

Grund der Beschwerde: