Ami broker Systemdesign amp Testing True Portfolio-Level Backtesting Testen Sie Ihr Trading-System auf mehreren Wertpapieren unter Verwendung realistischer Kontobeschränkungen und gemeinsamer Portfolio-Aktien. Trade-Portfolios, um das Risiko-Risiko-Verhältnis zu senken. Finden Sie heraus, wie sich die Anzahl der gleichzeitigen Positionen und die Verwendung des unterschiedlichen Geldmanagements auf Ihre Trading-Systemleistung auswirken. Dynamische Portfoliogrößenoptimierung Verwenden Sie das aktuelle Portfolio-Eigenkapital (Summe aus Bargeld und allen gleichzeitig geöffnetem Positionswert), um die neue Handelsgröße zu berechnen oder eine andere Methode zur Positionsbestimmung zu verwenden, indem Sie den Dollarwert oder die Anzahl der Kontraktschargen angeben. Position Größe kann konstant sein oder ändern Trade-by-Trade. Blazing schnelle Geschwindigkeit Nasdaq 100 Symbol Backtest von einfachen MACD-System, für 10 Jahre am Ende des Tages dauert unter einer Sekunde Multiple Symbol Datenzugriff Trading-Regeln können andere Symbole Daten verwenden - dies ermöglicht die Schaffung von Spread-Strategien. Globale Markt-Timing-Signale, Paar Handel, etc. Mehrere Zeitrahmen und mehrere Währungen in einem System Systeme können mehrere Zeitrahmen gleichzeitig verwenden und Symbole in verschiedenen Währungen denominiert Skalierung inout (Pyramiding) und Rebalancing Sie können Systeme, Positionen in benutzerdefinierten Momenten Alles ist anpassbar Sie können eingebaute Berichtdiagramme ändern, Ihr eigenes Eigenkapital erstellen, Drawdown-Diagramme erstellen, eigene Tabellen im Bericht erstellen, benutzerdefinierte Metriken hinzufügen Benutzerdefinierte Backtest-Prozedur Selbst der Backtest-Prozess selbst kann durch den Benutzer geändert werden So dass nicht-Standard-Handling jedes Signals, jeder Handel. Es erlaubt auch, benutzerdefinierte Metriken zu erstellen, Monte-Carlo getrieben Optimierung und was auch immer Sie träumen können über Scoring amp Ranking Wenn mehrere Eintrittssignale auftreten, auf der gleichen Bar und Sie aus der Kaufkraft, AmiBroker führt Bar-by-Bar-Sortierung und Ranking Basierend auf einem benutzerdefinierbaren Positionscore, um einen bevorzugten Handel zu finden. Rotationshandel Ein dedizierter Modus für Sektorrotations-Handelsalgorithmen, die benutzerdefinierbare Punkte verwenden, um zwischen bevorzugten Aktienfondssektoren umzuschalten Flexible integrierte Stopps Alle Stopps sind benutzerdefinierbar und können fest oder dynamisch sein (Änderung der Stop-Menge während des Handels). Eingebaute Stop-Typen beinhalten maximalen Verlust, Gewinnziel, Schlussanschlag (inkl. Kronleuchter), N-Balken (timed) alle mit anpassbarer Wiedereinschaltverzögerung, Aktivierungsverzögerung und Gültigkeitsbegrenzung Viele andere Goodies Es gibt einfach zu viele Dinge übrig (Vorzeitige Rücknahmegebühr, vorzeitige Ausstiegsbeschränkungen) Futures-Modus (marginpoint value support) Kundenspezifische Provisionen Vollhandelspreiskontrolle (kann Schlupf emulieren) und Handelsverzögerungen Unterstützung für Beschränkungen wie runde Losgröße, Zeckengröße, Mindesthandel Größe, maximaler Handelswert als Prozentsatz des Barvolumens Detaillierte Berichte für alle Long-Only - und Short-Only-Trades mit 42 integrierten Metriken, einschließlich Sharpe-Ratio, Ulcer Index, CARMDD und vielen anderen Gewinnverteilungsdiagrammen, maximales günstiges Exkursionsdiagramm, Maximum Adverse Exkursionstabelle Automatische Speicherung, Pflege und Betrachtung aller über den Report Explorer durchgeführten Historiktests Unterstützung für alle Intervalle (täglich und intraday) und alle Instrumentenklassen Keine Beschränkung der Anzahl der zu testenden Symbole (geeignet für enitre US-Aktienuniversum) Optimierung amp Validierung True Portfolio-Level-Optimierung Optimierungs-Engine unterstützt alle oben aufgeführten Portfolio-Backtester-Features und ermöglicht es, die am besten durchführbare Parameterkombination nach benutzerdefinierter Zielfunktion zu finden (Optimierungsziel) Exhaustive oder Smart Optimization Sie können Exhaustive (Full-Grid) Sowie künstliche Intelligenz evolutionäre Optimierungsalgorithmen wie PSO (Particle Swarm Optimization) und CMA-ES (Covarianz Matrix Adaptation Evolutionary Strategy), die bis zu 100 Optimierungsparameter erlauben. Ebenfalls verfügbar ist die Optimizer-API, die es ermöglicht, eigene Smart-Algorithmen hinzuzufügen. Schnell und augenfällig Der Optimizer ist flammend schnell (10 Jahre EOD, 100 Symbole, 100 ausführliche optische Schritte dauern 25 Sekunden). Die Ergebnisse lassen sich in attraktiven 3D-animierten Optimierungskarten für die Robustheitsanalyse visualisieren. Monte Carlo Simulation Bereiten Sie sich auf schwierige Marktbedingungen vor. Überprüfen Sie Worst-Case-Szenarien und die Wahrscheinlichkeit des Ruins. Nehmen Sie Einsicht in die statistischen Eigenschaften Ihres Handelssystems. Robustheitstests durch Zufallsprüfung Überprüfen Sie die Robustheit Ihres Handelssystems mit Hilfe von zufälligen Aktienpicks (zufällige Positionsbewertung) und der Randomisierung von Handelspreisen, die unvorhersehbare Schlupf-Blitzszenarien simulieren - Beispiel optimierte Leistung ist ein Fehler, den viele Händler machen. Vermeiden Sie eine Überbelegung der Trap und verifizieren Sie die Out-of-Sample-Performance Ihres Handelssystems. Walk-Forward-Tests ist ein Verfahren, das die Arbeit für Sie erledigt. AmiBroker hat vollautomatische Walk-Forward-Tests, die in das Optimierungsverfahren integriert sind, so dass es sowohl in-Sample-und Out-of-Sample-Statistiken produziert. AmiBrokers Walk-Forward-Funktionen: benutzerdefinierbare Start-, End-, Stufenintervalle verankerter nicht verankerter Modus benutzerdefinierbare Zielobjektfunktion (Zielfunktion) benutzerdefinierte Metrik und Monte-Carlo-Stat können als Target-in-Sample-Out-of-Sample-Equity-Charts verwendet werden (Zusammengefasst aus allen OoS-Perioden im Test) Objektorientierte Zeichnungswerkzeuge Alle bekannten Werkzeuge stehen Ihnen zur Verfügung: Trendlinien, Strahlen, parallele Linien, Regressionskanäle, Fibonacci Retracement, Expansion, Fibonacci Zeitverlängerungen , Fibonacci-Zeitzone, Bogen, Gann-Quadrat, Gann-Quadrat, Zyklen, Kreise, Rechtecke, Text auf dem Diagramm, Pfeile und vieles mehr Drag-and-Drop-Indikator Erstellung Nur ziehen Sie gleitenden Durchschnitt über sagen RSI zu geglätte RSI zu schaffen. Und dann beginnt Magie - hinter den Kulissen wird AmiBroker einen Code für Sie erstellen und so kann er später in den Analysis Live-Parametern verwendet werden. Ändern Sie den Indikatorparameter mit dem Schieberegler und sehen Sie ihn live, sofort, wie Sie den Schieberegler bewegen, ideal für visuelles Finden Wie Indikatoren arbeiten Alle klassischen Indikatoren enthalten Hunderte von bekannten Indikatoren wie ROC, RSI, MACD, OBV, CCI, MFI, NVI, Stochastik, Ultimate Oszillator, DMI, ADX, Parabolic SAR, TRIN, AdvanceDecline Linie, AccumulationDistribution, TRIX , Chaikin-Oszillator und vieles mehr Referenzieren mehrerer Symboldaten in einem Diagramm Diese Funktion ermöglicht relative Leistungsdiagramme, Streckendiagramme, zusammengesetzte Diagramme, synthetische künstliche Datendiagramme Chart Playback Bar Replay-Tool ermöglicht das Abspielen von Diagrammen mit historischen Daten, großem Werkzeug für das Lernen und den Papierhandel Symbol amp Intervallverknüpfung Verknüpfen Sie mehrere Diagrammfenster so, wenn Sie das Symbol ändern und das Intervall in einem ändern, ändern sich die anderen automatisch Sofortige Umschaltung der Intervalle On-the-Fly Komprimierung ohne komprimierte Daten zu laden Excel-ähnliche, mehrere Diagrammblätter Erstellen Sie mehrere Blätter (oder Seiten), die jeweils unterschiedliche Chartsindikatoren enthalten und sofort zwischen verschiedenen Indikatoreinstellungen umschalten Alle möglichen Intervalle Zeitkomprimierung unterstützt Jährliche, vierteljährliche, monatliche, wöchentliche und tägliche Diagramme, Intraday-Diagramme, N-Minuten-Diagramme, N-Seekarten (Pro-Version) und N-Zecken (Pro-Version), N-Range-Balken, N-Volume-Balken Multimonitor-Unterstützung Alle Diagramme können geschwenkt und auf andere Monitore verlagert werden und solche Layouts können gespeichert und umgeschaltet werden Diagramme, Indikatoren, Zeichenwerkzeuge können auf benutzerdefinierbaren Ebenen platziert werden, die mit einem einzigen Klick ausgeblendet oder sichtbar gemacht werden können. Plot-Anweisungen erlauben eine benutzerdefinierbare Z-Sortierung von Overlays (für die Anzeige) ohne Nachbestellung des Codes Flexibilität und Geschwindigkeit Mehrere Fenster, Scheiben, Skalen, Intervalle gleichzeitig möglich und scrolledzoomed super-schnell dank Multithread-Ausführung und Rendering-Diagramm Interpretationen AmiBroker kann programmierbare automatische Beschreibungen der Bedeutung der gegebenen Indikatoren erzeugen Echtzeit-Funktionen Mehrere Datenquellenunterstützung Sie sind nicht an einen Datenverkäufer gebunden, Sie können eine Verbindung zu eSignal, IQFeed, Interactive Brokers, QCharts, unter anderem Multi-Page Real herstellen - Zeitquotierungsfenster Das Echtzeitfenster enthält Seiten, die es Ihnen ermöglichen, schnell zwischen verschiedenen Symbollisten umzuschalten. Die RT-Zitat-Spalten-Layout und Bestellung ist vollständig anpassbar Unbegrenzte TimeampSales-Fenster Floating TampS-Fenster enthalten RT-berechneten Bidask Druckstatistiken Einfache Alarme Benutzerdefinierbare Alarme durch RT Preis-Aktion mit anpassbarem Text, Popup-Fenster, E-Mail, Ton gestartet High-Low Rank-Balkendiagramme Ein Mini-Balkendiagramm in Echtzeit-Zitat-Fenster zeigt aktuelle Aktuelle Preislage innerhalb High-Low-Bereich Bid-Ask Trendindikator Eine Mini-Bidask Trend-Indikator innerhalb RT-Zitat-Fenster hilft Tape lesen Programmierung Features Fast Array und Matrix-Verarbeitung In AmiBroker Formel Sprache (AFL) Vektoren und Matrizen sind native Typen wie einfache Zahlen. Um den Mittelpunkt von High - und Low-Arrays Element-für-Element zu berechnen, geben Sie einfach MidPt (H L) 2 H und L Arrays ein und es wird zu vektorisierten Maschinencode kompiliert. Keine Schleifen nötig. Dies macht es möglich, Ihre Formeln mit der gleichen Geschwindigkeit wie Code in Assembler geschrieben ausgeführt. Native schnelle Matrixoperatoren und - funktionen machen statistische Berechnungen zu einem Kinderspiel. Kurze Sprache bedeutet weniger Arbeit Ihre Handelssysteme und Indikatoren in AFL geschrieben nehmen weniger Tippen und weniger Platz als in anderen Sprachen, weil viele typische Aufgaben in AFL sind nur Einzeiler. Zum Beispiel dynamische, ATR-basierte Kronleucherstopp ist nur: ApplyStop (stopTypeTrailing, stopModePoint, 3 ATR (14), True, True) Built-in Debugger Der Debugger ermöglicht es Ihnen, einen Schritt durch den Code und beobachten Sie die Variablen in run - Zeit, um besser zu verstehen, was Ihre Formel macht State-of-the-art-Code-Editor Genießen Sie erweiterte Editor mit Syntax-Highlighting, automatische Vervollständigung, Parameter-Aufruftipps, Code falten, Auto-Einzug und In-line-Fehlerberichterstattung. Wenn Sie auf einen Fehler stoßen, wird eine aussagekräftige Meldung direkt in der Zeile angezeigt, so dass Sie Ihre Augen nicht belasten. Weniger Tippen, schnellere Ergebnisse Das Codieren Ihrer Formel war nie einfacher mit einsatzbereiten Code-Snippets. Verwenden Sie Dutzende von vordefinierten Snippets, die allgemeine Codierungsaufgaben und - muster implementieren oder eigene Snippets erstellen. Multi-Threading Alle Ihre Formeln profitieren automatisch von mehreren Prozessorscores. Jede Diagrammformel, ein grafischer Renderer und jedes Analysefenster werden in separaten Threads ausgeführt. Verschiedene Drittanbieter-Datenanbieterunterstützung (Quotes Plus, TC2000, CSI, eSignal, IQFeed) Kostenfreie historische Daten von Yahoo Finanzen, MS Money, Google Finanzen, etc. (automatischer Download) , FastTrack, interaktive Broker usw.). Liest Metastock-Datenbanken direkt öffnen Daten-API für Konnektivität mit beliebigen Datenquellen DDE-Plugin für die Verknüpfung mit DDE-kompatiblen Quellen ODBC-Plugin für externe Datenbankkonnektivität Symbol - und Listenpflege Kategorisierungssystem (Zuordnung von Symbolen zu Märkten, Gruppen, Branchenindustrien, Favoriten) Unbegrenzt benutzerdefinierbar Watch list Filtern nach beliebigen Kategorien AFL-Zugriff auf Kategoriestruktur State of the Art Programmierung AmiBroker wird in C geschrieben (kompiliert zu Maschinencode), die gleiche Sprache, in der Betriebssysteme geschrieben werden. Es läuft nativ auf der CPU ohne Notwendigkeit jeder Art von virtuellen Maschine oder Byte-Code-Interpreter, im Gegensatz zu Java oder. NET-Programme. Die Tatsache, dass CPU läuft native Maschine-Code ermöglicht eine maximale Ausführungsgeschwindigkeit. Die AFL-Sprache kann bis zu 166 Millionen Daten-Balken pro Sekunde auf 2GHz CPU verarbeiten, sehen Sie dies für Details. Der AmiBroker Code wurde von Hand optimiert und profiliert, um maximale Geschwindigkeit zu gewinnen und die Größe zu minimieren. Kleiner Code läuft viel schneller, da er in CPU-Caches passen kann. Full Setup-Programm mit Beispiel-Datenbank und Hilfe-Dateien ist nur etwa 6 (sechs) Megabyte, die Hälfte davon ist Dokumentation und Daten. Die ausführbaren Dateien (.exe und. dll Bibliotheken) sind nur 3,5 MB. In der heutigen Welt von bloatware sind wir stolz, die kompakteste technische Analyse-Anwendung zu liefern. Urheberrecht copy2016 AmiBroker. Alle Rechte vorbehalten. Diese Seite verwendet Cookies. Durch das Durchsuchen dieser Website stimmen Sie zu unserer Datenschutz-amp Cookies-Politik Amibroker ist ein Software-Entwicklungsunternehmen und bietet keine Art von Investitions-oder Brokerage-Dienstleistungen an den Finanzmärkten. Wie optimieren Handelssystem HINWEIS: Dies ist ziemlich fortgeschrittenes Thema. Bitte vorherige AFL Tutorials lesen. Die Idee hinter einer Optimierung ist einfach. Zuerst müssen Sie ein Handelssystem haben, kann dies eine einfache gleitende durchschnittliche Crossover zum Beispiel sein. In fast jedem System gibt es einige Parameter (als Mittelungsperiode), die entscheiden, wie sich das gegebene System verhält (d. h. ist gut geeignet für Langzeit - oder Kurzfristigkeit, wie reagiert er auf hochvolatile Bestände usw.). Die Optimierung ist der Prozess der Suche nach optimalen Werten dieser Parameter (mit dem größten Gewinn aus dem System) für ein bestimmtes Symbol (oder ein Portfolio von Symbolen). AmiBroker ist eines der wenigen Programme, mit denen Sie Ihr System auf mehrere Symbole auf einmal optimieren können. Zur Optimierung Ihres Systems müssen Sie von einem bis zu zehn zu optimierenden Parametern definieren. Sie entscheiden, was ein minimaler und maximal zulässiger Wert des Parameters ist und in welchen Schritten dieser Wert aktualisiert werden soll. AmiBroker führt dann mehrere Backtests durch, wobei das System ALLE mögliche Kombinationen von Parameterwerten verwendet. Wenn dieser Vorgang beendet ist, zeigt AmiBroker die Ergebnisliste nach Nettogewinn an. Sie können die Werte der Optimierungsparameter sehen, die das beste Ergebnis liefern. AFL-Formel schreiben Optimierung im Backtester wird über die neue Funktion optimize unterstützt. Die Syntax dieser Funktion lautet wie folgt: Variable optimize (Variable), Variable - ist normale AFL-Variable, die den von der Optimierungsfunktion zurückgegebenen Wert zugewiesen bekommt. Bei normalen Backtesting-, Scan-, Explorations - und Comentary-Modi gibt die Funktion optimize die Standardeinstellung zurück, sodass der obige Funktionsaufruf gleichbedeutend ist mit: variable default Im Optimierungsmodus optimiert die Funktion sukzessive Werte von min bis max (inkl. Beschreibungquot ist ein String, der verwendet wird, um die Optimierungsvariable zu identifizieren, und wird als Spaltenname in der Optimierungsergebnisliste angezeigt. Voreinstellung ist ein Vorgabewert, der die Funktionswiederkehr in Explorations-, Indikator-, Kommentar-, Scan - und normalen Rücktestmodi optimiert. Min ist ein Minimalwert der Variablen, die optimiert wird. Max ist ein Maximalwert der Variablen, die optimiert wird Wert von min bis max AmiBroker unterstützt bis zu 64 Aufrufe zur Optimierung der Funktion (also bis zu 64 Optimierungsvariablen), beachten Sie, dass, wenn Sie erschöpfende Optimierung verwenden, dann ist es wirklich eine gute Idee, die Anzahl der Optimierungsvariablen auf nur wenige zu beschränken. Jeder Aufruf zu optimieren generieren (max - min) Schritt Optimierung Schleifen und mehrere Aufrufe zu optimieren multiplizieren die Anzahl der erforderlichen Läufe. Zum Beispiel erfordert die Optimierung von zwei Parametern in 10 Schritten 1010 100 Optimierungsschleifen. Call Optimize-Funktion nur ONCE pro Variable am Anfang der Formel, da jeder Aufruf erzeugt eine neue Optimierung Schleifen Multiple-Symbol-Optimierung wird voll unterstützt durch AmiBroker Maximale Suchraum ist 2 64 (10 19 10.000.000.000.000.000) Kombinationen 1. Single Variable Optimierung: sigavg Optimize (Signal Durchschnitt 9. 2. 20. 1) Kaufen Cross (MACD (12. 26), Signal (12. 26. sigavg)) Verkauf Cross (Signal (12. 26. sigavg), MACD (12. 26)) 2. Zwei-Variable Optimierung (geeignet für 3D-Charting) pro Optimize (pro 2. 2. 50. 1) Level Optimize (Stufe 2. 2. 150. 4) Kaufen Cross (CCI (per), - Level) Verkaufen (MACD Fast, 12. 12. 16. 1.) mslow Optimize (MACD-Slow. 26. 17. 30. 1) sigavg Optimieren (Signal (Mfast, mslow, sigavg)) Verkauf Kreuz (Signal (mfast, mslow, sigavg), MACD (mfast, mslow)) Nach dem Betreten Klicken Sie einfach auf die Schaltfläche "Optimieren" im Fenster "Automatisches Analyse-Fenster". AmiBroker wird alle möglichen Kombinationen von Optimierungsvariablen testen und die Ergebnisse in der Liste melden. Nach der Optimierung wird die Ergebnisliste nach dem Nettogewinn dargestellt. Da Sie die Ergebnisse nach jeder Spalte in der Ergebnisliste sortieren können, ist es einfach, die optimalen Parameterwerte für den niedrigsten Drawdown, die geringste Anzahl an Trades, den größten Gewinnfaktor, das niedrigste Marktrisiko und den höchsten risikoadjustierten Jahresertrag zu erhalten. Die letzten Spalten der Ergebnisliste zeigen die Werte der Optimierungsvariablen für den gegebenen Test an. Wenn Sie entscheiden, welche Kombination von Parametern Ihren Bedürfnissen am besten entspricht, sollten Sie die Standardwerte bei der Optimierung von Funktionsaufrufen durch die optimalen Werte ersetzen. Im aktuellen Schritt müssen Sie sie von Hand in das Formel-Edit-Fenster (der zweite Parameter für optimieren Funktionsaufruf) eingeben. 3D-animierte Optimierungsdiagramme anzeigen Um das 3D-Optimierungsdiagramm anzuzeigen, müssen Sie zuerst die Optimierung mit zwei Variablen durchführen. Zwei variable Optimierung braucht eine Formel mit 2 Optimize () - Funktionsaufrufen. Eine Beispiel-Zwei-Variablen-Optimierungsformel sieht wie folgt aus: pro Optimize (pro 2. 2. 50. 1) Level Optimize (Stufe 2. 2. 150. 4) Kaufen Cross (CCI (per), - Level) Verkauf Cross (Level, CCI (per)) Nachdem Sie die Formel eingegeben haben, müssen Sie auf die SchaltflächeOptimizequot klicken. Sobald die Optimierung abgeschlossen ist, klicken Sie auf den Dropdown-Pfeil auf die Schaltfläche Optimieren und wählen Sie 3D-Grafik anzeigen. In wenigen Sekunden erscheint eine bunte dreidimensionale Oberfläche in einem 3D-Diagramm-Viewer-Fenster. Ein Beispiel-3D-Diagramm, das anhand der obigen Formel erstellt wurde, ist unten gezeigt. Die 3D-Diagramme zeigen standardmäßig Werte des Nettogewinns mit Optimierungsvariablen an. Sie können jedoch 3D-Diagramm für jede Spalte in der Optimierung Ergebnis Tabelle. Klicken Sie einfach auf die Spaltenüberschrift, um sie zu sortieren (es wird ein blauer Pfeil angezeigt, der anzeigt, dass die Optimierungsergebnisse nach der ausgewählten Spalte sortiert werden) und dann erneut 3D-Optimierungsgraph auswählen. Indem Sie visualisieren, wie sich Ihre Systemparameter auf die Trading-Performance auswirken, können Sie leichter entscheiden, welche Parameterwerte quotfragilequot erzeugen und welche die Performance des Quotienten ersetzen. Robuste Einstellungen sind Regionen im 3D-Graphen, die allmähliche und nicht abrupte Änderungen in der Oberfläche zeigen. 3D-Optimierungsdiagramme sind ein hervorragendes Werkzeug, um Kurvenanpassungen zu vermeiden. Kurvenanpassung (oder Überoptimierung) tritt auf, wenn das System komplexer ist, als es sein muss, und all diese Komplexität konzentrierte sich auf Marktbedingungen, die nie wieder geschehen können. Radikale Änderungen (oder Spikes) in den 3D-Optimierungsdiagrammen zeigen deutlich über-Optimierungsbereiche. Sie sollten wählen, Parameter Region, die eine breite und breite Plateau auf 3D-Diagramm für Ihre realen Handel produziert. Parametersätze, die Gewinnspitzen erzeugen, funktionieren im realen Handel nicht zuverlässig. 3D-Diagramm-Viewer-Steuerelemente AmiBrokers 3D-Diagramm-Viewer bietet vollständige Betrachtungsmöglichkeiten mit voller Graph-Rotation und Animation. Jetzt können Sie Ihre Systemergebnisse aus jeder denkbaren Perspektive ansehen. Sie können die Position und andere Parameter des Diagramms mithilfe der Maus, der Symbolleiste und der Tastaturbefehle steuern, was auch immer Sie leichter für Sie finden. Nachstehend finden Sie die Liste. - zum Drehen - Halten Sie die linke Maustaste gedrückt und bewegen Sie sich in XY-Richtungen - zum Zoomen, Verkleinern - Halten Sie die RECHTS-Maustaste gedrückt und bewegen Sie sich in XY-Richtungen - verschieben (übersetzen) - Halten Sie die linke Maustaste und die STRG-Taste gedrückt Bewegen Sie sich in XY-Richtungen - an Animieren - halten Sie die linke Maustaste gedrückt, ziehen Sie schnell und lassen Sie den Knopf los, während Sie SPACE ziehen - animieren (automatisch drehen) LEFT PFEIL KEY - Links RECHTS PFEIL KEY - vertikal drehen. Rechts UP PFEILTASTE - rotieren horiz. Up DOWN PFEIL SCHLÜSSEL - drehen horiz. NUMPAD (NULL) NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD NUMPAD - - Wasserstand nach unten Intelligente (nicht erschöpfende) Optimierung AmiBroker bietet neben einer regelmäßigen, umfassenden Suche auch eine intelligente (nicht erschöpfende) Optimierung. Eine nicht erschöpfende Suche ist nützlich, wenn die Anzahl aller Parameterkombinationen des gegebenen Handelssystems einfach zu groß ist, um für eine erschöpfende Suche durchführbar zu sein. Erschöpfende Suche ist vollkommen in Ordnung, solange es vernünftig ist, es zu benutzen. Nehmen wir an, Sie haben 2 Parameter, die jeweils von 1 bis 100 reichen (Schritt 1). Thats 10000 Kombinationen - perfekt OK für erschöpfende Suche. Jetzt mit 3 Parametern bekamen Sie 1 Million Kombinationen - es ist immer noch OK für eine erschöpfende Suche (kann aber lenghty sein). Mit 4 Parametern haben Sie 100 Millionen Kombinationen und mit 5 Parametern (1..100) haben Sie 10 Milliarden Kombinationen. In diesem Fall wäre es zu zeitaufwendig, um alle von ihnen zu überprüfen, und dies ist der Bereich, wo nicht erschöpfende Smart-Search-Methoden können das Problem lösen, das nicht in angemessener Zeit mit aufwendiger Suche lösbar ist. Hier ist absolut die SIMPLEST-Anleitung, wie man einen neuen, nicht erschöpfenden Optimierer (in diesem Fall CMA-ES) einsetzt. 1. Öffnen Sie Ihre Formel im Formel-Editor 2. Fügen Sie diese Zeile am oberen Rand Ihrer Formel hinzu: OptimizerSetEngine (quotcmaequot) Sie können auch quotspsoquot oder quottribquot hier verwenden 3. (Optional) Wählen Sie Ihr Optimierungsziel in Automatic Analysis, Settings, quotWalk - Forwardquot-Registerkarte, Optimierungszielfeld. Wenn Sie diesen Schritt überspringen, wird er für CARMDD optimieren (zusammengesetzte Jahresrendite dividiert durch maximalen Drawdown). Jetzt, wenn Sie die Optimierung mit dieser Formel ausführen, wird es neue evolutionäre (nicht erschöpfende) CMA-ES-Optimierer verwenden. Wie es funktioniert Die Optimierung ist der Prozess der Suche nach Minimum (oder Maximum) der gegebenen Funktion. Jedes Handelssystem kann als Funktion einer bestimmten Anzahl von Argumenten betrachtet werden. Die Eingaben sind Parameter und Zitatdaten. Die Ausgabe ist Ihr Optimierungsziel (zB CARMDD). Und Sie suchen maximal eine gegebene Funktion. Einige der intelligenten Optimierungsalgorithmen basieren auf der Natur (Tierverhalten) - PSO-Algorithmus oder biologischem Prozess - Genetische Algorithmen, und einige basieren auf mathematischen Konzepten, die vom Menschen abgeleitet werden - CMA-ES. Diese Algorithmen werden in vielen verschiedenen Bereichen, einschließlich Finanzen verwendet. Geben Sie quotSO financequot oder quotCMA-ES financequot bei Google ein und Sie werden viele Infos finden. Nicht erschöpfend (oder quotsmartquot) Methoden finden globales oder lokales Optimum. Das Ziel ist natürlich, globale zu finden, aber wenn es eine einzelne scharfe Spitze aus Zillionen-Parameter-Kombinationen, nicht-erschöpfende Methoden nicht finden können, diese einzelne Spitze zu finden, aber nehmen sie Form Händler perspecive, finden einzelne scharfe Spitze ist nutzlos für Weil dieses Ergebnis instabil (zu zerbrechlich) und im realen Handel nicht replizierbar wäre. Im Optimierungsprozess suchen wir eher Plateaugebiete mit stabilen Parametern und das ist der Bereich, in dem intelligente Methoden leuchten. Wie durch nicht erschöpfende Suche verwendete Algorithmus sieht es wie folgt aus: a) der Optimierer einige (meist zufällig) Ausgangspopulation von Parameter erzeugt setzt b) Backtest von AmiBroker aus der Bevölkerung c gesetzt für jeden Parameter durchgeführt wird) die Ergebnisse der Backtests sind Ausgewertet nach der Logik des Algorithmus und neue Population wird basierend auf der Evolution der Ergebnisse generiert, d) falls neue am besten gefunden wird - speichern Sie sie und gehen Sie zu Schritt b), bis Haltekriterien erfüllt sind Maximale Iterationen b) Stopp, wenn der Bereich der besten objektiven Werte der letzten X-Generationen Null ist. C) Stopp, wenn das Hinzufügen von 0,1 Standardabweichungsvektoren in einer beliebigen Hauptachsenrichtung den Wert des objektiven Werts nicht verändert. Erschöpfende) Optimierer in AmiBroker müssen Sie die Optimierer-Engine, die Sie in der AFL-Formel verwenden möchten, mit der OptimizerSetEngine-Funktion angeben. Die Funktion wählt die durch den Namen definierte externe Optimierungs-Engine aus. AmiBroker derzeit Schiffe mit drei Motoren: Standard Particle Swarm Optimizer (quotspsoquot), Tribes (quottribquot) und CMA-ES (quotcmaequot) - die Namen in Klammern sind in OptimizerSetEngine Anrufe verwendet werden. Zusätzlich zur Auswahl von Optimierer-Engine können Sie einige seiner internen Parameter einstellen. Verwenden Sie dazu die Funktion OptimizerSetOption. OptimizerSetOption (quotnamequot, value) Funktion Die Funktion setzt zusätzliche Parameter für die externe Optimierungs-Engine. Die Parameter sind motorabhängig. Alle drei Optimierer, die mit AmiBroker (SPSO, Trib, CMAE) ausgeliefert werden, unterstützen zwei Parameter: quotRunsquot (Anzahl der Läufe) und quotMaxEvalquot (maximale Auswertungen (Tests) pro Einzellauf). Das Verhalten jedes Parameters ist motorabhängig, so dass gleiche Werte können und in der Regel liefern unterschiedliche Ergebnisse mit verschiedenen Motoren verwendet. Der Unterschied zwischen Runs und MaxEval ist wie folgt. Auswertung (oder Test) ist ein Einzel-Backtest (oder Auswertung des Zielfunktionswertes). RUN ist ein Volllauf des Algorithmus (optimaler Wert) - meist mit vielen Tests (Auswertungen). Jeder Lauf RESTARTS den gesamten Optimierungsprozess vom Neubeginn (neue anfängliche Zufallsbevölkerung). Daher kann jeder Lauf zu der Suche nach verschiedenen lokalen maxmin (wenn es nicht globale finden) führen. Der Parameter "Runs" definiert die Anzahl der folgenden Algorithmusläufe. MaxEval ist die maximale Anzahl von Auswertungen (Baktests) in einem einzigen Lauf. Wenn das Problem relativ einfach ist und 1000 Tests genügen, um globales Maximum zu finden, ist 5x1000 wahrscheinlicher, globales Maximum zu finden, da es weniger Chancen gibt, in lokalem Maximum festzuhalten, da nachfolgende Durchläufe von unterschiedlicher anfänglicher Zufallspopulation beginnen Schwierig sein. Es hängt von Problemen im Test, seine Komplexität, etc., etc. Jede stochastische nicht erschöpfend Methode gibt Ihnen keine Garantie für die Suche nach globalen maxmin, unabhängig von der Anzahl der Tests, wenn es kleiner als erschöpfend ist. Die einfachste Antwort ist. Geben Sie als große Anzahl von Tests, wie es für Sie in Bezug auf die Zeit erforderlich ist, um abgeschlossen ist. Eine weitere einfache Beratung ist die Multiplikation von 10 die Anzahl der Tests mit dem Hinzufügen neuer Dimension. Das kann dazu führen, dass die Anzahl der erforderlichen Tests überschätzt wird, aber es ist ziemlich sicher. Ausgelieferte Motoren sind so konzipiert, dass sie einfach zu bedienen sind, so dass quotreasonablequot standardautomatic Werte verwendet werden, so Optimierung kann in der Regel ohne Angabe von etwas (Annahme von Vorgaben) ausgeführt werden. Es ist wichtig zu verstehen, dass alle intelligenten Optimierungsmethoden am besten in kontinuierlichen Parameterräumen und relativ reibungslosen Zielfunktionen funktionieren. Wenn der Parameterraum diskret ist, können evolutionäre Algorithmen Schwierigkeiten haben, einen optimalen Wert zu finden. Dies gilt insbesondere für binäre (onoff) Parameter - sie eignen sich nicht für jede Suchmethode, die den Gradienten der objektiven Funktionsänderung verwendet (wie die meisten intelligenten Methoden tun). Wenn Ihr Handelssystem viele binäre Parameter enthält, sollten Sie den Smart-Optimierer nicht direkt darauf verwenden. Stattdessen versuchen Sie, nur kontinuierliche Parameter mithilfe des intelligenten Optimierers zu optimieren und binäre Parameter manuell oder über ein externes Skript zu schalten. SPSO - Standard Particle Swarm Optimizer Der Standard Particle Swarm Optimizer basiert auf SPSO2007 Code, der gute Ergebnisse liefern soll, vorausgesetzt, dass korrekte Parameter (d. H. Runs, MaxEval) für ein spezielles Problem vorgesehen sind. Picking richtige Optionen für die PSO-Optimierer kann schwierig sein, die Ergebnisse können erheblich von Fall zu Fall variieren. SPSO. dll kommt mit vollständigen Quellcodes im quotADKquot Unterordner. Beispielcode für Standard-Particle Swarm-Optimierer: (Suche nach optimalen Wert in 1000 Tests im Suchraum von 10000 Kombinationen) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Optimize (quotsquot, 26, 1, 100, 1 ) fa Optimize (quotfquot, 12, 1, 100, 1) Kaufen Cross (MACD (fa, sl), 0) Verkaufen Kreuz (0, MACD (fa, sl)) TRIBES - Adaptive Parameter weniger Particle Swarm Optimizer Tribes ist adaptiv , Parameterlose Version von PSO (Particle Swarm Optimization) nicht erschöpfender Optimierer. Für wissenschaftlichen Hintergrund siehe: particlewarm. infoTribes2006Cooren. pdf In der Theorie sollte es besser als reguläre PSO, denn es kann automatisch die Schwarmgrößen und Algorithmus-Strategie auf das Problem zu lösen. Praxis zeigt, dass seine Leistung ist ziemlich ähnlich PSO. Das Tribes. DLL-Plugin implementiert die Variante "Tribes-Dquot" (d. H. Dimensionslose). Basiert auf clerc. maurice. free. frpsoTribesTRIBES-D. zip von Maurice Clerc. Ursprüngliche Quellcodes, die mit Erlaubnis des Autors Tribes. DLL verwendet werden, werden mit vollem Quellcode (innerhalb des quadratischen Quellordners) unterstützt. Unterstützte Parameter: quotMaxEvalquot - maximale Anzahl von Auswertungen (Backtests) pro Lauf (Standard 1000). Sie sollten die Anzahl der Auswertungen mit zunehmender Anzahl von Dimensionen erhöhen (Anzahl der Optimierungsparameter). Die Voreinstellung 1000 ist für 2 oder 3 Dimensionen gut. QuotRunsquot - Anzahl der Durchläufe (Neustarts). (Standard 5) Sie können die Anzahl der Durchläufe bei Standardwert von 5. Standardmäßig Anzahl der Durchläufe verlassen (oder neu gestartet) auf 5 gesetzt ist Tribes Optimierer verwenden zu können, müssen Sie nur eine Zeile Code hinzuzufügen: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 Bewertungen max CMA-ES - Kovarianz Matrix Anpassung Evolutionäre Strategie Optimierer CMA-ES (Covarianz Matrix Adaptation Evolutionary Strategy) ist ein fortgeschrittener, nicht erschöpfender Optimierer. Für wissenschaftlichen Hintergrund siehe: bionik. tu-berlin. deusernikocmaesintro. html Nach wissenschaftlichen Benchmarks übertreffen neun weitere, populärste evolutionäre Strategien (wie PSO, genetische und differentielle Evolution). bionik. tu-berlin. deusernikocec2005.html Das CMAE. DLL Plugin implementiert quotGlobalquot Variante der Suche mit mehreren Neustarts mit zunehmender Populationsgröße CMAE. DLL kommt mit vollständigem Quellcode (innen quotADKquot Ordner) standardmäßig Anzahl der Durchläufe (oder neu gestartet) wird gesetzt Es wird empfohlen, die Standardanzahl der Neustarts zu verlassen. Sie können diese mit dem OptimizerSetOption (quotRunsquot, N) Aufruf variieren, wobei N im Bereich 1..10 liegen sollte. Die Angabe von mehr als 10 Läufen wird nicht empfohlen, obwohl möglich. Beachten Sie, dass jeder Lauf TWICE die Größe der Population des vorherigen Durchlaufs, so dass es exponentiell wächst. Daher mit 10 Läufen Sie am Ende mit Bevölkerung 210 größer (1024-mal) als der erste Lauf. Es gibt einen weiteren Parameter quotMaxEvalquot. Der Standardwert ist ZERO, dh das Plugin berechnet automatisch MaxEval. Es wird empfohlen, nicht zu definieren, MaxEval von sich selbst als Standard funktioniert gut. Der Algorithmus ist intelligent genug, um die Anzahl der erforderlichen Evaluierungen zu minimieren, und er konvergiert sehr schnell zum Lösungspunkt, so oft findet er Lösungen schneller als andere Strategien. Es ist normal, dass das Plugin einige Auswertungsschritte überspringt, wenn es feststellt, dass die Lösung gefunden wurde, deshalb sollten Sie nicht überrascht sein, dass sich die Optimierungsfortschrittsanzeige an einigen Stellen sehr schnell bewegen kann. Das Plugin hat auch die Fähigkeit, die Anzahl der Schritte über den ursprünglich geschätzten Wert zu erhöhen, wenn es benötigt wird, um die Lösung zu finden. Due to its adaptive nature, the quotestimated time leftquot andor quotnumber of stepsquot displayed by the progress dialog is only quotbest guess at the timequot and may vary during optimization course. To use CMA-ES optimizer, you just need to add one line to your code: This will run the optimization with default settings which are fine for most cases. It should be noted, as it is the case with many continouos-space search algorithms, that decreasing quotstepquot parameter in Optimize() funciton calls does not significantly affect optimization times. The only thing that matters is the problem quotdimensionquot, i. e. the number of different parameters (number of optimize function calls). The number of quotstepsquot per parameter can be set without affecting the optimization time, so use the finest resolution you want. In theory the algorithm should be able to find solution in at most 900(N3)(N3) backtests where quotNquot is the dimension. In practice it converges a LOT faster. For example the solution in 3 (N3) dimensional parameter space (say 100100100 1 million exhaustive steps) can be found in as few as 500-900 CMA-ES steps. Multi-threaded individual optimization Starting from AmiBroker 5.70 in addition to multiple-symbol multithreading. you can perform multi-threaded single-symbol optimization. To access this functionality, click on drop down arrow next to quotOptimizequot button in the New Analysis window and select quot Individual Optimize quot. quotIndividual Optimizequot will use all available processor cores to perform single-symbol optimization, making it much faster than regular optimization. In quotCurrent symbolquot mode it will perform optimization on one symbol. In quotAll symbolsquot and quotFilterquot modes it will process all symbols sequentially, i. e. first complete optimization for first symbol, then optimization on second symbol, etc. Limitations: 1. Custom backtester is NOT supported (yet) 2. Smart optimization engines are NOT supported - only EXHAUSTIVE optimization works. Eventually we may get rid of limitation (1) - when AmiBroker is changed so custom backtester does not use OLE anymore. But (2) is probably here to stay for long. Objective function design in a grammatical evolutionary trading system quotThe objective function of an optimization problem defines the objective to be maximized or minimized in the search space and domain of design variables 19,26. A well-formulated objective function will help the search process, while a poorly formulated objective function may lead to inappropriate or wrong solutions. quot Show abstract Hide abstract ABSTRACT: Software testing is an important but complex part of software development life cycle. The optimization of the software testing process is a major challenge, and the generation of the independent test paths remains unsatisfactory. In this paper, we present an approach based on metaheuristic firefly algorithm to generate optimal test paths. In order to optimize the test case paths, we use a modified firefly algorithm by defining appropriate objective function and introducing guidance matrix in traversing the graph. Our simulations and comparison show that the test paths generated are critical and optimal paths. Article Feb 2013 Praveen Ranjan Srivatsava B. Mallikarjun Xin-She Yang quotThe objective function of an optimization problem defines the objective to be maximized or minimized in the search space and domain of design variables 19,26. A well-formulated objective function will help the search process, while a poorly formulated objective function may lead to inappropriate or wrong solutions. quot Show abstract Hide abstract ABSTRACT: Software testing is an important but complex part of software development life cycle. The optimization of the software testing process is a major challenge, and the generation of the independent test paths remains unsatisfactory. In this paper, we present an approach based on metaheuristic firefly algorithm to generate optimal test paths. In order to optimize the test case paths, we use a modified firefly algorithm by defining appropriate objective function and introducing guidance matrix in traversing the graph. Our simulations and comparison show that the test paths generated are critical and optimal paths. Full-text Article Feb 2013 Swarm and Evolutionary Computation praveen ranjan srivastava et al quotThe objective function of an optimization problem defines the objective to be maximized or minimized in the search space and domain of design variables 19,26. A well-formulated objective function will help the search process, while a poorly formulated objective function may lead to inappropriate or wrong solutions. quot Show abstract Hide abstract ABSTRACT: Structural testing is most important and high demand testing technique for code-based criteria in software testing. In structural testing, path testing technique is the most useful technique. In path testing, generation of all independent paths (non redundant) is a complex one. The aim of this paper is to present a simple and efficient algorithm that can automatically generate all possible paths in a Control Flow Graph for Path testing. Cuckoo behaviour is used in this algorithm for extracting optimal paths. This cuckoo search algorithm generates paths equal to the cyclomatic complexity. It can be shown that the proposed approach guarantees full path coverage. Article Mar 2012 Swarm and Evolutionary Computation P R Srivastava M Chis S Deb X S Yang
No comments:
Post a Comment