Saturday, November 12, 2016

Handelsstrategien Ninjatrader

Seite nicht gefunden Die Seite, die Sie den Zugriff versucht nicht auf diesem Server vorhanden sind. Diese Seite kann nicht aufgrund der folgenden Gründe vorliegen: Sie sind der Besitzer dieser Website und Sie hochgeladen haben (oder nicht ordnungsgemäß geladen) Ihre Website. Informationen zum Hochladen Ihrer Website mit FTP-Client-Software oder Web-Design-Software, klicken Sie hier für Informationen FTP-Upload. Die URL, die Sie in Ihrem Browser eingegeben haben, ist nicht korrekt. Bitte geben Sie erneut die URL und versuchen Sie es erneut. Die Verbindung, die Sie auf falsch angeklickt zeigt auf dieser Seite. Bitte kontaktieren Sie den Besitzer dieser Website, um sie über diese Situation zu informieren. Ninjatrader Partner &Kopie; 2015. Alle Rechte vorbehalten. Der Ninjatrader Ecosystem Logo ist eine Marke der Ninjatrader Ecosystem LLC. Diese Website ist nur zu den pädagogischen und Informationszwecken und sollten nicht als Aufforderung zum Kauf oder Verkauf eines Terminkontrakts oder machen jede andere Art von Investitionsentscheidung werden. Die auf dieser Website gelisteten Unternehmen und Dienstleistungen werden nicht in Betracht gezogen werden eine Empfehlung und es in der Verantwortung des Lesers, jedes Produkt, eine Dienstleistung oder Unternehmen zu bewerten ist. Ninjatrader Ecosystem LLC ist nicht für die Richtigkeit oder den Inhalt eines Produkts, einer Dienstleistung oder ein Unternehmen, das auf dieser Website verlinkt verantwortlich. Futures-Handel ist mit beträchtlichen Risiken und ist nicht für jeden Anleger. Ein Anleger könnte möglicherweise verlieren alle oder mehr als die ursprüngliche Investition. Risikokapital ist Geld, ohne dabei diejenigen, die finanzielle Sicherheit oder Lebensweise verloren gehen können. Nur Risikokapital sollte für den Handel verwendet werden und nur diejenigen mit ausreichender Risikokapital sollte den Handel zu berücksichtigen. Die vergangene Performance ist nicht notwendigerweise indikativ für künftige Ergebnisse. Das vollständige Risikoaufklärung. CFTC Rules 4,41 - Hypothetische oder simulierte Wertentwicklungen haben gewisse Einschränkungen, im Gegensatz zu einer tatsächlichen Leistungsbilanz, simulierte Werte nicht auf tatsächlichem Handel darstellen. Auch, weil die Transaktionen nicht ausgeführt wurde, können die Ergebnisse haben unter-oder-over für die Auswirkungen ausgeglichen werden, wenn überhaupt, von Marktfaktoren, wie etwa fehlender Liquidität. Simulierte Trading-Programme im Allgemeinen unterliegen auch die Tatsache, dass sie mit dem Nutzen der Nachsicht ausgelegt sind. Keine Darstellung wird gebildet, dass jede Rechnung wird oder wahrscheinlich Gewinne oder Verluste ähnlich denen gezeigt zu erreichen. Adaptrade Software Newsletter Artikel NinjaScript für Strategie Traders von Michael R. Bryant Ich war gespannt, Ninjatrader ist & reg bereitzustellen; NinjaScript & reg; Ausgang für meine Adaptrade Builder Strategie Erzeugungssoftware für einige Zeit und kann nun verkünden, dass es ist fast fertig (siehe unten für ein Beispiel eines NinjaScript Strategie Builder generiert), mit einem erwarteten Release am oder um den 30. Juni Dieser Artikel enthält eine hoch Überblick über den NinjaScript Sprache und wie sie zu den anderen von Builder unterstützten Sprachen vergleicht. * Nutzung eines vorhandenen Sprache Ninjatrader ist ein beliebter Handelsplattform für Lager, Futures und Devisenhandel. Wie MetaTrader ist Ninjatrader kostenlos für simulierte Handel und Strategieentwicklung und ist mit einer Vielzahl von Maklern und Datenanbietern kompatibel. Einer der Gründe für die Beliebtheit von Ninjatrader ist die NinjaScript Programmiersprache für Anzeige und Strategieentwicklung. Die Vielseitigkeit und Leistung des NinjaScript hat eine große Ökosystem von Indikator und Strategie-Code, der Ninjatrader Plattform verlängert effektiv erstellt. NinjaScript basiert auf der C # (sprich C Sharp) Programmiersprache, die von Microsoft entwickelt und erstmals im Jahr 2002 C # veröffentlicht basiert ist eine Allzweck-Programmiersprache, basierend auf der beliebten C und C ++ Sprachen und unter Verwendung von Microsoft-Framework. Basierend NinjaScript auf C # bedeutet, dass sie alle Vorteile der Funktionalität von C # und übernehmen und dass sie mit bestehenden Microsoft C # Compiler kompiliert werden. Dies ist anders als andere Skriptsprachen, wie Tradestation Easylanguage ist, AmiBroker AFL und MetaTrader 4 ist MQL4. Während diese Sprachen haben alle C-ähnliche Syntax, insbesondere MQL4, sie sind alle von Grund auf neu gebaut. Im Prinzip sollte dies eine Designvorteil; nämlich, dass sie sein können für den Handel mit maßgeschneiderten. Dies hat jedoch gegen die Vorteile, die die Grundlage für eine ausgereifte, hoch entwickelte Sprache wie C # bereitgestellt ausgeglichen werden. Der C # und Bibliotheken bieten solche grundlegenden Funktionen, wie Datum / Uhrzeit und mathematische Funktionen. Da C # und haben in der Entwicklung für ca. 14 Jahren sind diese grundlegenden Funktionen ganz ausgereift und stabil. NinjaScript nimmt nicht nur die Vorteile der integrierten Bibliotheksfunktionen, aber die grundlegenden Sprachfunktionen sowie, einschließlich conditionals (wenn dann Verzweigung), Schleifen, Funktionen, und so weiter. Durch den Aufbau auf der Grundlage eines bestehenden, Volkssprache, Leveraged Ninjatrader eine breite Palette von Fähigkeiten und Funktionen unter Vermeidung der Risiken und Fallstricke für die Entwicklung einer Script-Sprache von Grund auf neu. Das Ergebnis ist eine funktionsreiche, leistungsfähige und zuverlässige Skriptsprache. A Modern Scripting Language NinjaScript ist konsistent mit der Grundstruktur des C #, die objektorientierte, ereignisgesteuert und komponentenbasierten ist. Alle Strategien in Ninjatrader definieren ihre eigene Klasse, die von der Strategie-Klasse innerhalb der Ninjatrader Namensraum leitet. Hier wird die Funktionalität, um C # hinzugefügt NinjaScript erstellen befindet. Abbildung 1. Die Strategie Klassendeklaration in der NinjaTrader. Strategy Namespace. Die Initialisierungsfunktion wird einmal zu Beginn der Strategie bezeichnet. In C # ist die meisten Maßnahmen durch externe Ereignisse, die Event-Handler auszulösen fällt. In NinjaScript wird das Main Event Handler aufgerufen OnBarUpdate, die am Ende jeder bar ausgelöst wird, oder gegebenenfalls bei jedem Tick. Dies ist, wo die Hauptstrategie Logik befindet. Die andere primäre Ereignisbehandlungs Initialisieren, die am Anfang der Strategie ausgelöst wird und nur einmal zu dieser Zeit ausgeführt. Weitere Event-Handler kann wahlweise wie OnPositionUpdate, welche ausgelöst wird, wenn der Handelsposition ändert und OnOrderUpdate, welche ausgelöst wird, wenn eine vorhandene Auftragsänderungen umgesetzt werden. Die Fähigkeit, Strategie Code ausführen, wenn bestimmte Ereignisse stattfindet, können es einfacher machen, um bestimmte Aktionen in NinjaScript Vergleich zu traditionellen Sprachen wie Easylanguage programmieren. Abbildung 2. Die NinjaScript OnBarUpdate Funktion basiert auf dem Abschluss eines jeden Bar oder auf jedem Tick genannt, abhängig von der Einstellung in initialisieren. Abstraktion, Kontrolle und Vielseitigkeit Alle Skriptsprachen für den Handel machen Kompromisse, wie sie abstrakt bestimmte Aspekte der Handel im Vergleich, wie viel Kontrolle sie beide geben, und erfordern vom Benutzer. Trading beinhaltet eine Reihe von ziemlich komplexen Handlungen: Auswertung Strategie Logik auf jeder Stange und / oder Zecken, Platzieren mehrerer Handelsaufträge sowohl für Ein - und Ausstieg, Verfolgung und Aktualisierung der Handelsaufträge an jeder Bar / tick, Verarbeitung und Aufzeichnung füllt, und Löschen öffnen Bestellungen, einschließlich ein-bricht-und anderen bedingten Aufträge. Ein hohes Maß an Abstraktion bedeutet, dass ein großer Teil dieser Komplexität wird von der Programmierer versteckt und automatisch hinter den Kulissen, das macht es einfacher zu programmieren, sondern bietet weniger Kontrolle und Vielseitigkeit. Eine niedrigere Abstraktionsebene lässt viel von der Arbeit bis zu dem Programmierer, die die Programmierung schwieriger, aber in der Regel bietet mehr Kontrolle ermöglicht. Zum Beispiel, einige Sprachen, wie MetaQuotes Language 4 (MQL4), liefern relativ grundlegende Befehle zur Abwicklung von Bestellungen und überlassen es dem Benutzer, um offene Aufträge zu stornieren nach einer Füllung. Dies kann es schwierig machen, eine Strategie, die, verwendet zum Beispiel zu implementieren, mehrere Ausgänge (zB ein Schutzstop wird ein Soll-Ausgang, und eine Austritts basierend auf einer logischen Bedingung), weil, wenn ein Ausgang getroffen wird, sind die anderen, noch nicht erledigten Aufträge an von der Strategie-Code abgebrochen werden. Auf der anderen Seite, diese dünne Schicht der Abstraktion bietet maximale Kontrolle und Vielseitigkeit. AmiBroker Formula Language (AFL), auf der anderen Seite, bietet eine sehr tiefe Abstraktion in seiner Grundform, dass der Benutzer nur bietet die Voraussetzungen für die Ein - und Ausreise stattfinden sollen, und die Sprache (und die zugrunde liegenden Plattform) kümmern wann und wie die tatsächlichen Handels Aufträge erteilt und ausgeführt. Für einfachere Arten von Strategien ist es dadurch sehr einfach, um die Strategie zu codieren. Sie bietet jedoch wenig Flexibilität und Kontrolle für die Strategie Entwickler. In der Tat, AmiBroker offenbar erkannt diese Einschränkung, wenn es aufgenommen ihren sogenannten Portfolio Backtester Schnittstelle (kundenspezifische Backtest-Verfahren), die den Zugriff auf untergeordnete Funktionen zur Steuerung von Dingen wie Auftragserfassung bietet. Leider funktioniert das getrennte Vorgehen nicht gut integriert mit dem ursprünglichen Design der AFL. Easylanguage bietet verschiedene Arten von komplexen Abstraktionen. Dass in jedem Easy Language Strategie ist die Tatsache, dass die meisten der Code, mit Ausnahme der variablen Initialisierungen wird an jedem Stab ausgeführt. Wenn Look-Innenrück bar Prüfung aktiviert ist, ist eine zusätzliche Abstraktions vorhanden, dass zusätzliche Berechnungen hinter den Kulissen immer häufiger durchgeführt, um zu bewerten, als einmal in bar, je nach Einstellung des Benutzers. In der Tat hat Trade das Äquivalent von NinjaScript die OnBarUpdate, aber es ist vor dem Benutzer versteckt und hinter den Kulissen abgewickelt. Easylanguage übernimmt auch die Auftragsabwicklung in einer Weise, die die Belastung für den Benutzer minimiert. Mehrere Aufträge können im Code platziert werden und nicht ausgeführte diejenigen wird, als ob man-bricht-anderen, wenn man gefüllt wird abgebrochen. NinjaScript implementiert nahezu identisch Abstraktionen für Auftragserteilung und Durchführung, einschließlich jeden Auftrag am Ende jedes Balkens automatisch aufgehoben wird. Dies ist konsistent mit der Tatsache, dass die Strategie Code läuft auf jeder Stange, was typischerweise bedeutet, die Codeanweisungen für die Erteilung von Aufträgen auf jedem Balken wiederholt werden. Wenn die Aufträge nicht automatisch am Ende der einzelnen Balken auslaufen, müssten sie von der Strategie, bevor Sie neue storniert werden. Array-Verarbeitung ist ein weiterer Bereich, der den Grad der Abstraktion unter den Skriptsprachen hervorhebt. Seit Indikatoren und andere Elemente der Strategie Logik brauchen, um auf jedem Balken einer Preisdiagramm oder Datenreihen ausgewertet werden, Skriptsprachen für den Handel sind von Natur aus Array-basierte; das heißt, profitieren sie von der Durchführung von Berechnungen auf Arrays von Preisdaten, anstatt die Berechnungen bar-by-bar. Zum Beispiel, wenn eine Strategie umfasst einen gleitenden Durchschnitt und eine stochastische, wäre ein Ansatz sein, den gleitenden Durchschnitt auf dem ersten Takt zu berechnen, berechnen Sie die stochastische auf der gleichen Bar, Bewertung der Strategie Logik für die Bar, dann bewegen Sie in die nächste Bar . Allerdings ist es viel effizienter, um den gleitenden Durchschnitt für jeden Balken im Diagramm zu berechnen, berechnen dann die stochastische für jeden Balken im Diagramm, so bewerten die Strategie Logik. Letzteres ist ein Beispiel für Array-Verarbeitung, die in der Regel hinter den Kulissen durchgeführt werden können, auch wenn es nicht aus der Art und Weise der Code geschrieben. Easylanguage bietet das beste Beispiel dafür: das Array Verarbeitung wird abstrahiert, so dass der Benutzer nicht damit zu befassen. Zum Beispiel, wenn Sie eine Funktion in Easylanguage-Code, schreiben Sie die Rechnungen auf dem aktuellen bar durchgeführt werden. Es liegt an der Easylanguage-Compiler, um die Berechnungen effizient, vermutlich durch Array-Signalverarbeitung. In AFL, auf der anderen Seite, wird das Array Verarbeitung ausgelegt bequem zu sein, ist aber explizit, dass Sie sich bewusst sein, dass Sie die Verarbeitung Arrays von Daten sind, und berücksichtigen Sie dies, wie Sie den Code schreiben. NinjaScript ähnelt, daß die Verwendung von Arrays ist meist explizite MQL 4. Jedoch in MQL4, die Verwendung von beliebigen Arrays als Eingänge an Indikatoren, wie zum Beispiel ein gleitender Durchschnitt etwas anderes als den Preis, an einer ungünstigen Stelle behandelt, was es schwierig macht Indikatoren Indikatoren, wie beispielsweise ein gleitender Mittelwert eines stochastischen bewerten. NinjaScript windet dieses potenzielle Problem durch die Bereitstellung eines speziellen Array-Typ genannt Datenreihe, die in der Strategie-Code definiert werden können und die als eine Eingabe von einer Anzeige, die von Natur nimmt Preis als Eingang akzeptiert wird. Dies macht es relativ einfach, verschachtelte Indikatoren zu codieren. Beispiel NinjaScript Strategie Verhaltens durch Builder generiert Die Datei finden Sie im folgenden Link wurde vom Adaptrade Builder in NinjaScript für Ninjatrader automatisch generiert. Die Datei kann in jedem Texteditor geöffnet werden, wie Editor. Um die Strategie in Ninjatrader kompilieren, speichern Sie sie in den Ordner-Strategie im Ordner Ihrer Ninjatrader Dokumente, öffnen Sie es in der NinjaScript-Editor, und klicken Sie auf die Schaltfläche Kompilieren. Ein typischer Pfad zum Speichern der Datei C: \ Benutzer \ [your_user_name] \ Documents \ Ninjatrader 7 \ bin \ Custom \ Strategie, in der [your_user_name] Ihr Benutzername ist in den Ordner Benutzer. Alternativ kopieren Sie den Code in die Zwischenablage und fügen Sie ihn in eine leere Strategie im NinjaScript Editor. NinjaScipt Ausgabe in Builder wird in der Version 1.7.0 sein, mit einem erwarteten Release-Datum der 30. Juni 2014. DOWNLOAD oder OPEN (Datei: Builder_Ninja_Ex. cs) Die Balance Wie oben vorgeschlagen, alle Skriptsprachen für den Handel ein Gleichgewicht irgendwo entlang des Spektrums zwischen einer stark abstrahierte Sprache, die eine Menge hinter den Kulissen (zB AFL) und eine dünne abstrahiert Sprache, die der Benutzer benötigt, um jeden Schritt des Handels angeben Griffe Prozess (zB MQL4). NinjaScript ist ähnlich wie Easylanguage, dass es irgendwo in der Mitte liegt. Verglichen mit Easy Language, NinjaScript wohl macht mindestens einen Teil seiner Abstraktionen klarer zwar nicht viel komplexer Herstellung. Zum Beispiel ist der Code, der an jedem Stab führt offensichtlich, daß es in der OnBarUpdate Funktion befindet. In Easylanguage kann es nicht sofort ersichtlich, um einen Neuling, dass die meisten der Strategie Code wird auf dem in der Nähe der einzelnen Balken und dass die Variablen nicht neu initialisieren auf jeder bar durchgeführt werden. In NinjaScript sind die Variablen, die nicht Teil der OnBarUpdate, so ist es klar, dass jede Initialisierung außerhalb dieser Funktion, wie beispielsweise im Initialize-Funktion durchgeführt wird, geschieht nur einmal. Auf der anderen Seite, bietet Easylanguage insgesamt eine höhere Ebene der Abstraktion, die machen es einfacher, zu codieren, wenn die Design-Merkmale der Sprache verstanden werden. Aus der Sicht eines Programmierers, es gibt viel zu NinjaScript zu bewundern. Sein Design ist im Einklang mit modernen Programmierkonventionen, es ist leicht erweiterbar, es bietet bequemen Handels Abstraktionen für Dinge wie Auftragserteilung, und immer noch gelingt, klar, was der Code tut auf eine Bar-by-bar Basis zu sein. Außerdem nutzt er die Bibliothek und C # Sprachfeatures. Nachdem programmiert Easylanguage für rund 20 Jahren, ist es schwierig, andere Skriptsprachen mit neuen Augen zu bewerten. Aber wenn ich das Lernen zu programmieren Trading-Strategien heute - und ganz abgesehen keine Überlegungen zu den verschiedenen Handelsplattformen im Zusammenhang - ich könnte sehr gut wählen NinjaScript. Mike Bryant Adaptrade Software * Dieser Artikel ist nicht für die Tutorials in der Natur und nicht Ninjatrader Plattform-Features diskutieren. "Nach 20 Jahren des Handels für Institutionen, habe ich eine Top-Trader Position speziell wegen dieser Exekutiv Mentoring-Programm gewonnen" Casper Johansen, Institutionelle Trader "Ich bin ein institutioneller Händler für einen großen Marktmacher auf den Cayman Islands und sind in den US-Wertpapiermärkten gehandelt wurde für 18 Jahre. In diesem Beruf Sie nicht bezahlt ein Gehalt bekommen, Ihnen einen Prozentsatz der gesamten Höhe des Gewinns Sie bringen für Ihre Kunden verwalteten bezahlt. Hier arbeiten wir in die Annahme der Realität, das ist eine sehr wettbewerbsfähige und Stress Voll Umwelt. Schon früh in eine neue Karriere Entscheidung, erlebte ich eine beginn zweiten Quartal nicht Leistung und einem Drawdown, die dann meine Position bedroht. Die lange Geschichte kurz ist durch eine Referenz Ich entdeckte Jeff Kilian und ich sofort seinen Dienst beibehalten.


No comments:

Post a Comment