Eine schnelle und kostenlose Bibliothek für MT4, sehr zur Freude der Neuralnetworker - Seite 14
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe den EA jetzt getestet und folgendes festgestellt
2009.12.24 23:04:29 2009.09.04 14:00 n5_test EURUSD,H1: -1
2009.12.24 23:04:29 2009.09.04 14:00 n5_test EURUSD,H1: -1
2009.12.24 23:04:29 2009.09.04 14:00 n5_test EURUSD,H1: -1
2009.12.24 23:04:28 2009.09.04 13:00 n5_test EURUSD,H1: 1024
2009.12.24 23:04:27 2009.09.04 12:00 n5_test EURUSD,H1: 1023
2009.12.24 23:04:26 2009.09.04 11:00 n5_test EURUSD,H1: 1022
Diese Zahlen sind das, was der Code zurückgibt:
a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);
Print(a);
Die Netz-ID erhöht sich somit auf 1024 und das System weigert sich, ein neues Netz zu erstellen.
Die Funktion f2M_destroy(ann[i]) zerstört keine Raster! Dies ist die Annahme...
Die Funktion f2M_destroy(ann[i]) zerstört jedoch keine Maschen! Das ist die Vermutung...
Alexander, haben Sie f2M_destroy_all_anns() ausprobiert;
Vielleicht wird es einen Unterschied in der Leistung geben?
Ja, ich habe es jetzt versucht, es sieht so aus, als ob ein Problem lokalisiert wurde...
I. - Ich habe static int AnnsNumber = 1027 in EA;
- Ich habe alles aus dem ANN-Ordner gelöscht und das Protokoll bereinigt.
- Aus dem Protokoll kann ich ersehen, dass Netze mit Indizes von 7 bis 1024 erstellt werden.
- Netze werden in Dateien mit Nummern von .1017.net bis .0.net gespeichert.
Ich habe diese Sequenz mehrmals wiederholt, aber es hat sich nichts geändert.
Ich füge das Protokoll der ersten Variante bei.
.
===========================
II. Ich fügte f2M_destroy_all_anns(); am Anfang von init(); ein und die Situation änderte sich grundlegend zum Besseren, nur eine Fehlfunktion erschien am Ende
22:44:41 2008.07.31 23:59 FANN-EA_tmp USDJPY,M5: f2M_save(1, E:\ANN\USDJPY-870.1.net) ergab: 0
22:44:41 2008.07.31 23:59 FANN-EA_tmp USDJPY,M5: f2M_destroy(1) liefert: 0
22:44:41 2008.07.31 23:59 FANN-EA_tmp USDJPY,M5: f2M_save(0, E:\ANN\USDJPY-870.0.net) ergab: -1
22:44:41 2008.07.31 23:59 FANN-EA_tmp USDJPY,M5: f2M_destroy(0) liefert: -1
Das Nullraster wurde nicht gespeichert, 1024.net hingegen schon. Aber das sind die kleinen Dinge )))
Jemand hat alle Optionen auskommentiert. Der Code aus dem CVS enthält keine derartigen Fehler.
Frage: Wer hat FANN2MQL wie eingesetzt?
Durch den Installateur? Per Hand von der offiziellen Website? Mit anderen Mitteln?
Vielleicht sind wir alle Opfer einer Anti-Netz-Verschwörung? )
Ich werde die Liste der FANN-Kuriositäten auch noch erweitern...
Zu Versuchszwecken wurde beschlossen, ein Komitee von 46 Netzen der Dimension 30/N/N/1 durch Brute-Forcing zu trainieren (d.h. für jeden Balken: ~300k).
Bitte klären Sie das. Hat jedes der 46 Netze unterschiedliche Ausgänge?
Wie groß ist die Bandbreite der Skalen?
Wenn möglich, fügen Sie ein Profil eines Ausschussrasters bei.
Ich habe den EA jetzt getestet und folgendes festgestellt
2009.12.24 23:04:29 2009.09.04 14:00 n5_test EURUSD,H1: -1
2009.12.24 23:04:29 2009.09.04 14:00 n5_test EURUSD,H1: -1
2009.12.24 23:04:29 2009.09.04 14:00 n5_test EURUSD,H1: -1
2009.12.24 23:04:28 2009.09.04 13:00 n5_test EURUSD,H1: 1024
2009.12.24 23:04:27 2009.09.04 12:00 n5_test EURUSD,H1: 1023
2009.12.24 23:04:26 2009.09.04 11:00 n5_test EURUSD,H1: 1022
Diese Zahlen sind das, was der Code zurückgibt:
a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);
Print(a);
Die Netz-ID erhöht sich somit auf 1024 und das System weigert sich, ein neues Netz zu erstellen.
Die Funktion f2M_destroy(ann[i]) zerstört keine Raster! Dies ist eine Vermutung...
Sie ist also in der Bibliothek selbst definiert:
Die Funktion f2M_destroy(ann[i]) zerstört keine Netze! Hier ist eine solche Annahme...
Die Funktion selbst :
Der Speicher wird freigegeben.
Viel Glück!
Das Problem kann entstehen, wenn Sie Netze in zufälliger Reihenfolge oder vom ersten bis zum letzten Netz zerstören. Sie müssen die Netze in umgekehrter Reihenfolge zerstören, d. h. in der Reihenfolge, in der sie erstellt wurden.
Das Problem kann entstehen, wenn Sie Netze wahllos oder vom ersten zum letzten zerstören. Die Reihenfolge sollte von der letzten zur letzten sein, d.h. in umgekehrter Reihenfolge, wie die Netze erstellt wurden.
Lassen Sie mich hinzufügen. Oder im Falle eines Terminalabsturzes. Aber die Lösung scheint gefunden zu sein.
Die Frage ist eine andere. Vladislav, ich glaube, Sie lesen C++-Code ohne "Vermittler".
Könnten Sie sich zu dem Problem der identischen Antworten des Netzausschusses und der korrekten Initialisierung der Gewichtungswerte äußern? (ausführlicher hier und weitere Protokolle, und hier eine Frage zu Gewichten)
lasso und VladislavVG
Herzlichen Dank
Bitte klären Sie das. Sind die Ergebnisse der 46 Netze unterschiedlich?
Wie groß ist der Größenbereich der Gewichte?
Wenn möglich, fügen Sie ein Profil eines Ausschussrasters bei.
Ja. Die Eingaben sind für jedes Netz unterschiedlich, was aber nicht entscheidend ist. Sie können ein Standardsignal nehmen, z. B. den gleichen RSI und ein Raster, und trotzdem negative Werte bei Bruteforce für alle Eingaben erhalten.
Initiale Initialisierung der Gewichte -1, 1.
Über das Profil... Meinen Sie die Ergebnisdatei des trainierten Netzwerks?