Alle Inhalte von GoSPvC
-
EA mittels Hotkey steuern
Erstmal Willkommen auf tom-next, Die Sache ist eigentlich ganz einfach. Der EA merkt sich "von alleine" sowieso nicht, welche Orders er eingegangen ist und welche nicht. EAs, die sich das merken können, sind so programmiert, daß sie über den Kommentar erkennen können, ob dieser Trade behandelt werden muß, oder nicht. Wenn du also nur diesen EA am laufen hast und keine "Erkennung" einprogrammierst, dann werden über OrderSelect("alle...") die Orders vom EA und die vom HotKey vom EA kontrolliert.
-
Rätsel zum Wochenende | Wer oder was bin ich?
Die Quotes finde ich echt mal ne nette Spielerei, nur eins: Beim automatischen Durchwechseln der Zitate, wenn sie unterschiedliche Anzahl Zeilen haben, rutscht der Rest der Seite immer etwas rauf und runter. Könnt ihr die Zitate-Boxgröße vielleciht statisch machen ?!? Sonst stört das etwas beim lesen...
-
Rätsel zum Wochenende | Wer oder was bin ich?
Ich oute mich dann auch mal als Wiesn-gänger; lang nicht mehr so schlimm wie früher, aber an den Wochenenden bin ich sicher da. Immerhin ist das ein kulturelles Massenereigniss; der Anstich wird live in die ganze Welt übertragen und die restliche ganze Welt ist eh im Zelt @NikkChade: Bin am Samstag in der Bräurosl, erste Reihe genau unterm "B"; vielleicht machen wir ein Mini-TN-Treffen :-)
-
DAX-Daten NT
... IB fasst um die Datenlast etwas zu verkleinern jeweils immer ein paar Ticks zu kleinen Paketen von (ich glaube) 20 oder 25 Millisekunden zusammen. Beim User kommt also nicht unbedingt JEDER EINZELNE Tick an, sondern eben alle Ticks dieser Zeitspanne in einem Paket. Das ist nicht weiter tragisch; also ich bemerke beim Traden nichts davon. Optisch ist es aber bemerkbar: Wenn ich den zen-fire-Feed im NT lade, sieht das irgendwie "spritziger" aus, als wenn ich den IB-Feed lade, denn zen-fire überträgt JEDEN Tick. Ein Tip, den mir Aurelius gegeben hat: Wenn du den zen-fire-Feed benutzen willst: Eröffne einen Account bei Mirus-Futures (2500$ min. Einzahlung), dann bekommst du zen-fire mit dazu. Anscheinend auch, wenn du nach der Eröffnung nur 500$ auf dem Konto liegen läßt. Bei Mirus oder direkt bei zen-fire kannst du dir den Feed als Demo einen Monat lang kostenlos anschaun. Dann siehst schon ob sich das für dich rentiert. Also, ich benutze ihn noch nicht, da ich mit NT eh noch nicht wirklich arbeite.
-
DAX-Daten NT
Das ist kein großes Problem wenn du schonmal ein deutsches Konto eröffnet hast. Und wenn du mal bei einem bank-spezifischen Ausdruck unsicher bist: www.dict.cc Die restlichen Punkte kann ich als IB-Fan so beantworten: 1. Der Account bei IB wird in Englisch geführt. 2. Der Support von IB ist in deutsch. (in der Schweiz) 3. NT unterstützt IB Die Datenverbindung ist nicht die beste, die zur Verfügung steht, ist aber auch auf keinen Fall als Schlecht zu bezeichnen (Es werden hald Ticks zu Paketen zusammengefasst übermittelt).
-
Beurteilung der Marktphasen
Die einzigen Zeiten, die ich verwende sind die WZahlen-Uhrzeiten aus US, also 14:30 und 16:00 Uhr. Ich lasse meine Systeme immer kurz vorher die Position schliessen und erst etwas Zeit danach wieder Positionen eröffnen. Da ich aber selbst trade, also kein HS, entscheide ich selbst was gerade los ist. Denn wie gesagt: Dieses Verhalten trifft nur wahrscheinlich zu, aber nicht sicher. In einem HS würde ich eher irgendwas messbares benutzen z.B. die Vola, Volumen, ATR, HighLow-Spannen oder sowas.
-
Beurteilung der Marktphasen
So, wie conglom-o gehe ich auch vor; jedoch mit zwei Erweiterungen: Ich betrachte sämtliche höheren Level (M1 bis m15) um mir ein grobes Bild zu machen. Dann schau ich, was der h1 macht und handle dann m5 und m1. Somit habe ich fast nie keinen Trend, da im m1 (für meine Verhältnisse fast immer etwas Bewegung ist und sei es nur das Marktrauschen) und zweitens habe ich die tägliche Handelszeit ganz einfach statistisch ausgewertet: Wann ist was los und was ist wann los (ich trade allerdings FDAX). Und danach richte ich mein Trading: 8-9 Uhr ist meistens fast nix los; aber die Chance auf ein DayHigh oder DayLow sehr groß 9-11 Uhr ist meistens Bewegung im Markt; bis 10 Uhr ist die Chance auf ein DayHigh oder -Low sehr hoch; ab 10 Uhr immer weniger wahrscheinlich 11-14 Uhr nimmt die Vola ab -> Range wahrscheinlich; DayHigh oder -Low eher unwahrscheinlich Wenn 14:30 WZahlen dann kommt Vola in den Markt an sonsten bis 15:30 Uhr (Ami-Eröffnung) wenig Vola und daher RangeTrading 15:30 Uhr kommen die Amis, also auch Vola; DayHigh oder -Low in etwa so wahrscheinlich wie zur DAX-Eröffnung bis 17:30-18:00 Uhr, dann ist die Vola wieder weg und RangeTrading angesagt ab 20:00-21:00 Uhr kommt nochmal bissl Bewegung und zwar recht oft nur noch in eine Richtung. Das sind alles Beobachtungen bzw. ganz einfache Auswertungen, die wie alles an den Börsen nicht immer recht haben, aber die Wahrscheinlichkeiten einschätzen lassen. Hier noch das Excel-Diagramm für den FDAXc1 29.01.2007 - 16.06.2009: Auswertung der Tageszeit - Länge_Preis_Zeit.pdf
-
Global variables
zu oben: Genau so ist es. zu unten: :-) Das einzige, was diese Funktionen "gleich" haben ist, daß sie Funktionen sind. Aber ich versteh schon was du meinst: GlobalVariableSet() "tut" eine Variable schreiben und: OrderSend() "tut" eine Order an den Broker senden
-
Global variables
Nur um sicherzustellen, daß wir vom selben Reden: MQL hat zwei total unterschiedliche "globale" Variablen, die nichts miteinander zu tun haben: globale Variablen im Code sind diejenigen, die jeder normale Coder auch so versteht: eben Variablen die im kompletten Script existieren. Das was du hier ansprichst sind auch globale Variablen, aber nicht deswegen weil sie im kompletten Script existieren (das tun sie auch garnicht), sondern weil man mit den von dir genannten Funktionen aus verschiedenen Scrips/EAs/Indikatoren darauf zugreifen (erstellen/lesen/schreiben/löschen) kann. Um nicht durcheinander zu kommen nenne ich diese Art "Terminal Variablen" weil sie eben quasi im MT4-Terminal gespeichert werden ( mit F3 kannst dir die Liste anzeigen lassen). GlobalVariableSet() schreibt die TerminalVariable GlobalVariableGet() liest die TerminalVariable aus GlobalVariableTotal() hab ich noch nicht benutzt; sollte dir aber die Anzahl der aktuell existierenden TerminalVariable liefern Jede TerminalVariable hat einen Namen und einen Wert (TerminalVariablen sind IMMER double). Wenn du also ein DateTime zu einem Wert speichern willst mußt du das aufteilen in: GlobalVariableSet( variable1_value, value1 ); GlobalVariableSet( variable1_datetime, datetime ); Zu beachten ist: datetime muß im Format "Sekunden seit 01.01.1980(oder so)" vorliegen, da es als String (10.09.2010 15:25:00) nicht gespeichert werden kann. ==> EDIT: DateTime muß in TimeCurrent() vorliegen
-
Sell This Bar on Close
zu 1.: Nein, das meinte ich mit: TS5 hat keine IntraBarTickSimulation. Wenn TS5 einen Backtest mit Stundendaten macht, dann werden nur Signale gehandelt, die zum Close der Stundenkerze noch existieren. Sprich: TS5 berücksichtigt KEINEN kleineren Zeitrahmen als den, auf dem der Backtest läuft. Man kann das jedoch mit etwas größerem eigenem Programmieraufwand umgehen, indem man z.B. ein HS auf m1 laufen läßt und trotzdem nur zum h1-Close Trades generieren läßt usw. zu 2.: MMn. sind das zwei gleiche Vorgehensweisen, die du jedoch nicht vermischen solltest, da sonst der Sinn verlohren geht: Entweder du sagst If ( Close[1] Crosses Under ... ) Then ... und führst die Order dann This Bar At Open; aus Oder du sagst If ( Close Crosses Under ... ) Then ... und führst die Order dann Next Bar At Open; aus. Wenn du beides zusammen mischt, dann bekommst du wie du schon richtig erkannt hast eine zwei-Bar-alte-Entscheidung, die jedoch total nutzlos ist, da du ein Bar lang wartest, obwohl zu diesem Bar die entscheidung garnichtmehr rückgängig gemacht werden kann!!! Wenn du dich für eine der beiden Varianten entscheidest, dann ist die Entscheidung immer NUR entweder vom aktuellen bis zum Close des aktuellen = Open des nächsten oder vom letzten bis zum Open des aktuellen
-
Long und Short im selben Markt
Das sind zwei verschiedene Dinge: Einmal willst du 100 Punkte von 6000 auf 5900 "schon vorhandenen Gewinn nicht zurückgeben" und das andere (in deinem Posting der erste Fall) willst du 100 Punkte von 6000 auf 5900 "Gewinn erzielen". Es ist rechnerisch gesehen total egal, ob man einen Long und einen Short hat oder nicht investiert ist. Wenn man aber einen Long hat und zwei Shorts kauft, ist man netto mit einem Short. Lies dir am besten dazu diesen Thread mal durch...
-
Möchte einen EA bauen, mit selbstgebautem Indikator
iCustom ist nichts aderes als z.B. iRSI, nur daß iCustom die Werte eines z.B. selbstprogrammierten Indikators liefert. Man kann also mit iCustom den selbstgemachten "SuperSwing-Indikator" genauso benutzen, wie die MQL-eigenen iRSI, iMACD usw.
-
Sell This Bar on Close
Du sprichst hier von NinjaTrader, oder? Ich kann dir nur die Eigenheiten von TS5 erklären, in Ninja bin ich noch überhauptnicht drin... Bei TS5 ist das so: (ich hab schnell eine Grafik gemacht, sonst erklär ich mich dusslig :-) => Ein Backtest mit Sell Next Bar At Open kommt der Realität zumindest nahe; ein BAcktest mit Sett This Bar At Market liefert nahezu nicht vergleichbare Ergebnisse.
-
Sell This Bar on Close
Genau: Sobald TS5 den für die aktuelle Kerze letzten Tick erhält wird die Order zum Close ausgeführt. Diesen Preis bekommst du aber nur im Backtest, in real wird sich hier fast immer eine Slippage ergeben, da ja nicht der Last, sondern Bid oder Ask zu nehmen ist. Das, was du gelesen hast (Entscheidung nach abgeschlossenen Bar) hat folgenden Hintergrund: Während der Entstehung eines Bars ist es möglich, daß aufgrund der Kursspanne innerhalb dieses einen Bars einmal der Zustand "Signal" zustandekommt und durch einen Möglichen Rücklauf der Kurse der Bar dann doch mit dem Zustand "NoSignal" schließt. Hätte dein HS jetzt schon während der Entstehung des Bars das Signal gehandelt, wäre das an dieser Stelle falsch, da der Close des Bars das zwischenzeitliche Signal ja nichtmehr bestätigt. Allerdings ist es so: Die Entscheidung "Signal" oder "NoSignal" erfolgt bereits zum ClosingTick des SignalBars. Also kann man mit "Sell Next Bar At Open" den aktuellen Bar als SiganlBar benutzen und bereits einen Tick nach dem Close das Open des nächsten Bars handeln. Somit basiert die Order auf einer Entscheidung, die zum Close des letzten Bars getroffen wurde. Mit z.B. "Sell This Bar At Market" führt TS5 eine Order im realtimebetrieb sofort zum aktuellen Preis aus. Im Backtest allerdings führt TS5 diese Order so aus, daß wenn zum Close des Bars das Signal da ist wird zum Close gekauft. Das ist so, weil TS5 keine brauchbare IntraBarTickSimulation hat; es werden einfach z.B. 1-MinutenDaten verwendet. Ich hoffe, ich hab nicht zu kompliziert geschrieben :-)
-
"Tom-Next Codingconvention"
Hab diesen Thread erst gerade entdeckt; und er kommt meiner perfektionistischen Ader sehr entgegen. Hab mit vor einiger Zeit eine "eigene" Convention gebastelt. Mit eingeflossen sind die Ungarische und die abgeleitete Microsoft, sowie eigene Layout-Regeln: (Ist für TS5/Equilla entstanden!!!) Ich mache das per "Präfix - Gruppe-Name-Bezeichnung - Postfix" z.B. "ldBollingerBandPrice": - Präfix: ld = lokal double - Gruppe: Bollinger - Bezeichnung: Band - Postfix: Price oder "liBollingerBandPeriod": das selbe, nur daß die Variable einen int-Wert enthält und die Funktion des Wertes ist nicht wie oben Price = Bid, Ask, Last, Open, High, Low, Close oder entsprechend im Chart auf der rechten Skala darzustellen sondern Period = Periodenangabe, Timebase- oder Timelevel-Angabe. Ein paar weitere Postfixe, die ich verwende sind: Flag (bei bool oder digital), Count (z.B. in for-next-Schleifen), Date, Time. Bei etwas komplizierteren Berechnungen ist finde ich die Variablen-Funktionen Cash, Lots, Price, Range, Value, Period, und Points sehr hilfreich. Das ganze ist am Anfang wirklich sehr gewöhnungsbedürftig und es kommt einem sehr aufwendig vor, aber: Wenn man nach einiger Zeit einen älteren Code überarbeiten muß oder einen Fehler sucht und man an diese Schreibweise gewöhnt ist, kann man sich enorm viel Zeit sparen. Die Variablennamen werden hald wirklich richtig lang. Das ist aber meiner Erfahrung nach der einzige Nachteil.
-
Umfrage zur Verbesserung der Forenstruktur
Naja, das ist bei TS5 schwierig; bzw. ist es eigentlich beides. Ich persöhnlich habe hald wenn dann immer nur Fragen bzgl. der Handelssystem-Programmierung in TS5 und eher nicht in Sachen TA. Für's richtig eingeordnet sein bräuchte ich also TS5 auch bei den Programmierbaren Handelsplattformen. Allerdings schreiben viele, daß sowieso fast nur über Neue Beiträge/Heutige Themen gesucht wird; ich mach's ja auch so. Also werden meine Fragen schon gefunden :-)
-
MACD Signallinie im Chart
OKee, du darfst das wirklich gerne übernehmen; wie gesagt, ich bin z.ZT. etwas raus aus MQL.
-
MACD Signallinie im Chart
Hab grad nachgeschaut, MT4 kann glaub ich nur eine Scale. Bzw. es gibt "OBJPROP_SCALE 12 double Double value to set/get scale object property."; evtl. klappt das damit. Oder man rechnet um in OBJPROP_X- und YDISTANCE. Wenn's dir nicht eilig ist damit, würde ich mich nach meinem SystemStatus-Project da mal dran machen; denn in MQL muß ich gedanklich erst wieder rein...
-
MACD Signallinie im Chart
Ich hab schon länger nix mehr gemacht mit MT4, aber ich hab zwei Ideen: Falls MT4 eine zweite Scala kann, könnte man z.B. rechts die normalen Kurse und links den MACD anzeigen. Also einfach Überlagern. An sonsten könnte man den Offset nicht Close benutzen, sondern den Mittelpunkt zwischen HighestHigh und LowestLow, und zwar für so viele Bars zurück, wie lange eben dein View ist. So würde man eine Nulllinie simulieren.
-
Umfrage zur Verbesserung der Forenstruktur
Wenn es einen Grund hat, daß "Programmierbare Handelsplattformen (OTC)" und "Automatisierter Handel | Algorithmic Trading" getrennt ist, dann lasst es so; ich finde aber, das ist das selbe. Bzw. einige Unterpunkte müßten dann in beiden Themenbereichen vorhanden sein. An sonsten vermisse ich in og. Bereichen die Unterpunkte für TradeSignal5/Equilla, da ich hauptsächlich damit arbeite. MMn. müssen die "Spaß-Themen" auch nicht unbedingt in eine Ordnung gebracht werden. Ich finde "Chit Chat" trifft den Nagel auf den Kopf :-)
-
Point & Figure Charts / Analyse
Wen's interessiert: Es gab vor ein paar Jahren auf TSo einen recht guten P&F-Thread, wo ein paar Leute und ich recht intensiv an einem P&F-System gearbeitet haben. Ich hab damals versucht, das Regelwerk komplett zusammenzufassen. Ich stell das jetzt einfach mal hier rein... Der letzte Überlebende dieser Zeit ist "surfmei" auf TSo; er hat seit dieser Zeit weiterentwickelt. Ich denke, er hat nichts dagegen, wenn man sich mit Fragen dazu an ihn wendet. Gustav24 - Handelssystem.doc
-
SystemStatus - Wie nennt man folgende Methode?
@all: Danke an Alle !!! Ihr habt mir sehr weitergeholfen... Mit euren Infos kann ich einiges anfangen. Ich werd jetzt versuchen, das als zwei Funktionen StatusGet() und StatusSet() umzusetzen und wahrscheinlich noch ein paar Fragen haben. :-) Bei Interesse stell ich die dann hier rein; ich hoffe, bis über's WE was funktionierendes zu Stande zu bringen. Danke nochmals...
-
SystemStatus - Wie nennt man folgende Methode?
Genau, das meine ich. Gibt's für diese Methode der Fehlercodeangabe einen speziellen Namen, nach dem ich googeln könnte ??
-
SystemStatus - Wie nennt man folgende Methode?
Ich glaub, du bist viel zu tief; es geht um Equilla/EasyLanguage von TradeSignal5 bzw. TradeStation. Das ist eher eine KindergartenSprache :-) Ich geb dir nochmal ein Beispiel, was ich meine: Der Status ist 0 - Das bedeutet, das System ist auf "Go" -> Jetzt passieren ein oder mehrere Fehler: Der Status soll jetzt z.B. 21 sein -> Das bedeutet 16 + 4 + 1 also ist Grund1 und Grund4 und Grund16 aufgetreten.
-
SystemStatus - Wie nennt man folgende Methode?
Danke, ich bemühe Google mal und schau, ob's das ist, was ich meine. Nein, um Speicherplatz geht's mir weniger. Mir kommt diese Methode logisch und einfach vor: Ein Wert enthält alle Gründe, warum das System auf "Stop" geschalten hat. Hab mir früher noch nie Gedanken über sowas gemacht. Hast du evtl. nen Link, wo man Infos über dieses Thema bekommt? Am besten in Anfänger-Form :-)