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
Guten Tag,
Ich stelle hier die Ergebnisse einiger Experimente ein (die an reinen Bäumen ohne Fuzzy-Logik durchgeführt wurden. Ich wollte sie eigentlich einem neuen Artikel beifügen, aber da die Diskussion über Belohnungsfunktionen weitergeht, stelle ich sie als Information zum Nachdenken und zur Diskussion ein).
1. es schien mir nicht ganz richtig zu sein, dass bei SELL der Zufallswert auf das gesamte Intervall 0..1 gesetzt wird, da wir bereits wissen, dass Verkäufe unrentabel sind
Durch die Begrenzung der Bereiche auf entgegengesetzte und unsichere Werte erhöht sich die Lerngeschwindigkeit um ein Vielfaches. Mit 2-3 Durchläufen (ich glaube mit einem Durchlauf auf Zufallsdaten) ist die Qualität des Trainings wie mit 4-6 alten (Streuung ist breit, weil eine Menge zusätzlicher Faktoren, aber die Effizienz hat nicht einmal um zehn Prozent erhöht).
2. In der ersten Implementierung, fand ich es seltsam, dass der Wert zufällig erhalten ist ein Verstärkungsfaktor. Dies schafft leicht eine Situation, in der ein starker Trend eine niedrigere Belohnung hat.
Der erste Versuch, davon wegzukommen
Idee: bei 100 Pips und mehr Take Profit - 1, wenn weniger - gleichmäßig steigend (in diesem Fall von 0,61). Priper pdl für den Verkauf, für den Kauf ähnlich mit anderen Ebenen. Theoretisch für einen stärkeren Trend - höhere Belohnung. Die Ergebnisse haben sich verbessert, aber etwas mehr als der statistische Fehler. Gleichzeitig hat sich die Datei mit dem Baum für dieselben Bedingungen deutlich verkleinert. Offensichtlich erlaubte eine solche eigenartige Sortierung der Ergebnisse, die Regeln einfacher zu beschreiben.
Um das Ensemble der Bäume zu testen, habe ich beschlossen, die Schätzung eines Baumes zu laden
zu laden und aus Gewohnheit das Training laufen zu lassen. Zu meiner Überraschung zeigte sich bei einem ähnlichen Training mit einer vergröberten Belohnungsfunktion eine signifikante Verbesserung - auf dem trainierten Plot übertraf der Gewinn für 4 Monate unter sonst gleichen Bedingungen den Gewinn für 6 Monate der alten Variante (ich arbeite mit Vergleichen, da die spezifischen Zahlen stark von den Trainingsbedingungen, dem Paar und der Krümmung der Griffe des Coders abhängen), und was am interessantesten ist, die Ergebnisse im Kontrollintervall verbesserten sich. Das Laden der Bewertungsfunktion verbesserte die Vorhersage! Wahrscheinlich ist das für einen Profi-Statistiker nichts Neues und er kann mit Formeln beweisen, dass es so sein sollte, aber für mich ist es ein Schock, wie man sagt, man muss sich daran gewöhnen. Das wirft die Frage nach der weiteren Auswahl und Bewertung von Vorhersagefunktionen auf.
Ich hoffe, dass die Zeit, die ich mit den Tests verbracht habe, jemandem helfen wird, zumindest die Zeit seiner Suche zu reduzieren (oder die Möglichkeit zu geben, neue Fehler zu machen, die mit uns geteilt werden).
Interessante Ergebnisse, danke. Der 1. Punkt hat, ja, die Geschwindigkeit des Lernens erhöht. In der Tat lernt die Klasse, an der ich gerade arbeite, bereits in 1 Iteration. D.h. es ist ein super effizienter Algorithmus in Bezug auf die Lerngeschwindigkeit, aber die interne Vorverarbeitung ist es immer noch wert, organisiert zu werden, damit das Modell nicht zu sehr übertrainiert wird.
Ich verstehe bei dem hervorgehobenen Teil nicht, was es bedeutet, die Schätzung eines einzelnen Baums zu laden? Meinen Sie damit, dass Sie nur 0 und 1 als Klassenlabel angeben? In diesem Fall können wir davon ausgehen, dass die Varianz der Werte innerhalb des Modells abgenommen hat und die Qualität folglich gestiegen ist. Denn der Algorithmus war ursprünglich für eine große Anzahl von Iterationen konzipiert, aber in der Praxis stellt sich heraus, dass dies nicht notwendig ist und eine solche Belastung richtig sein kann.
und wie realistisch ist es, diesen Code, der freundlicherweise vom Autor des Artikels zur Verfügung gestellt wurde, für die einfachsten Muster von 3-5 Takten zu lehren?
SZY: hmm, selbst unter Alkohol schreibe ich wie auf Aliexpress an einen chinesischen Verkäufer ))))
Alles ist real, Sie geben Muster von 3-5 Takten ein.
Alles ist real, Sie geben Muster von 3-5 Takten in die Eingabe ein
Ich werde kurz..... Wie?
Ich werde informiert sein..... Wie?
von Hand )
Ich verstehe nicht, was es bedeutet, die Auswertung eines einzelnen Baums zu laden? Meinen Sie, dass Sie nur 0 und 1 als Klassenlabels angeben?
Ja, der Test wurde mit einem Baum und den Etiketten 0 und 1 durchgeführt. (Bei einem Ensemble ähnlicher Bäume ist das Ergebnis noch höher).
Entschuldigung, natürlich mit einem Wald von Bäumen (ich meine immer einen Wald, und auf einer häuslichen Ebene sagen Baum, ich werde diese Gewohnheit loszuwerden)
Ja, schon klar. Aber der Wald kann auch auf 1 Baum gesetzt werden oder seine Konstruktionsfunktion herausziehen. Ich weiß nicht, warum das notwendig ist.
Anfangs habe ich versucht, die Anzahl der Bäume auf 500 und 1000 zu erhöhen. Aber ich habe festgestellt, dass mehr und mehr Bäume die Ergebnisse nicht verbessert haben. Aber intern sehe ich, dass bei mehr als 500 Bäumen die Optimierung immer wieder abstürzt und keine Mtrees-Textdateien erstellt.
Außerdem habe ich die Anzahl der Bäume von 50 auf 100 erhöht und festgestellt, dass die besten Ergebnisse bei Iterationen zwischen 20 und 25 Iterationen erzielt werden und alles, was darüber hinausgeht, keinen Sinn ergibt.
Aber ich muss zustimmen, dass die RSI-Periode mit verschiedenen Kombinationen Ergebnisse liefert.
hnd1 = iRSI (_Symbol, 0,8, PRICE_CLOSE);
hnd2 = iRSI (_Symbol, 0,16, PRICE_CLOSE);
hnd3 = iRSI (_Symbol, 0,24, PRICE_CLOSE);
Also dachte ich daran, MTrees einen weiteren hinzuzufügen, um ihn in Zukunft zu verwenden. Aber später wurde mir klar, dass EA die Werte der letzten Iteration speichert. Wenn ja, können wir die Periode ändern. Ich meine, EA sollte in der Lage sein, bei einem Verlust sofort zu einer anderen RSI-Periode zu wechseln.
Außerdem kenne ich mich mit der Fuzzy-Logik nicht so gut aus. Also habe ich mich gefragt, ob jemand den vollständigen Quellcode ohne Fuzzy-Logik posten kann, dann wäre ich dankbar, wenn Sie den richtigen Code für RDF ohne Fuzzy-Logik und einen Beispielindikator nicht finden können.
Ich bin einfach neugierig, was mit den Ergebnissen passiert, wenn wir dem Agenten 20 bis 30 Indikatorwerte als Eingabe geben und den Agenten automatisch trainieren lassen.
Anfangs habe ich versucht, die Anzahl der Bäume auf 500 und 1000 zu erhöhen. Aber ich habe festgestellt, dass mehr und mehr Bäume die Ergebnisse nicht verbessert haben. Aber intern sehe ich, dass bei mehr als 500 Bäumen die Optimierung immer wieder abstürzt und keine Mtrees-Textdateien erstellt.
Außerdem habe ich die Anzahl der Bäume von 50 auf 100 erhöht und festgestellt, dass die besten Ergebnisse bei Iterationen zwischen 20 und 25 Iterationen erzielt werden, und dass mehr als das keinen Sinn ergibt.
Ich bin einfach neugierig, was mit den Ergebnissen passiert, wenn wir 20 bis 30 Indikatorwerte als Eingabe in den Agenten eingeben und ihn automatisch trainieren lassen.
Es gibt experimentelle Ergebnisse im Internet, 100 Bäume sind die beste Erkennung, 20-50, wenn Vorhersage erforderlich ist, ich habe es mit 100 versucht, die Vorhersage wird schlechter.
Ich habe 15-19 Indikatoren für die Eingabe ausprobiert, in der Erwartung, dass der Wald beim Training die besten auswählt, wenn sich die Situation ändert. Schon bei 10 und mehr hören die Ergebnisse auf zu wachsen. Beachten Sie, dass beim Aufbau des Waldes für jeden Baum nur die Hälfte der Eingaben verwendet wird (in dieser Implementierung des Waldes). Es scheint, dass theoretisch die Wurzel aus der Anzahl der Eingaben (nicht die Hälfte) besser für Klassifizierungsaufgaben ist (wie man sagt), aber ich habe es nicht selbst ausprobiert.
Das Netzwerk hat die Ergebnisse von Experimenten, 100 Bäume - die beste Anerkennung, 20-50 - wenn Vorhersage erforderlich ist, habe ich versucht, bei 100, Vorhersagbarkeit wird immer schlechter.
Ich habe versucht, 15-19 Indikatoren am Eingang in der Berechnung, dass, wenn die Situation ändert sich der Wald wird die beste beim Training wählen. Bereits bei 10 und darüber die Ergebnisse der aufhören zu wachsen. Beachten Sie, dass beim Aufbau eines Waldes nur die Hälfte der Eingaben für jeden Baum verwendet wird. Es scheint, dass theoretisch für die Klassifizierung Probleme (wie sie sagen) ist die Wurzel aus der Anzahl der Eingänge (und nicht die Hälfte) ist besser, aber er hat nicht versucht.
Ich danke Ihnen für Ihre Antwort.
Allerdings möchte ich wissen, was passiert, wenn wir alle wissen können (15 bis 20 Indikatoren) auf einmal und NICHT mit nur die wenigen Indikatoren für den Agenten, aber wir sollten alle Indikatoren verwenden. Und dann trainieren wir den Agenten für das vergangene Jahr, so dass der Agent die beste Politik unter Verwendung aller Indikatoren entwickeln kann. Ich meine, dass wir den aktuellen Zustand des Agenten bei jedem Kerzenschluss mit mehreren Indikatorwerten bestimmen sollten.
Bis jetzt ist mir aufgefallen, dass ein Verlust die Serie von kleinen Gewinnen zunichte macht, weil es keine geeigneten Ausstiegsbedingungen gibt. Daher müssen sowohl die Einstiegs- als auch die Ausstiegsbedingungen fein abgestimmt werden.
Können Sie mir bitte einen Beispielcode für einen Indikator ohne Fuzzy-Logik zur Verfügung stellen und sagen, wo ich den Indikator in der aktuellen Implementierung des Codes einfügen soll?
Ich habe versucht, die Indikatoren in die Funktion OnTick () einzufügen, aber das hat nicht viel gebracht. Ich bin auf der Suche nach einem vollständigen Beispielcode der aktuellen Version des EA ohne Fuzzy-Logik.