Wie man das Handelssystem optimiert HINWEIS: Das ist ziemlich fortgeschrittenes Thema. Bitte vorherige AFL-Tutorials lesen. Die Idee hinter einer Optimierung ist einfach. Zuerst musst du ein Handelssystem haben, das kann ein einfacher gleitender durchschnittlicher Crossover sein. In fast jedem System gibt es einige Parameter (als Mittelungszeitraum), die entscheiden, wie sich das System verhält (d. h. ist gut geeignet für Langzeit - oder Kurzzeit, wie reagiert es auf hochvolatile Bestände usw.). Die Optimierung ist der Prozess der Suche nach optimalen Werten dieser Parameter (mit dem höchsten Gewinn aus dem System) für ein gegebenes Symbol (oder ein Portfolio von Symbolen). AmiBroker ist eines der wenigen Programme, mit denen Sie Ihr System auf mehreren Symbolen gleichzeitig 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 Inkrementen dieser Wert aktualisiert werden soll. AmiBroker führt dann mehrere Backtests durch, die das System mit allen möglichen Kombinationen von Parameterwerten verwenden. Wenn dieser Prozess beendet ist, zeigt AmiBroker die Ergebnisliste nach Gewinn nach. Sie können die Werte der Optimierungsparameter sehen, die das beste Ergebnis liefern. Schreiben von AFL-Formel Die Optimierung im Back-Tester wird über die neue Funktion Optimize unterstützt. Die Syntax dieser Funktion lautet wie folgt: Variable optimieren ("Beschreibung", "Standard", "Min. Max."). - Variable - ist die normale AFL-Variable, die den von der Optimierungsfunktion zurückgegebenen Wert zugewiesen wird. Bei normaler Backtest-, Scanning-, Explorations - und Comentary-Modi gibt die Optimierungsfunktion den Standardwert zurück, so dass der obige Funktionsaufruf äquivalent ist: Variable Default Im Optimierungsmodus optimiert die Funktion die sukzessiven Werte von min bis max (inklusive) mit Step Stepping. Quot Descriptionquot ist ein String, der verwendet wird, um die Optimierungsvariable zu identifizieren und wird als Spaltenname in der Optimierungsergebnisliste angezeigt. Default ist ein Standardwert, der die Funktion in den Explorations-, Indikator-, Kommentar-, Scan - und normalen Back-Test-Modi optimiert. Min ist ein Minimalwert der Variablen, die optimiert wird max ist ein Maximalwert der Variablen, die optimiert wird, ist ein Intervall, Wert von min bis max AmiBroker unterstützt bis zu 64 Anrufe zur Optimierung der Funktion (also bis zu 64 Optimierungsvariablen), beachten Sie, dass bei einer ausführlichen Optimierung dann eine gute Idee ist, die Anzahl der Optimierungsvariablen auf wenige zu beschränken. Jeder Aufruf zur Optimierung generieren (max - min) Schritt Optimierungsschleifen und mehrere Anrufe zur Optimierung multiplizieren die Anzahl der benötigten Läufe. Zum Beispiel benötigen die Optimierung von zwei Parametern mit 10 Schritten 1010 100 Optimierungsschleifen. Anrufoptimierung nur ONCE pro Variable am Anfang deiner Formel, da jeder Aufruf eine neue Optimierungsschleife erzeugt Mehrfachsymboloptimierung wird von AmiBroker voll unterstützt Maximaler Suchraum beträgt 2 64 (10 19 10.000.000.000.000.000.000) Kombinationen 1. Einzelne Variable Optimierung: Sigavg Optimize (Signal-Durchschnitt 9. 2. 20. 1) Buy Cross (MACD (12. 26), Signal (12. 26. Sigavg)) Kreuz verkaufen (Signal (12. 26. Sigavg), MACD (12. 26)) 2. Zwei-Variable-Optimierung (geeignet für 3D-Charting) per Optimize (pro 2. 5. 50. 1) Level Optimize (Level 2. 2. 150. 4) Buy Cross (CCI (per), - Level) Verkaufen Kreuz (Level, CCI (per)) 3. Multiple (3) Variable Optimierung: mfast Optimize (MACD Fast 12. 8. 16. 1) mslow Optimize (MACD Slow. 26. 17. 30. 1) sigavg Optimize (Signal Durchschnittlich 9. 2. 20. 1) Buy Cross (MACD (mfast, mslow) Signal (mfast, mslow, sigavg)) Kreuz verkaufen (Signal (mfast, mslow, sigavg), MACD (mfast, mslow)) Nach dem Eintreten Die Formel klicken Sie einfach auf die Schaltfläche Optimieren im Fenster quotAutomatic Analysisquot. AmiBroker startet alle möglichen Kombinationen von Optimierungsvariablen und meldet die Ergebnisse in der Liste. Nach der Optimierung erfolgt die Ergebnisliste nach dem Nettogewinn. Da Sie die Ergebnisse durch eine beliebige Spalte in der Ergebnisliste sortieren können, ist es einfach, die optimalen Werte der Parameter für den niedrigsten Drawdown, die geringste Anzahl von Trades, den größten Gewinnfaktor, das niedrigste Marktrisiko und die höchste risikoadjustierte Jahresrendite zu erhalten. Die letzten Spalten der Ergebnisliste geben die Werte der Optimierungsvariablen für den gegebenen Test an. Wenn Sie entscheiden, welche Kombination von Parametern Ihren Bedürfnissen entspricht, ist das Beste, was Sie tun müssen, um die Standardwerte bei der Optimierung von Funktionsaufrufen mit den optimalen Werten zu ersetzen. Im laufenden Stadium müssen Sie sie im Handlungsfenster bearbeiten (der zweite Parameter zur Optimierung des Funktionsaufrufs). Anzeigen von 3D-animierten Optimierungsdiagrammen Um das 3D-Optimierungsdiagramm anzuzeigen, müssen Sie zuerst eine Variable mit zwei Variablen ausführen. Zwei variable Optimierung benötigt eine Formel mit 2 Optimize () Funktionsaufrufen. Eine Beispiel-Zwei-Variable-Optimierungsformel sieht so aus: per Optimize (pro 2. 5. 50. 1) Level Optimize (Level 2. 2. 150. 4) Buy Cross (CCI (per), - Level) Sell Cross (Level, CCI (per)) Nach dem Eingeben der Formel müssen Sie auf die Schaltfläche "OK" klicken. Sobald die Optimierung abgeschlossen ist, klicken Sie auf den Dropdown-Pfeil auf die Schaltfläche "Optimieren" und wählen Sie "3D-Optimierungsdiagramm anzeigen". In wenigen Sekunden erscheint ein buntes dreidimensionales Flächenplot in einem 3D-Chart-Viewer-Fenster. Ein Beispiel-3D-Diagramm, das mit der obigen Formel erstellt wurde, ist unten gezeigt. Die 3D-Diagramme zeigen standardmäßig Werte des Nettogewinns gegenüber Optimierungsvariablen an. Sie können jedoch 3D-Oberflächen-Diagramm für jede Spalte in der Optimierung Ergebnis-Tabelle. Klicken Sie einfach auf die Spaltenüberschrift, um sie zu sortieren (blauer Pfeil zeigt an, dass die Optimierungsergebnisse nach der ausgewählten Spalte sortiert werden) und wählen Sie dann erneut 3D-Optimierungsgrafik anzeigen. Durch die Visualisierung, wie sich Ihre Systemparameter auf die Handelsleistung auswirken, können Sie leichter entscheiden, welche Parameterwerte quittilequot produzieren und welche die Performance des Qurobustquot-Systems erbringen. Robuste Einstellungen sind Regionen im 3D-Graphen, die allmähliche und nicht abrupte Änderungen im Flächenplot zeigen. 3D-Optimierungsdiagramme sind ein großartiges Werkzeug, um eine Kurvenanpassung zu verhindern. Kurvenanpassung (oder Überoptimierung) tritt auf, wenn das System komplexer ist, als es sein muss, und all diese Komplexität konzentrierte sich auf Marktbedingungen, die niemals wieder passieren können. Radikale Veränderungen (oder Spikes) in den 3D-Optimierungsdiagrammen zeigen deutlich über optimierte Bereiche. Sie sollten wählen, Parameter-Region, die eine breite und breite Plateau auf 3D-Diagramm für Ihr echtes Leben Handel produziert. Parametersätze, die Gewinnspitzen erzeugen, funktionieren nicht zuverlässig im realen Handel. 3D-Karten-Viewer-Steuerelemente AmiBrokers 3D-Karten-Viewer bietet insgesamt Viewing-Funktionen mit voller Graphenrotation und Animation. Jetzt können Sie Ihre Systemergebnisse aus jeder erdenklichen Perspektive ansehen. Sie können die Position und andere Parameter des Diagramms mit der Maus, der Symbolleiste und den Tastenkombinationen steuern, was auch immer Sie für Sie leichter finden. Unten finden Sie die Liste. - zum Drehen - gedrückt halten LEFT-Maustaste gedrückt und in XY-Richtungen gedrückt - zum Vergrößern, Verkleinern - Halten Sie die RECHTS-Maustaste gedrückt und bewegen Sie sich in XY-Richtungen - zum Verschieben (übersetzen) - halten Sie die linke Maustaste und die STRG-Taste gedrückt Bewegen Sie sich in XY Richtungen - zum 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) LINKS PFEILTASTE - drehen Sie sich vertikal. Links RECHTS PFEILTASTE - drehen Sie sich vert. Rechts PFEILTASTE - drehen horiz. Up DOWN PFEILTASTE - drehen horiz. NUMPAD 6 - nach rechts bewegen NUMPAD 6 - nach rechts bewegen NUMPAD 8 - nach oben bewegen NUMPAD 2 - nach unten verschieben PAGE UP - Wasserstand nach oben PAGE DOWN - Wasserstand nach unten Intelligente (nicht erschöpfende) Optimierung AmiBroker bietet jetzt eine intelligente (nicht erschöpfende) Optimierung zusätzlich zur regelmäßigen, erschöpfenden Suche. Eine nicht erschöpfende Suche ist sinnvoll, wenn die Anzahl aller Parameterkombinationen des gegebenen Handelssystems einfach zu groß ist, um für eine abschließende Suche möglich zu sein. Die anspruchsvolle Suche ist vollkommen in Ordnung, solange es vernünftig ist, sie zu benutzen. Lass uns sagen, dass du 2 Parameter von 1 bis 100 hast (Schritt 1). Das ist 10000 Kombinationen - perfekt für eine ausführliche Suche. Jetzt mit 3 Parametern hast du 1 Million Kombinationen - es ist immer noch OK für eine abschließende Suche (kann aber auch lang 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 zeitaufwändig, alle von ihnen zu überprüfen, und dies ist der Bereich, in dem nicht erschöpfende Smart-Search-Methoden das Problem lösen können, das in einer angemessenen Zeit nicht mit einer erschöpfenden 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 einzelne Zeile am oberen Rand Ihrer Formel hinzu: OptimizerSetEngine (quotcmaequot) können Sie auch hier quadratisch oder quottribquot verwenden. 3. (Optional) Wählen Sie Ihr Optimierungsziel in Automatische Analyse, Einstellungen, quotWalk - Forwardquot-Registerkarte, Optimierungszielfeld. Wenn du diesen Schritt überspringst, wird es für CARMDD optimieren (zusammengesetzte jährliche Rendite geteilt durch maximales Drawdown). Jetzt, wenn Sie mit dieser Formel optimieren, wird es neue evolutionäre (nicht erschöpfende) CMA-ES-Optimierung verwenden. Wie funktioniert es Die Optimierung ist der Prozess der Suche nach Minimum (oder Maximum) der gegebenen Funktion. Jedes Handelssystem kann als eine Funktion einer bestimmten Anzahl von Argumenten betrachtet werden. Die Eingaben sind Parameter und Zitatdaten. Die Ausgabe ist dein Optimierungsziel (zB CARMDD). Und du suchst nach maximaler Funktion. Einige der intelligenten Optimierungsalgorithmen basieren auf der Natur (Tierverhalten) - PSO-Algorithmus oder biologischem Prozess - genetische Algorithmen und einige basieren auf mathematischen Konzepten, die von Menschen abgeleitet werden - CMA-ES. Diese Algorithmen werden in vielen verschiedenen Bereichen, einschließlich der Finanzierung verwendet. Geben Sie quotPSO financequot oder quotCMA-ES financequot in Google ein und Sie finden viele Informationen. Nicht-erschöpfende (oder quotsmartquot) Methoden finden globales oder lokales Optimum. Das Ziel ist natürlich, globale zu finden, aber wenn es einen einzigen scharfen Peak aus zillions Parameterkombinationen gibt, können nicht-erschöpfende Methoden diesen einzelnen Peak nicht finden, aber es bilden Formulatoren perspektivisch, das Finden eines einzelnen scharfen Peaks ist nutzlos für Handel, weil dieses Ergebnis instabil wäre (zu zerbrechlich) und nicht replizierbar im realen Handel. Im Optimierungsprozess suchen wir nach Plateau-Regionen mit stabilen Parametern und das ist der Bereich, in dem intelligente Methoden leuchten. In Bezug auf den Algorithmus, der von einer nicht erschöpfenden Suche verwendet wird, sieht es wie folgt aus: a) Der Optimierer erzeugt einige (meist zufällige) Startpopulation von Parametersätzen b) Backtest wird von AmiBroker für jeden Parametersatz aus der Population durchgeführt c) die Ergebnisse von Backtests sind Ausgewertet nach der Logik des Algorithmus und neue Population wird auf der Grundlage der Evolution der Ergebnisse generiert, d) wenn neues Bestes gefunden wird - speichern Sie es und gehen Sie zu Schritt b) bis Stop-Kriterien erfüllt sind Beispiel Stop-Kriterien können enthalten: a) Erreichen der angegebenen Maximale Iterationen b) Stoppen, wenn der Bereich der besten objektiven Werte der letzten X-Generationen null ist c) stoppen, wenn das Hinzufügen von 0,1 Standardabweichungsvektor in irgendeiner Hauptachsenrichtung den Wert des objektiven Wertes nicht verändert d) andere Um irgendeine intelligente (nicht - Erschöpfenden) 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 Optimierungsmaschine aus. AmiBroker wird derzeit mit 3 Motoren ausgeliefert: Standard Particle Swarm Optimizer (quotspsoquot), Tribes (quottribquot) und CMA-ES (quotcmaequot) - die Namen in Klammern sollen in OptimizerSetEngine Anrufe verwendet werden. Zusätzlich zur Auswahl der Optimierer-Engine können Sie einige seiner internen Parameter einstellen. Verwenden Sie dazu die OptimizerSetOption-Funktion. OptimizerSetOption (quotnamequot, value) Funktion Die Funktion setzt zusätzliche Parameter für externe Optimierungs-Engine ein. Die Parameter sind motorabhängig. Alle drei mit AmiBroker (SPSO, Trib, CMAE) ausgelieferten Optimierer 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 und können in der Regel unterschiedliche Ergebnisse mit verschiedenen Motoren verwendet werden. Der Unterschied zwischen Runs und MaxEval ist wie folgt. Auswertung (oder Test) ist ein einzelner Backtest (oder Auswertung des objektiven Funktionswertes). RUN ist ein vollständiger Ablauf des Algorithmus (optimaler Wert) - in der Regel viele Tests (Auswertungen). Jeder läuft einfach den gesamten Optimierungsprozess vom Neubeginn (neue anfängliche zufällige Population). Daher kann jeder Durchlauf dazu führen, dass er verschiedene lokale maxmin findet (wenn er nicht global findet). So Runs Parameter definiert die Anzahl der nachfolgenden Algorithmen läuft. MaxEval ist die maximale Anzahl von Auswertungen (Bactests) in einem Einzellauf. Wenn das Problem relativ einfach ist und 1000 Tests reichen, um globale max zu finden, ist 5x1000 eher ein globales Maximum zu finden, da es weniger Chancen gibt, in lokalem Maximum zu stecken, da nachfolgende Läufe von verschiedenen anfänglichen zufälligen Populationen beginnen werden Sei schwierig Es hängt von dem Problem unter Test, seine Komplexität, etc., etc. Jede stochastische nicht erschöpfende 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. Spezifizieren Sie eine so große Anzahl von Tests, wie es für Sie angemessen ist, in Bezug auf die Zeit, die erforderlich ist, um zu vervollständigen. Eine weitere einfache Beratung ist, um die Anzahl der Tests mit dem Hinzufügen neuer Dimension zu multiplizieren. Das kann zu einer Überschätzung der Anzahl der benötigten Tests führen, aber es ist ganz sicher. Die versendeten Motoren sind so konzipiert, dass sie einfach zu bedienen sind, daher werden quasi-fähige Standardautomatische Werte verwendet, so dass die Optimierung in der Regel ohne Angabe von etwas durchgeführt werden kann (Annahme von Vorgaben). Es ist wichtig zu verstehen, dass alle intelligenten Optimierungsmethoden am besten in kontinuierlichen Parameterräumen und relativ reibungslosen Zielfunktionen funktionieren. Wenn der Parameterraum diskrete evolutionäre Algorithmen haben, kann es schwierig sein, einen optimalen Wert zu finden. Es 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). Wenn Ihr Trading-System viele Binärparameter enthält, sollten Sie kein Smart Optimizer direkt auf ihnen verwenden. Stattdessen versuchen, nur kontinuierliche Parameter mit Smart-Optimierer zu optimieren und binäre Parameter manuell oder über externes Skript zu wechseln. SPSO - Standard Particle Swarm Optimizer Standard Particle Swarm Optimizer basiert auf SPSO2007 Code, der gute Ergebnisse liefern soll, vorausgesetzt, dass korrekte Parameter (d. h. Runs, MaxEval) für ein bestimmtes Problem bereitgestellt werden. Die Auswahl der richtigen Optionen für den PSO-Optimierer kann schwierig sein, daher können die Ergebnisse von Fall zu Fall erheblich variieren. SPSO. dll kommt mit vollständigen Quellcodes innerhalb von quotADKquot Unterordner. Beispielcode für Standard Particle Swarm Optimizer: (optimalen Wert in 1000 Tests im Suchraum von 10000 Kombinationen finden) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Optimize (quotsquot, 26, 1, 100, 1 (FACS) FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN FREIES VERSCHIFFEN , Parameterlose Version von PSO (Partikel-Schwarm-Optimierung) nicht erschöpfende Optimierung. Für wissenschaftlichen Hintergrund siehe: particlewarm. infoTribes2006Cooren. pdf In der Theorie sollte es besser als normale PSO, denn es kann automatisch die Schwarmgrößen und Algorithmus-Strategie auf das Problem zu lösen. Praxis zeigt, dass seine Leistung ist ganz ähnlich wie PSO. Das Tribes. DLL Plugin implementiert quotTribes-Dquot (d. h. dimensionslose) Variante. Basierend auf clerc. maurice. free. frpsoTribesTRIBES-D. zip von Maurice Clerc. Ursprüngliche Quellcodes, die mit der Erlaubnis des Autors verwendet werden Tribes. DLL kommt mit vollem Quellcode (innerhalb des Zifferncapot-Ordners) 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 Optimierungsparams). Die Voreinstellung 1000 ist gut für 2 oder maximal 3 Dimensionen. QuotRunsquot - Anzahl der Läufe (Neustarts). (Voreinstellung 5) Sie können die Anzahl der Läufe auf den Standardwert von 5 verlassen. Standardmäßig ist die Anzahl der Läufe (oder Neustarts) auf 5 gesetzt. Um den Tribes-Optimierer zu verwenden, müssen Sie nur noch eine Zeile zu Ihrem Code hinzufügen: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 Auswertungen max CMA-ES - Kovarianz Matrix Anpassung Evolutionäre Strategie Optimierer CMA-ES (Covarianz Matrix Adaption Evolutionary Strategy) ist fortgeschrittene nicht erschöpfende Optimierer. Für wissenschaftlichen Hintergrund siehe: bionik. tu-berlin. deusernikocmaesintro. html Nach wissenschaftlichen Benchmarks übertrifft neun weitere populäre evolutionäre Strategien (wie PSO, Genetische und Differential Evolution). Bionik. tu-berlin. deusernikocec2005.html Das CMAE. DLL-Plugin implementiert die OptionGlobalquot-Suchvariante mit mehreren Neustarts mit zunehmender Populationsgröße. CMAE. DLL kommt mit vollem Quellcode (im Zitat von ZKK-Ordner) Standardmäßig wird die Anzahl der Läufe (oder Neustarts) gesetzt Bis 5. Es wird empfohlen, die Standardanzahl der Neustarts zu verlassen. Sie können es mit dem OptimizerSetOption (quotRunsquot, N) Aufruf variieren, wobei N im Bereich 1..10 sein sollte. Die Angabe von mehr als 10 Läufen wird nicht empfohlen, wenn auch möglich. Beachten Sie, dass jeder Lauf TWICE die Größe der Population des vorherigen Laufs verwendet, damit er exponentiell wächst. Deshalb mit 10 Läufen am Ende mit der Bevölkerung 210 größer (1024 mal) als der erste Lauf. Es gibt einen anderen Parameter quotMaxEvalquot. Der Standardwert ist ZERO, was bedeutet, dass das Plugin automatisch das erforderliche MaxEval berechnet. Es wird empfohlen, NICHT zu definieren, MaxEval von Ihnen selbst als Standard funktioniert gut. Der Algorithmus ist schlau genug, um die Anzahl der benötigten Auswertungen 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 überspringen wird, wenn es feststellt, dass die Lösung gefunden wurde, deshalb sollten Sie nicht überrascht sein, dass sich der Optimierungsfortschrittsbalken an einigen Punkten 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 nötig ist, die Lösung zu finden. Aufgrund seiner anpassungsfähigen Natur ist die zerlegte Zeit leftquot und eine Anzahl von Schritten, die durch den Fortschrittsdialog angezeigt werden, nur zum Zeitpunkt der Zeit und nur während des Optimierungskurses unterschiedlich. Um den CMA-ES-Optimierer zu verwenden, musst du nur noch eine Zeile zu deinem Code hinzufügen: Damit wird die Optimierung mit den Standardeinstellungen ausgeführt, die für die meisten Fälle gut sind. Es ist zu beachten, wie es bei vielen Continuous-Space-Suchalgorithmen der Fall ist, dass der abnehmende Quarterteilparameter in Optimize () funciton-Aufrufe die Optimierungszeiten nicht wesentlich beeinflusst. Das Einzige, worauf es ankommt, ist das Problem, wenn es darum geht, die Anzahl der verschiedenen Parameter (Anzahl der Funktionsanrufe zu optimieren). Die Anzahl der Querstege pro Parameter kann eingestellt werden, ohne die Optimierungszeit zu beeinflussen. Verwenden Sie daher die feinste Auflösung, die gewünscht wird. In der Theorie sollte der Algorithmus in der Lage sein, Lösung in höchstens 900 (N3) (N3) Backtests zu finden, wobei quotNquot die Dimension ist. In der Praxis konvergiert es viel schneller. Zum Beispiel kann die Lösung in 3 (N3) dimensionalen Parameterraum (zB 100100100 1 Million erschöpfende Schritte) in so wenigen wie 500-900 CMA-ES-Schritten gefunden werden. Multi-Threaded Individuelle Optimierung Ab AmiBroker 5.70 zusätzlich zu Multisymbol Multithreading. Sie können eine Multi-Thread-Single-Symbol-Optimierung durchführen. Um auf diese Funktion zuzugreifen, klicken Sie auf den Dropdown-Pfeil neben der Schaltfläche "OKOptimizequot" im Fenster "Neue Analyse" und wählen Sie "Individuelles Optimieren" aus. "InDividual Optimizequot wird alle verfügbaren Prozessorkerne verwenden, um eine Single-Symbol-Optimierung durchzuführen, was es wesentlich schneller macht als die reguläre Optimierung. In quotCurrent symbolquot-Modus wird es eine Optimierung auf einem Symbol durchführen. In quotAll symbolsquot und quotFilterquot Modi verarbeitet es alle Symbole sequentiell, dh erste komplette Optimierung für das erste Symbol, dann Optimierung auf zweites Symbol usw. Einschränkungen: 1. Custom Backtester wird NICHT unterstützt (noch) 2. Smart Optimization Engines werden NICHT unterstützt - Nur EXHAUSTIVE optimierung funktioniert. Irgendwann können wir die Beschränkung loswerden (1) - wenn AmiBroker geändert wird, so benutzerdefinierter Backtester verwendet OLE nicht mehr. Aber (2) ist wahrscheinlich hier zu bleiben für long. October 14, 2011 Hinzugefügt 29. Februar 2012, zusätzliche Punkte zu beachten: 1) Dieses System hängt davon ab, genaue füllt zum Open-Preis. Um solche Fills zu erhalten, erfordert ein qualitativ hochwertiges Minimum-Delay-Daten-Feed und erweiterte Programmierkenntnisse, um Trade-Automation zu implementieren. 2) Bei der Ermittlung des Eintrittspreises etwas unter dem Open-Preis (Versuch, die Leistung zu verbessern) scheitert das System miserabel. Sogar die Verbesserung des Preises um nur einen Cent tötet das System. Dies deutet darauf hin, dass der Großteil des Gewinns aus Tagen kommt, an denen der Open-Preis gleich der Tagesniedrig war, d. H. Der Preis wurde von der Open verschoben und niemals unterschritten. Das ist natürlich offensichtlich. Um dies zu bestätigen, habe ich diese Testbedingung hinzugefügt (es schaut voraus), um Tage auszuschließen, auf denen Open Low: Buy Buy UND NICHT O L Das tötet das System und beweist, dass der Großteil des Gewinns von Tagen kommt, wo OL. Um dies weiter zu bestätigen, habe ich die entgegengesetzte Bedingung hinzugefügt: Buy Buy AND O L Das gibt fast unendliche Gewinne und beweist, dass die meisten Gewinne aus Tagen kommen, auf denen der Preis sofort aus dem Open geht und niemals unter ihm zurückkehrt. Der Versuch, den Einstiegspreis zu verbessern, ist ein Fehler, den man auf einen Stop-Set 1-2 ct über dem Open-Preis geben sollte, dies wird die Tage beseitigen, wenn der Preis sinkt und niemals zurückkehrt. Das verbessert die leistung deutlich. 3) Dieses System handelt von Knie-Jerk-Trader-Response-Patterns. Solche Muster sind in der Regel ertrunken durch große Volumen Handel daher dieses System funktioniert viel besser, wenn Sie Tickers mit Volumen zwischen 500.000 und 5.000.000 Aktientag wählen. Dies verbessert auch die Leistung deutlich. Das Hinzufügen der obigen zwei Merkmale führt zu einer Eigenkapitalkurve, die viel besser als die unten gezeigte ist. Tut mir leid, ich habe keine Zeit, das oben genauer zu dokumentieren. Viel Glück Dieser Beitrag skizziert eine sehr einfache Long-only-Trading-Idee, die kauft bei einem bestimmten Prozentsatz unterhalb von gestern8217s Low und beendet am nächsten Tag8217s Open. Während es manchmal schwierig ist, den genauen Open-Preis zu bekommen, macht die hohe Profitabilität dieses Systems einen guten Kandidaten für weitere Experimente. Das System funktioniert gut mit Watchlists wie die N100, SP500, SP1500, Russel 1000, etc. Leistung auf der Russel 1000, mit max. Offene Positionen auf 1 gesetzt, für den Zeitraum 12102003 bis 12102011, sieht so aus: Einige der anderen Watchlists geben weniger Exposition (Gewinne), aber das kommt mit niedrigeren DDs. Die Provisionen wurden auf 0,005 je Aktie festgelegt. Keine Marge verwendet. Keine explizite Rangliste wird verwendet Tickers werden gehandelt basierend auf ihrer alphabetischen Sortierung in der Watchlist. Dies mag seltsam erscheinen, ist aber signifikant: Umkehrung dieser Art scheitert das System. Dies könnte bedeuten, dass aufgrund von Echtzeit-Scan-Problemen Symbole, die oben in dieser Art aufgeführt werden, anders gehandelt werden können als die unten aufgeführten. Achten Sie auf Liquidität (Sie möchten vielleicht mehr als eine Position handeln) und Schlupf (Eintrag ist eher risikofrei, aber Ausgänge können problematisch sein). DDs sind signifikant, können aber mit verbesserten Echtzeit-gehandelten Einträgen und Ausgängen ausgeglichen werden. Beim automatischen Handel kann es möglich sein, OCA DAY-LMT Eingangsaufträge für alle Signale zu platzieren und nur zu warten und zu sehen, was füllt. Da Ausgänge schwieriger sind als Einträge, können Sie andere Ausstiegsstrategien erkunden. Parameter-Standardwerte werden nur aus einem Hut ausgewählt. Fast sicher können Sie sie optimieren oder dynamisch für einzelne Ticker einstellen. Ich habe dieses System im Walk-Forward-Modus kurz getestet und die Ergebnisse waren für alle getesteten Jahre rentabel. Abgesehen von der Anzahl der Aktien gehandelten Parameter erscheinen nicht sehr kritisch. Über-Optimierung doesn8217t scheinen ein Problem in diesem Fall. Der untenstehende Code ist sehr einfach und erfordert nur wenige Erklärungen. Allerdings ist es wichtig zu verstehen, dass dieses System einen kleinen Vorteil durch den Handel am Open genießt und durch die Berechnung der TrendMA mit dem gleichen Open-Preis. Manche mögen dies als zukünftiges Leck interpretieren, aber wenn man dieses System in Echtzeit tauscht, ist es nicht so. Viele Leute wissen nicht, dass, wenn Sie bei der Open handeln, können Sie diesen Preis auch in Ihren Berechnungen verwenden 8212, solange Sie sie in Echtzeit ausführen 8212 Hier ist AmiBroker und Technik kann Ihnen einen Vorteil geben. Wenn Sie Ref () zurück die TrendMA um eine Bar das System ist immer noch sehr profitabel aber DDs erhöhen für einige Watchlists. Wenn Sie feste Anlagen verwenden, ist der Unterschied vernachlässigbar. Das Trading-Verfahren wäre zu starten Scannen, bevor der Markt öffnet und entfernen Ticker, die so weit weg sind, dass sie unwahrscheinlich sind, um die OpenThresh zu treffen. So können Sie beginnen, 1000 Symbole zu scannen, aber sehr schnell wird die gescannte Zahl auf nur ein Dutzend oder so tickers schwinden. Wenn du dich um 9:30 Uhr ankommst, wird dein Echtzeit-Scan sehr schnell sein und du kannst deinen LMT-Auftrag ganz in die Nähe der Open 8211 stellen. Du kannst sogar den Open-Preis verbessern können. Obwohl ein paar Leute den Code unten ansahen und nichts falsches gefunden haben, scheinen die Gewinne für ein solches einfaches System ziemlich hoch zu sein. Bitte melden Sie Fehler, die Sie sehen können. Abgelegt von Herman um 7:03 Uhr unter Ideen (Experimentell) Comments Off auf EOD Gap-Trading Portfolio-System 1. September 2011 Diese Idee wurde am 3. Juli 2011 auf der Haupt-AmiBroker-Liste veröffentlicht. Es gab zahlreiche hervorragende Kommentare Die Liste und wenn Sie daran interessiert sind, an diesem System zu arbeiten, tut es Ihnen gut, sie alle vor dem Start zu lesen. Nach der Entsendung fand ich eine Reihe von Beiträgen auf dem Web diskutieren diese Trading-Idee, einige behaupteten, ein ähnliches System mit gutem Erfolg zu handeln. Ich verwies auf dieses System ein 8220Gap Trading8221 System, aber dies kann ein bisschen ein falsch, 8220Mean reversion8221 könnte eine bessere Klassifizierung sein. Googeln für Sie werden Ihnen viele weitere Treffer zu ähnlichen Systemen. Hier sind ein paar Links: Es scheint eine ziemlich weit diskutierte Trading-Idee zu sein, und ich schlage vor, dass Sie irgendwelche Googeln auf eigene Faust haben, um die neuesten zu lernen. Als Amibroker Benutzer haben Sie bessere Werkzeuge als die meisten Händler und Sie haben eine bessere Chance als die meisten zu kommen mit einer Variation, die funktioniert. Vielleicht mit ein wenig weniger Gewinne, und mit einer erheblichen Menge an zusätzlichen Code 8212 es won8217t ein 8220quicky8221 Projekt :-) Einige Leute kommentiert, dass dieses System wird nicht in echten Handel zu arbeiten, während sie richtig sein können andere sagen, Schemata wie diese Arbeit. Ich habe das System nicht beendet und kann behaupten, ob es handelbar ist oder nicht. Das System kauft bei einem bestimmten Prozentsatz unterhalb von gestern8217s niedrig, auf einer LMT-Reihenfolge und beendet am selben Tag am Ende. Abgelegt von Herman um 6:53 Uhr unter Ideen (Experimentell) Comments Off auf A Long-only EOD Gap Trading Idee Ich benutze ein kleines Setup-Kriterien, um für meine Aktien zu scannen. MACD-Standard, ich suche Histogramm 4 Down Bars und 1 Up Bar für Kaufsignal (ich habe das Histogramm auf rot für unten und blau für bis so kann ich deutlich sehen). MACD über Zero Line RSI über 30 Dieses System basiert auf Trendhandel. Kauf auf Pullback, wenn der Markt seinen Trend fortsetzt. So scannen Sie nach MACD Trend Setups: 1) Fügen Sie die folgende Formel in ein Diagramm ein. 2) Führen Sie einen Scan in AA mit SMACDTrend mit allen Symbolen aus. N letzte Tage N 1 und Sync-Diagramm bei Auswahl als Einstellungen. Bestände, die die Kriterien erfüllen, werden in der Ergebnisliste ausgewiesen. Anmerkung: Einige Variationen der Setup-Regeln können Signale definieren, die ziemlich selten sind und in kleinen Datenbanken ist es möglich, dass es keine Setups an einem bestimmten Tag gibt (daher wird kein Bestand vom Scan gemeldet). 3) Klicken Sie auf ein beliebiges Symbol im Ergebnisbereich, um das Diagramm für dieses Symbol im Hintergrund anzuzeigen. Hinweis: In diesem Beispiel wurde eine Trainingsdatenbank verwendet, die nur Daten bis zu 5112007 enthält. Handelsidee von protraderinc Kommentare und Formel von Bill 8211 WaveMechanic. Abgelegt von brianz um 11:06 Uhr unter Ideen (Experimentell) Comments Off auf MACD Trend System 14. Oktober 2007 Abgelegt von brianz um 10:43 Uhr unter Ideen (Experimentell) Comments Off auf 15 Day Performers Trading System August 19, 2007 Dies ist Die erste in einer Serie aus KISS (halten Sie es einfach, dumm) Trading Ideen für Sie zu spielen mit. Alle hier vorgestellten Systemideen sind unbewiesen, unvollendet und können Fehler enthalten. Sie sollen mögliche Muster für die weitere Exploration zeigen. Wie immer sind Sie eingeladen, Kommentare zu machen und Ihre eigenen Ideen zu dieser Serie hinzuzufügen. Ich bevorzuge Echtzeit-Systeme, die schnell handeln, automatisiert sind und keine traditionellen Indikatoren haben. Vorzugsweise sollten sie keine optimierbaren Parameter haben, aber ich kann dieses Ziel nicht immer erfüllen. Nicht alle Systeme werden so einfach sein, dass es einige gibt, die einfache Mittelwertbildung oder HHVLLV-Typ-Funktionen verwenden. Das erste System, das unten gezeigt wird, ist eine Kopie des Demosystems, das ich verwende, um Trade-Automation-Routinen anderwohin auf dieser Seite zu entwickeln. Echtzeit-Gap-Trading. Um zu sehen, wie das funktioniert, sollten Sie Backtest es auf 1-Minuten-Daten mit einer Periodizität im Bereich von 5-60 Minuten. Ihr erster Eindruck kann sein, dass diese Gewinne einfach auf einen Aufwärtsmarkt zurückzuführen sind, aber die Tatsache, dass lange und kurze Gewinne ungefähr gleich sind, gibt es mehr dazu. Weil 98 von allen Trades zwischen 9.30 Uhr und 10.30 Uhr fallen, ist diese Art von System schön, wenn man nur eine kurze Zeit jeden Tag handeln möchte. Dies verringert das Risiko in Bezug auf die Marktbelastung und gibt Ihnen mehr Zeit, um andere Aktivitäten zu genießen. Backtesting auf der NASDAQ-100 Watchlist (einzelne Backtests, 15 Min. Periodizität) gibt die Gewinne, die unten für den Zeitraum von 1 März 2007 bis 17 AUG 2007 gezeigt werden. Ticker Namen werden weggelassen, um das Diagramm zu halten, das das Diagramm einfach ein Nettogewinn zeigt Bar für jeden getesteten Ticker Durchschnittliche Exposition für dieses System ist etwa 15 daher können Sie in der Lage sein, Portfolios zu handeln, um Gewinne zu steigern und die Eigenkapitalkurven zu glätten. Seien Sie gewarnt, dass in seiner rohen Form die Drawdowns inakzeptabel sind und dass es möglicherweise Volumenbeschränkungen für viele Ticker gibt. Da dieses System eine niedrige Exposition hat, kann es ein Kandidat für Markt-Scanning und Rangliste Portfolio-Trading sein. RARs wäre ein Hinweis auf die absoluten maximalen Gewinne, die man erhalten könnte, wenn es gelang, die Exposition gegenüber nahezu 100 zu erhöhen. Allerdings kann die Preisbewegung von verschiedenen Tickern korreliert werden, und Trades von verschiedenen Tickern können sich überlappen. Wenn viele Tickers gleichzeitig handeln, wäre es schwierig, die Systembelastung zu erhöhen. Filed by Herman at 1:49 pm under Ideas (Experimental) Comments Off on KISS-001: Intraday Gap Trading August 17, 2007 You are invited to submit links to system ideas in comments to this post. Gap Trading Strategies 8211 Stockcharts Intraday Moving Average Crossover with Position Sizing 8211 NeoTicker Volatility-Breakout-Systems 8211 Traders Log Ten day HighLow system 8211 StockWeblog Reversion Systems 8211 SeekingAlpha Systems Traders Club . Trader Club Bulletins. July 16, 2007 This category is reserved for real working trading systems, i. e. that you have traded at some point in time or would consider trading. Since the criteria for tradability varies from person to person, and since systems may work or not depending on how they are traded, it will be difficult to screen contributions here. With respect to what is posted here, keep an open mind and consider that the poster considers the system tradable. You can contribute by posting as an author (requires registration ) or in a comment to this post. Filed by Herman at 11:14 am under Practical (Profitable) Comments Off on Introduction to Trading Systems 8211 Practical This is where you can share trading systems that are marginally profitable, i. e. those that should not be traded as they are but that show potential. Typically this would be a basic system that is profitable but experiences draw downs of 50. Such systems can often be improved by adding Stops, Targets, Money Management, Portfolio techniques, etc. The reality is that while you may not have the expertise to make it work someone else may. Almost all of us find trading system ideas in books and magazines that we then code in AFL for evaluation. Some of these systems may have been around for many years while others are new ideas. After coding them, almost always, we are disappointed and chuck out the system (work). Instead of throwing out your work you are invited to post the system here to give another developer a chance to fix it. You are invited to contribute as an author (requires registration ) or in a comment to this post. Filed by Herman at 11:04 am under Ideas (Experimental) Comments Off on Introduction to Trading Systems 8211 IdeasOctober 14, 2011 Added February 29, 2012, additional points to consider: 1) This system depends on getting accurate fills at the Open price. To obtain such fills requires a quality minimum-delay data feed and advanced programming skills to implement trade-automation. 2) When setting the entry price slightly below the Open price (trying to improve performance) the system fails miserably. Even improving the price by just one cent kills the system. This suggests that most of the profit comes from days on which the Open price was equal to the daily Low, i. e. the price moved up from the Open and never dropped below it. This, of course, is obvious. To confirm this I added this test condition (it looks ahead) to exclude days on which Open Low: Buy Buy AND NOT O L This kills the system and proves that most of the profit comes from days where OL. To further confirm this I added the opposite condition: Buy Buy AND O L This gives nearly infinite profits and proves that most profits come from days on which the price moves up immediately from the Open and never returns below it. Trying to improve the entry price is a mistake one should enter on a Stop set 1-2 ct above the Open price, this will eliminate days when the price drops and never turns back. This improves performance significantly. 3) This system trades knee-jerk trader-responsespatterns. Such patterns are usually drowned by large volume trading hence this system works far better when you select tickers with volumes between 500,000 and 5,000,000 sharesday. This also improves performance significantly. Adding the above two features results in an equity curve much better than that shown below. Sorry, I have no time to document the above in greater detail. Good luck This post outlines a very simple Long-only trading idea that Buys at a given percentage below yesterday8217s Low, and exits at the next day8217s Open. While sometimes it may be difficult to get the exact Open price, the high profitability of this system makes it a good candidate for further experimentation. The system works well with Watchlists like the N100, SP500, SP1500, Russel 1000, etc. Performance on the Russel 1000, with max. open positions set to 1, for the period 12102003 to 12102011, looks like this: Some of the other Watchlists give less exposure (profits) but this comes with lower DDs. Commissions were set to 0.005 per share. No margin used. No explicit ranking is used tickers are traded based on their alphabetical sort in the Watchlist. This may seem odd but is significant: reversing this sort the system fails. This might mean that, due to real-time scanning problems, symbols listed at the top of this sort may be traded differently than those listed at the bottom. Pay attention to Liquidity (you might want to trade more than one position) and slippage (Entry is rather risk-free, but exits may be problematic). DDs are significant but may be offset with improved real-time traded entries and exits. When trading automatically it may be possible to place OCA DAY-LMT entry orders for all signals and just wait and see what fills. Since exits are more difficult than entries you may wish to explore other exit strategies. Parameter default values are just picked out of a hat. Almost certainly you can Optimize them or adjust them dynamically for individual tickers. I briefly tested this system in Walk-Forward mode and the results were profitable for all years tested. Except for the number of stocks traded parameters appear not very critical. Over-optimizing doesn8217t seem a problem in this case. The code below is very simple and requires few explanations. However it is important to understand that this system enjoys a small edge by trading at the Open, and by calculating the TrendMA using the same Open price. Some might interpret this as future leak, however if you trade this system in real-time, it is not. Many people do not realize that if you trade at the Open you can also use this price in your calculations 8212 as long as you perform them in real-time 8212 this is where AmiBroker and technology can give you an edge. If you Ref() back the TrendMA by one bar the system is still very profitable however DDs increase for some Watchlists. If you use fixed investments the difference is negligible. The trading procedure would be to start scanning before the market opens and remove tickers that are priced so remote that they are unlikely to meet the OpenThresh. Thus you may start scanning 1000 symbols but very quickly the number scanned will dwindle to just a dozen or so tickers. When you approach 9:30am your real-time scan will be very fast and you will be able to place your LMT order very close to the Open 8211 you may even be able to improve on the Open price. Even though a few people looked at the code below and found nothing wrong, the profits seem rather high for such a simple system. Please report errors you may see. Filed by Herman at 7:03 pm under Ideas (Experimental) Comments Off on EOD Gap-Trading Portfolio systemAmibroker AFL Collection My trading courses now come with complete Amibroker system code for over 20 strategies. Check them out here . The Amibroker trading platform is extremely fast, flexible and is excellent value for money. I8217ve been using the software for around five years now and my Amibroker AFL collection has grown considerably in that time. Whether you8217re interested in building trading systems, trading long term trends, investing in blue-chip companies, or picking penny stocks, you8217ll be able to do that and lots more with Amibroker. Best Amibroker AFL Collection There are two places I go to look for free Amibroker AFL. One is the Amibroker online library and the other is the Yahoo Amibroker forum . I recently came across this collection of 129 Amibroker systems too. I haven8217t delved into it too deeply yet but the systems look simple and easy to use. These are all great places to start learning about Amibroker but as with most sources of free material some hunting is often required in order to get to the good stuff. The other problem with any Amibroker AFL collection, is that any trading system you find online is available for anyone to use. Because of this, you8217re pretty unlikely to find one that works, or at least works well. Nevertheless, Amibroker AFL that you find online can always be adjusted, altered and learnt from for your own means. Don8217t forget the data Another important thing to remember when using Amibroker is that a trading system is only as good as the data you8217re using. It is essential to use high quality, clean stock data. Otherwise you will end up with a flawed trading system that will lose money in real trading. I use the services at Norgate Premium Data and am very happy, especially with the new historical constituents database which comes with the Alpha program. You can get a free trial of the service here . AFL in my courses If you are looking for Amibroker AFL, my courses contain a collection of over 20 trading systems, some trend following and some mean reverting. These are tested on at least ten years of historical stock data, and in the case of my new Trend Following For Stocks course, the system and code has been back-tested over 30 years. The trading systems shown on my courses are the best trading systems I8217ve found from years of back-testing and research. They produce returns ranging from 13 CAR (compound annual return) to over 50 CAR. And they are all simple, straightforward systems that can be easily implemented on a daily or weekly basis. Trading the Noise AFL For example, trading system 4 in my HTBWS course is called 8216Trading the Noise Plus Shorts8217 . It uses a very simple indicator to measure the level of noise in a stock in order to determine when it is trending. It returned 23.93 CAR over 10 years and had only one down year which was 2002. You can get the free Amibroker AFL for the strategy here. RSI with the VIX AFL Likewise, trading system 15, is called 8216RSI with the Vix8217 and returned 25.73 in backtesting. It uses a simple trend following strategy using the RSI indicator and the VIX volatility index as a filter. Get the free Code Here Cherry Picking Penny Stocks Trading system 18, called 8216Cherry Picking Penny Stocks8217, delivers 30.45 CAR over 10 years of stock market data and has a maximum system drawdown of -30.18 . The system picks penny stocks that are moving in strong upward trends using a filter based on the ATR (average true range function). It also has a price filter though to avoid the really illiquid penny stocks. And these trading systems are also mentioned in my book which is available on Amazon. The book, however, does not include any of the new strategies that I have since added to the courses. Such as Trend Following For Stocks, Market Timing with the VIX and the Unusual Volume system. See More Posts Like This One Writing AFL for Amibroker Learn Amibroker with TradingMarkets: Review My stock market book 20 Quantitative Trading Systems How to build a Nifty positional trading system in under 3 minutes using Amibroker 20 Basic Amibroker Buy Arguments How to build profitable mean reversion trading systems This week8217s stock picks 29 April 2014 Can you make money in penny stocks Simple breakout trading system 038 code 16 Best Trading Books Of All Time Best Trading Audiobook (Download Free On Audible) Finding the Next Starbucks by Michael Moe Review Require to create Popup Alert AFL for Amibroker i have draw the horizontaltrend line in so many stocks in multipal time frame (2 min. 5 min. 15min. 30 min. hrs. and daily) and whenever price will cross and close above (selected time candle) of horizontaltrend line then require 8220POPUP8221 alert and same think below the horizontaltrend line and close the price below the horizontaltrend line. input area are as under. Input Area 82128212821282128212- selective stock, selective time frame price close above horizontaltrend line price close below horizontaltrend line Let me know the charges Sorry, I don8217t tend to do custom programming. I8217m sure there are others who can assist you. Vielen Dank. sir do you have afl or afl code for the gunners 24 based on gann fan and sq of 9 technique Leave a Reply Cancel reply Categories JB Marwood Independent trader, analyst writer JB Marwood is an independent trader, educator and writer specialising in trading systems and stock trading. He began his career trading the FTSE 100 and German Bund for a trading house in London and now works through his own company. He also writes for Seeking Alpha and other financial publications. Google Please remember financial trading is risky and you could incur significant loss of capital. Nothing on this site is to be construed as personalised investment advice. Please see the full disclaimer .
No comments:
Post a Comment