14. Oktober 2011 Hinzugefügt 29. Februar 2012, zusätzliche Punkte zu beachten: 1) Dieses System hängt davon ab, genaue Fills 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 kurz im Walk-Forward-Modus 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 Tickers 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. Abgelegt von Herman um 1:49 Uhr unter Ideen (Experimentell) Comments Off auf KISS-001: Intraday Gap Trading 17. August 2007 Sie sind eingeladen, Links zu Systemideen in Kommentaren zu diesem Beitrag einzureichen. Gap Trading Strategies 8211 Stockcharts Intraday Moving Durchschnittliche Crossover mit Position Sizing 8211 NeoTicker Volatility-Breakout-Systeme 8211 Trader Log 10 Tage HighLow System 8211 StockWeblog Reversion Systems 8211 SucheAlpha Systems Traders Club. Trader Club Bulletins 16. Juli 2007 Diese Kategorie ist für echte Arbeit Handelssysteme reserviert, d. h. dass Sie zu irgendeinem Zeitpunkt gehandelt haben oder den Handel betrachten würden. Da die Kriterien für die Handelbarkeit von Person zu Person variieren, und da Systeme funktionieren oder nicht, je nachdem, wie sie gehandelt werden, wird es schwierig sein, Beiträge hier zu betrachten. In Bezug auf das, was hier gepostet wird, halten Sie einen offenen Geist und betrachten, dass das Plakat betrachtet das System handelbar. Sie können durch die Veröffentlichung als Autor (erforderlich Registrierung) oder in einem Kommentar zu diesem Beitrag beitragen. Abgelegt von Herman um 11:14 Uhr unter Praktisch (Profitabel) Comments Off auf Einführung in Trading Systems 8211 Praktisch Hier können Sie Handelssysteme teilen, die marginal rentabel sind, d. h. diejenigen, die nicht gehandelt werden sollten, aber das zeigt Potenzial. In der Regel wäre dies ein grundlegendes System, das rentabel ist, aber erfahrungen von 50. Solche Systeme können oft durch Hinzufügen von Stopps, Targets, Money Management, Portfolio-Techniken, etc. verbessert werden. Die Realität ist, dass, während Sie möglicherweise nicht das Know-how zu machen Es funktioniert jemand anderes kann. Fast alle von uns finden Handelssystemideen in Büchern und Zeitschriften, die wir dann in AFL zur Auswertung kodieren. Einige dieser Systeme gibt es schon seit vielen Jahren, während andere neue Ideen sind. Nach der Codierung, fast immer, sind wir enttäuscht und chuck das System (Arbeit). Anstatt deine Arbeit zu werfen, bist du eingeladen, das System hier zu posten, um einem anderen Entwickler eine Chance zu geben, es zu beheben. Sie sind eingeladen, als Autor (zur Registrierung) oder in einen Kommentar zu diesem Beitrag beizutragen. Abgelegt von Herman um 11:04 Uhr unter Ideen (Experimentell) Comments Off auf Einführung in Trading Systems 8211 IdeenBack-Testen Ihrer Trading-Ideen Eines der nützlichsten Dinge, die Sie im Analyse-Fenster tun können, ist, Ihre Trading-Strategie auf zu testen historische Daten. Dies kann Ihnen wertvolle Einblicke in Stärken und Schwachstellen Ihres Systems geben, bevor Sie echtes Geld investieren. Diese einzelne AmiBroker-Funktion kann für Sie viel Geld sparen. Schreiben Sie Ihre Handelsregeln Zuerst müssen Sie objektive (oder mechanische) Regeln haben, um den Markt zu betreten und zu verlassen. Dieser Schritt ist die Basis Ihrer Strategie und Sie müssen darüber nachdenken, da das System mit Ihrer Risikobereitschaft, Portfolio-Größe, Geld-Management-Techniken und viele andere individuelle Faktoren übereinstimmen muss. Sobald Sie Ihre eigenen Regeln für den Handel haben, sollten Sie sie als Kauf - und Verkaufsregeln in AmiBroker Formula Lanugage schreiben (plus kurz und decken, wenn Sie auch kurz handeln wollen). In diesem Kapitel werden wir sehr grundlegende gleitende durchschnittliche Cross-Over-System zu betrachten. Das System würde Aktienabrechnungen kaufen, wenn der enge Preis über 45-Tage-exponentiell gleitenden Durchschnitt steigt und verkauft Aktienbeteiligungen, wenn der Schlusskurs unter 45-Tage-exponentielle gleitenden Durchschnitt sinkt. Der exponentielle gleitende Durchschnitt kann in AFL mit seiner eingebauten Funktion EMA berechnet werden. Alles, was Sie tun müssen, ist, das Eingabe-Array und die Mittelungsperiode anzugeben, so dass der 45-tägige exponentielle gleitende Durchschnitt der Schlusskurse durch die folgende Aussage erhalten werden kann: Die enge Kennung bezieht sich auf das eingebaute Array, das die Schlusspreise des aktuell analysierten Symbols hält . Um zu testen, ob der enge Preis über den exponentiellen gleitenden Durchschnitt hinausgeht, verwenden wir die integrierte Kreuzfunktion: kaufen Kreuz (schließen, ema (schließen, 45)) Die obige Aussage definiert eine Kaufhandelsregel. Es gibt quot1quot oder quottruequot, wenn enge Preiskreuze über Ema (schließen, 45). Dann können wir die Verkaufsregel schreiben, die bei der Gegenüberstellung eintreten würde - enge Preiskreuze unter Ema (nahe, 45): Kreuz verkaufen (ema (schließen, 45), in der Nähe) Bitte beachten Sie, dass wir dieselbe Kreuzfunktion verwenden Die entgegengesetzte Argumentation. Die komplette Formel für lange Trades wird so aussehen: Kreuz kaufen (schließen, Ema (schließen, 45)) Kreuz verkaufen (Ema (schließen, 45), in der Nähe) HINWEIS: Um neue Formel zu erstellen, öffnet man den Formel-Editor mit dem Analysis-gtFormula Editor Menü, geben Sie die Formel ein und wählen Sie Tools-gtSend zum Analysemenü im Formel-Editor Um das System erneut zu testen, klicken Sie einfach auf die Schaltfläche "Zurück" im Fenster "Automatische Analyse". Stellen Sie sicher, dass Sie in die Formel eingegeben haben, die mindestens Kauf - und Verkaufshandelsregeln (wie oben gezeigt) enthält. Wenn die Formel korrekt ist, beginnt AmiBroker, Ihre Symbole nach Ihren Handelsregeln zu analysieren und erzeugt eine Liste simulierter Trades. Der ganze Prozess ist sehr schnell - Sie können Tausende von Symbolen in wenigen Minuten wieder testen. Das Fortschrittsfenster zeigt Ihnen die voraussichtliche Fertigstellungszeit. Wenn du den Prozess stoppen möchtest, kannst du im Fortschrittsfenster einfach auf Abbrechen klicken. Wenn der Prozess beendet ist, wird die Liste der simulierten Trades im unteren Teil des automatischen Analysefensters angezeigt. (Der Ergebnisbereich). Sie können untersuchen, wann die Kauf - und Verkaufssignale nur durch einen Doppelklick auf den Handel im Ergebnisbereich aufgetreten sind. Dies gibt Ihnen rohe oder ungefilterte Signale für jede Bar, wenn Kauf - und Verkaufsbedingungen erfüllt sind. Wenn Sie nur einzelne Handelspfeile sehen möchten (Öffnen und Schließen des aktuell ausgewählten Handels), sollten Sie auf die Zeile doppelklicken, während Sie die SHIFT-Taste gedrückt halten. Alternativ können Sie die Art der Anzeige auswählen, indem Sie im Kontextmenü die entsprechende Option auswählen, wenn Sie mit einer rechten Maustaste auf den Ergebnisbereich klicken. Zusätzlich zu der Ergebnisliste können Sie sehr detaillierte Statistiken über die Leistung Ihres Systems erhalten, indem Sie auf die Schaltfläche Bericht klicken. Um mehr über Berichtsstatistiken zu erfahren, schau dir bitte die Beschreibung des Berichtfensters an. Ändern der Back-Test-Einstellungen Zurück-Test-Engine in AmiBroker verwendet einige vordefinierte Werte für die Ausführung seiner Aufgabe einschließlich der Portfolio-Größe, Periodizität (täglich wöchentlich monatlich), Höhe der Provision, Zinssatz, maximale Verlust und Gewinn Ziel stoppt, Art der Trades, Preisfelder und so auf. Alle diese Einstellungen können vom Benutzer über das Einstellungsfenster geändert werden. Nachdem Sie die Einstellungen geändert haben, denken Sie bitte daran, Ihren Back-Test erneut auszuführen, wenn die Ergebnisse mit den Einstellungen synchronisiert werden sollen. Zum Beispiel, um den Test auf wöchentlichen Stäben statt täglich zu testen, klicken Sie einfach auf die Schaltfläche Einstellungen, wählen Sie Wöchentlich aus Periodizität Kombinationsfeld und klicken Sie auf OK. Führen Sie dann Ihre Analyse aus, indem Sie auf den Test klicken. Reservierte Variablennamen Die folgende Tabelle zeigt die Namen der reservierten Variablen, die von Automatic Analyzer verwendet werden. Die Bedeutung und Beispiele zu deren Verwendung finden Sie weiter unten in diesem Kapitel. Ermöglicht die Kontrolle des Dollarbetrags oder des Prozentsatzes des Portfolios, das in den Handel investiert wird (siehe Erläuterungen unten) Automatische Analyse (neu in 3.9) Bisher diskutierten wir eine ziemlich einfache Verwendung des Back-Testers. AmiBroker, unterstützt jedoch viel mehr anspruchsvolle Methoden und Konzepte, die später in diesem Kapitel diskutiert werden. Bitte beachten Sie, dass der Anfänger-Benutzer zuerst ein wenig mit den einfacheren Themen spielen sollte, die oben beschrieben wurden, bevor Sie fortfahren. Also, wenn Sie bereit sind, schauen Sie sich bitte die folgenden vor kurzem vorgestellten Features des Back-Testers an: a) AFL Scripting Host für fortgeschrittene Formel Schriftsteller b) verbesserte Unterstützung für kurze Trades c) die Art und Weise zu steuern Auftrag Ausführung Preis von der Script d) verschiedene Arten von Stopps im hinteren Tester e) Positionsgröße f) runde Losgröße und Tickgröße g) Randkonto h) Backtesting Futures AFL Scripting Host ist ein fortgeschrittenes Thema, das in einem separaten Dokument hier abgedeckt ist und ich werde nicht diskutieren Es in diesem Dokument. Verbleibende Features sind viel einfacher zu verstehen. In den Vorgängerversionen von AmiBroker, wenn du das System mit Hilfe von Lang - und Kurzgeschichten retten wolltest, könntest du nur eine Stop-and-Reverse-Strategie simulieren. Als die lange Position geschlossen wurde, wurde sofort eine neue Short-Position eröffnet. Es war, weil kaufen und verkaufen reservierte Variablen wurden für beide Arten von Trades verwendet. Jetzt (mit Version 3.59 oder höher) gibt es getrennte reservierte Variablen zum Öffnen und Schließen von langen und kurzen Trades: Kauf - quottruequot oder 1 Wert öffnet lange Handel verkaufen - quottruequot oder 1 Wert schließt lange Handel kurz - quottruequot oder 1 Wert öffnet kurze Handelsabdeckung - quottruequot oder 1 Wert schließt kurzer Handel Som, um kurze Trades zu retten, müssen Sie kurze und Cover-Variablen zuordnen. Wenn Sie Stop-and-Reverse-System (immer auf dem Markt) einfach zuweisen, verkaufen zu kurz und kaufen, um zu decken kurz verkaufen Deckung zu kaufen Dies simuliert die Art und Weise vor-3.59 Versionen funktionierte. Aber jetzt AmiBroker ermöglicht es Ihnen, getrennte Handelsregeln zu haben, um lange zu gehen und kurz zu gehen, wie in diesem einfachen Beispiel gezeigt: lange Trades Ein-und Ausreise Regeln: kaufen Kreuz (cci (), 100) verkaufen Kreuz (100, cci ()) kurz (Cci (), -100) Beachten Sie, dass in diesem Beispiel, wenn CCI zwischen -100 und 100 ist, Sie aus dem Markt sind. Steuern des Handelspreises AmiBroker bietet jetzt 4 neue reservierte Variablen zur Angabe des Preises, bei dem Kauf-, Verkaufs-, Kurz - und Deckungsaufträge ausgeführt werden. Diese Arrays haben folgende Namen: Kaufpreis, Verkaufspreis, Shortprice und Deckungspreis. Die Hauptanwendung dieser Variablen ist die Kontrolle des Handelspreises: BuyPrice IIF (Tag 1) HIGH, CLOSE) am Montag kaufen bei High, sonst kaufen Sie in der Nähe So können Sie die folgenden schreiben, um echte Stop-Bestellungen zu simulieren: BuyStop. Die Formel für den Kauf Stop Level SellStop. Die Formel für den Verkauf Stop-Level, wenn jederzeit während des Tages Preise steigen über Buystop-Ebene (highgtbuystop) der Kaufauftrag stattfindet (bei buystop oder niedrig je nachdem, was höher ist) Kaufen Cross (High, BuyStop) wenn jederzeit während des Tages Preise unter den Verkaufspreis fallen (SellPrice, SellStop) BuyPrice max (BuyStop, Low) Sicherstellen, dass der Kaufpreis nicht weniger als Low SellPrice min (SellStop, High) sicher ist Verkaufspreis nicht größer als hoch Bitte beachten Sie, dass AmiBroker die Kaufpreis-, Verkaufspreis-, Shortprice - und Coverprice-Array-Variablen mit den im Systemtest-Einstellungsfenster definierten Werten festlegt (siehe unten), so dass Sie es aber nicht in Ihrer Formel definieren müssen. Wenn Sie es nicht definieren, arbeitet AmiBroker wie in den alten Versionen. Beim Back-Testing überprüft AmiBroker, ob die Werte, die Sie dem Kaufpreis, dem Verkaufspreis, dem Shortprice, dem Deckungspreis zugewiesen haben, in den High-Low-Bereich der angegebenen Bar passen. Wenn nicht, wird AmiBroker es auf hohen Preis anpassen (wenn Preis-Array-Wert höher als hoch ist) oder auf den niedrigen Preis (wenn Preis-Array-Wert niedriger als niedrig ist) Profit-Ziel stoppt Wie Sie in der Abbildung oben sehen können, neue Einstellungen für Profit-Zielstopps sind im System-Test-Einstellungsfenster verfügbar. Profit-Ziel-Stops werden ausgeführt, wenn der hohe Preis für einen bestimmten Tag die Stopp-Ebene übersteigt, die als Prozentsatz oder Punktzunahme vom Kaufpreis gegeben werden kann. Standardmäßig werden Stopps zu einem Preis ausgeführt, den Sie als Verkaufspreis-Array (für lange Trades) oder Cover-Price-Array definieren (für kurze Trades). Dieses Verhalten kann durch die Verwendung von quotExit bei der Stopquot-Funktion geändert werden. QuotExit bei stopquot-Funktion Wenn du bei den Stopp-Box-Feldern die Markierung von noExit bei Stopquot-Box markierst, werden die Stopps auf exakte Stop-Ebene ausgeführt, dh wenn du Profit-Ziel-Stop bei 10 deinen Stop definiert hast und der Kaufpreis 50 Stopp-Order wird bei 55 durchgeführt, auch wenn Ihr Verkaufspreisarray enthält unterschiedlichen Wert (zB Schlusskurs von 56). Maximaler Verlust stoppt die Arbeit in ähnlicher Weise - sie werden ausgeführt, wenn der niedrige Preis für einen bestimmten Tag unter die Stopp-Ebene sinkt, die als Prozentsatz oder Punktzunahme vom Kaufpreis gegeben werden kann. Diese Art von Stopp wird verwendet, um Gewinne zu schützen, wie es ist Verfolgt Ihren Handel, so dass jedes Mal, wenn ein Positionswert ein neues Hoch erreicht, der nachlaufende Stopp auf einer höheren Ebene platziert wird. Wenn der Gewinn unter die nachlaufende Stopp-Ebene sinkt, wird die Position geschlossen. Dieser Mechanismus wird in der Abbildung unten dargestellt (10 Nachlaufstopp ist gezeigt): eine Stichproben-Low-Level-Implementierung des Profit-Ziel-Stopps in AFL: Buy Cross (MACD (), Signal ()) für (i 0 i lt BarCount i) Wenn (priceatbuy 0 Buy i) priceatbuy BuyPrice i if (priceatbuy gt 0 SellPrice i gt 1.1 priceatbuy) Verkaufen i 1 SellPrice i 1.1 priceatbuy priceatbuy 0 sonst Verkaufen i 0 Dies ist ein neues Feature in Version 3.9. Positionsgröße im Backtester wird durch neue reservierte Variable implementiert PositionSize ltsize arraygt Jetzt können Sie den Dollarbetrag oder den Prozentsatz des Portfolios steuern, das in den Handelspartner investiert wird, der in den Handel investiert ist, der in den Handel investiert wird: PositionSize 1000 invest 1000 in jedem Handels-negativen Zahlen -100 ..- 1 definieren Prozentsatz: -100 gibt 100 der aktuellen Portfolio-Größe, -33 gibt 33 der verfügbaren Eigenkapital zum Beispiel: PositionSize -50 investiert immer nur die Hälfte des aktuellen Equity Dynamic Sizing Beispiel: PositionSize - 100 RSI () als RSI variiert von 0..100 Dies führt zu einer Position abhängig von RSI-Werten - gt niedrige Werte von RSI wird zu höheren Prozentsatz investiert Wenn weniger als 100 der verfügbaren Bargeld investiert wird, dann die verbleibenden Betrag verdient Zinssatz Wie in den Einstellungen definiert. Es gibt auch ein neues Kontrollkästchen im AA-Einstellungsfenster: quotAllow Positionsgröße shrinkingquot - das steuert, wie der Backtester die Situation verarbeitet, wenn die angeforderte Positionsgröße (über PositionSize-Variable) das verfügbare Bargeld übersteigt: Wenn dieses Flag markiert ist, wird die Position mit der Größe eingegeben Vorhandenes Bargeld, wenn es unkontrolliert ist, wird die Position nicht eingegeben. Um die tatsächlichen Positionsgrößen zu sehen, verwenden Sie bitte einen neuen Berichtsmodus im AA-Einstellungsfenster: quotTrade-Liste mit Preisen und Pos. Sizequot Für das Ende ist hier ein Beispiel für Tharps ATR-basierte Positionsgrößen-Technik, die in AFL kodiert ist: Kaufen Sie ltyour kaufen Formel heregt Verkaufen 0 Verkauf nur durch Stop TrailStopAmount 2 ATR (20) Hauptstadt 100000 WICHTIG: Setzen Sie es auch in den Einstellungen: Initial Equity Risk 0.01Kapital PositionSize (RiskTrailStopAmount) BuyPrice ApplyStop (2, 2, TrailStopAmount, 1) Die Technik könnte wie folgt zusammengefasst werden: Das Gesamt-Eigenkapital pro Symbol beträgt 100.000, wir setzen das Risiko auf 1 des gesamten Eigenkapitals. Der Risikostufe wird wie folgt definiert: Wenn ein nachlaufender Stopp bei einer 50 Aktie bei etwa 45 (der Wert von zwei ATRs gegen die Position) liegt, wird der 5 Verlust in das 1000 Risiko aufgeteilt, um 200 Aktien zu kaufen. So ist das Verlustrisiko 1000, aber das Zuteilungsrisiko beträgt 200 Aktien x 50share oder 10.000. Also, wir vergeben 10 des Eigenkapitals auf den Kauf, aber nur riskieren 1000. (Bearbeitete Auszug aus der AmiBroker Mailing-Liste) Runde Losgröße und Tick Größe Verschiedene Instrumente werden mit verschiedenen quottrading unitsquot oder quotblocksquot gehandelt. Zum Beispiel können Sie fraktionierte Anzahl von Einheiten von Investmentfonds kaufen, aber Sie können nicht kaufen gebrochene Anzahl von Aktien. Manchmal muss man in 10s oder 100s viel kaufen. AmiBroker können Sie nun die Blockgröße auf globaler und per-Symbol-Ebene angeben. In der Symbol-gtInformation-Seite können Sie in der Symbol-gtInformation-Seite per-symbol runde Losgröße definieren (Bild 3). Der Wert von Null bedeutet, dass das Symbol keine spezielle runde Losgröße hat und von der Seite "Automatische Analyseeinstellungen" (Bild 1) die Option "Default Round Lot Sizequot" (globale Einstellung) verwendet. Wenn die Standardgröße auch auf Null gesetzt ist, bedeutet dies, dass die Anzahl der Aktienbeteiligungen erlaubt ist. Sie können auch die Losgröße direkt aus Ihrer AFL-Formel mit RoundLotSize reservierten Variablen steuern, zum Beispiel: Diese Einstellung steuert die minimale Preisbewegung des gegebenen Symbols. Sie können es auf globaler und per-Symbol-Ebene definieren. Wie bei der runden Losgröße kannst du in der Symbol-gtInformation-Seite (Abb. 3) per-Symbol-Tick-Größe definieren. Der Wert von null weist AmiBroker an, die in der Einstellungsseite (Bild 1) des automatischen Analysefensters definierte Quittungs-Tick-Größe zu verwenden. Wenn die Standard-Tick-Größe auch auf Null gesetzt ist, bedeutet dies, dass es keinen minimalen Preisverschiebung gibt. Sie können die Tickgröße auch aus der AFL-Formel mit der TickSize reservierten Variablen einstellen und abrufen, zB: Beachten Sie, dass die Tick-Größeneinstellung nur NUR-Trades betrifft, die durch eingebaute Stops und ApplyStop () verlassen wurden. Der Backtester geht davon aus, dass die Preisdaten den Tickgrößenanforderungen folgen und die von dem Benutzer gelieferten Preisarrays nicht ändern. Die Angabe von Zeckengröße ist also nur dann sinnvoll, wenn man eingebaute Stopps benutzt, so dass Ausstiegspunkte bei den Quotenpreisstufen anstelle der berechneten Werte erzeugt werden. Zum Beispiel in Japan - Sie können keine Bruchteile von Yen haben, so dass Sie globale Ticksize auf 1 definieren sollten, also eingebaute Stopps beenden Trades auf ganzzahligen Ebenen. Die Konto-Margin-Einstellung definiert die prozentuale Margin-Anforderung für das gesamte Konto. Der Standardwert der Kontobewertung beträgt 100. Das bedeutet, dass Sie 100 Fonds für den Handel anbieten müssen, und das ist die Art und Weise, wie der Backtester in früheren Versionen gearbeitet hat. Aber jetzt können Sie ein Margin-Konto simulieren. Wenn du auf Marge kaufst, wirst du einfach Geld von deinem Broker ausleihen, um Lager zu kaufen. Mit aktuellen Regelungen können Sie bis zu 50 der Kaufpreis der Aktie, die Sie kaufen möchten und leihen die andere Hälfte von Ihrem Broker. Um dies zu simulieren, geben Sie einfach 50 in das Feld Kontoband ein (siehe Bild 1). Wenn Ihr intiales Eigenkapital auf 10000 eingestellt ist, wird Ihre Kaufkraft dann 20000 sein und Sie können in der Lage sein, größere Positionen einzugeben. Bitte beachten Sie, dass diese Einstellungen die Marge für das gesamte Konto festlegen und es sich nicht um einen Futures-Handel handelt. Mit anderen Worten, Sie können Aktien auf Margin-Konto handeln. "Reverse-Eingangssignal" das Kontrollkästchen "exitquot" auf die Backtester-Einstellungen. Wenn es eingeschaltet ist (die Voreinstellung) - Backtester funktioniert wie in früheren Versionen und schließt bereits offene Position, wenn neues Eingangssignal in umgekehrter Richtung angetroffen wird. Wenn dieser Schalter ausgeschaltet ist - auch wenn das Rückwärtssignal auftritt, behält der Backtester den derzeit geöffneten Handel bei und schließt die Position nicht ab, bis ein reguläres Ausgangssignal (Verkaufs - oder Abdeckungssignal) erzeugt wird. Mit anderen Worten, wenn dieser Schalter ausgeschaltet ist, ignoriert Kurze Signale während langer Trades und ignoriert Kaufsignale bei kurzen Trades. QuotAllow gleiche Bar-Exit (Single-Bar-Handel) Option auf die Einstellungen Wenn es eingeschaltet ist (die Standardeinstellungen) - Ein-und Ausstieg an der gleichen Bar ist erlaubt (wie in früheren Versionen), wenn es ausgeschaltet ist Next bar nur (dies gilt für reguläre Signale, es gibt eine separate Einstellung für ApplyStop-generierte Exits). Das Umschalten auf OFF ermöglicht es, das Verhalten von MS-Backtestern zu reproduzieren, das nicht in der Lage ist, am selben Tag zu vergeben. QuotActivate stoppt sofort quotDiese Einstellung löst das Problem der Prüfung von Systemen, die Trades auf dem Markt öffnen. In Versionen vor dem 4.09-Backtester wurde davon ausgegangen, dass du Trades auf dem Markt gegangen wirst, so dass eingebaute Stationen vom nächsten Tag aus aktiviert wurden. Das Problem war, als Sie in der Tat definierten offenen Preis als der Handel Eintrag Preis - dann am selben Tag Preisschwankungen nicht auslösen die Stopps. Es gab einige veröffentlichte Workarounds basierend auf AFL-Code, aber jetzt müssen Sie nicht brauchen, um sie zu verwenden. Einfach, wenn Sie auf offen handeln, sollten Sie markActivate stoppen sofortquot (Bild 1). Sie können fragen, warum nicht einfach die Kaufpreis oder Shortprice-Array, wenn es gleich offenen Preis ist. Unglücklicherweise wird das nicht funktionieren Warum einfach, weil es Doji-Tage gibt, wenn der offene Preis gleich ist und dann der Backtester nie wissen wird, ob der Handel am Markt geöffnet oder geschlossen wurde. Also brauchen wir wirklich eine separate Einstellung. Deu QuickAFLquotQuickAFL (tm) ist ein Merkmal, das eine schnellere AFL-Berechnung unter bestimmten Bedingungen ermöglicht. Anfangs (seit 2003) war es nur für Indikatoren verfügbar, ab Version 5.14 steht er auch in der automatischen Analyse zur Verfügung. Anfänglich war die Idee, ein schnelleres Diagramm durch die Berechnung der AFL-Formel nur für den Teil, der auf dem Diagramm sichtbar ist, zuzulassen. In ähnlicher Weise kann das automatische Analysefenster eine Untermenge von verfügbaren Zitaten verwenden, um AFL zu berechnen, falls ausgewählt 8220range8221 Parameter kleiner als 8220All Zitate. Detaillierte Erläuterungen darüber, wie QuickAFL funktioniert und wie es zu kontrollieren ist, wird in diesem Knowledge Base-Artikel zur Verfügung gestellt: amibrokerkb20080703quickafl Beachten Sie, dass diese Option nicht nur im Backtester funktioniert, sondern auch bei Optimierungen, Explorationen und Scans. Januar 11th, 2011 middot 20 Kommentare middot Backtest Langzeit-Trend Nachfolgend wird oft als überlegene und einfache Alternative zu Buy-and-Hold für einzelne Händler berechnet. Für jene Investoren, die einen DIYself-Trading-Ansatz anstreben wollen, könnte eine aktive Strategie eine bessere Performance erzielen 8211 aber erfordert eine weitaus aktivere Beteiligung. In the case of an End-of-Day Trend Following system trading a global portfolio, the requirements to check the markets and system every day, potentially several times a day, might be incompatible with individual investors8217 lifestyle (job, family, etc.). A more practical 8211 monthly 8211 system might suit some individual traders8217 requirements better. But can these monthly systems achieve decent performances Daily vs Monthly Data This post will be looking at the results of one system traded on two different frequencies . One common approach when testing a monthlyweekly system is to use the corresponding timeframe for the data fed to the back-testing system. This can sound intuitively correct but testing a system on monthly data has some drawbacks. We still want to be able to 8220see what happened8221 in between each monthly trading decision (i. e. chart the intra-month equity curve), which is not possible with monthly data. Moreover, the reporting frequency does affect the system statistics (an illustration with Max Drawdown being described in this paper by David Harding pdf 8211 covered in this post ). In order to perform an apples-to-apples comparison of both frequencies on the same system, daily data needs to be used in each case . System Rules A viable monthly system needs to be relatively long term: no point in trading a 3-day swing trading system on a monthly basis8230 For the purpose of this post, the classical Golden Cross system is used (a. k.a. the 200-50 Moving Average Cross-Over system 8211 featured in the State of Trend Following report ). In its daily incarnation, the system is traded exactly as per the monthly report: Buy when Short MA Long MA, Sell when Short MA Global Futures Broker Check the list of global futures markets Wisdom Trading offer access to, from Maize in South Africa, Palm Oil in Malaysia to Korean Won, Brazilian Real or Japanese Kerosene to name a few, it is impressive and great to benefit from diversification. AmiBroker Code for TransDow System I have been trying to replicate ETF HQ8217s TransDow strategy. It is a neat idea, and the simplicity appeals to me. Beyond that, I8217ve been working with AmiBroker to get better at coding in multiple time frames. Because this strategy uses weekly closes, I thought it would be good practice. The problem is that I cannot get my results to be any where near ETF HQ8217s results. My guess is that my code has an error, but for the life of me, I cannot figure it out. After emailing with ETF HQ, I was able to determine that their coding has the week close on Monday while my code uses Friday as the last day of the week. This should not make that much of a difference. The AmiBroker code is below. I have put it within the WordPress quote function, so it should be able to be cut and pasted without error. Update It will not cut and paste without error. The problem seems to stem from the quotation marks. I8217ll leave the code here so that others can peruse it. Email me woodshedder73 at google mail and I8217ll send the. afl file as an attachment. TransDow as described by Derry Brown: etfhqblog20130504market-timing-through-market-dominance-transdowutmsourcefeedburneramputmmediumfeedamputmcampaignFeed3AEtfHq28ETFHQ29 Boilerplate options SetTradeDelays( 0, 0, 0, 0 ) SetOption( InitialEquity, 10000 ) SetOption( MinShares, 1 ) SetOption( MinPosValue, 0 ) SetOption( FuturesMode, False ) SetOption( AllowPositionShrinking, True ) SetOption( ActivateStopsImmediately, False ) SetOption( ReverseSignalForcesExit, False ) SetOption( AllowSameBarExit, False ) SetOption( CommissionMode, 3 ) SetOption( CommissionAmount, 0.0 ) SetOption( InterestRate, 0 ) SetOption( MarginRequirement, 100 ) SetOption( MaxOpenPositions, 1 ) SetOption( UsePrevBarEquityForPosSizing, True ) RoundLotSize 1 0 for Funds, 100 for Stocks TickSize 0 0 for no min. size MarginDeposit 0 Totalpositions 1 PositionSize -100TotalPositions Weekly Bars TimeinWeekly TimeFrameSet(Time) DJIForeign(DJI, C) DJTForeign(DJT, C) RatioDJTDJI Ratio10MA(Ratio,10) TimeFrameRestore() RestorePriceArrays() Plot(Ratio, Ratio, colorYellow, styleLine) Plot(Ratio10, Ratio10,colorGreen, styleLine) FilterTrue AddColumn(Ratio, Ratio,1.5) AddColumn(Ratio10, SMA108243,1.5) AddColumn(Buy, Buy) AddColumn(Sell, Sell) Let me know in the comments if there are any questions about the code. My data provider uses DJI for the Dow Jones Industrial Average and DJT for the Dow Jones Transportation Index. These symbols may have to replaced with whatever symbol your data provider uses for the DJI and DJT. If you enjoy the content at iBankCoin, please like our Facebook page Well, so far I can8217t get this system to work at all. It underperforms the DJT from the beginning. I am using the closest trading day to Friday for the weekly close buy at that day8217s close when the signal is positive and hold for the week, otherwise in cash. I honestly don8217t know what a 4 stop-loss means under these conditions 8211 don8217t buy again until the system cycles through a complete set of in-out signals, or just sit out a week if the signal is still positive, or what Still can8217t make this work. I should add that weekly closes (based on DJ data) are usually Saturdays up to about 1945 sometimes Saturday and sometimes Friday until 1952, and Fridays after that. Except for days the market was closed on Fridays, or Saturdays, or Thursdays, or two or three days. And except for a couple of events like 911, when the weekly close was the prior Monday. Giving us one three day week, two five day weeks, many six and eight day weeks, two nine day weeks, and one 13 day week. Find all kinds of interesting stuff looking at 5000 lines of data. But probably not the main reason I can8217t get it to work.
No comments:
Post a Comment