Lmt Forex Formula 2 1 Herunterladen
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 (FAQ-Bereich für eine Antwort quotwhy sehen, ist es als BETA quot markiert) AUTOMATISCH TRADING BRINGT gewissen Risiken verbunden. 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 bezeichnet, zum Beispiel: if (ibc. IsConnected ()) prüft, ob die Verbindung zum 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-Zuweisung 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 beispielsweise, 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 in der Basiswährung angegeben und wenn nicht, dann verwendet USD als Standard gefunden, so dass man im alten Stil GetAccountValue (quotAvailableFundsquot), und es wird wieder die gleiche wie GetAccountValue (quotUSDAvailableFundsquot) nutzen können - weil dort zur Verfügung stehenden Mittel festgelegt sind nicht in der Basiswährung. 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) - kehrt Komma Liste vollständig gefüllt, um IDs Symbole ibc. GetPendingList (0) getrennt - Gibt eine Liste aller OrderIDs listquot in den quotexecutions zu extrahieren Symbole aus der Liste, diese Art von Schleife verwenden: for (i 0 (Symbol StrExtract (Symbole, i)) i) printf (Symbol: Symbol n) execlist ibc. GetExecList (0) Liste alle Aufträge von Hinrichtungen Seite execinfo für (i 0 (OID StrExtract (execlist, i)) I) execinfo execinfo OID Symbol: ibc. GetExecInfo (OID, Symbol) Gefüllt: ibc. GetExecInfo (OID, gefüllt) Durchschn. Preis: ibc. GetExecInfo (OID, durchschnittlicher Preis) 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. Dies ist genau diese Meldung, die oben in der Fehlerliste in der IBController-Benutzeroberfläche angezeigt wird. GetStatus (string OrderId. Optional boolean InclFilled) Diese Funktion ruft den Status der anstehenden Order ab. Zeichenfolge, die den Status beschreibt, kann es sein: quotNotYetTransmittedquot, quotPreSubmittedquot, quotPendingquot, quotCancelledquot, quotSubmittedquot, quotFilledquot, quotErrorquot (neu in 1.0.2), quotInactivequot oder leer, wenn passend, um nicht einige Zustände sind intermittierende Je nach InclFilled Feld gefunden wurde. Wenn InclFilled nicht angegeben oder gleich false (null) ist, werden nur quotNotYetTransmittedquot, quotPendingquot, quotPreSubmittedquot, quotSubmittedquot Status konsistent gemeldet. QuotCancelledquot und quotFilledquot-Status sind intermittient, da solche Aufträge aus einer ausstehenden Auftragsliste innerhalb einer Sekunde aus cancellingfilling die Bestellung entfernt werden (dies wird sich in Zukunft ändern). QuotErrorquot-Status bedeutet, dass bei der Verarbeitung der letzten Anforderung zum Placemodifizieren eines Auftrags ein Fehler aufgetreten ist und detaillierte Fehlerinformationen mit der GetLastError-Funktion abgefragt werden können. Wenn InclFilled auf True gesetzt ist, werden auch Status von Aufträgen, die in quotExecutionsquot aufgelistet sind, gemeldet und das bedeutet, dass Sie quotCancelledquot, quotFilledquot, quotErrorquot, quotInactivequot konsequent erhalten können. Hinweis: Inclilted wurde in 1.0.8 eingeführt. Parameter: OrderId - string, der die zu ändernde OrderID angibt (zurückgegeben durch einen früheren PlaceOrder - oder ModifyOrder-Aufruf). GetPositionInfo (string Ticker, string field) Diese Funktion ruft den Wert des momentan im Portfolio enthaltenen Tickersymbols im Portfolio WICHTIGE ÄNDERUNG in 1.1.0 ab. Die Funktion korrigiert Positionen mit Nullgrößen NICHT mehr den numerischen Wert des angeforderten Feldes für Ticker. Null, wenn kein Feld oder keine Position vorhanden ist Parameter: Ticker - string, der das Symbol securitycontract angibt. Das Symbol sollte der im Detail definierten Symbologie folgen: amibrokerib. html Feld - einer der Spaltennamen, die in der quotPortfolioquot-Seite von IB Controller gefunden wird. Zum Beispiel quotAvg. Costquot gibt durchschnittliche Kosten für den Kauf der gegebenen Sicherheit, quotUnrealized PNLquot gibt unrealisierten Gewinn und Verlust. Diese Funktion ruft die Anzahl der Aktienverträge des Ticker-Symbols ab, die momentan im Portfolio enthalten sind, die Zahl, die die aktuell gehaltene Positionsgröße für Ticker beschreibt. Positive Zahlen bedeuten lange Position, negative Zahlen bedeuten kurze Position, null bedeutet, dass der angegebene Ticker nicht im Portfolio gehalten wird Parameter: Ticker - string, der das Symbol securitycontract angibt. Das Symbol sollte der im Detail definierten Symbologie folgen: amibrokerib. html IsConnected () Diese Funktion ruft den Verbindungsstatus zu TWS auf. 0 - NEIN Verbindung 1 - Verbindung läuft 2 - bedeutet Verbindung OK, keine Meldungen 3 - Verbindung OK, aber TWS hat einige Warnmeldungen ausgelöst (siehe Registerkarte "Meldungen") IsOrderPending (string OrderId) Diese Funktion prüft, ob der Auftrag noch ansteht Übertragen). True - wenn die Bestellung noch in der ausstehenden Liste aufgeführt ist, False, wenn die Bestellung ausgefüllt, storniert oder gar nicht vorhanden ist. Parameter: OrderId - string, die die zu ändernde OrderID angibt (zurückgegeben durch einen früheren PlaceOrder - oder ModifyOrder-Aufruf). Gibt die kommagetrennte Symbolliste der momentan geöffneten Positionen zurück. WICHTIGE ÄNDERUNG in 1.1.0. Ibc GetTradingInterface (IB) für (i 0 (Symbol StrExtract (openpos, i)) i) printf (Position i tSymbol: Symbol tSize: ibc. GetPositionSize ( Symbol) n) Gibt Komma getrennte Liste von Aufträgen aus ausstehender Liste zurück Parameter: Typ - gibt an, was zurückgegeben werden soll 0 - gibt ORDERIDs, 1 gibt Symbollisten Filter - wenn nicht leer, wird IBc mitgeteilt, dass nur Aufträge mit dem angegebenen Status zurückgegeben werden sollten - alle Aufträge aus ausstehender Liste werden zurückgegeben. Symbole ibc. GetPendingList (0 Pending) - kehrt Komma Liste der noch nicht erledigten Auftrag IDs Symbole getrennt ibc. GetPendingList (1. Pending) - kehrt Komma Liste von Symbolen getrennt sind, die Aufträge Symbole ibc. GetPendingList (0 Fehler) haben anhängig - Gibt eine Liste von OrderIDs, die Fehler Symbole ibc. GetPendingList (0 Cancelled) haben - kehrt abgesagt OrderIDs (bitte beachten Sie, dass die Bestellung storniert werden automatisch entfernt, aus der Liste nach wenigen Sekunden) Symbole ibc. GetPendingList (0) - Gibt eine Liste aller OrderIDs in der quotpending listquot (kann pendingerrorcancelledpartially filledsubmitted werden, usw.), um Symbole aus der Liste verwenden diese Art von Schleife zu extrahieren: for (i 0 (Symbol StrExtract (Symbole, i)) i) printf (Symbol: Symbol n) CloseAllOpenPositions (optional String Ticker) (neu in 1.0.8) Sendet Aufträge, um alle derzeit offenen Positionen zu schließen. sendet für jeden Longshort Position im Portfolio-Seite MARKET SELLBUY bestellen - sollte effektiv schließen Sie alle offenen Positionen (vorausgesetzt, dass die Schließung Aufträge korrekt zu füllen), beachten Sie jedoch, dass es, dass diese Schließung Aufträge fehlschlagen kann (zum Beispiel passieren kann, wenn die Märkte geschlossen sind ) Neu in 1.1.0: Jetzt Funktion akzeptiert optionalen Parameter. Wenn es vorgesehen ist, schließt die Funktion Positionen nur auf dem angegebenen Ticker. Wenn es nicht angegeben ist, funktioniert es wie vorher (schließt Positionen auf allen Symbolen). CancelAllPendingOrders (optionaler String-Ticker) (neu in 1.0.8) Storniert alle ausstehenden Bestellungen Sendet für jeden Auftrag, der auf der Seite "Ausstehende Bestellungen" (außer bei Aufträgen mit Error) angezeigt wird, . Wenn es vorgesehen ist, bricht die Funktion Aufträge nur des angegebenen Ticker ab. Wenn es nicht angegeben ist, funktioniert es wie bisher (löscht alle ausstehenden Bestellungen auf allen Symbolen). Übertragen (string OrderID) (neu in 1.0.8) Modifiziert übertragen Flagge auf NotYetTransmitted um Paramter: OrderID - Zeichenfolge Angabe des orderid zurück von PlaceOrder Kosten ungleich Null (wahr), wenn orderid hat sich auf die noch nicht erledigten Auftrag Liste und Null sonst gefunden. Es bedeutet nicht zwangsläufig, dass die Übertragung erfolgreich war. Transmit (orderid) wird verwendet, um Aufträge zu übertragen, die zuvor mit dem Sendeflag gesetzt wurden, das auf falsch gesetzt ist. Transmit intern durch den Aufruf quotmodify orderquot Funktion behandelt wird (so brauchen Sie nicht die gleichen Parameter erneut angeben), aber beachten Sie, dass TWS Probleme mit der Handhabung ändern Anfragen zu schnell kommen hat, so dass Sie nicht in der Lage sein modifytransmit immediatelly rufen nach Auftrag mit Sende Platzierung falsch. In solchen Fällen empfehlen wir den manuellen Trigger, der langsam genug ist, um keine Probleme zu verursachen. Beispiel: ibc. Transmit (orderid) Dies ist die EXPERIMENTAL-Funktion. Unterbricht die Ausführung für die angegebene Anzahl von Millisekunden. Bitte verwenden Sie diese Funktion NICHT, außer Sie müssen es wirklich tun. Da es sowohl IBController als auch AmiBroker für eine bestimmte Zeitspanne sperrt und beide Anwendungen nicht auf Benutzeraktionen reagieren (wie zum Beispiel die Eingabe der Maustasten). Wenn Sie die Ausführung für mehr als wenige Sekunden aussetzen, wird AmiBroker beschweren, dass der OLE-Server nicht antwortet. Beispiel: ibc. Sleep (1000) schlafen für 1000 Millisekunden 1 Sekunde Löscht die angegebene Anzeigeliste. Wobei ListNo sein kann: 0 - ausstehende Auftragsliste 1 - Ausführungsliste 2 - Portfolioliste 3 - Kontoinformationsliste 4 - Fehlermeldungsliste -1 - spezielle Bedeutung (neu in 1.3.5) - löschen ALLE Listen ibc. ClearList (4) Löscht die Fehlermeldungsliste Beachten Sie, dass diese Funktion nur die Anzeige beeinflusst, beeinflusst sie nicht den Status von Aufträgen. Wenn Sie also alle aktiven Aufträge haben, werden die quotexecutionsquot-Listen bei der nächsten Statusaktualisierung (in der Regel innerhalb eines Bruchteils von Sekunden - also nicht visuell wahrnehmbar) mit aktuell aktiven Aufträgen neu gefüllt. Dies gilt auch für Portfolio - und Kontoinformationslisten - sie werden mit dem nächsten Konto-Update - in der Regel innerhalb von wenigen Sekunden. SetAccount (Zeichenfolge-Konto) (neu in 1.1.0, geändert in 1.3.5) WICHTIG: Die Funktionalität dieser Funktion wurde NUR FÜR FA (Finanzberater) - Konten geändert. Setzt aktives Konto für die nächsten PlaceOrder () - ModifyOrder () - Aufrufe. Beachten Sie, dass es jetzt auch möglich ist, das Zielkonto direkt über den Parameter zu bestimmen, der an PlaceOrderModifyOrder übergeben wird, anstatt sich auf SetAccount () zu verlassen. SetAccount () löscht NICHT mehr Listen und ändert NICHT Betrachtungskonto, wie es in den Versionen vor 1.3.5 getan hat. Das Löschen der Ausführung und der anhängigen Liste war problematisch, da beim Wechseln der Konten die Informationen über zuvor gesendete Bestellungen auf verschiedenen Konten auf FampF-Konten verloren gingen. SetAccount () löscht also keine Listen automatisch. Wenn Sie dies tun möchten, können Sie ClearList (-1) explizit aufrufen. Auch diese Funktion ändert NICHT das Konto, das im quotaccount informationquot Fenster und quotportfolioquot tabs angezeigt wird. Um das in der Quotaccount-Informationsquot-Seite angezeigte Konto und quotportfolioquot-Registerkarten zu ändern, verwenden Sie die neue Funktion SetInfoAccount (). Die Trennung von Order - und Viewing-Konten ermöglicht es, Aufträge auf ein beliebiges Konto zu verweisen, indem Sie beliebige Ansichten ändern, d. H. Sie können das quotAllquot-Konto überwachen, das kumulative Informationen für alle FampFFA-Konten oder ein anderes Konto anzeigt, während Sie Aufträge für andere Konten platzieren. Standardmäßig handelt es sich bei der Viewing-Information um das quotClickkonto und in den meisten Fällen besteht keine Notwendigkeit, es zu ändern, da es Updates von allen Unterkonten erhält. SetInfoAccount (string Account) (neu in 1.3.5) Diese Funktion ändert das Konto, das im Fenster quotaccount informationquot und quotportfolioquot angezeigt wird. Es ändert nicht Konto für Bestellungen verwendet. Die Trennung von Order - und Viewing-Konten ermöglicht es, Aufträge auf ein beliebiges Konto zu verweisen, indem Sie beliebige Ansichten ändern, d. H. Sie können das quotAllquot-Konto überwachen, das kumulative Informationen für alle FampFFA-Konten oder ein anderes Konto anzeigt, während Sie Aufträge für andere Konten platzieren. Standardmäßig handelt es sich bei der Viewing-Information um das quotClickkonto und in den meisten Fällen besteht keine Notwendigkeit, es zu ändern, da es Updates von allen Unterkonten erhält. Beachten Sie, dass IB quotAquot-Index verwendet, um quotAllquot-Konto zu ermitteln, das Aggregat aller Unteraccounts ist. Also, wenn Ihr FA-Konto hat eine Reihe von F1234, müssen Sie quotAquot Suffix hinzufügen, um Aggregat-Daten zu erhalten: Schließt die Verbindung zu TWS und öffnet es, löscht alle Listen und Anfragen für ausstehende Aufträge. Im Wesentlichen gibt die gleiche Wirkung, wie Sie durch die Beendigung und Wiederverwendung IB Controller erreichen würde. 1. Platzierung und 100 Aktien Marktkauf Bestell zu übertragen, wenn MACD oberhalb der Linie Signal: Kaufen Cross (MACD (), Signal ()) if (Lastvalue (Kaufen)) ibc GetTradingInterface (IB) prüfen, ob wir OK verbunden sind, wenn (IBK. IsConnected ()) überprüfen, ob wir nicht haben bereits offen Position zu diesem Lager, wenn (ibc. GetPositionSize (Name ()) 0) übertragen, um ibc. PlaceOrder (Name (), kaufen. 100. MKT. 0. 0. Tag True) 2. Einstellen einer Limit Order auf den aktuellen Kurs zuzüglich 0,10 aber ohne Übermittlung (manuelles Senden erforderlich). Dieser Code kann viele Male ausgeführt werden und es wird bestehende Reihenfolge ändern, solange es nicht übertragen wird. Es verwendet statische Variablen, um orderId vom letzten Lauf zu speichern. Kaufen L gt Ref (H -. 1) zu kaufen, wenn die Preise Lücke auf, wenn (Lastvalue (Kaufen)) ibc GetTradingInterface (IB) prüfen, ob wir OK verbunden sind, wenn (ibc. IsConnected ()) Bestellungen nur dann, wenn wir nicht haben bereits Öffnen Sie die Position auf diesem Symbol, wenn (ibc. GetPositionSize (Name ()) 0) die Auftrags-ID aus dem vorhergehenden Lauf abrufen, leer, wenn keine Bestellung vor OrderID StaticVarGetText (OrderID Name ()) platziert oder geändert wurde ibc. ModifyOrder (OrderID, Name (), kaufen. 100. LMT. Lastvalue (C) 0,10. 0. Tag. false) speichern orderID für den nächsten Lauf, damit wir wissen, welche Reihenfolge StaticVarSetText (OrderID Name (), OrderID) 3 zu ändern Manuelles Einstellen der Modifikation aus dem Dialogfeld Parameter. Code im Indicator Builder anzuwenden. (Geändert, um neue Funktionen in 1.0.2 verwenden) Dieser Code kann viele Male ausgeführt werden und es wird bestehende Reihenfolge ändern, solange es nicht übertragen wird. Es verwendet statische Variablen, um orderId vom letzten Lauf zu speichern. Param Block TriggerOrder ParamTrigger (Platzauftrag. Hier klicken, um zu platzieren) Modus ParamToggle (Modus. Ändern existingAlways neue Bestellung) ACT ParamList (Aktion. BUYSELLSSHORT) OT ParamList (Auftragsart. MKTLMTSTP) TIF ParamList (Zeit in Kraft. DAYGTCIOC) Ticker NomShares Param (Anzahl der Aktien 10. 10. 100. 10) LimitPrice LastValue (C) Param (Limit Preisoffset 0, - 0.1 0.1, 0.01) StopPrice LastValue (C) Param Stop-Kurs-Offset 0, -... 0,1 0,1 0,01) Transmit ParamToggle (nicht übertragen transmitTransmit 0) TriggerCancel ParamTrigger (Order Abbrechen Klicken Sie hier zum Abbrechen Reihenfolge) Msg diese Variable speichert Fehlermeldungstext erstellen Instanz Handels Schnittstelle ibc GetTradingInterface... (Auftrags-ID), wenn (TriggerOrder) überprüfen, ob wir mit OK verbunden sind, wenn (ibc. IsConnected ()) if (Modus 1) OrderID wenn mode Satz nur immer neu dann Aufträge klar orderid Ort, wenn wir auf dieses Symbol Ort nicht bereits offene Position haben oder die Reihenfolge ändern - nicht übertragen noch OrderID ibc. ModifyOrder (OrderID, Ticker, ACT, NumShares, OT, LimitPrice, StopPrice, TIF , Transmit) speichern orderID für den nächsten Lauf, damit wir wissen, welche um StaticVarSetText (OrderID Ticker, OrderID) if (Mode 1) Msg Neuer Auftrag mit ID sonst Msg zu ändern, um placedmodified mit ID Msg Msg OrderID auf nun gesetzt wurde () sonst Msg (OrderId) if (ibc. CancelOrder (OrderId)) Msg Auftrag zur Stornierung der Bestellung OrderID erfolgreich erfolgreich gesendet Msg Request zur Stornierung der Bestellung OrderID fehlgeschlagen. sonst Msg Ordnung becase OrderID abbrechen kann nicht leer execlist ist ibc. GetExecList (0) alle execinfo für (i 0 (OID StrExtract (execlist, i)) i) execinfo execinfo OID Symbol: ibc. GetExecInfo (OID, Symbol) gefüllt: Ibc. GetExecInfo (OID, gefüllt) Durchschn. Preis: ibc. GetExecInfo (OID, Durchschnittspreis) n Überwachungscode Titel Msg nLast TWS-Nachricht: ibc. GetLastError (0) nVerfügbare Fonds: 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 amibrokerTodays Stock Market News amp Analysis Real-Time After Hours Pre-Market News Flash Quote Summary Quote Interactive Charts Default Setting Please note that once you make your selection, it will apply to all future visits to NASDAQ. Wenn Sie zu einem beliebigen Zeitpunkt daran interessiert sind, auf die Standardeinstellungen zurückzukehren, wählen Sie bitte die Standardeinstellung oben. Wenn Sie Fragen haben oder Probleme beim Ändern Ihrer Standardeinstellungen haben, senden Sie bitte eine E-Mail an isfeedbacknasdaq. Bitte bestätigen Sie Ihre Auswahl: Sie haben ausgewählt, Ihre Standardeinstellung für die Angebotssuche zu ändern. Dies ist nun Ihre Standardzielseite, wenn Sie Ihre Konfiguration nicht erneut ändern oder Cookies löschen. Sind Sie sicher, dass Sie Ihre Einstellungen ändern möchten Wir haben einen Gefallen Bitte fragen Sie Ihre Werbe-Blocker (oder aktualisieren Sie Ihre Einstellungen, um sicherzustellen, Javascript und Cookies aktiviert sind) zu deaktivieren, so dass wir auch weiterhin können Sie mit dem erstklassigen Marktnachrichten zur Verfügung zu stellen Und Daten, die Sie von uns erwarten.
Comments
Post a Comment