Bitte helfen Sie mir, dieses Rätsel zu lösen!! - Seite 2

 
WHRoeder:
Sofern Sie nicht den visuellen Modus im Prüfgerät verwenden, wird nie etwas im Journal erscheinen.
Das ist nicht korrekt: Während der Optimierung wird nichts in das Journal ausgegeben, aber die Ausgabe in das Journal funktioniert einwandfrei, wenn der visuelle Modus NICHT aktiviert ist. (gerade mit Build 445 getestet)
 

Ich verwende auf jeden Fall den visuellen Modus!

Es gibt noch etwas, das sehr seltsam ist. Wenn ich den GLEICHEN EA mit den GLEICHEN Parametern mehr als einmal ausführe, bekomme ich unterschiedliche Transaktionen im Visual Mode angezeigt!

Die meiste Zeit sind 90% gleich - aber an bestimmten Stellen gibt es unterschiedliche Ergebnisse mit mehreren Läufen!

Gibt es irgendwelche Puffer (z.B. Variablen), die nach jedem Durchlauf initialisiert oder gelöscht werden müssen? Ich versuche, alle Variablen im Deklarationsabschnitt zu initialisieren.

Vielleicht hat mein Computer den Geist aufgegeben? Ich klammere mich im Moment an einen Strohhalm.

 
ernest02:

Ich verwende auf jeden Fall den visuellen Modus!

Es gibt noch etwas, das sehr seltsam ist. Wenn ich den GLEICHEN EA mit den GLEICHEN Parametern mehr als einmal ausführe, bekomme ich unterschiedliche Transaktionen im Visual Mode angezeigt!

Die meiste Zeit sind 90% gleich - aber an bestimmten Stellen gibt es unterschiedliche Ergebnisse bei mehreren Durchläufen!

Gibt es einige Puffer (z.B. Variablen), die nach jedem Lauf initialisiert oder gelöscht werden müssen? Ich versuche, alle Variablen im Deklarationsabschnitt zu initialisieren.

Vielleicht hat mein Computer den Geist aufgegeben? Ich klammere mich im Moment an Strohhalme.

Wie hoch ist die Streuung bei jedem Durchlauf?
 

Okay, Leute! Löst diese Aufgabe!

Schaut euch den größeren Teil des Codes an, den ich gepostet habe.

Die erste Zeile ist eine "if"-Anweisung und wenn sie wahr ist, werden die folgenden Zeilen verarbeitet.

Eine der Aktionen, die stattfinden muss, ist das Schließen aller offenen Kaufaufträge.

Wenn ich nun den EA im Tester ausführe, werden tatsächlich alle Kaufaufträge geschlossen, ABER...

Er überspringt die Print-Anweisung in der Mitte des Codes - und das wird nicht im Journal aufgezeichnet!

Ich weiß also, dass der Code verarbeitet wird, aber nur BESTIMMTE Druckanweisungen werden im Journal aufgezeichnet - andere jedoch nicht!

Bitte erklären Sie mir das!

 
ernest02:

Wenn ich den EA jetzt im Tester ausführe, schließt er tatsächlich alle Kaufaufträge, ABER...

Er überspringt die Druckanweisung in der Mitte des Codes - und das wird nicht im Journal aufgezeichnet!

Ich weiß also, dass der Code verarbeitet wird, aber nur BESTIMMTE Druckanweisungen werden im Journal aufgezeichnet - andere jedoch nicht!

Also bitte erklären Sie mir das!

Folgendes wird in das Journal gedruckt...

   Print("SellTicket is ",SellTicket);    // <----- this will print

   if (SellTicket >= 0) 
      {
      PlaySound("news.wav");
      SellTime = OrderOpenTime();
      SellSignal = false;

      }
   Print("SellSignal2 is ", SellSignal);  // <----- this will print

Wenn sie nicht gedruckt werden, dann gibt es, soweit ich das sehe, folgende Möglichkeiten

  • Sie führen nicht den Code aus, den Sie gepostet haben
  • die Kaufaufträge werden durch einen anderen Code/Funktion geschlossen

 

wenn SellTicket gleich Null ist, ernsthaft?

if (SellTicket >= 0) // ???

Klicken Sie mit der rechten Maustaste auf das Journal, wählen Sie "Öffnen", und öffnen Sie das Journalprotokoll mit Notepad.

Auf der Registerkarte "Journal" werden nicht immer alle Protokolle angezeigt.

 

Ich habe mir die Protokolldatei angesehen, und dort sind keine Verkaufs- oder Kauftransaktionen aufgezeichnet, und auch keiner der anderen "Druck"-Befehle.

Ich bin so demotiviert! Ich arbeite jetzt seit 2 Wochen an dieser Sache und habe keine Fortschritte gemacht und habe keine Ideen mehr, was das Problem sein könnte.

(Ich möchte nur anmerken, dass ich auch Metatrader 5 auf meinem Computer installiert habe und Windows 7 verwende, das einige Daten und Protokolldateien im virtuellen Speicher unter Benutzer speichert)

 
ernest02:

Ich habe mir die Protokolldatei angesehen, und dort sind keine Verkaufs- oder Kauftransaktionen aufgezeichnet, und auch keiner der anderen "Druck"-Befehle.

Ich bin so demotiviert! Ich arbeite jetzt seit 2 Wochen an dieser Sache und habe keine Fortschritte gemacht und weiß nicht mehr, was das Problem sein könnte.

(Ich möchte nur anmerken, dass ich auch Metatrader 5 auf meinem Computer installiert habe und Windows 7 verwende, das einige Daten und Protokolldateien im virtuellen Speicher unter Benutzer speichert)

Ah, wo haben Sie MT4 installiert? Ist es unter Programme? Wenn ja, haben Sie vielleicht ein UAC-Problem. Sie könnten versuchen, MT4 in einem anderen Verzeichnis als Programme zu installieren, z. B. C:\MT4-Installs\, und Ihren EA ausprobieren.
 

Ich habe einen Ordner unter C:/ erstellt, in dem ich MT4 installiert habe, aber ich habe zwei weitere Kopien (eine Live- und eine Demo-Version), die unter Programme (x86) installiert sind.

Bei den beiden letztgenannten Exemplaren habe ich keine Protokolldateien, aber unter dem Stammverzeichnis von MT4 gibt es Protokolldateien. (Deshalb kann ich berichten, was in der Log-Datei steht)

Jetzt habe ich gerade eine weitere Anomalie festgestellt. (Ich habe bereits die Tatsache erwähnt, dass ich bei zwei identischen Läufen unterschiedliche Ergebnisse erhalte)

Ich verwende iCCI, um den CCI-Index zu verfolgen und Entscheidungen über Kauf-/Verkaufstransaktionen zu treffen. Ich habe entdeckt, dass Transaktionen auch dann stattfinden, wenn die CCI-Bedingung nicht erfüllt ist!

Das ist so ein Schlamassel! Ich sehne mich nach meinen XP-Tagen zurück, als mein System viel einfacher und stabiler zu sein schien!

Ich bin kurz davor, das Handtuch zu werfen!

 
@ernest02: Schreiben Sie den Code einfach neu. Verwenden Sie Print/Alert/Comment-Funktionen, um Ihren Code zu debuggen. Wenn Sie sich fragen, warum OrderSend ausgeführt wurde, drucken Sie die Werte der Variablen aus, die den Befehl auslösen [direkt über OrderSend]. Wenn Sie sich fragen, warum CCI == true ist, dann drucken Sie die Werte der Variablen aus, die den CCI-Aufruf auslösen [vor dem CCI-Aufruf]. Verschieben Sie die Druckanweisung so lange rückwärts, bis Sie den Schuldigen gefunden haben.
Grund der Beschwerde: