Fehler, Irrtümer, Fragen - Seite 841

 
faton:

Guten Tag. Können Sie mir raten, ich habe einen einfachen Indikator geschrieben... und wenn ein neuer Balken kommt, verhält sich die Indikatorlinie so. Was könnte das Problem sein?

CopyRates(FirstAktiv,PERIOD_CURRENT,0,rates_total,mrate1);
CopyRates(SecondAktiv,PERIOD_CURRENT,0,rates_total,mrate2);
Prüfen Sie, was vonCopyRates zurückgegeben wird.Die Anzahl der kopierten Elemente ist nicht unbedingt gleich der angeforderten. Daher kann das Array überlaufen und die Daten an dieser Stelle des Puffers sind Null, was auch passiert ist.
 

Es scheint, dass während der Aktualisierung der neuen Version von Terminal, Programmdateien\Meta Trader 5\MQL5 Ordner vollständig nach C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5 kopiert wird (es ist Win7, obwohl andere OS wahrscheinlich den gleichen Ordner haben + vielleicht auch andere). Anders kann ich mir nicht erklären, wo die paar Stunden Arbeit sind, die vor ein paar Tagen geleistet wurden und deren Früchte erfolgreich getestet wurden.

Die Sache ist die, dass ich die Angewohnheit habe, Klassen über die .mqh-Datei zu formatieren und sie dann zu verknüpfen. Ohne es zu wissen, habe ich meine mqh und mq5 in "Programme\Meta Trader 5\MQL5" abgelegt, gesehen, dass sie nicht im Navigator erschienen und sie in den Arbeitsordner (C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5) verschoben. Alles war in Ordnung, bis das Terminal aktualisiert wurde - ich ließ den Expert Advisor laufen, um weiter zu testen, und dann wollte ich etwas anderes optimieren und sah einen alten Code, eine Kopie des Codes in Program Files\Meta Trader 5\MQL5. Die korrekte Version wurde optimiert, da mq5 nicht geändert wurde und das Terminal nicht erraten hat, dass Änderungen in mqh vorgenommen wurden. Die Neukompilierung hat zu einer Rückkehr zur alten Version geführt.

Das hat zur Folge, dass ich mich sehr ärgere und eine oder zwei Stunden für das, was ich bereits getan habe, aufwenden muss.

Ich sehe folgende Auswege aus dieser Situation.

1) Kopieren Sie den gesamten Ordner, aber nur die Liste der im Standardpaket enthaltenen Dateien;

2) den Benutzer irgendwie warnen, dass es überschrieben wird (obwohl, wenn Sie eine Menge Dateien in der Standardbibliothek ändern, wird es ein Schmerz sein);

3) Stellen Sie irgendwie fest (z.B. durch Berechnung des crc), dass sich der Ordner mql5 in Program Files geändert hat, und geben Sie vor der Installation einer neuen Version eine Warnung aus, damit Sie Ihre Daten sichern können;

4) machen Sie eine Kopie des alten MQL5 in Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\ (fügen Sie zum Beispiel MQL5.384 Version) - die einfachste.

Das Problem ist selten, aber es ist verdammt schlimm.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
notused:

Es scheint, dass bei der Aktualisierung der neuen Version des Terminals eine VOLLSTÄNDIGE Kopie des Ordners ................................. vorhanden ist.

........................... ......................

.............................

Unterm Strich bin ich sehr verärgert, dass ich wieder ein oder zwei Stunden für etwas aufwenden muss, das ich bereits erledigt habe.

Ich kann mir einen Ausweg aus dieser Situation vorstellen - ................

....................

Es ist ein seltenes Problem, aber verdammt, es ist ein schlimmes.

Konstruktives Feedback an die Entwickler: Bitte machen Sie eine automatische Sicherung des gesamten MQL5-Ordners vom vorherigen Build, wenn Sie einen neuen installieren. Die Lebensdauer - bis zum nächsten Build, dann ersetzen Sie es. Dies hebt die sorgfältige Behandlung der Client-Dateien bei der Installation des Builds nicht auf. Es ist für den Fall höherer Gewalt (wie oben beschrieben) + die Client-Versionen der Standardbibliothek zu sichern.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Recovery Factor- dieser Indikator zeigt das Risiko der Strategie an, wie viel der Expert Advisor riskiert, um den Gewinn zu erzielen. Er wird berechnet als das Verhältnis zwischen dem erzielten Gewinn und dem maximalen Drawdown; (es wird nicht gesagt, welcher)

STAT_RECOVERY_FACTOR

Faktor der Wiederherstellung - VerhältnisSTAT_PROFIT/STAT_BALANCE_DD

doppelt



Print("Factor=",TesterStatistics(STAT_RECOVERY_FACTOR));                                    // Выводим Фактор Восстановления
Print("Profit/BalanceDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_BALANCE_DD)); // Отношение профита к просадке по балансу
Print("Profit/EquityDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_EQUITY_DD));   // Отношение профита к просадке по средствам

Wir haben experimentell festgestellt, dass der Rückgewinnungsfaktor als Verhältnis zwischen Gewinn und Inanspruchnahme des Eigenkapitals und nicht des Saldos berechnet wird.

Liegt ein Fehler in der Referenz vor?

 
ilunga:
Ja, richtig, die letzten 50.000 wurden Ihnen gezeigt. Der Tag besteht aus 1440 Takten.

Danke, äh...

Das ist nicht die Frage. Es ist keine Frage, es ist ein Seufzer des Kummers...

Wenn ich nur den Monat Juni für den Test auswähle (30 Tage X 1440 < 50.000), was soll ich dann im Diagramm als Grund sehen?

Übrigens haben die Timpicker im Tester die unangenehme Eigenschaft, sich nach einer Sekunde selbst zu schließen - der andere...

Es ist nicht fatal - man kann ein Date sowieso schneller mit den Händen auswählen, aber...

 
//+------------------------------------------------------------------+
//|                                                  Sample_Tick.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

int Tick_All;

MqlTick           last_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Tick_All=0;

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(!SymbolInfoTick(_Symbol,last_tick))
     {
      Print("Failed to get Symbol info!");
     }

   Tick_All++;
   Print(Tick_All,"   ",last_tick.bid,"   ",last_tick.ask,"  ",last_tick.last," ",last_tick.volume);
  }
//+------------------------------------------------------------------+

Ich verstehe nicht, warum OnTick ausgelöst wird, obwohl sich der Preis nicht ändert?????

2012.09.10 11:52:11 Beispiel_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Beispiel_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

 
EQU:

Danke, äh...

Das ist nicht die Frage. Es ist keine Frage, es ist ein Seufzer des Kummers...

Wenn ich nur den Monat Juni für den Test auswähle (30 Tage X 1440 < 50.000), was sollte ich dann in der Tabelle als Grund sehen? August?

Schreiben Sie an den Service-Desk. Ich verstehe auch nicht, warum die Anzahl der Balken im Diagramm _immer_ ab dem realen und nicht ab dem im Tester eingestellten Enddatum zählt.
 
sion:
Lautstärke - kann sich ändern, und es gibt noch mehr)

können Sie sehen, dass sich die Lautstärke nicht ändert!!!

 
dentraf:

können Sie sehen, dass sich die Lautstärke nicht ändert!!!

Ich habe mir den Code bereits angesehen.
 

Ich verstehe nicht, wie es funktioniert oder nicht funktioniert)


Print("<><><><><",request_action.magic);//Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

KG 0 prp4 (EURJPY,M15) 02:23:25 <><><><><73200011000
RR 0 prp4 (EURJPY,M15) 02:23:25 <<<<<<<<<<<<<<<<<<<<<732 magic_num=732   <-поидее числа равны и условие не должно срабатывать

Kommentierter Druck

Print("<><><><><",request_action.magic);Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

MH 0 prp4 (EURJPY,M15) 02:28:11 <><><><><><><73200011000
PE 0 prp4 (EURJPY,M15) 02:28:11 92233720368 <- und diese Zahl weiß ich nicht, woher sie kommt, anscheinend in der ersten Berechnung "(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000" davon, zählt etwas Seltsames

<Bedingung war nicht erfüllt, der Druck wurde nicht gedruckt, also waren die Zahlen gleich.

Bis etwa 1 Uhr nachts gab es damit überhaupt keine Probleme.

P.S. Ich habe es auf meinem Laptop versucht, 687 Build ist immer noch da, gleicher Kuchen.