INTERAKTIVE BROKER-DATEN PLUGIN AmiBroker unterstützt jetzt Echtzeit-Streaming-Zitate von Interactive Brokers TWS WICHTIG: SIE MÜSSEN DAS INSTALLIEREN, wenn Sie AmiBroker 5.70 oder höher installiert haben. Es wird von AmiBroker eingerichtet. Unterstützt bis zu 100 Streaming-Symbole in Echtzeit (gleich IB TWS-Limit) unterstützt alle Basiszeitintervalle: 15-, 5-, 1-Minuten-, 15-, 5-Sekunden-Tick Automatische Verbindung (keine Notwendigkeit, manuell quittieren eingehenden connectionquot in TWS) unterstützt bis zu 30 (180) DAYS-Intraday-Daten BACKFILL im 1-Minuten-Taktintervall bis zu 2000 Takten Rückverfüllung über 1-sec5-sec15-Sekunden Taktintervalle für alle 32-Bit-Windows-Versionen 180 Tage Rückverfüllung kann aufgrund IB-Drosselung langsam sein Die Rückfüllanforderungen HINWEIS ÜBER IBTWS PERFORMANCE: IB TWS Backfill ist sehr begrenzt (1 Symbol auf einmal) und SEHR SEHR langsam. IB Drosseln Rückstände und Sie können nicht mehr als 60 Anfragen innerhalb von 5 Minuten (es entspricht einem Monat von 1-Minuten-Daten nur für 12 Symbole). Für viel schnellere Rückstände empfehlen wir eSignal oder IQFeed. WICHTIGE SYSTEMANFORDERUNGEN ANMERKUNG: Während AmiBroker selbst keine großen Anforderungen hat (siehe Getting Started Seite), ist Interactive Brokers TWS eine Java-basierte Anwendung, die Speicher und CPU hungrig ist. Sie müssten mindestens 800MHz CPU haben, um TWS zu verwenden. Siehe offizielle TWS-Systemanforderungen Seite: interactivebrokersensoftwarerequirements. php WICHTIGE HINWEISE AUF IB-BACKFILL IM TICK-MODUS: Die feinste Auflösung von BACKFILLS, die Interactive Brokers TWS anbietet, ist 1-SECOND-Balken (siehe TWS-API-Dokumente hier). Es bedeutet, dass, obwohl Sie können Streaming-Echtzeit-Daten in Tick-Format zu sammeln, wird das Backfill immer Auflösung auf 1-Sekunden-Balken beschränkt. Auch IB TWS-Streaming-Daten sind nicht tick-by-tick, sondern 0.2-0.3 Sekunden Snapshots, lesen Sie diese für Details: interactivebrokerscgi-bindiscusboard-auth. plfile237364.html Aus diesem Grund empfehlen wir, höhere Intervalle wie 5-sek, 15- Sec oder besser noch 1 Minute. Für Windows XP, Vista, Windows 7, Windows NT, 98 enthält ein Kompatibilitäts-Update für TWS 907 Für Windows XP, Vista, Windows 7, Windows NT, 98 Upgrade für AmiBroker 5.30 (es ist bereits im Setup von AmiBroker 5.30 enthalten) 2.0 .2. Freigegeben 2. Oktober 2009 für Windows XP, Vista, Win 7, Win 2000, Win NT, Win98 unterstützt 64-Bit datetime und float volumeopenint (AmiBroker 4.27 und höher) auf Vista und Windows 7 vorherige Versionen von IB-Plugin stürzte beim Anfordern eines ungültigen Symbols Die Funktion "AfxIsValidAddress" ist auf VistaWin7 unterbrochen. Fixed by rewriting Code nicht mehr zu verwenden AfxIsValidAddress. Fix für Nicht-US-Indizes, gehandelt mit verschiedenen Währungen als USD 1.8.2 veröffentlicht 23. Oktober 2008 das Plugin akzeptiert jetzt auch Single-Buchstaben-Sicherheitscodes zusätzlich zu 3 Buchstaben-Codes. So nun Sicherheitstyp sein kann: S oder STK für Aktien F oder FUT für Futures O oder OPT für Optionen P oder FOP für Futures Optionen C oder CASH für Währungen (Forex) I oder IND für Indizes Dies dient zur Verkürzung Symbole für Instrumente zitiert In Nicht-US-Währungen, so dass sie innerhalb maximal 25 Zeichen Länge passen. Beispielsweise gibt es die Möglichkeit, mit dem IB Plugin CURRENCY anzugeben, wie es in den meisten Fällen möglich ist, dass das SMART-Routing, wenn das gleiche Symbol mit mehreren Währungen gehandelt wird, am 22. Oktober 2008 veröffentlicht wird In einem Symbol. Das Symbol-Format ist jetzt: SYMBOL-EXCHANGE-TYPE-CURRENCY. Alle Symbole, die nicht explizite Währung Spezifikation verwenden USD jetzt (außer Forex). Die Standardwährung ist USD und wird verwendet, wenn nichts als 4. Teil des Symbols angegeben wird. So wird beispielsweise MSFT intern auf MSFT-SMART-STK-USD1.8.0 freigegeben 15. Oktober 2008 (veraltet - verwenden Sie bitte 1.8.1) Fix auf Duplizierung Ticker IDquot Fehler mit der neuesten TWS, wenn mehr als 5 Tage Rückstand angefordert wurde 1.7 .1 freigegeben am 10. Juni 2008 Extended Backfill bis zu 180 Tage (experimentell kann nach IB-Drosselung langsam sein) (ein Jahr Rückbau beseitigt wegen Instabilität) 1.7.0 freigegeben 8. Mai 2008 Offener Preis in RT Zitat-Fenster verfügbar (für Bestände ) Verlängerte Rückvergütung 180 Tage (Besserer automatischer Wiedereinschaltungsvorgang bei der Netzunterbrechung) Aktualisierte Fehlercodebehandlung (Code 162 - Datenstimulationsverletzung) Aktualisiert, um neue TWS API 9.41 zu verwenden, verringerte CPU-Belastung während der Nachfüllung verringerte CPU-Belastung während Die auf neueste TWSAPI 9.0 aktualisiert wurden und mit neuestem TWS 863 sowie 862 und 861 getestet wurden. 1.6.6 veröffentlicht am 6. Juli 2006 PrimaryExchange ist nun auf leere Zeichenfolge gesetzt und nur lokales Symbol wird verwendet, wenn Daten angefordert werden. Damit löst sich für einige Konten während der letzten 2 Wochen ein indirektes Symbolquotproblem, das auf anscheinende Änderungen in IB folgt. 1.6.7 freigegeben 31. März 2006 jetzt Streaming-Verbindung verwendet kleinen Puffer, während Backfill-Verbindung verwendet großen Puffer hinzugefügt Schutz gegen Stoppen der Hinterfüllung, wenn Benutzer durch Symbol-Liste blättert und ungültige Ticker angetroffen wird 1.6.0 freigegeben 30. März 2006 hinzugefügt Behandlung von TWS-Fehler Meldung 300 (cant find Eid) hinzugefügt Handhabung der TWS-Fehlermeldung 165 (HDMS-Trennung) - ermöglicht die Umgehung TWS-Drosselung hinzugefügt quotCancel Backfillquot-Menüoption hinzugefügt quotMinimumquot Rückfülllänge, die in weniger als einem Tag verarbeitet, wenn Sie bereits einige Daten von heute haben vor kurzem Ausgewählte Backfill-Länge wird zwischen Session hinzugefügt separate Verbindung für Backfill zu Workaround TWS-Probleme mit hängenden Backfills plus automatische Wiederherstellung, wenn Backfill-Zeiten oder HDMS-Trennungen hinzugefügt einige Laufzeit-Checks für gültige Zeiger auf Workaround TWS-Bug des Sendens falscher IDs für bestimmte Nachrichten Zitate nach dem Backfill Werden aus dem Plugin-Speicher gelöscht addiert getquotes Benachrichtigung für die Verwendung in zukünftigen Versionen von AmiBroker festen Problem mit - IND Symbole (Bug erschien in 1.5.0) 1.4.4 Socket-Code wieder verwendet (neuere funktionierte gut auf alle außer einer Maschine) 1.5 .0 freigegeben 27. Januar 2006 1-minütige Verfüllungslänge wird nun auf bis zu 30 Tage verlängert. Benutzer über die RIGHT-Maustaste über den Plugin-Statusbereich auswählbar. (Beachten Sie, dass aufgrund von TWS-Limitierung Backfills länger als 5 Tage in Stücke von 5 Tagen aufgeteilt werden und nacheinander heruntergeladen) Implementierte Workaround auf IB seltsame Art und Weise des Sendens tickSize Ereignisse Problem war, dass IB manchmal wiederholt viele Male die gleiche Zecke und manchmal überspringt einige Zecken und Kumulieren sie in ein tickSize LASTSIZE-Ereignis. Dies liegt daran, dass IB-Feed war nicht als tick-by-tick entworfen und nie beabsichtigt, timeampsales Serie, sondern nur zu aktualisieren TWS Display-Gitter. Jetzt versucht das Plugin, diese Verrücktheit zu umgehen, indem Sie doppelte tickSize LASTSIZE-Ereignisse ignorieren (mit der gleichen Größe) und fehlende Zecken korrigieren usign CUMULATIVE-Volumen, das mit tickSize VOLUME-Ereignis gesendet wird. Korrektur ist erforderlich, weil ohne sie würden wir am Ende mit falschen Gesamtvolumen (manchmal echte Trades können die gleichen Ereignisse, so dass mehrere REAL Zecken können die gleichen Preise haben, leider gibt es keine Möglichkeit zu erkennen, wann immer es echte Handel oder Duplikat von IB, so erzeugt wird Korrektur nach kumuliertem Volumen ist der einzige Weg zu gehen). Plugin akzeptiert jetzt quotOquot und quotOPquot als Typspezifikation und behandelt es als quotOPTquot Dies ermöglicht es, Anführungszeichen für einige Optionen zu erhalten, die sehr lange Symbole haben (über 26 Zeichen, die von AB erlaubt sind). Zum Beispiel, um DAX-Optionen zu erhalten, verwenden Sie diese Symbole: C ODAX MAR 06 5500-DTB-O P ODAX MAR 06 5500-DTB-O (Beachten Sie, dass es zwischen 06 (Jahrcode) und 5500 (Preis) ZWEI Leerzeichen gibt Probleme mit Microsofts CSAD-Buggy-Implementierung Die IB-API-Fehlermeldung 165 wird nun verwendet, um zu erkennen, wann immer eine Ergänzung verfügbar ist oder nicht (Demo-Konto zum Beispiel bietet keine Nachfüllung) Kern-API-Teile umgeschrieben, um schnell gepufferte Sockel zu verwenden Verwendet ECLientSocket-Code als Teil der TWS-API geliefert. Zwar dieser Code wurde mit Single-Byte-at-a-time aus Socket gelesen und es war schrecklich Performance-Schwein, wenn Rückstände länger als einen Tag waren. Neue gepufferte Socket-Code ist in der Lage zu lesen Bis zu 4096 Bytes) volle 5-tägige Nachfüllung für alle Symbole (1-Minuten-Bar-Intervall) IDEALPRO verwendet jetzt MIDPRICE anstelle von BID, um eine sauberere Nachfüllung zu erhalten, aber der Benutzer kann im Konfigurationsbildschirm wieder auf BID zurückschalten. Diese Version bietet eine geringfügig verbesserte Performance (weniger CPU-Auslastung) 1.4.1 freigegeben 13. Juni 2005 Diese Version behebt Echtzeit-Update für den IDEALPRO (forex) - Markt, dh Symbole wie EUR. USD-IDEALPRO-CASH werden in Echtzeit korrekt aktualisiert. (IB sendet keine letzten Handelspreise-Updates für Forex, so dass BID-Preis stattdessen verwendet wird) unterstützt Backfill (lesen Sie unten für die Details). Erfordert keine API-Installation. B) Rückfüllungsdaten für einige Symbole dürfen auf den IB-Servern nicht vorhanden sein. C) UseRTH (backfill extended hours onoff switch ) Scheint nicht zu funktionieren (Bug in TWS berichtet IB bereits) d) TWS unterstützt nur ONE Backfill zu einem Zeitpunkt, so Plugin verhindert mehr Triggering. E) TWS erlaubt nur, dass bestimmte Datenmengen je nach Basiszeitintervall heruntergeladen werden. HINWEIS: Interaktiver Broker TWS ist eine CPU-hungrige Anwendung, daher empfehlen wir für beste Ergebnisse eine Maschine mit 1 GHz Prozessor oder schneller zu verwenden. Um das interaktive Brokers-Daten-Plugin mit AmiBroker zu nutzen, müssen Sie: Sie müssen das Plugin NICHT INSTALLIEREN, wenn Sie AmiBroker 5.70 oder höher installiert haben. Es ist schon enthalten. Download IB plugin von: amibrokerbinib204IB. dll Aktuelle STABLE Version von IB. DLL: 2.0.4 und kopieren Sie es in PLUGINS Unterordner des AmiBroker-Verzeichnisses. Web-basiertes TWS ausführen oder standalone TWS herunterladen Wählen Sie im TWS die Option - gt API - gt Aktivieren Sie ActiveX - und Socket-Clients Aktivieren Sie im Menü TWS, Configure-gtAPI-gtTrusted IP-Adressen auch das Menü 127.0.0.1, um das Dialogfenster "Ankommende Connectionquot hinzufügen" zu vermeiden. Führen Sie AmiBroker aus, und erstellen Sie eine neue Datenbank mit dem interaktiven Brokers-Plugin als Datenquelle. Gehen Sie folgendermaßen vor: Wählen Sie Datei-gtNew-Datenbank Geben Sie einen neuen Ordnernamen ein (z. B. C: Programm FilesAmiBrokerIB) und klicken Sie auf Erstellen, wie im folgenden Bild gezeigt: Wählen Sie InteractiveBrokers (R) Daten Plug-In von der Datenquellenkombination und Aktivieren von Lokaler Datenspeicher Geben Sie 30000 oder mehr in die Anzahl der zu ladenden Felder ein. Wählen Sie nun Basiszeitintervall. Unterstützte Intervalle sind: EOD, stündlich, 15 Minuten, 5 Minuten, 1 Minute. Professionelle Ausgabe von AmiBroker erlaubt auch Tick, 5-Sekunden, 15-Sekunden-Intervalle zu wählen. Beachten Sie, dass die Verfüllung im Barintervall von 1 Minute oder weniger (TWS-Begrenzung) liegt. Wenn Sie lange tägliche Geschichten und Intraday-Charts haben, sollten Sie die Ausführung von ZWEI Instanzen von AmiBroker in Erwägung ziehen. Eine für EOD-Karten und zweitens für Intraday-Charting. Beide Instanzen können IB als Datenquelle verwenden. Ab sofort liest Ihr AmiBroker Anführungszeichen direkt vom Interactive Brokers. Das Symbolformat verwendet jetzt den Symbolmodus von TWS, nicht den zugrunde liegenden Modus. Der Symbolmodus in TWS ist im Menü Ansicht-gtSymbolmodus in TWS zu sehen. Das Format ist: SYMBOL - EXCHANGE - TYP-CURRENCY SYMBOL ist das gleiche wie die Symbolspalte, wie in TWS angezeigt, während unter Symbolmodus EXCHANGE (optional) der Austausch d in TWS ist, während im Symbolmodus TYPE (optional) STK oder S - Aktien, FUT oder F - Futures, FOP oder P - Optionen auf Futures, OPT oder O - Optionen, IND oder I - Indizes, CASH oder C - Cash (ideal FX) Beachten Sie, dass bei Aktien nur der EXCHANGE und TYPE Felder sind optional. Der Austausch wird auf BEST (SMART) gesetzt und der TYPE auf STK gesetzt. Beachten Sie, dass SINGLE LETTER-Codes nur in der Version 1.8.2 und höher erlaubt sind. CURRENCY (optional - NUR Plugin Version 1.8.1 und höher) - ist die Währung, mit der das Symbol gehandelt wird. Der Standardwert für STK-, FUT-, FOP-, OPT-, IND-Typen ist USD (US-Dollar). Die Standardwährung für CASH (forex) ist leer. Bitte beachten Sie bei der Eingabe von Symbolen besondere Vorsicht, da einige von ihnen (Futures) MULTIPLE SPACES im Symbolnamen haben. Sie müssen genau die gleiche Anzahl von Leerzeichen eingeben, wie in den folgenden Beispielen angegeben (siehe die Symbole unter dem Symbolnamen, die die Anzahl der Zeichen leichter machen). ANMERKUNGEN ZU IB-API-BESCHRÄNKUNGEN: 1. Die Rückfüllung ist nur für REAL-IB-Konten verfügbar (Nicht auf Demo) 2. Offener Preis wird NICHT von IB zur Verfügung gestellt. Aus diesem Grund ist das Open-Feld in Echtzeit-Zitatfenster leer 3. Die Daten von IB enthalten keinen Zeitstempel auf den Trades. Die aktuelle Systemzeit wird verwendet, um jedes Tickzeitstempel zu stampfen. ANWENDUNG DER BACKFILL-MERKMALE Die Backfill-Funktion in Plugin 1.3.7 ermöglicht es, 24 interne historische Daten herunterzuladen, um die Lücken zu füllen, die möglicherweise aufgetreten sind, wenn AmiBroker TWS nicht ausgeführt wird. IB Backfill-Funktion ist über File-gtDatabase Settings konfigurierbar. Configure: Zwei wichtige backfill-bezogene Einstellungen sind: 1. Anforderungslänge 2. automatische Nachfüllung Wenn die Anforderungslänge berücksichtigt wird, wie in den TWS-API-Versionshinweisen unter: interactivebrokersensoftwareapiReleaseNotesapiBetanotes. php beschrieben, ist die IB-Backfill-Funktion auf einige feste Zeitintervallbereiche beschränkt. Sie können z. B. maximal 2000 Sekun - den pro Sekunde, maximal 10000 Sekun - den im 5-Sekunden-Intervall (2000 bar), maximal 30000 Sekun - den im 15-Sekunden-Intervall (auch 2000 bar) und maximal 5 TAGE von 1-minütigen Balken erhalten. AmiBroker verwendet standardmäßig maximal zulässige Beträge. Wie bei der automatischen Rückverfüllung am ersten Datenzugriff - wenn es überprüft wird, versucht AmiBroker, ein Symbol zu hinterlegen, wenn Sie ein Diagramm für ein gegebenes Symbol anzeigen (oder einen Backtest oder einen Scan durchführen). Bitte beachten Sie, dass TWS API derzeit nur einen Backfill zu einem Zeitpunkt erlaubt, also wenn ein Backfill bereits im Hintergrund läuft, wird die automatische Backfill-Anforderung für das nächste Symbol ignoriert, bis der vorherige Backfill abgeschlossen ist. Es ist praktisch, diese Option aktiviert zu haben, aber es kann zusätzliche Belastung für Ihre Internetverbindung verursachen, da Daten benötigt werden, um während des Füllprozesses heruntergeladen zu werden. Wenn Sie die automatische Rücksicherung auf die erste Datenzugriffsoption ausschalten, können Sie die Daten für das aktuelle Symbol oder alle Symbole in der Echtzeitzitat-Fensterliste nachfüllen. Backfill Aktuelle Option ermöglicht das Erzwingen der Ausfüllung des aktuell ausgewählten Symbols, während das Zurücksetzen aller RTQ-Symbole die Hinterfüllung aller im Fenster "Echtzeitzitat" aufgeführten Symbole erzwingen kann. Das Nachfüllen von mehreren Symbolen wird sequentiell (einer zu einer Zeit) aufgrund von Einschränkungen von TWS durchgeführt. Während des Backfillings wird ein Tooltip angezeigt, in dem der Benutzer darüber informiert wird, dass das aktuell wiedergelieferte Symbol und die Plugin-Statusfarbe hellblau (türkisfarben) wie folgt dargestellt werden: AmiBroker Auto-Trading-Schnittstelle für Interactive Brokers 1.3.8 Beta Read Me 29. Mai 2014 21:03 DIES IST EINE BETA-VERSION DER SOFTWARE (siehe FAQ-Abschnitt für eine Antwort, die mit BETA quittiert wird). AUTOMATISCHER HANDEL BRINGT BESTIMMTE RISIKEN. Bitte prüfen Sie sorgfältig Ihre CODE TWS erste Demo und anschließend ACCOUNT PAPIERHANDELS AUTOMATISCH TRADING inteface Handel MACHEN SOLL LEICHTER UND SCHNELLER ABER ES SOLL NICHT OHNE AUFSICHT zu laufen. LASSEN AUTOMATISCH TRADING UNATTENDED AS BESTIMMTEN UMSTÄNDEN wie Internet-AUSFALL, Stromausfall, andere unerwartete Situation entstehen, dass zu einer erheblichen finanziellen Verlusten führen können. Führen Sie einfach das Installationsprogramm aus und folgen Sie den Anweisungen. Eine detaillierte Liste der Änderungen finden Sie unter CHANGE LOG. AmiBroker 4.70 oder höher. Empfohlen AmiBroker 5.30 vor allem auf Vista und Windows 7. TWS Workstation (DEMO, PaperTrading ist in Ordnung) von interactivebrokers. Bevorzugte Version: 907 oder höher. NICHT verwenden TWS Version 945.1 - es ist fehlerhaft, vor allem Web-Version. Der IB Controller (BrokerIB. EXE) ist eine separate Anwendung, die als Puffer zwischen AmiBroker und Interactive Brokers TWS fungiert. Es akzeptiert Befehle von AmiBroker und sendet Befehle, um Informationen von TWS abzurufen. Es erlaubt auch, Aufträge manuell zu senden. Die IB-Controller-Anwendung wird automatisch von AmiBroker ausgeführt, wenn die Formel den folgenden Aufruf enthält: Nach diesem Aufruf wird die Anwendung BrokerIB. EXE (IB Controller) gestartet und die Variable ibc enthält den Zeiger auf OLE-Automatisierungsobjekt mit mehreren Methoden (Funktionen) Ermöglichen, Placemodifycancel Bestellungen über TWS und Abfrage Portfolio Informationen. Diese Methoden (Funktionen) werden als beliebige Automatisierungsobjektmethoden genannt, zum Beispiel: if (ibc. IsConnected ()) überprüfen, ob die Verbindung zu IB erfolgreich war ibc. PlaceOrder (quotMSFTquot, quotBUYquot, 100, quotMKTquot, 0, 0, quotDAYquot False ) Platzauftrag, aber noch nicht senden Beachten Sie, dass dies Low-Level-Schnittstelle für fortgeschrittene Benutzer, die in so genannten Phase-Eins der Implementierung automatisiertes Trading über IB zur Verfügung gestellt wird. Es wird eine übergeordnete Schnittstelle geben, die später implementiert wird. IB-Controller-Methoden (Funktionen): Diese Funktion gibt einen neuen Auftrag zurück. Die Funktion gibt die OrderId (string) zurück, die später zum Ändern des Anforderungsstatus des Auftrags verwendet werden kann Parameter: Ticker - string, der das Symbol des zu kaufenden Securitycontracts angibt. Das Symbol sollte die Symbologie im Detail an definierten folgen: amibrokerib. html Aktion - Aktionen eingeleitet werden, mögliche Werte sind: quotBUYquot, quotSELLquot, quotSSHORTquot Menge - die Zahl der sharescontracts Typ BuySell - Auftragsart gibt, mögliche Werte sind: quotMKTquot , quotMKTCLSquot, quotLMTquot, quotLMTCLSquot, quotPEGMKTquot, quotSTPquot, quotSTPLMTquot, quotTRAILquot, quotRELquot, quotVWAPquot - die Dokumentation von Interactive Brokers TWS für weitere Informationen über Auftragsarten LimitPrice konsultieren - kann dies den Limit-Preis für Grenze definiert und Limit-Orders StopPrice stoppen - das definiert stoppen Preis für TimeInForce Stop-Orders - definiert die Zeit in Kraft der Ordnung, mögliche Werte sind: quotDAYquot, quotGTCquot, quotIOCquot, quotGTDquot ab Feld v1.0.8 TimeInForce in PlaceOrderModifyOrder akzeptiert GTD GTD und GAT Spezifikationen - Gute bis heute - zeigt an, dass der Auftrag Sollte funktionieren, bis die Zeit und das Datum festgelegt. Gültig bis Datumsangabe GTD YYYYMMDD HH: MM: SS TZONE Dabei ist: JJJJ 4-stelliges Jahr MM ist 2-stelliger Monat DD ist 2-stelliger Tag HH ist 2-stellige Stunde MM ist 2-stellige Minute SS ist 2-stellige Sekunde (OPTIONAL) TZONE ist Zeit Zone (OPTIONAL) Nach regulären TimeInForce-Spezifikationen (DAY, GTC, GTD) können Sie zusätzliche GoodAfterTime (GAT) - Teile hinzufügen. GAT Teil kommt nach Semikolon. Es zeigt an, dass der Handel sollte nach der Zeit und des Datums einzureichen: DAYGAT YYYYMMDD HH: MM: SS TZONE - Tag, um gültig nach angegebenen Datetime GTCGAT YYYYMMDD HH: MM: SS TZONE - bis auf Widerruf Auftrag gültig nach bestimmten Zeit GTD jjjjmmtt hh: Mm: ss tzoneGAT YYYYYMMDD HH: MM: SS TZONE - GTD Reihenfolge gültig nach der angegebenen Zeit, in der: YYYY 4-stelliges Jahr MM ist 2-stelliger Monat DD ist 2-stelliger Tag HH ist 2-stellige Stunde MM ist 2-stellige Minute SS ist 2-stellige Sekunde (OPTIONAL) TZONE ist Zeitzone (OPTIONAL) Hinweis: Es darf kein Zwischenraum zwischen Semikolon und GAT-String eingefügt werden. Ibc. PlaceOrder (MSFT KAUF 100. LMT 27. 0. DAYGAT 20051214 18:00:00 GMT. True) - Tagesgrenze Bestellung gut nach Dez 14,2005, 18:00 GMT ibc. PlaceOrder (MSFT. 100. LMT 27. 0. GTD 20051215 17:00:00 GMTGAT 20051214 18:00:00 GMT. True) - Limit Order gültig vom Dez 14,2005 18:00 bis Dec 15,2005 17:00 GMT ibc. PlaceOrder (GMT True) - Limit Order gültig von jetzt bis Dez 15,2005 19:00 GMT Transmit - Boolean Flag, der angibt, ob die angegebene Reihenfolge sein sollte Tatsächlich an die Börse übermittelt. Wenn dieses Flag auf FALSE gesetzt ist, wird die Bestellung NICHT gesendet, sondern erscheint in der TWS-Workstation, so dass Sie nachträglich weitere Parameter für IBController 1.0.4 oder höher eingeben können: TickSize - definiert die minimale Preisschwankung für das angegebene Symbol in Pips ausgedrückt (0.0001 ). Für die meisten US-Aktien ist es 100 (entspricht 0,01 verschieben), für die meisten Währungen: 1 (repräsentiert 0.0001 move), wenn minimale Bewegung kleiner als 0.0001 ist, können Sie fraktionale Werte für zB 1100 für 0.000001 move. additional Parameter für IBController 1.0.8 verwenden Oder höher: Attribute - ist ein String, der die Angabe zusätzlicher Auftragsattribute erlaubt (kommagetrennte Liste). OutsideRTH - wenn angegeben bedeutet, dass die Reihenfolge nicht nur während der regulären Handelszeiten (RTH), sondern auch im erweiterten Handel (nach dem Markt) ausgelöst wird Gilt für Stop-Aufträge, bedingte Aufträge und Alerts, die von der Triggerlogik verwendet werden. Wenn nicht angegeben (false) Aufträge auslösen NUR während RTH. AllOrNone - füllen Sie alle oder gar nichts eTradeOnly - Handel mit elektronischen Zitaten nur firmQuoteOnly - Handel mit festen Zitaten nur Version 1.1 ignoreRth rthOnly Flags sind OBSOLETE jetzt und nicht als TWS-API unterstützt Unterstützung für diejenigen unterstützt. Standardmäßig sind alle Flags INAKTIV (AUS) Beispiel: ibc. PlaceOrder (MSFT. BOOK 1000. LMT 27. 0. GTD 20051215 19:00:00 GMT. True 100. allOrNone) (Beachten Sie, dass der optionale Parameter TickSize MUST Wenn Sie Attribute verwenden möchten) ParentID - ist eine Zeichenfolge, die die übergeordnete Ordnungskennung (zurückgegeben durch den vorherigen Aufruf von PlaceOrder) angibt, sodass Sie BRACKET-Aufträge platzieren können. ParentID ibc. PlaceOrder ibc. PlaceOrder ibc. PlaceOrder ibc. PlaceOrder ibc. PlaceOrder ibc. PlaceOrder (MSFT. 100. parentID) Beachten Sie, dass das TRANSMIT-Flag auf alle Klammerbefehle auf FALSE gesetzt ist, mit Ausnahme des letzten. Damit wird sichergestellt, dass Aufträge warten, bis Klammerauftragssatz abgeschlossen ist. Wenn das Sende-Flag auf TRUE gesetzt ist, wird die gesamte Klammer gesendet. OCAGroup - optionaler Stringparameter (neu in 1.1.0), der die Definition von OCA (One-Cancels-All) OVA-Gruppenaufträgen erlaubt, so dass bei der Ausführung eines Auftrags innerhalb der Gruppe die restlichen Aufträge storniert werden . Für weitere Informationen siehe: interactivebrokersphpwebhelpMakingTradesCreateOrderTypesoca. htmExample: ibc. PlaceOrder (. MSFT VERKAUFEN 1000 LMT 28. 0. GTC Wahr 100. 0. MYGROUP.....) ibc. PlaceOrder (MSFT SELL 1000. STP 26.... OCAType - optionaler numerischer Parameter (neu in 1.1.0), der es ermöglicht, die Art und Weise zu steuern, wie OCAGroup-Aufträge behandelt werden, wenn ein Auftrag in der Gruppe teilweise gefüllt ist. Mögliche Werte sind: 1 CANCELWITHBLOCK - andere Aufträge 2 REDUCEWITHBLOCK storniert werden - andere Aufträge werden in ihrer Größe reduziert und Überfüllsicherung ON 3 REDUCENONBLOCK ist - andere Aufträge werden in ihrer Größe reduziert und Überfüllsicherung ist OFF Standardwert ist 3 FAParams - optional String-Parameter (neu In 1.1.0) - für die Verwendung mit FA (Financial Advisor aka FamilyampFriends) Konten. Ermöglicht die Festlegung der FA-Kontoverteilungsgruppe, des Profils, der Methode und des Prozentsatzes. Diese vier Parameter sollten als semikolongetrennte Zeichenfolge bereitgestellt werden: quotFAGroupFAProfileFAMethodFAPercentagequot. Wenn ein Parameter nicht erforderlich ist, kann er leer gelassen werden, aber Sie müssen Semikolons beibehalten, wenn weitere Parameter erforderlich sind. Zum Beispiel zu geben, um die quotAllquot Gruppe und verwendet quotEqualQuantityquot Methode verwendet das FAParameter sollte wie folgt aussehen: quotAllEqualQuantityquot:....... Ibc. PlaceOrder (MSFT KAUFEN 1000. LMT 27. 0. GTC Wahr 100. 0. 0. AllEqualQuantity) Wenn Sie ein benutzerdefiniertes Zuordnungsprofil verwenden möchten, können Sie Folgendes verwenden: ibc. PlaceOrder (MSFT KAUF 1000. LMT 27. 0. GTC. True 100. 0. 0. AllMyCustomProfile) Wenn FAParams nicht vorhanden ist und Verwenden Sie FA-Konto als IBc verwendet Standard-Allokation von quotAllAvailableEquityquot Beachten Sie, dass standardmäßig IB-Controller in quotAllquot-Konto, das quotaggregatequot ist, dh die Summe aller Positionen auf allen Unterkonten. Konto - optionaler Zeichenfolgenparameter (neu in 1.3.5) - für die Verwendung mit Accounts (Accounts Advisor aka FamilyampFriends). Auf diese Weise kann das Zielkonto für die Bestellung für FampFFA-IB-Konten im Einzelanruf festgelegt werden, anstatt sich auf die SetAccountPlaceOrder-Sequenz zu verlassen. Einzelanruf PlaceOrderModifyOrder mit Kontospezifikation erlaubt es, Konto anzugeben, ohne sich Gedanken zu machen, dass andere Threadprozesse das Konto zwischen SetAccount () und PlaceOrder () ändern können. ModifyOrder (string OrderId. Zeichenfolge Ticker. String Aktion. Nummer Menge. String-Typ. Nummer LimitPrice. Nummer StopPrice. String TimeInForce. Bool Transmit, optional Anzahl Ticksize 100, optionaler String Attribute quotquot, optionale Zeichenkette ParentID quotquot. Optionaler String OCAGroup. Optionale Nummer OCAType optionaler String FAParam optionaler String Account) Diese Funktion ändert die Reihenfolge, die vor, aber noch nicht gefüllt wurde. Diese Funktion kann auch verwendet werden, um Aufträge zu ändern, die mit dem QuotTransmitquot-Flag gesendet wurden, das auf False gesetzt ist. Auch wenn OrderID-Parameter leer ist, funktioniert diese Funktion genau wie PlaceOrder (so können Sie Aufträge nur über die ModifyOrder () - Funktion platzieren und ändern.) Die Funktion gibt die OrderId (string) zurück, die später zum Ändern des Auftragsstatus des Auftrags verwendet werden kann Parameter: OrderId - String, der die zu ändernde OrderID angibt (zurückgegeben durch einen früheren PlaceOrder - oder ModifyOrder-Aufruf). Wenn dieser Parameter leer ist, gibt die Funktion einen neuen Auftrag an. Alle verbleibenden Parameter sind dieselben wie bei der Funktion "PlaceOrder". In Version 1.1.0 wurde eine Verbesserung der Funktion ModifyOrder hinzugefügt, wenn einige optionale Parameter wie ParentID, OCAGroup, OCAType und FAParam vorhanden sind Nicht spezifiziert - dann verwendet es vorher angegebene Werte (bei PlaceOrder). Dies verhindert zB, dass Sie ParentID beim Aufruf von ModifyOrder auf eine untergeordnete Reihenfolge ohne currect parentID verlieren. Diese Funktion hebt die anstehende Bestellung auf. True - wenn die anstehende Bestellung gefunden wurde und die Abbruchanforderung gesendet wurde, False - wenn es keine ausstehende Bestellung mit den angegebenen OrderId-Parametern gibt: OrderId - string, die die zu ändernde OrderID angibt (zurückgegeben durch einen früheren PlaceOrder - oder ModifyOrder-Aufruf). GetAccountValue (string FieldName) Diese Funktion ruft die Kontenwerte ab. Zeichenfolge, die den Wert darstellt. Beachten Sie, dass, wenn Sie Anzahl in AFL benötigen, sollten Sie StrToNum Umwandlungsfunktion verwenden, die die von dieser Funktion zurückgegebene Zeichenfolge in die Zahl umwandelt. Leere Zeichenfolge wird zurückgegeben, wenn das Feld nicht existiert oder leer ist. Parameter: Feldname - definiert den Wert abfragen Liste der verfügbaren Felder (Groß - und Kleinschreibung): 1. Die Felder, die entweder währungsunabhängig oder ausgedrückt in BASE Kontowährung (in der Regel beträgt): Account AccountReady Account AccruedCash CashBalance Währung DayTradesRemaining DayTradesRemainingT1 DayTradesRemainingT2 DayTradesRemainingT3 DayTradesRemainingT4 Wechselkurs FuturesPNL Leverage-S LookAheadNextChange NetLiquidationByCurrency OptionMarketValue PNL RealizedPnL StockMarketValue TotalCashBalance UnrealizedPnL 2. Felder, die separat für jede Währung auf dem Konto gehalten vorgesehen sind, CUR in der Liste unten bedeutet, Währungssymbol, so dass für USD denominierten Fonds und Wertpapiere Sie USD Präfix sehen. Hinweis IDEALPRO Spot Forex Positionen sind in CURCashBalance hier enthalten. CURAccruedCash CURAccruedCash-C CURAccruedCash-S CURAvailableFunds CURAvailableFunds-C CURAvailableFunds-S CURBuyingPower CURCashBalance CURCurrency CUREquityWithLoanValue CUREquityWithLoanValue-C CUREquityWithLoanValue-S CURExcessLiquidity CURExcessLiquidity-C CURExcessLiquidity-S CURFullAvailableFunds CURFullAvailableFunds-C CURFullAvailableFunds-S CURFullExcessLiquidity CURFullExcessLiquidity-C CURFullExcessLiquidity-S CURFullInitMarginReq CURFullInitMarginReq-C CURFullInitMarginReq - S CURFullMaintMarginReq CURFullMaintMarginReq-C CURFullMaintMarginReq-S CURFutureOptionValue CURFuturesPNL CURGrossPositionValue CURGrossPositionValue-S CURInitMarginReq CURInitMarginReq-C CURInitMarginReq-S CURLeverage-S CURLookAheadAvailableFunds CURLookAheadAvailableFunds-C CURLookAheadAvailableFunds-S CURLookAheadExcessLiquidity CURLookAheadExcessLiquidity-C CURLookAheadExcessLiquidity-S CURLookAheadInitMarginReq CURLookAheadInitMarginReq-C CURLookAheadInitMarginReq-S CURLookAheadMaintMarginReq CURLookAheadMaintMarginReq-C CURLookAheadMaintMarginReq-S CURLookAheadNextChange CURMaintMarginReq CURMaintMarginReq-C CURMaintMarginReq-S CURNetLiquidation CURNetLiquidationByCurrency CURNetLiquidation-C CURNetLiquidation-S CURPreviousDayEquityWithLoanValue CURPreviousDayEquityWithLoanValue-S CUROptionMarketValue CUROptionMarketValue CURRealizedPnL CURSMA CURSMA-S CURStockMarketValue CURTotalCashBalance CURTotalCashValue CURTotalCashValue-C CURTotalCashValue-S CURUnalteredInitMarginReq CURUnalteredMaintMarginReq CURUnrealizedPnL Wenn Währung angegeben ist NICHT IBc erste Blicke Für Werte, die in BASE-Währung angegeben sind und wenn nicht gefunden, dann USD als Standard verwendet, so können Sie alt-style GetAccountValue (quotAvailableFundsquot) verwenden und es wird das gleiche wie GetAccountValue (quotUSDAvailableFundsquot) zurückgegeben - da vorhandene Mittel nicht in Basiswährung angegeben werden. Wenn Sie jedoch GetAccountValue (quotTotalCashBalancequot) aufrufen, wird es in BASE-Währung berichten und es kann von GetAccountValue (quotUSDTotalCashBalancequot) unterscheiden, das nur USD-Bargeld darstellt. Unterschiede treten auf, wenn Sie in vielen Währungen Bargeldpositionen haben, sodass quotbasequot die Brutto-Summe aller Positionen in allen Währungen darstellt, als ob sie in Basiswährung getauscht wurden GetExecInfo (string OrderId,. String-Feld) Diese Funktion ruft den Wert des Felds OrderId ab Auftrag aus der Ausführungsliste den numerischen oder stechenden Wert des angeforderten Feldes für OrderId. Null, wenn kein Feld oder keine Position vorhanden ist Parameter: OrderId - string, der die Reihenfolge angibt (zurückgegeben von der Funktion "PlaceOrder" oder von GetExecList abgerufen). Feld - einer der Spaltennamen, die auf der Seite "Äquivalent" des IB-Controllers gefunden werden. Zum Beispiel quotAvg. Gibt die durchschnittliche Kaufpreiszahl der angegebenen Sicherheit an, quotFilledquot gibt die Anzahl der ausgegebenen Aktien an GetExecList (number Typ. String Filter) (neu in 1.3.0) Gibt die kommagetrennte Liste der Aufträge aus der Ausführungsliste zurück Parameter: Typ - gibt an, was zurückgegeben werden soll - gibt ORDERIDs (derzeit ist dies der NUR-Wert akzeptiert) Filter - wenn nicht leer es IBC sagt, dass nur Aufträge mit dem angegebenen Status sollte zurückgegeben werden, wenn leer - alle Aufträge aus ausstehenden Liste zurückgegeben werden. Symbole ibc. GetPendingList (0. Gefüllt) - gibt eine kommagetrennte Liste vollständig ausgefüllter Bestell-IDs zurück ibc. GetPendingList (0.) - gibt eine Liste aller in der quotexecutions-Liste vorhandenen OrderIDs zurück Um diese Symbole aus der Liste zu extrahieren, verwenden Sie diese Art von Schleife: (I 0 (OId StrExtract (execlist, i)) Liste aller Aufträge aus den Ausführungen page execinfo für (i 0 (Symbol StrExtract (Symbole, i)) i) printf (Symbol: Symbol n) execlist ibc. GetExecList I) execinfo execinfo OID Symbol: ibc. GetExecInfo (OID, Symbol) Gefüllt: ibc. GetExecInfo (OID, gefüllt) Durchschn. Preis: ibc. GetExecInfo (OID, Durchschnittspreis) n Diese Funktion gibt den Text des letzten Fehlermeldungsstrings zurück, der die Fehlermeldung darstellt. Leer, falls keine Fehlermeldung vorhanden ist oder keine Order vorliegt OrderId - legt die Auftrags-ID für die Abfrage der letzten Fehlerinformationen fest. Es gibt einen speziellen Wert, den Sie übergeben können: 0 (Null) und er hat eine spezielle Bedeutung: er ruft die letzte Fehlermeldung für jeden Auftrag ab. This is exactly this message that appears on the top of the error list in IBController user interface. GetStatus ( string OrderId . optional boolean InclFilled )This function retrieves status of pending order. string that describes the status, it can be: quotNotYetTransmittedquot, quotPreSubmittedquot, quotPendingquot, quotCancelledquot, quotSubmittedquot, quotFilledquot, quotErrorquot (new in 1.0.2), quotInactivequot or empty when matching order was not found Depending on InclFilled field some statuses are intermittient. If InclFilled is not specified or equal to false (zero) then only quotNotYetTransmittedquot, quotPendingquot, quotPreSubmittedquot, quotSubmittedquot statuses are reported consistently. quotCancelledquot and quotFilledquot statuses are intermittient because such orders are removed from pending orders list within one second from cancellingfilling the order (this will change in the future). quotErrorquot status means that there was an error during processing last request to placemodify an order and you can query detailed error information using GetLastError function. If InclFilled is set to True then also statuses of orders listed on quotExecutionsquot list are reported and this means that you can get quotCancelledquot, quotFilledquot, quotErrorquot, quotInactivequot consistently. Note: InclFilled parameter has been introduced in 1.0.8. Parameters: OrderId - string specifying the orderID to be modified (returned by earlier PlaceOrder or ModifyOrder call). GetPositionInfo ( string Ticker . string Field )This function retrieves the value of the Field of Ticker symbol held currently in the portfolio IMPORTANT CHANGE in 1.1.0. the function does NOT report positions with zero sizes anymore the numeric value of the requested Field for Ticker. Null if no field or no such position available Parameters: Ticker - string that specifies the symbol of securitycontract. The symbol should follow the symbology defined in detail at: amibrokerib. html Field - one of column names found in quotPortfolioquot page of IB Controller. For example quotAvg. costquot gives average cost of purchase of given security, quotUnrealized PNLquot gives unrealized profit and loss. This function retrieves the number of sharescontracts of Ticker symbol held currently in the portfolio the number that descibes the currently held position size for Ticker. Positive numbers mean long position, negative numbers mean short position, zero means that given ticker is not held in the portfolio Parameters: Ticker - string that specifies the symbol of securitycontract. The symbol should follow the symbology defined in detail at: amibrokerib. html IsConnected ()This function retrieves the connection status to TWS. 0 - NO connection 1 - connection in progress 2 - means connection OK, no messages 3 - connection OK, but TWS generated some warningerror messages (see quotMessages tab) IsOrderPending ( string OrderId )This function checks if given order is pending (or not yet transmitted). True - if order is still in the pending list, False if order was Filled, cancelled or there is no such order at all Parameters: OrderId - string specifying the orderID to be modified (returned by earlier PlaceOrder or ModifyOrder call). Returns comma-separated symbol list of currently open positions. IMPORTANT CHANGE in 1.1.0. the function does NOT report positions with zero sizes anymore list of open positions and their sizes ibc GetTradingInterface ( IB ) for ( i 0 ( symbol StrExtract ( openpos, i ) ) i ) printf ( Position i tSymbol: symbol tSize: ibc. GetPositionSize( symbol ) n ) Returns comma separated list of orders from pending list Parameters: Type - specifies what should be returned 0 - gives ORDERIDs, 1 gives symbol lists Filter - when not empty it tells IBc that only orders with specified status should be returned when empty - all orders from pending list are returned. symbols ibc. GetPendingList( 0. Pending ) - returns comma separated list of pending order IDs symbols ibc. GetPendingList( 1. Pending ) - returns comma separated list of SYMBOLS that have pending orders symbols ibc. GetPendingList( 0. Error ) - returns list of orderids that have errors symbols ibc. GetPendingList( 0. Cancelled ) - returns cancelled orderids (please keep in mind that cancelled order are automatically removed from the list after few seconds) symbols ibc. GetPendingList( 0. ) - returns list of all orderIDs present in the quotpending listquot (may be pendingerrorcancelledpartially filledsubmitted, etc) To extract symbols from the list use this kind of loop: for ( i 0 ( symbol StrExtract ( symbols, i ) ) i ) printf ( Symbol: symbol n ) CloseAllOpenPositions ( optional string Ticker ) (new in 1.0.8)Sends orders to close all currently open positions. sends MARKET SELLBUY order for each and every LONGSHORT position in the portfolio page - should effectively close all open positions (provided that closing orders will fill correctly), note however that it may happen that these closing orders may fail (for example when markets are closed) New in 1.1.0: now function accepts optional parameter. When it is provided, the function closes positions only on specified ticker. If it is not specified - it operates as previously (closes positions on all symbols). CancelAllPendingOrders ( optional string Ticker ) (new in 1.0.8)Cancels all pending orders Sends cancel for each and every order displayed in the Pending orders page (with the exception of orders with Errors) New in 1.1.0: now function accepts optional parameter. When it is provided, the function cancels orders only of specified ticker. If it is not specified - it operates as previously (cancels all pending orders on all symbols). Transmit ( string OrderID ) (new in 1.0.8)Modifies transmit flag on NotYetTransmitted order Paramters: OrderID - string specifying the orderid returned by PlaceOrder Returns non-zero (true) when orderid has been found on the pending order list and zero otherwise. It does not necesarily mean that transmit was successful. Transmit( orderid) is used to transmit orders previously placed with transmit flag set to false. Transmit internally is handled by calling quotmodify orderquot function (so you dont need to specify the same parameters again) but note that TWS has problems with handling modify requests coming too quickly, so you will NOT be able to call modifytransmit immediatelly after placing order with transmit false. In such cases we recommend using manual trigger that is slow enough not to cause problems. Example: ibc. Transmit( orderid ) This is EXPERIMENTAL function. Suspends the execution for specified number of milliseconds . Please do NOT use this function unless you really have to . because it locks both IBController and AmiBroker for specified period of time and both applications wont respond to user actions (such as mousekeyboard input). If you suspend execution for more than few seconds AmiBroker will complain about OLE server not responding. Example: ibc. Sleep( 1000 ) sleep for 1000 milliseconds 1 second Clears specified display list. where ListNo can be: 0 - pending order list 1 - execution list 2 - portfolio list 3 - account information list 4 - error message list -1 - special meaning (new in 1.3.5) - clear ALL lists ibc. ClearList( 4 ) clears error message list Note that this function only affects the display, it does NOT affect the status of orders. So if you have any active orders the quotpending ordersquot, quotexecutionsquot lists will be re-filled with currently active orders during next status update (usually within fraction of second - so it may not be visually noticeable) It also applies for portfolio and account information lists - they will be re-filled with next account update - usually within few seconds. SetAccount ( string Account ) (new in 1.1.0, changed in 1.3.5) IMPORTANT: Functionality of this function has CHANGED IN 1.3.5 ONLY FOR FA (financial advisor) accounts. Sets active account for next PlaceOrder()ModifyOrder() calls. Note that it is also possible now to specify destination account directly via parameter passed to PlaceOrderModifyOrder instead of relying on SetAccount(). SetAccount() does NOT clear lists anymore and does NOT change viewing account as it did in pre-1.3.5 versions. Clearing execution and pending list was problematic because when switching accounts the information about previously sent orders on different account was lost on FampF accounts. So SetAccount() does not clear lists automatically. If you want to do this, you can call ClearList( -1 ) explicitely. Also this function does NOT change the account which is displayed in the quotaccount informationquot window and quotportfolioquot tabs. To change account displayed in the quotaccount informationquot page and quotportfolioquot tabs use new function SetInfoAccount(). Separation of order and viewing accounts allows directing orders to any account withing changing any views, i. e. you can monitorview quotAllquot account - that displays cumulative information for all FampFFA accounts or any other account while placing orders for other accounts. By default viewing information is the quotALLquot account and in most cases there is no need to change it as it receives updates from all sub-accounts. SetInfoAccount ( string Account ) (new in 1.3.5)This function changes the account which is displayed in the quotaccount informationquot window and quotportfolioquot tabs. It does NOT change account used for orders. Separation of order and viewing accounts allows directing orders to any account withing changing any views, i. e. you can monitorview quotAllquot account - that displays cumulative information for all FampFFA accounts or any other account while placing orders for other accounts. By default viewing information is the quotALLquot account and in most cases there is no need to change it as it receives updates from all sub-accounts. Note that IB uses quotAquot subscript to designate quotAllquot account that is aggregate of all subaccounts. So if your FA account has a number of F1234, you need to add quotAquot suffix to it to get aggregate data: Closes connection to TWS and re-opens it, clears all lists and requeries for pending orders. Essentially gives the same effect as you would achieve by terminating and re-running IB Controller. 1. Placing and transmitting Market Buy Order for 100 shares when MACD crosses above Signal line: Buy Cross ( MACD (), Signal () ) if ( LastValue ( Buy ) ) ibc GetTradingInterface ( IB ) check if we are connected OK if ( ibc. IsConnected() ) check if we do not have already open position on this stock if ( ibc. GetPositionSize( Name () ) 0 ) transmit order ibc. PlaceOrder( Name (), Buy. 100. MKT. 0. 0. Day. True ) 2. Placingmodifying a limit order on current price plus 0.10 but without transmitting it (manual transmit required). This code can be run many times and it will modify existing order as long as it is not transmitted. It uses static variables to store orderId from last run. Buy L gt Ref ( H . - 1 ) buy when prices gap up if ( LastValue ( Buy ) ) ibc GetTradingInterface ( IB ) check if we are connected OK if ( ibc. IsConnected() ) place orders only if we do not have already open position on this symbol if ( ibc. GetPositionSize( Name () ) 0 ) retrieve orderID from previous run, will be empty if no order was placed before OrderID StaticVarGetText ( OrderID Name ()) place or modify the order - dont transmit yet OrderID ibc. ModifyOrder( OrderID, Name (), BUY. 100. LMT. LastValue ( C ) 0.10. 0. Day. False ) store orderID for next run so we know which order to modify StaticVarSetText ( OrderID Name (), OrderID) 3. Placingmodifying manually from Parameters dialog. Code to be applied in Indicator Builder. (Modified to use new features in 1.0.2) This code can be run many times and it will modify existing order as long as it is not transmitted. It uses static variables to store orderId from last run. Param block TriggerOrder ParamTrigger ( Place order. Click here to place order ) Mode ParamToggle ( Mode. Modify existingAlways place new order ) ACT ParamList ( Action. BUYSELLSSHORT ) OT ParamList ( Order Type. MKTLMTSTP ) TIF ParamList ( Time In Force. DAYGTCIOC ) Ticker ParamStr ( Ticker. Name ()) NumShares Param ( Number of Shares. 10. 10. 100. 10 ) LimitPrice LastValue ( C ) Param ( Limit Price offset. 0 ,- 0.1. 0.1. 0.01 ) StopPrice LastValue ( C ) Param ( Stop price offset. 0 ,- 0.1. 0.1. 0.01 ) Transmit ParamToggle ( Transmit. Do NOT transmitTransmit. 0 ) TriggerCancel ParamTrigger ( Cancel Order. Click here to Cancel order ) Msg this variable stores error message text create instance of trading interface ibc GetTradingInterface ( IB ) retrieve orderID from previous run, will be empty if no order was placed before OrderID StaticVarGetText ( OrderID Ticker) if ( TriggerOrder ) check if we are connected OK if ( ibc. IsConnected() ) if ( Mode 1 ) OrderID if mode set to always new then clear orderid place orders only if we do not have already open position on this symbol place or modify the order - dont transmit yet OrderID ibc. ModifyOrder( OrderID, Ticker, ACT, NumShares, OT, LimitPrice, StopPrice, TIF, Transmit) store orderID for next run so we know which order to modify StaticVarSetText ( OrderID Ticker, OrderID) if ( Mode 1 ) Msg New order has been placed with ID else Msg Order placedmodified with ID Msg Msg OrderID on Now () else Msg Placing order failed because of no connection to TWS if ( TriggerCancel ) if ( OrderId ) if ( ibc. CancelOrder( OrderId ) ) Msg Request to cancel order OrderID sent successfully else Msg Request to cancel order OrderID failed. else Msg Can not cancel order becase OrderID is empty execlist ibc. GetExecList( 0. ) all execinfo for ( i 0 ( OId StrExtract ( execlist, i ) ) i ) execinfo execinfo OID Symbol: ibc. GetExecInfo( OID, Symbol ) Filled: ibc. GetExecInfo( OID, Filled ) Avg. price: ibc. GetExecInfo( OID, Avg. price ) n monitoring code Title Msg nLast TWS message: ibc. GetLastError( 0 ) nAvailable funds: ibc. GetAccountValue( AvailableFunds ) Gross Pos. Value: ibc. GetAccountValue( GrossPositionValue ) nOrderID OrderId nTicker Ticker nAction ACT nShares NumToStr (NumShares, 1.0 ) nOrderType OT nLimitPrice NumToStr (LimitPrice, 1.3 ) nStopPrice NumToStr (StopPrice, 1.3 ) nTimeInForce TIF nTransmit NumToStr (Transmit, 1.0 ) n nGetStatus ibc. GetStatus( OrderID ) nGetPositionSize ibc. GetPositionSize( Ticker ) nIsConnected NumToStr (ibc. IsConnected(), 1.0 ) nExecInfon execinfo 4. Placing bracket order create instance of trading interface ibc GetTradingInterface ( IB ) parentID ibc. PlaceOrder( MSFT. BUY. 1000. LMT. 27. 0. GTC. False ) ibc. PlaceOrder( MSFT. SELL. 1000. LMT. 28. 0. GTC. False . 100. . parentID ) ibc. PlaceOrder( MSFT. SELL. 1000. STP. 26. 26. GTC. True . 100. . parentID ) Note that TRANSMIT flag is set to FALSE on all bracket orders except the last one. This ensures that orders wait until bracket order set is completed. Setting Transmit flag to TRUE on the very last one transmits entire bracket. 5. Iterating through open positions: ibc GetTradingInterface ( IB ) for ( i 0 ( symbol StrExtract ( openpos, i ) ) i ) printf ( Position i tSymbol: symbol tSize: ibc. GetPositionSize( symbol ) n ) 6. Placing OCA group orders: ibc. PlaceOrder( MSFT. SELL. 1000. LMT. 28. 0. GTC. True . 100. . 0. MYGROUP ) ibc. PlaceOrder( MSFT. SELL. 1000. STP. 26. 26. GTC. True . 100. . 0. MYGROUP ) 1) Why IBController has BETA status The reason is simple - because it relies on IB API we have no control upon. You need to be aware of the fact that Interactive Brokers may and actually do change TWS and API quite often and any future changes in the APITWS may produce incompatiblities without any warning. We try to adjust IBController as soon as such incompatibilities surface, but we can only do that quotafter the factquot. Due to this there can be periods when IBController does not work properly with certain version(s) of TWS. That is the only reason why IBController is marked as BETA. 2) What exactly is the OrderID, where is the number stored How does it increment Can we assign our own OrderIDs OrderID is a string that represents the unique order number that is assigned by IB Controller (for orders placed via IB Controller) or TWS (for orders placed in TWS) when you place the order. It is automatically incremented on each NEW order. The implementation takes care that generated ID is unique for given session of TWS. You should NOT assign your own IDs because you may risk generating duplicates that will be rejected by TWS. 3) The IB Interface contains a lot of useful information, can we access this information in afl GetAccountValue() function (introduced in 1.0.2) allows that. 4) IMPORTANT. During development i often quotlosequot my connection to the TWS and cannot get it going again. Under what conditions candoes this happen This is probably caused by placing ModifyOrder calls too often so TWS is not able handle them and sends error messages (quotUnable to modify this order as its still being processedquot) and it results in IsConnected() returning false. This should be addressed by next version. If such thing happens you can simply close IB Controller window. 5) Is it possible to read IB LastBifAsk prices while running a eSignal database Right now there is no access to price data via IBController but maybe in the future 6) Why do we have a PlaceOrder() and a ModifyOrder(), if ModifyOrder can be used in both cases Just for completeness. Indeed ModifyOrder alone would be enough. 7) Can we retrieve the quotExecutionsquot and quotPendingquot page (string) from the IB Controller window, for display on the chart Pending - yes you can retrieve the status of the order while it is on quotPendingquot page using GetStatus. As for quotexecutionquot tab - as it is already described in the read me this is in the works. 8) It appears the startup sequence of TWS and AB is significant, is it Not actually TWS and AB - they are independent. But what is important to run TWS before running IB Controller. If you however have your trading code in indicator then it may be auto-refreshed at AB start and in this individual case you would need to run TWS before AB. Anyway if something fails you can simply close IB controller window and it will re-open automatically and reconnect on next call to GetTradingInterface. 9) When the TWSAB connection is broken during trading, what is the best way to restore it Close IB Controller manually. It will re-open automatically and reconnect on next call to GetTradingInterface. 10) What is the consequence of repeated PlaceOrder() or ModifyOrder() execution due to AB Refresh What happens when, instead of using Cross() with use quotgtquot or quotltquot Franly auto-trading interface is NOT indented to be used in indicators. It is intended to be used in AA window. But if you prefer to run it in IB you can do this too, but then you should check pending orders and check portfolio position size for given symbol not to buy too many shares. To answer your question: multiple PlaceOrder calls will result in multiple orders placed. Multiple ModifyOrder() calls may result in the same (if OrderID is empty) or may just result in updating the values of already exisiting, pending order if you specify correct OrderID of order placed before (see the example 2.) 11 ) A quotclearquot Message button would be nice in the IBc window, i have to scroll down continuously to see the latest message (perhaps last-on-top scrolling) It is already available in version 1.0.2 12) What is the best way to write a single-(user initiated)-execution line of code. this is where the ParamTask() i suggested earlier would come in handy. Use new AFL ParamTrigger function ParamTrigger( quotNamequot, quotButton textquot) - to be used in indicator builder - to create triggers (buttons). If you place ParamTrigger in the indicator code it will create a quotbuttonquot in Parameter dialog that can be pressed. Normally ParamTrigger will return zero (0) but when button in the param window is pressed then it will refresh the chart and ParamTrigger will return 1 (one) for this single execution (further refreshes will return zero, until the button is pressed again) trigger ParamTrigger ( Place Order. Click here to place order ) if ( trigger ) your one-shot code here 13) When placing orders from an indicator (the thing to do in RT trading) and editing the code will result in additional afl executions, how can i prevent randon order placement from the extra passes Parameters and Signals may not be the same as a result of using loops, DLLs, and things. Use static variables as given in example 2 to MODIFY existing order instead of placing many new orders. Or use code given in response to question 10 14) I got an warning from TWS that is treated as error in Pending list. How can I solve that You can put specific TWS code onto quotIgnore listquot (use File-gtError code ignore list to enter codes in comma separated list). Any code entered here will be ignored by Pending List page, but still will be displayed in the messages window. 15) some message in the IBc are not clearprecise in their meaning. Well these messages come from TWS and I have no influence on their wording :-) CHANGES FOR VERSION 1.3.8 removed the workaround introduced in 1.3.5 for symbol translation because it caused problems for symbols like 6EU0-GLOBEX-FUT where symbol is not equal to local symbol less expiration code (EUR vs 6E). Instead symbol translation now relies solely on method introduced in 1.3.6 CHANGES FOR VERSION 1.3.7 GetPositionList() returned empty symbol part for non-stocks. Fixed PlaceOrder failed on Financial advisor accounts when non-master Account was passed in a parameter without preceding SetAccount call. Fixed. CHANGES FOR VERSION 1.3.6 IBController now uses more reliable way to translate from local symbol to TWS symbolexpiry pair based on information sent back by TWS. (It is not as simple as one may think because sometimes local symbol does not contain TWS symbol, so one can not derive TWS symbol from local symbol in general case, for example FESX SEP 10 local symbol translates to ESTX50,20100917, therefore IBController needs to get info from TWS) CHANGES FOR VERSION 1.3.5 New SetInfoAccount( account ) This function changes the account which is displayed in the quotaccount informationquot window and quotportfolioquot tabs. It does NOT change account used for orders. Separation of order and viewing accounts allows directing orders to any account withing changing any views, i. e. you can monitorview quotAllquot account - that displays cumulative information for all FampFFA accounts or any other account while placing orders for other accounts. By default viewing information is the quotALLquot account and in most cases there is no need to change it as it receives updates from all sub-accounts. To workaround recent change in TWS, for futures (FUT) symbol field is set by IBController as localsymbol without expiration monthyear. This is temporary workaround which may be broken by other TWS releases. Tested to work with TWS 907.7Pending OrdersExecutionsPortfolioAccount info tabs now have additional command quotAccountquot that specifies the account given item refers toPlaceOrder and ModifyOrder now accept optional Account parameterThis allows to specify destination account for order for FampFFA IB accounts in single call, instead of relying on SetAccountPlaceOrder sequence. Single-call PlaceOrderModifyOrder with account specification allows to specify account without worrying that other threadsprocesses can switch the account between SetAccount() and PlaceOrder(). Now SetAccount() only sets account for NEXT order(s). It does NOT clear lists anymore and does NOT change viewing accountClearing execution and pending list was problematic because when switching accounts the information about previously sent orders on different account was lost on FampF accounts. So SetAccount() does not clear lists automatically. If you want to do this, you can call ClearList( -1 ) explicitely. Also this function does NOT change the account which is displayed in the quotaccount informationquot window and quotportfolioquot tabs. To change account displayed in the quotaccount informationquot page and quotportfolioquot tabs use new function SetInfoAccount(). Separation of order and viewing accounts allows directing orders to any account withing changing any views, i. e. you can monitorview quotAllquot account - that displays cumulative information for all FampFFA accounts or any other account while placing orders for other accounts. By default viewing information is the quotALLquot account and in most cases there is no need to change it as it receives updates from all sub-accounts. ClearList() method accepts -1 as listno - then it clears ALL lists CHANGES FOR VERSION 1.3.2 fixed compatibility issues with TWS version 904 CHANGES FOR VERSION 1.3.1 added configuration file to support AmiBroker 5.30 trading from chart functionality CHANGES FOR VERSION 1.3.0 added GetExecList and GetExecInfo functions. CHANGES FOR VERSION 1.2.1 The IBc now accepts new symbology convention with 4th part defining currency: SYMBOL-EXCHANGE-TYPE-CURRENCY. When currency is not specified USD is used as default. For more info see amibrokerib. html The IBc also accepts single letter type codes CHANGES FOR VERSION 1.2.0 IBc now allows to define which error codes should be ignored using File-gtError code ignore list upgraded to use latest TWS API 9.41 (tested with latest TWS 885.7, requires at least 879) following TWS API changes ignoreRth and rthOnly flags are removed and replaced with single flag: outsideRTH Quote from TWS DOC interactivebrokersensoftwareapiReleaseNotesapi94.phpibentityllc quotOutsideRTH Flag Replaces quotIgnore Regular Trading Hoursquot and quotRegular Trading Hours Onlyquot Flags Supported in: All API Platforms A new, single order atttibute, bool OutsideRTH(), replaces two flags: ignoreRTH and rthOnly in the Order classstruct. If set to true, this new extended order attribute allows orders to trigger or fill outside of regular trading hours. quot CHANGES FOR VERSION 1.1.1 primaryExchange is now set to empty. This solves quotinvalid symbolquot problem occuring for some accounts during last 2 weeks following apparent changes in IB. CHANGES FOR VERSION 1.1.0 Added handling of error codes 2100, 1100, 1101, 1102, 1300 Financial advisor Account support (FC Issue 69) : Added FA-only fields to PlaceOrderModifyOrder When run on FA account IBc automatically queries for account list and uses quotAllquot account by defaultGetAccountValue now allows to query values separately for each currency. Currency specific values are available using this syntax: CURFieldName where CUR is currency symbol for example: USDAvailableFunds EURAvailableFundsWhen currency is NOT specified IBc first looks for values specified in BASE currency and if not found then uses USD as default, so you can use old-style GetAccountValue(quotAvailableFundsquot) and it will return the same as GetAccountValue(quotUSDAvailableFundsquot) - because there available funds are not specified in base currency. If you however call GetAccountValue(quotTotalCashBalancequot) it will report in BASE currency and it may be different from GetAccountValue(quotUSDTotalCashBalancequot) which will represent USD cash only. Differences will occur if you have cash positions in many currencies so quotbasequot currency shows gross total of all positions in all currencies as if they were exchanged into base currency. added limit of error messages to be displayed (File-gtConfigure)added re-querying for positions after reconnectan option to restartreconnect (File-gtReconnect), new method Reconnect()CancelAllPendingOrders( optional Ticker ) now CancelAllPendingOrders method takes optional parameter Ticker. If it is specified - it cancels orders only for specified symbol. If it is NOT specified - it cancels all orders for ALL symbols. ClearList( iListNo ) method added ClearList( ListNo ) where ListNo can be: 0 - pending order list 1 - execution list 2 - portfolio list 3 - account information list 4 - error message listibc. ClearList( 4 ) clears error message list Note that this function only affects the display, it does NOT affect the status of orders. So if you have any active orders the quotpending ordersquot, quotexecutionsquot lists will be re-filled with currently active orders during next status update (usually within fraction of second - so it may not be visually noticeable) It also applies for portfolio and account information lists - they will be re-filled with next account update - usually within few seconds. CloseAllOpenPositions( optional Ticker ) now CloseAllOpenPosition method takes optional parameter Ticker. If it is specified - it closes positions only for specified symbol. If it is NOT specified - it closes all positions. exchange is reported correctly for non-US stocks in Portfolio pageGetPositionList() - returns only symbols with positions ltgt 0OCA groups support added to PlaceOrderModifyOrderuser-definable port and IP number (File-gtConfigure)SetAccount( AccNo ) - for FA accountsWarning 2107 (Historical Market Data Service inactive) and 2104 (market data OK) is silently ignored now CHANGES FOR VERSION 1.0.8 GetStatus() function now has optional parameter InclFilled GetStatus( string OrderId, optional boolean InclFilled ) when InclFilled is provided and set to true GetStatus function provides statuses for filled, cancelled and error orders that may have been already deleted from pending list. TimeInForce field in PlaceOrderModifyOrder allows now to specify quotGood Till Datequot and quotGood After Timequot datetimes)TimeInForce field in PlaceOrderModifyOrder accepts GTD and GAT specifications GTD - Good Till Date - indicates that the order should remain workign untilthe time and date set. Good Till Date specification GTD YYYYMMDD HH:MM:SS TZONE where: YYYY is 4 digit year, MM is 2 digit month, DD is 2 digit day, HH is 2 digit hour, MM is 2 digit minute, SS is 2 digit second (OPTIONAL), TZONE is time zone (OPTIONAL) After regular TimeInForce specifications (DAY, GTC, GTD) you may add extraGoodAfterTime (GAT) part. GAT part comes AFTER semicolon. It indicates thattrade should be submitted after the time and date set: GAT specifications: DAYGAT YYYYMMDD HH:MM:SS TZONE - day order valid after specified datetime GTCGAT YYYYMMDD HH:MM:SS TZONE - good till canceled order valid after specified time GTD yyyymmdd hh:mm:ss tzoneGAT YYYYYMMDD HH:MM:SS TZONE - GTD order valid after specified time where: YYYY is 4 digit year, MM is 2 digit month, DD is 2 digit day, HH is 2 digit hour, MM is 2 digit minute, SS is 2 digit second (OPTIONAL), TZONE is time zone (OPTIONAL) Note: there must be NO SPACE characted between semicolon and GAT string. ibc. PlaceOrder( MSFT. BUY. 100. LMT. 27. 0. DAYGAT 20051214 18:00:00 GMT. True ) - day limit order good after Dec 14,2005, 18:00 GMT ibc. PlaceOrder( MSFT. BUY. 100. LMT. 27. 0. GTD 20051215 17:00:00 GMTGAT 20051214 18:00:00 GMT. True ) - limit order valid from Dec 14,2005 18:00 to Dec 15,2005 17:00 GMT ibc. PlaceOrder( MSFT. BUY. 100. LMT. 27. 0. GTD 20051215 19:00:00 GMT. True ) - limit order valid from now until Dec 15,2005 19:00 GMT Portfolio page should now display correct exchange for futures (now it uses reqContractDetails to query for exchange string that is not sent via accountUpdates by TWS) new Transmit( orderID ) method Transmit( string orderid )- returns non-zero (true) when orderid has been found on the pending order listand zero otherwise. It does not necesarily mean that transmit was successful. Transmit( orderid) is used to transmit orders previously placed with transmit flag set to false. Transmit internally is handled by calling quotmodify orderquot function (so you dont need to specify the same parameters again) but note that TWS has problems with handling modify requests coming too quickly, so you will NOT be able to call modifytransmit immediatelly after placing order with transmit false. In such cases we recommend using manual trigger that is slow enough not to cause problems. GetPositionList() method added - returns comma separated list of currently open positionslist of open positions and their sizes ibc GetTradingInterface ( IB ) for ( i 0 ( symbol StrExtract ( openpos, i ) ) i ) printf ( Position i tSymbol: symbol tSize: ibc. GetPositionSize( symbol ) n ) GetPendingList( Type, Filter ) - retrieves comma-separated list of orders from pending listwhere: Type - specifies what should be returned 0 - gives ORDERIDs, 1 gives symbol lists Filter - when not empty it tells IBc that only orders with specified status should be returned when empty - all orders from pending list are returned. symbols ibc. GetPendingList( 0. Pending ) - returns comma separated list of pending order IDs symbols ibc. GetPendingList( 1. Pending ) - returns comma separated list of SYMBOLS that have pending orders symbols ibc. GetPendingList( 0. Error ) - returns list of orderids that have errors symbols ibc. GetPendingList( 0. Cancelled ) - returns cancelled orderids (please keep in mind that cancelled order are automatically removed from the list after few seconds) symbols ibc. GetPendingList( 0. ) - returns list of all orderIDs present in the quotpending listquot (may be pendingerrorcancelledpartially filledsubmitted, etc) added experimental Sleep() methodSleep( number Milliseconds ) - suspends the execution for specified number of milliseconds. Please do NOT use this function unless you really have to, because it locksboth IBController and AmiBroker for specified period of time and both applicationswont respond to user actions (such as mousekeyboard input). If you suspendexecution for more than few seconds AmiBroker will complain about OLE server not responding. added CloseAllOpenPositons(), CancelAllPendingOrders methods and Panic buttonCloseAllOpenPositions() method - sends MARKET SELLBUY order for each and every LONGSHORT position in the portfolio page - should effectively close all open positions (provided that closing orders will fill correctly), note however that it may happen that these closing orders may fail (for example when markets are closed) CancelAllPendingOrders - sends cancel for each and every order displayed in the Pending orders page (with the exception of orders with Errors) Panic button in the toolbar - sends CancelAllPendingOrders() and then CloseAllOpenPositions() Bracket orders support. PlaceOrder and ModifyOrder methods have two additional optional parameters: Attributes and ParentIDPlaceOrder( string Ticker, string Action, number Quantity, string Type, number LimitPrice, number StopPrice, string TimeInForce, bool Transmit, optional number TickSize 100, optional string Attributes quotquot, optional string ParentID quotquot Attributes - is a string that allows to specify additional order attributes (comma separated list). Supported attributes: rthOnly - (OBSOLETE NOW in 1.2.0) if specified means that the order will only be filled during RTH this applies to any order type including limit. ignoreRth - (OBSOLETE NOW in 1.2.0) if specified means that order will trigger not only during Regular Trading Hours (RTH), but also in extended trading (preafter market) this applies to stop orders, conditional orders, and alerts it is used by the triggering logic. If not specified (false) orders will trigger ONLY during RTH. allOrNone - fill all or nothing at all eTradeOnly - trade with electronic quotes only firmQuoteOnly - trade with firm quotes only By default all those flags are INACTIVE (OFF) Example: ibc. PlaceOrder( MSFT. BUY. 1000. LMT. 27. 0. GTD 20051215 19:00:00 GMT. True . 100. allOrNone ) (Note that optional parameter TickSize MUST be specified if you want to use Attributes) ParentID - is a string that specifies parent order identifier (returned by previous PlaceOrder call) allowing you to place BRACKET orders. parentID ibc. PlaceOrder( MSFT. BUY. 1000. LMT. 27. 0. GTC. False ) ibc. PlaceOrder( MSFT. SELL. 1000. LMT. 28. 0. GTC. False . 100. . parentID ) ibc. PlaceOrder( MSFT. SELL. 1000. STP. 0. 26. GTC. True . 100. . parentID ) now IBController does not require API installation CHANGES FOR VERSION 1.0.6 re-compiled with TWS API 8.41 BETA CHANGES FOR VERSION 1.0.5 fixed problem with GetPositionSize() reporting zero for SMART routed symbols in 1.0.4 CHANGES FOR VERSION 1.0.4 fixed symbology used in Order, Status and Porfolio pages so now futures and currencies work nicely added optional TickSize parameter that defines minimum price fluctuation allowed for given symbol (expressed in pips, i. e. 0.0001). For stocks usually 100 (i. e. 0.01), for Forex: 1. automatic reconnect implemented - IBc now attempts to reconnect to IB every 5 seconds when case connection is lost or IB has crashed and was restarted Now works with quotFire OpenOrder on status changequot setting turned off as well as turned on. Order once marked with quotErrorquot status keeps last error message CHANGES FOR VERSION 1.0.3 compiled with TWS API 8.30 added GetPositionInfo method added unlock code dialog (File-gtEnter Unlock code). IBController by default does not transmit orders automatically. Transmission can be enabled by entering unlock code that is made available to the user after accepting the agreement. CHANGES FOR VERSION 1.0.2 IBC: Now pending order list features new status code quoterrorquot and new column: Last error IBC: New toolbar button: auto-cancel orders with errors - when turned on, all orders with errors are cancelled automatically IBC: Error messages now show order id and error code IBC: Repeating messages are now displayed once with appropriate repeat count and last update time IBC: Most recent error messages now appear on the top of the quotmessagequot list, so you dont need to scroll IBC: quotDuplicate order IDquot problem solved Now when TWS sends quotduplicate orderquot message, appropriate order line is marked in IB Controlled as quoterrorquot and such order ID is no longer used. When new ModifyOrder is placed then new order id will be assigned IBC: GetAccountValue function in IB interface CHANGES FOR VERSION 1.0.1 CancelOrder() removes quotNotYetTransmittedquot orders from the pending list IsConnected() funcition now returns integer values 0..3 (not bool) Clear Messages toolbar button added CHANGES FOR VERSION 1.0.0 HOW TO REPORT BUGS If you experience any problem with this beta version please send detailed description of the problem (especially the steps needed to reproduce it) to bugs at amibroker
31. Oktober 2013 Hintergrund für Gesundheitswesen nach Aufhebung von Obamacare: Umzug in Patient-Centered, Market-Based Health Care Obamacare bewegt amerikanischen Gesundheitsversorgung in die falsche Richtung durch Erodieren der Arztpatient-Beziehung, Zentralisierung der Kontrolle, und die Erhöhung der Gesundheitskosten. Eine zutreffende Gesundheitsreform würde Einzelpersonen mit ihren Ärzten befähigen, ihre eigenen Gesundheitsentscheidungen frei von Regierungseinmischungen zu treffen. Daher sollte Obamacare gestoppt und vollständig aufgehoben werden. Dann Kongress und die Staaten sollten patientenorientierte, marktorientierte Reformen, die besser dienen Amerikaner. Schlüsselpunkte Obamacare bewegt amerikanische Gesundheitsversorgung in die falsche Richtung. Es untergräbt die Arztbeziehung, zentriert die Entscheidungen im Gesundheitswesen und erhöht die Kosten im Gesundheitswesen. Daher sollte Obamacare gestoppt und vollständig aufgehoben werden. Sobald dies erreicht ist, sollten der ...
Comments
Post a Comment