| Metastock-Forum.de |
| Richard Ebert AG · Telefon 06652-3326 · Fax 06652-5060 |
| MetaStock Startseite Forum-Übersicht | Hauptforum |
| Deutsche Börse: Tochter ISE unterliegt in Streit mit CBOE | ||||
| xtrade | Am: 08.07.2010 23:43:41 | Gelesen: 352 | # 3 | ![]() |
|---|---|---|---|---|
ein deutsches Unternehmen klagt bei den Amis .. haha .. wo die noch nichtmal daran denken, unser Gold rauszurücken .. die haben echt Humor und Mut .... | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 04.01.2010 05:18:49 | Gelesen: 9984 | # 439 | ![]() |
@ eTS [#438] Hallo eTS, da Du eine TLB Datei vorliegen hast, schätze ich, dass Du die ActiveX Komponente nun schon installiert hast.. Über Menü Komponenten, Komponente importieren , Typbibliothek importieren, "TWS ActiveX Control Module" Das nennt man die frühe Bindung von COM Interfaces. Daher arbeitet man jetzt auch nicht mehr CreateComObject und sonstigen Dingen. Denn Du kannst nun die IB komponente über die Toolpalette einbinden, so wie Du es mit jedem Button tun würdest. Für Testzwecke mit einer einzigen IB musst Du sie noch nichtmal selbst createn .. Falls die ActiveX Komponente unter Delphi noch nicht verfügbar ist, könntest aber nochmal versuchen, die TLB manuell nochmal erneut als einzelne Komponente in Delphi zu installieren. > Jetzt ist noch die Frage wie man das Ganze parameteriert Wenn die Komponente ordnungsgemäß installiert ist, sagt Dir das alles die IDE Unterstützung. Allerdings nicht mit IContract arbeiten, sondern mit TContract ... Wenn Du Dir die Mühe über ActiveX ersparen willst, dann als Alternative die HHS Komponenten benutzen, die nicht über ActiveX funktionieren. http://www.hhssoftware.com/iabsocketapi/index.html | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 21.12.2009 13:55:55 | Gelesen: 10736 | # 428 | ![]() |
@ Osten [#425] > wenn bei dir die ganzen (neuen) "End"-Events fehlen, dann benutzt du eine alte HHS Version! natürlich hast Du Recht, hab ich vergessen zu erwähnen, .. mensch, ich glaub, ich brauch etwas mehr NachtSchlaf ;-) @ Livetour [#425] > Eigentlich wollte ich von Anfang an einen eigenen SocketClient schreiben genau das hat Beejay gemacht. Wenn Du Lust hast, diese gemeinsam ab und zu zu erweitern? Dann melde Dich doch ruhig mal. :-) | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 20.12.2009 18:23:50 | Gelesen: 10775 | # 424 | ![]() |
@ xforce [#423] > Es ist auch nicht das Ziel aus dem IB Snapshots einen perfekten > Tick by Tick Feed zu machen das geht sowieso nicht, weil das Volumen mehrerer Ticks bei IB zusammenaddiert ist, so dass am Tagesende das Gesamtvolumen halbwegs stimmt. Und das stimmt dann auch mit Original Eurex Tickdaten überein, die auf CD ausgeliefert werden. Ich sagte ja, da fehlt am Ende des Tages nur ein gewisser Prozentteil, nicht übermäßig viel. Das finde ich besser, als einen Datenanbieter, der versucht, alle Ticks zu schicken. Wo aber dann das Volumen nicht stimmt. Das Problem solcher Datenanbieter ist nämlich, dass sie manchmal einfach zu spät sind Ich hab sogar schon von Servern bei einer Berliner Bank gehört, die ihren Bloomberg Feed absichtlich ausfiltern, weil die Datenmange gar nicht zu verarbeiten wäre. Ist auch logisch, wenn man schaut, wieviel Trades pro Sekunde eigentlich gehandelt werden (z.B. in den Futures) Dass das Problem gelöst ist, ist die Hauptsache. :-) Allerdings kommt das Tages-Gesamtvolumen nicht wirklich synchron, dass man es einem bestimmten Price oder eine bestimmten Zeit zuordnen könnte. Aber wenn Du zufrieden bist, dann ist ja alles gut ;-) | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 20.12.2009 17:24:51 | Gelesen: 10784 | # 422 | ![]() |
@ Livetour [#419] "Aber das eigentliche Grundproblem bleibt trotzdem erhalten: Der TWS eine bestimmte Arbeitsreihenfolge zu unterstellen, ist gewagt." ja da stimmt, aber .. der "Marker" sollte nicht direkt nach reqContractDetails aufgerufen werden, um auf die chronoligische Ausführung zu hoffen. sondern ich sehe gerade, dass ich ihm in Event ContractDetails selbst aufgerufen habe. Das heißt, wenn die API erst einmal angefangen hat, ContractDetails zu schicken, dann macht sie das in einem Rutsch. Eine gewisse Stabilität denke ich, sollten auch die IB Programmierer garantieren, damit die Anwenderprogramme nicht stätig durcheinanderkommen. Ich denke nicht umsonst muss in jedem Event die API version und sogar die Function Version übermittelt werden. Wobei aber die IB Programmierer auch nicht wirklich sooo clever sind, versuch mal eine Order, für die Du noch keine Bestätigung bekommen hast, zu modifizieren. Nix mit buffering, da kommen dann schöne lila Orders in der IB, so dass man die Bufferung wieder selbst machen muss.. naja ... @ Livetour [#418] na gut, wie Du meinst, aber warum soll ein TickSize LAST_SIZE Events doppelt auftauchen? Wenn es doppelt auftritt, also mit gleichem Volumen, wie das Event davor, dann wird es halt gefiltert. Und jedes unterschiedliche Volumen willst Du ja haben. Les nochmal bitte genau durch, was ich geschrieben hatte. Das einzige Problem ist, meines Wissens, über die IB API Kurse zu bekommenn, die den gleichen Kurs und dasselbe Volumen haben, die fehlen, aber wenn man es statistisch mit den Gesamtumsätzen am Tagesende vergleicht, sind es nicht allzuviele ... vernachlässigbar. Da ich aber gerade nicht die brandaktuellste API verwende, weiß ich nicht, ob die Aussage noch stimmt.. | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 19.12.2009 22:24:08 | Gelesen: 10816 | # 418 | ![]() |
@ xforce [#417] Hi xforce, nutzt Du die Anbindung über ActiveX? Bei mir heißt das TickPriceAndSize, hab gerade mal in der API Dokumentation von IB geschaut, könnte sein, dass das bei Dir TickGeneric heißt .... http://www.interactivebrokers.com/php/apiUsersGuide/apiguide.htm ActiveX/ActiveX Events/ Market Data/tickGeneric | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 19.12.2009 19:58:15 | Gelesen: 10821 | # 416 | ![]() |
@ Livetour [#415] Hallo Livetour. Die HHS Komponenten verwende ich (noch) nicht. ich verwende bisher die Komponenten von Beejay, der aber leider im Moment nicht mehr weiter entwickelt. Das sind aber letztendlich die native C - Komponenten, die IB selbst auch liefert, die Beejay nach Delphi portiert hat, das müsste man mal aktualisieren. Da sowieso noch eine Zwischenschicht zur Kapslung zwischen Programm und IB-Komponenten besteht, die man dann mit der Verwendung von HHS austauschen müsste, besteht nun noch die Frage nach Abwägung des Arbeitsaufwandes. Beejay Komponente ständig selbst anpassen, oder komplett umstellen auf HHS und die Zwischenschicht dafür anpassen. :-) @ zum Beispiel der ContractDetailsEnd-Event. Gibt es dafür Workarounds? ja, gibt es, sieht ungefähr so aus ;-) nach ContractDetails wird das AfterContractDetailsEvent aufgerufen ;-) Der Trick besteht daran, im ContractDetailsEvent folgende Aufruf zu tätigen. der Aufruf sieht dann so (sehr bequem) aus: FbjConnector.PlaceMarker(self.AfterContractDetails); //============================================================================== procedure TXMbjProvider.AfterContractDetails(Sender : TObject); begin StartExecDetails; end; der Placemarker is aber nen geheimer Trick :-) naja .. geheim nicht, aber wertvoll. Musst einfach eine CancelOrder von einer negativen OrderID rausschicken. Die ErrorMSG Meldung kommt nach fertigstellen der ContractDetails (nacheinander ausgeführt) Man muss den Errorcode 135 auswerten. Aufpassen musste man aber glaub ich ncoh bei Aktien wo mehrere Börsen geliefert werden. Da müsste ich aber nochmal genau den Quelltext studieren, weiß ich jetzt auch nicht mehr so genau, wo da der Haken war. besten Gruß..... | ||||
| IAB: Fragen zur TWS Trader Workstation | ||||
| xtrade | Am: 18.12.2009 22:13:19 | Gelesen: 10866 | # 413 | ![]() |
Also früher gab es nur 2 Events von IB. TickPrice und TickSize Da war es zwar nicht unmöglich, aber etwas trickreich, einen ordentlichen Tickdatenfeed zu extrahieren. Das hat IB eingesehen und ein TickPriceAndSize Event eingeführt. Der alleine aber auch nicht ausreichend ist, da er nicht geschickt wird, wenn sich nur die Size ändert und der Price gleich bleibt. Also braucht man jetzt folgende 2 Events. TickPriceAndSize und TickSize bei TickPriceAndSize generiert man einfach einen neuen Tick. und beim TickSize Event generiert man einen neuen Tick mit dem alten Price, aber mit dem neuen Volume. Ich hätte auch noch etwas Delphi Source für Dich auf Lager ;-) | ||||


