TraderFox Posted July 20, 2010 Report Posted July 20, 2010 (edited) Ich bräuchte mal Eure Hilfe... daher meine Frage in die "Runde"! Ist es möglich folgendes Script für NinjaTrader zu programmieren und wenn JA, gibt es jemand der sich dazu "berufen" fühlt? Ich bekomme es nämlich nicht auf die Reihe - was allerdings nicht verwunderlich ist. Basiswerte: EuroFX (6E) und S&P mini (ES)Variablen: [Kursstand: 6E] + [Kursstand: ES] Input: [(Kursstand: 6E x 1.000) x (Ticksize: 6E)] abzüglich [(Kursstand: ES) x (Ticksize: ES)] ==> Spread (absolut) in US$ Output: (Kursstand angenommen: 6E = 1,3000 und ES = 1000,00) [(1,3000 x 1000) x (12,50$)] = 16.250,00$ abzüglich [(1000,00) x (12,50$)] = 12.500,00$ ==> 3.750,00$ Die kleinste mögliche Veränderung im Indikator "Spread (absolut)" sollte also 12,50$ betragen. Und mir ist klar, dass er unter bestimmten Voraussetzungen auch einen negativen absoluten Wert erreichen kann. Ein einfacher Indikator mit Linien-Darstellung wäre ausreichend... eine Candlestick-Variante wäre allerdings genial - wird aber vermutlich mit NinjaTrader unmöglich sein? Herzlichen Dank im Voraus... werde mich versuchen bei nächster Gelegenheit zu revanchieren! Edited July 20, 2010 by TraderFox
ronner Posted July 21, 2010 Report Posted July 21, 2010 eine Candlestick-Variante wäre allerdings genial - wird aber vermutlich mit NinjaTrader unmöglich sein? Candlesticks sind möglich: Bin allerdings kein Progger, soll nur als Beispiel sein.
TraderFox Posted July 21, 2010 Author Report Posted July 21, 2010 (edited) Danke Ronner! Input: [(Kursstand: 6E x 1.000) x (Ticksize: 6E)] abzüglich [(Kursstand: ES) x (Ticksize: ES)] ==> Spread (absolut) in US$ Output: (Kursstand angenommen: 6E = 1,3000 und ES = 1000,00) [(1,3000 x 1.000) x (12,50$)] = 16.250,00$ abzüglich [(1000,00) x (12,50$)] = 12.500,00$ ==> 3.750,00$ Die kleinste mögliche Veränderung im Indikator "Spread (absolut)" sollte also 12,50$ betragen. Falls NinjaTrader mit der Ticksize des ES nicht klarkommt - da hier ja 1 Punk 4 Ticks entsprechen - müsste die Formel wie folgt umgestellt werden: Input: [(Kursstand: 6E x 100) x (Pipwert: 6E)] abzüglich [(Kursstand: ES) x (Punktwert: ES)] ==> Spread (absolut) in US$ Output: (Kursstand angenommen: 6E = 1,3000 und ES = 1000,00) [(1,3000 x 100) x (12,50$)] = 1.625,00$ abzüglich [(1000,00) x (50,00$)] = 50.000,00$ ==> -48.375,00$ Wie das Ergebnis mit Linien-Darstellung (grün) z.B. im 1min-Chart des YM / NQ aussieht, soll der nachfolgende Chart zeigen: Leider fehlen hier bei der Linien-Darstellung natürlich die "Spitzen" im Spread... daher wäre eine Candle-Darstellung nicht schlecht. Edited July 21, 2010 by TraderFox
ronner Posted July 21, 2010 Report Posted July 21, 2010 willst Du den Indi z.B. also für´s zeitigere Erkennen von Trendbrüchen nutzen ? Sieht auf jeden Fall nicht schlecht aus (was für eine Plattform ist das eigentlich ?)
TraderFox Posted July 21, 2010 Author Report Posted July 21, 2010 willst Du den Indi z.B. also für´s zeitigere Erkennen von Trendbrüchen nutzen ?Das zum Einen und zum Anderen benötige ich die "Spitzen" im Chart, damit ich eine Orientierung bezgl. der Verlust-Stops habe, da man diese - wenn man den Spread handelt - ja gerade nicht wie gewohnt am Chart der Basisinstrumente festmachen kann. Sieht auf jeden Fall nicht schlecht aus (was für eine Plattform ist das eigentlich ?)Es handelt sich um VisualChart und da ist der Indi auch nicht in VBA programmiert, sondern lediglich mit der "Visuellen Plattform"... das macht das Ding recht langsam.
Roy Awesome Posted July 21, 2010 Report Posted July 21, 2010 Wenn man einen Spread aus 2 Instrumenten als Candle-Chart berechnet, sollte man bedenken, dass das maximal eine Näherung sein kann, sofern die Berechnung auf Candles, Bars oder sonstigen Intervall-Daten beruht. Wenn du z.B. einen Candle-Chart vom ES und 6E hasst, kannst du nicht einfach die 2 Highs multiplizieren, da das High im ES und das High im 6E aller Wahrscheinlichkeit nicht zur selben Zeit entstanden sind. Um solche Spreads korrekt darzustellen muss man ein Tick-Replay drüber laufen lassen.
TraderFox Posted July 21, 2010 Author Report Posted July 21, 2010 (edited) Wenn man einen Spread aus 2 Instrumenten als Candle-Chart berechnet, sollte man bedenken, dass das maximal eine Näherung sein kann, sofern die Berechnung auf Candles, Bars oder sonstigen Intervall-Daten beruht. Wenn du z.B. einen Candle-Chart vom ES und 6E hasst, kannst du nicht einfach die 2 Highs multiplizieren, da das High im ES und das High im 6E aller Wahrscheinlichkeit nicht zur selben Zeit entstanden sind. Um solche Spreads korrekt darzustellen muss man ein Tick-Replay drüber laufen lassen. Die beiden Einzelcharts (6E + ES) bilden fast nie ihre Hochs/Tiefs genau zur selben Zeit aus. Dies ist aber auch nicht schlimm, denn wenn man ausschließlich nach dem Spread-Chart handelt, eröffnet man eine Position zu einem bestimmten absoluten Spread-Wert und dies ist dann der fixe Entry des geplanten Trades. Jede kapitalmäßige Veränderung nach diesem Entry - positiv wie negativ - ergibt dann den Gewinn bzw. Verlust. Und wenn der Indikator richtig programmiert wurde, dann ergibt sich auf Basis von jeweils einem Kontrakt in beiden Handelsinstrumenten, ein Gewinn/Verlust von 12,50$ pro Tick/Veränderung. Gehandelt wird hierbei lediglich der fundamentale Hintergrund, dass ein "steigender USD schlecht für den US-Aktienmarkt" ist und vice versa. Man geht bei diesen beiden Futures also grundsätzlich von einer Korrelation aus. Da diese aber auch intraday vorübergehend aufgegeben werden kann (z.B. bei US-Wirtschaftsdaten), benötigt man dringend einen Spread-Chart, der einem dies umgehend aufzeigt! Dabei handelt man immer die relative Stärke/Schwäche des 6E gegenüber dem ES. Sprich: Wenn der Spread-Chart fällt, dann bedeutet dies relative Schwäche des 6E gegenüber dem ES und man geht im 6E short sowie im ES long. Wenn der Spread-Chart steigt, dann impliziert das relative Stärke des 6E gegenüber dem ES und es geht im 6E long sowie im ES short... Edited July 21, 2010 by TraderFox
Roy Awesome Posted July 21, 2010 Report Posted July 21, 2010 Ja, das verstehe ich schon. Ich wollte nur anmerken, dass die Highs und lows auf einem historischen Chart nicht stimmen werden, es sei denn, der Chart wurde mit realtime-Daten erstellt oder durch ein Tick-Replay. Der Effekt ist noch viel ausgeprägter mit Spread-Strategien mit 3 und mehr Instrumenten, da kann man solche Charts gleich ganz tonnen.
ibelieve Posted July 22, 2010 Report Posted July 22, 2010 Gehandelt wird hierbei lediglich der fundamentale Hintergrund, dass ein "steigender USD schlecht für den US-Aktienmarkt" ist und vice versa. Man geht bei diesen beiden Futures also grundsätzlich von einer Korrelation aus. laufen Sie wirklich gleich? die Spitzen liegen weit auseinander, (was zumindest für Teilstrecken für ein gegensätzlichen lauf spricht) die Schwankungen sind auch sehr Unterschiedlich. (was immer eine Anpassung der Positionsgröße zueinander bringen würde)
Vola Posted July 22, 2010 Report Posted July 22, 2010 laufen Sie wirklich gleich? Morje,hmm, kenne mich mit Korrelationen nicht wirklich gut aus, aber die Charts von TraderFox sind im Minutenbereich, deine abgebildeten im Tages - Wochenbereich. Vielleicht geht es bei diesem Ansatz ja eher um die kurfristigen Zeitrahmen ?
TraderFox Posted July 22, 2010 Author Report Posted July 22, 2010 Morje,hmm, kenne mich mit Korrelationen nicht wirklich gut aus, aber die Charts von TraderFox sind im Minutenbereich, deine abgebildeten im Tages - Wochenbereich. Vielleicht geht es bei diesem Ansatz ja eher um die kurfristigen Zeitrahmen ? Ja - es geht mir ausschließlich um die Darstellung des Intraday-Spread!
Vola Posted July 22, 2010 Report Posted July 22, 2010 Hier mal nen Link für alle an Spread Trading interessierten, leider nur Englisch, aber recht informativ PDF
wh Posted July 30, 2010 Report Posted July 30, 2010 (edited) Kenne mich mit NT7 nicht aus: aber private string x6E = @"6E"; //what ever is the name private string xES = @"ES"; Add(x6E, NinjaTrader.Data.PeriodType.Minute, period); //[0][0] Add(xES, NinjaTrader.Data.PeriodType.Minute, period); //[1][0] if(Close[0][0] > 0 && Close[1][0] > 0) //make me rich //Close[0][0] - EurUsd //Close[1][0] - SP500 double spread = Close[0][0] * TickSize - Close[1][0] * TickSize; Nehme mal lieber den Dax. Und wenn für dich interessant, danke Element of Crime. Edited July 30, 2010 by wh
TraderFox Posted August 9, 2010 Author Report Posted August 9, 2010 Da arbeite ich schon eine ganze Weile dran und nutze es auf MT4 - für NT habe ich zwar schon eine Idee, bin aber weit von der Umsetzung entfernt. Ohne Zusatzinstallationen ist es nicht umsetzbar. @Aurelius Ich weis - es ist frech nachzufragen, so kurz nach Deinem Urlaub... aber: Wäre der Indikator in MT4 ohne großen Aufwand für Dich realisierbar, bzw. hast Du etwas Ähnliches schon programmiert?
Aurelius Posted August 9, 2010 Report Posted August 9, 2010 @Aurelius Ich weis - es ist frech nachzufragen, so kurz nach Deinem Urlaub... aber: Wäre der Indikator in MT4 ohne großen Aufwand für Dich realisierbar, bzw. hast Du etwas Ähnliches schon programmiert? Ich muss mich erst mal ein wenig sortieren, dann schau' ich mal wie ich das zeitlich hinbekomme. Ich melde mich dann über diesen Thread. 1
Vola Posted August 10, 2010 Report Posted August 10, 2010 Hier ausnahmweise mal was deutsches zum Spread TradingPDF
WOGO Posted August 13, 2010 Report Posted August 13, 2010 Wäre der Indikator in MT4 ohne großen Aufwand für Dich realisierbar, bzw. hast Du etwas Ähnliches schon programmiert?Ich hab mal ein wenig mit MT4 rumprogrammiert.Das Ergebnis ist zwar noch nicht wirklich fertig, ich poste es hier aber trotzdem mal, da ich die nächsten 2 Wochen im Urlaub bin und mir verboten wurde einen Rechner mitzunehmen Die Umsetzung ist ähnlich wie beim periode_converter Script, ich löse das Problem aber mit einem EA.Folgende vorgehensweise:1) das *.ex4 File in den expert-Ordner kopieren2) in Metatrader Experts und DLLs zulassen3) den EA in den Basis-Chart ziehen. Man erhält das Parameter-Fenster:4) Hier als ersten Parameter den 2. Wert (also im Beispiel EURJPY) eingeben.Der SpreadTimeFrame ist eigentlich egal. Der wird nur an den Dateinamen angehängt.5) Factor1 ist wichtig. Die Berechnung der Bars sieht nämlich so aus Values[0] =MathAbs(NormalizeDouble(100+High[0]*Factor1*Pip_Value1-iHigh(SymbolTwo,0,0)*Pip_Value2,Digits)); Man gleicht also mit diesem Faktor den unterschiedlichen Kurs und den unterschiedlichen Pip-Wert aus.Den Offset von 100 brauche ich, da ich die Kurse in ein History-File schreibe und da keine negativen Werte möglich sind. Die Nulllinie ist also bei 100.6) mit LimitHistoryBars erreicht man, dass nicht alle Werte der Kurs-History berechnet werden, sondern nur die angegebene Zahl. Will man alle, dann den Wert auf "0" setzen7) Beim nächsten Tick fängt die Berechnung an. Wenn fertig erscheint oben im Chart ein Kommentar8) Jetzt ist das History-File erzeugt und man kann über "Datei - Chart offline öffnen" das erzeugte History-File aufmachen. Der Name ist "Name Wert1 +"SP", M2" also z.B. EURUSDSP,M2 Das war's eigentlich auch schon. Man kann nun in diesem Fenster den Spread zwischen den beiden Werten sehen, kann Indikatoren rein ziehen, aber nicht den Timeframe verändern. Der ist der selbe wie beim Basiswert, in dem der Indikator läuft. Wenn alles passt, dann sollte etwa so aussehen: Es gäbe noch eine Menge zu optimieren. So werden die Candles momentan einfach auf der aktuellen Zeitbasis über HochWert1 - HochWert2 oder CloseWert1-CloseWert2...berechnet. Geschickter wäre es, Live-Modus die echten Tick-Werte zu nehmen und diese für jeden Candle einzeln auszuwerten.Die Normierung ist auch noch recht umständlich. Man benötigt die Pip-Werte der einzelnen Werte und muss sich dann einen vernünftigen Normierungsfaktor überFaktor1 = KursWert2*PipWert2/(KursWert1*PipWert1) ausrechnen. Das sollte auch noch automatisiert werden.Und dann wäre es noch schöner, wenn die historischen Werte nicht auf Basis der Chart-Timebase berechnet würden, sondern über die M1-Werte und dann über denParameter SpreadTimeFrame auf die gewünschte Zeitbasis hochgerechnet würdenHab ich aber momentan keine Zeit dafür. Nochmal die Warnung: Ich hab das ganze nur ganz rudimentär getestet...Wer Lust hat kann sich das Ergebnis mal anschaun und Feedback geben. Gerne dürft ihr auch selbst dran weiterprogrammieren... Ich bin dann mal ab morgen weg! EA_0005_SpreadDisplay.zip
Vola Posted August 13, 2010 Report Posted August 13, 2010 da ich die nächsten 2 Wochen im Urlaub bin und mir verboten wurde einen Rechner mitzunehmen Du ärmster, kann ja gar kein Urlaub ohne Lap sein, wie soll das gehen ?Na dann wünsche ich mal trotzdem gute Erholung ! Und nicht heimlich ins Internet Cafe gehen, könnte auffliegen
TraderFox Posted August 13, 2010 Author Report Posted August 13, 2010 Ich bin dann mal ab morgen weg! Super... vielen Dank schon mal und erholsame Tage!
ronner Posted August 15, 2010 Report Posted August 15, 2010 @Traderfox, ist das eventuell was für Dich ? Ich habs allerdings nur überflogen, vielleicht ist das auch Schmarrn. Indicator displaying expressions / spreads / pairs / baskets - NinjaTrader Support Forum
TraderFox Posted August 16, 2010 Author Report Posted August 16, 2010 @Traderfox, ist das eventuell was für Dich ? Ich habs allerdings nur überflogen, vielleicht ist das auch Schmarrn. Indicator displaying expressions / spreads / pairs / baskets - NinjaTrader Support Forum So wie es aussieht handelt es sich zwar auch nur um eine Line-Darstellung, aber schon mal nicht schlecht... werde ich testen - Danke!
TraderFox Posted August 16, 2010 Author Report Posted August 16, 2010 So wie es aussieht handelt es sich zwar auch nur um eine Line-Darstellung, aber schon mal nicht schlecht... werde ich testen - Danke! So sieht der heutige Intraday-Verlauf des Spreads zwischen dem 6E und ES aus... die Berechnung erfolgt richtig
ronner Posted August 17, 2010 Report Posted August 17, 2010 ...müßte also nur noch auf Candlestick geändert werden 1
wh Posted August 17, 2010 Report Posted August 17, 2010 ...müßte also nur noch auf Candlestick geändert werden Um einen CandleStick zu bekommen, sollte man bzw. frau sich mal den Heikin-Ashi-Indikator anschauen. public override void Plot(Graphics graphics, Rectangle bounds, double min, double max) {...} 1
TraderFox Posted August 17, 2010 Author Report Posted August 17, 2010 ...müßte also nur noch auf Candlestick geändert werden Jo - das wäre fein! Der Spread-Indikator funktioniert immer noch... nur hat leider heute der Wolfgang nicht funktioniert. An der markiertn Stelle (15:00 bis 16:00 Uhr), während einer Handelsspanne von ca. 300$ pro Kontrakt, zweimal rein und gleich wieder rausgeflogen... bevor es dann endlich weiter nach unten ging. Ein horizontales Grid sind übrigens 150$ pro Kontrakt.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now