Sunday 24 December 2017

Lmt forex formula download


Interfejs Auto-Trading AmiBroker dla interaktywnych brokerów 1.3.8 Beta Read Me 29 maja 2017 21:03 TO JEST WERSJA BETA OPROGRAMOWANIA (patrz sekcja FAQ, aby uzyskać odpowiedź, ponieważ jest oznaczona jako BETA) AUTOMATYCZNA HANDEL PRZYWOŁA NIEKTÓRE RYZYKO. PROSZĘ PRZECZYTAĆ TWOJĄ KOD ZA POMOCĄ PIERWSZEGO DEMO TWS, A NASTĘPNIE RACHUNEK PAPIERU AUTOMATYCZNE PRZEDSIĘBIORSTWO HANDLOWE JEST PRZEZNACZONE DO UDOSTĘPNIANIA TRADINGOWOŚCI WIĘKSZYCH I SZYBKICH, ALE NIE JEST PRZEZNACZONE DO BIEGANIA BEZ NADZORU. NIE OPUSZCZAJ AUTOMATYCZNĄ HANDLOWĄ NIEZATWIERDZONĄ JAKO PEWNYCH OKOLICZNOŚCI, KTÓRE MOŻE ZNALEŹĆ SIĘ JAK INTERNETOWA AWARIA, AWARIA MOCY, INNA NIEZALEŻNA SYTUACJA, KTÓRA MOŻE PROWADZIĆ DO POWAŻNEJ STRATY FINANSOWEJ. Po prostu uruchom instalator i postępuj zgodnie z instrukcjami. Zobacz CHANGE LOG poniżej, aby uzyskać szczegółową listę zmian. AmiBroker 4,70 lub wyższy. Zalecany AmiBroker 5.30, szczególnie w systemach Vista i Windows 7. Stacja robocza TWS (DEMO, PaperTrading jest w porządku) od interaktywnych brokerów. Preferowana wersja: 907 lub wyższa. NIE używaj TWS w wersji 945.1 - jest to buggy, zwłaszcza wersja internetowa. Kontroler IB (BrokerIB. EXE) to osobna aplikacja działająca jako bufor między AmiBroker a Interactive Brokers TWS. Przyjmuje polecenia od AmiBroker i wysyła rozkazy do pobierania informacji z TWS. Pozwala także ręcznie anulować przekazywanie zleceń. Aplikacja kontrolera IB jest uruchamiana automatycznie przez AmiBroker, jeśli formuła zawiera następujące wywołanie: Po tym wywołaniu uruchamiana jest aplikacja BrokerIB. EXE (kontroler IB), a zmienna ibc zawiera wskaźnik do obiektu automatyzacji OLE, który ma kilka metod (funkcji), pozwalają na upinięcie zamówienia na TWS i zapytanie o informacje o portfelu. Te metody (funkcje) są wywoływane jako wszelkie metody obiektów automatyzacji, na przykład: if (ibc. IsConnected ()) sprawdź, czy połączenie z IB zakończyło się pomyślnie. Ibc. PlaceOrder (quotMSFTquot, quotBUYquot, 100, quotMKTquot, 0, 0, quotDAYot, False ) Złóż zamówienie, ale jeszcze nie przesyłaj Zwróć uwagę, że jest to interfejs niskiego poziomu dla zaawansowanych użytkowników, który jest udostępniany w tzw. fazie pierwszego wdrażania zautomatyzowanego handlu za pośrednictwem IB. Pojawi się interfejs wyższego poziomu, który zostanie wdrożony później. Metody kontrolera IB (funkcje): ta funkcja umieszcza nowe zamówienie Funkcja zwraca OrderId (ciąg), który może być później użyty do modyfikowania stanu zamówienia. Parametry: Ticker - ciąg znaków określający symbol zakupionego securitycontract. Symbol powinien być zgodny z symboliką opisaną szczegółowo na stronie: amibrokerib. html Akcja - określa działania, które należy podjąć, możliwe wartości to: quotBUYquot, quotSELLquot, quotSSHORTquot Quantity - liczba sharecontracts na buysell Type - określa typ zamówienia, możliwe wartości to: quotMKTquot , quotMKTCLSquot, quotLMTquot, quotLMTCLSquot, quotPEGMKTquot, quotSTPquot, quotSTPLMTwo, quotTRAILquot, quotRELquot, quotVWAPquot - zapoznaj się z dokumentacją Interactive Brokers TWS, aby uzyskać więcej informacji na temat typów zleceń LimitPrice - określa to limit ceny dla zleceń limit i stop limit StopPrice - to definiuje stop cena za zlecenia stopu TimeInForce - określa czas obowiązywania zlecenia, możliwe wartości to: quotDAYquot, quotGTCquot, quotIOCquot, quotGTDquot Począwszy od v1.0.8 Pole TimeInForce w PlaceOrderModifyOrder akceptuje specyfikacje GTD i GAT GTD - Good Till Date - wskazuje, że zamówienie powinien pozostać w pracy do ustalonego czasu i daty. Good Till Date specyfikacja GTD RRRRMMDD HH: MM: SS TZONE gdzie: RRRR jest 4-cyfrowym rokiem MM jest 2-cyfrowym miesiącem DD jest 2-cyfrowym dniem HH jest 2-cyfrową godziną MM jest 2-cyfrową minutą SS jest 2-cyfrową sekundą (OPCJONALNIE) TZONE jest czasem zone (OPCJONALNIE) Po regularnej specyfikacji TimeInForce (DAY, GTC, GTD) możesz dodać dodatkową część GoodAfterTime (GAT). Część GAT pojawia się PO średniku. Wskazuje, że transakcja powinna być złożona po ustalonym czasie i dacie: DAYGAT YYYYMMDD GG: MM: SS TZONE - zamówienie dnia ważne po określonym czasie dostawy GTCGAT RRRRMMDD GG: MM: SS TZONE - zlecenie anulowane do momentu anulowania ważne po określonym czasie GTD rrrrmmdd gg: mm: ss tzoneGAT YYYYYMMDD HH: MM: SS TZONE - kolejność GTD ważna po określonym czasie, gdzie: RRRR jest 4-cyfrowym rokiem MM jest 2-cyfrowym miesiącem DD jest 2-cyfrowym dniem HH jest 2-cyfrową godziną MM jest 2-cyfrową minutą SS jest 2-cyfrową sekundą (OPCJONALNIE) TZONE to strefa czasowa (OPCJONALNIE) Uwaga: nie może być żadnych spacji między średnikiem i ciągiem GAT. ibc. PlaceOrder (MSFT, KUP 100. LMT, 27. 0. DAYGAT 20051214 18:00:00 GMT, True) - zlecenie z limitem dnia dobre po grudz. 14.2005, 18:00 GMT ibc. PlaceOrder (MSFT. 100. LMT 27. 0. GTD 20051215 17:00:00 GMTGAT 20051214 18:00:00 GMT True) - zlecenie limit ważne od 14 grudnia 2005 18:00 do 15.200 grudnia 17:00 GMT ibc. PlaceOrder (MSFT, KUP 100. LMT 27. 0. GTD 20051215 19:00:00 GMT, prawda) - kolejność limitów ważna od teraz do grudnia 15,2005 19:00 GMT Transmit - flaga boolean, która określa, czy dane zamówienie powinno być faktycznie przekazane na giełdę. jeśli ta flaga jest ustawiona na FALSE, zamówienie NIE jest przesyłane, ale pojawia się na stacji roboczej TWS, dzięki czemu można nacisnąć przekazać ręcznie późniejsze dodatkowe parametry dla IBController 1.0.4 lub nowszego: TickSize - określa minimalne fluktuacje cen dozwolone dla danego symbolu wyrażone w pipsach (0,0001 ). Dla większości akcji w USA jest to 100 (reprezentuje ruch 0,01), dla większości walut: 1 (reprezentuje ruch 0,0001), jeśli minimalny ruch jest mniejszy niż 0,0001, możesz użyć wartości ułamkowych, na przykład 1100 dla 0.000001 move. additional parameters for IBController 1.0.8 lub wyżej: Atrybuty - jest ciągiem, który pozwala określić dodatkowe atrybuty zamówienia (lista rozdzielana przecinkami).outsideRTH - jeśli jest to określone, oznacza, że ​​zamówienie uruchomi się nie tylko w czasie regularnych godzin handlu (RTH), ale również w rozszerzonym handlu (rynek przedwczesny) dotyczy zleceń stop, zleceń warunkowych i alertów wykorzystywanych przez logikę wyzwalania. Jeśli nie określono (false) zamówienia będą wyzwalać TYLKO podczas RTH. allOrNone - uzupełnij wszystko lub nic w ogóle eTradeOnly - wymieniaj tylko z cytatami elektronicznymi firmQuoteOnly - handluj tylko z firmowymi cytatami Wersja 1.1 ignoruj ​​rth rthTylko flagi są teraz OBSOLETE i nie są obsługiwane, ponieważ TWS API zrzucił dla nich wsparcie. Domyślnie wszystkie te flagi są NIEAKTYWNE (WYŁ.) Przykład: ibc. PlaceOrder (MSFT, KUP 1000. LMT, 27. 0. GTD 20051215 19:00:00 GMT, Prawda, 100. allOrNone) (Uwaga: opcjonalny parametr TickSize MUST być określone, jeśli chcesz używać atrybutów) ParentID - jest łańcuchem, który określa identyfikator nadrzędnego zamówienia (zwracany przez poprzednie wywołanie PlaceOrder), co pozwala na składanie zamówień BRACKET. parentID ibc. PlaceOrder (MSFT, KUP 1.000. LMT, 27. 0. GTC, Fałsz), ibc. PlaceOrder (SPRZEDAJĄCY 1000. LMT, 28. 0. GTC, Fałsz, 100., parentID), ibc. PlaceOrder ( MSFT. SPRZEDAJ 1000. STP. 26. 26. GTC. Prawda: 100. parentID) Zwróć uwagę, że flaga TRANSMIT jest ustawiona na FALSE na wszystkich zamawianych nawiasach oprócz ostatniej. Zapewnia to, że zlecenia czekają, aż komplet zamówień zostanie zakończony. Ustawienie flagi Transmit na TRUE na ostatnim przenosi cały nawias. OCAGroup - opcjonalny parametr łańcucha (nowy w wersji 1.1.0), który pozwala zdefiniować grupę zamówień OCA (One-Cancels-All) Zamówienia grupowe OCA działają w połączeniu ze sobą, więc gdy jedno zamówienie w grupie zostanie zrealizowane, pozostałe zamówienia zostaną anulowane . Aby uzyskać więcej informacji, zobacz: interactivebrokersphpwebhelpMakingTradesCreateOrderTypesoca. htmPrzykład: ibc. PlaceOrder (MSFT. SELL 1000. LMT.28. 0. GTC, True.100.. 0. MYGROUP) ibc. PlaceOrder (SPRZEDAJĄCY SPRZEDAŻ 1000. STP. 26. 26. GTC, prawda: 100. 0. MYGROUP) OCAType - opcjonalny parametr numeryczny (nowy w wersji 1.1.0), który pozwala kontrolować sposób obsługi zamówień OCAGroup przy częściowym wypełnieniu jednego zamówienia w grupie. Możliwe wartości to: 1 CANCELWITHBLOCK - inne zamówienia są anulowane 2 REDUCEWITHBLOCK - inne zamówienia są zmniejszone, a ochrona przed przepełnieniem wynosi ON 3 REDUCENONBLOCK - inne zamówienia są zmniejszone, a ochrona przed przepełnieniem jest wyłączona Wartość domyślna to 3 FAParams - opcjonalny parametr ciągu (nowy w wersji 1.1.0) - do użytku z kontami FA (Financial Advisor alias FamilyampFriends). Pozwala określić grupę alokacji konta FA, profil, metodę i procent. Te cztery parametry należy podać w postaci ciągu oddzielonego średnikiem: quotFAGroupFAProfileFAMethodFAPercentage. Jeśli jakiś parametr nie jest konieczny, może pozostać pusty, ale zachowaj średniki, jeśli są wymagane dalsze parametry. Na przykład, aby określić porządek, w którym używana jest grupa quotAllquot i używana jest metoda QueryQquantQuantity, parametr FAParameter powinien wyglądać następująco: quotAllEqualQuantityquot: ibc. PlaceOrder (MSFT, BUY 1000. LMT, 27,0 GTC, True, 100. 0.. 0. AllEqualQuantity) Jeśli chcesz użyć niestandardowego profilu alokacji, możesz użyć: ibc. PlaceOrder (MSFT, BUY 1000, LMT, 27. 0 GTC, True, 100. 0.. 0. AllMyCustomProfile) Jeśli FAParams nie jest dostępny i używasz konta FA niż IBc użyje domyślnej alokacji quotAllAvailableEquityquot Pamiętaj, że domyślnie kontroler IB loguje się do konta quotalquot, które jest quotaggregatequot, tj. zawiera sumę wszystkich pozycji na wszystkich subkontach. Konto - opcjonalny parametr ciągu (nowy w wersji 1.3.5) - do użycia z kontami FA (Financial Advisor alias FamilyampFriends). Umożliwia to określenie konta docelowego dla zamówień dla kont FampFFA IB w jednym wywołaniu, zamiast polegać na sekwencji SetAccountPlaceOrder. Pojedynczy wywołanie PlaceOrderModifyOrder ze specyfikacją konta pozwala na określenie konta bez obawy, że inne wątkowe spory mogą przełączyć konto między SetAccount () i PlaceOrder (). ModifyOrder (string OrderId. String Ticker, string Akcja, liczba, liczba, string, typ, liczba, Limit, numer, stop, StopPrice, string, TimeInForce, bool, Transmit, opcjonalny numer TickSize 100, opcjonalny ciąg Attach quotquot, opcjonalny ciąg ParentID quotquot, opcjonalny ciąg OCAGroup, opcjonalny numer Opcjonalny ciąg FAParam, opcjonalny ciąg znaków) Ta funkcja modyfikuje kolejność, która została umieszczona przed, ale jeszcze nie wypełniona. Ta funkcja może być również używana do modyfikowania zamówień, które zostały wysłane z ustawioną flagą "Transmitquot" na False. Również gdy parametr OrderID jest pusty, ta funkcja działa dokładnie tak samo jak PlaceOrder (dzięki czemu możesz umieszczać i modyfikować zamówienia używając samej funkcji ModifyOrder ()) Funkcja zwraca OrderId (ciąg), który może być później użyty do modyfikowania stanu zamówienia. Parametry: OrderId - ciąg określający identyfikator zamówienia, który ma zostać zmodyfikowany (zwrócony przez wcześniejsze wywołanie PlaceOrder lub ModifyOrder). Jeśli ten parametr jest pusty, funkcja umieszcza nową kolejność, wszystkie pozostałe parametry są takie same jak w funkcji PlaceOrder. W wersji 1.1.0 dodano jedno ulepszenie do funkcji ModifyOrder, jeśli niektóre opcjonalne parametry, takie jak ParentID, OCAGroup, OCAType, FAParam są nieokreślone - wtedy używa wcześniej podanych wartości (podczas PlaceOrder). Zapobiega to na przykład utracie ParentID podczas wywoływania ModifyOrder w porządku podrzędnym bez poprawnego parentID. Ta funkcja anuluje zlecenie oczekujące. Prawda - jeśli znaleziono zlecenie oczekujące i wysłano żądanie anulowania, Fałsz - jeśli nie ma oczekującego zamówienia z określonym parametrem Identyfikator zamówienia: Identyfikator zamówienia - ciąg określający identyfikator zamówienia, który ma zostać zmodyfikowany (zwrócony przez wcześniejsze wywołanie PlaceOrder lub ModifyOrder). GetAccountValue (string FieldName) Ta funkcja pobiera wartości kont. Łańcuch reprezentujący wartość. Zauważ, że jeśli potrzebujesz numeru w AFL, powinieneś użyć funkcji konwersji StrToNum, która zamieni ciąg zwracany przez tę funkcję na numer. Pusty łańcuch jest zwracany, jeśli pole nie istnieje lub jest puste. Parametry: FieldName - definiuje wartość do zapytania Lista dostępnych pól (wielkość liter ma znaczenie): 1. Pola niezależne od waluty lub wyrażone w walucie rachunku BASE (zwykle sumy): AccountCode AccountReady AccountType AccruedCash CashBalance Waluta DayTradesRemaining DayTradesRemainingT1 DayTradesPamięszukiwanieT2 DayTradesRemainingT3 DayTradesRemainingT4 ExchangeRate FuturesPNL Leverage-S LookAheadNextChange NetLiquidationByCurrency OptionMarketValue PNL ZrealizowanyPnL StockMarketValue TotalCashBalance UnrealizedPnL 2. Pola, które są dostarczane osobno dla KAŻDEJ waluty posiadanej na koncie, CUR na poniższej liście oznacza symbol waluty, więc w przypadku funduszy denominowanych w USD i papierów wartościowych pojawi się przedrostek USD. Uwaga: Pozycje Forex IDEALPRO są tutaj uwzględnione w CURCashBalance. CURAvailableFunds-S CURAccruedCash CURAccruedCash-C CURAccruedCash-S CURAvailableFunds CURAvailableFunds-C 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 CURLookAheadAvailableFunds-C-S-S CURFullMaintMarginReq CURFutureOptionValue CURFuturesPNL CURGrossPositionValue CURGrossPositionValue-S CURInitMarginReq CURInitMarginReq-C CURInitMarginReq CURLeverage-S-S-C CURLookAheadAvailableFunds CURLookAheadAvailableFunds CURLookAheadExcessLiquidity CURLookAheadExcessLiquidity CURLookAheadExcessLiquidity-C-S-C CURLookAheadInitMarginReq CURLookAheadInitMarginReq CURLookAheadInitMarginReq-S CURLookAheadMaintMarginReq CURLo okAheadMaintMarginReq - 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 Gdy waluty nie jest określona IBc najpierw szuka wartości określonych w walucie BASE, a jeśli nie zostanie znaleziony, to domyślnie używa USD, więc możesz użyć starego GetAccountValue (quotAvailableFundsquot) i zwróci to samo co GetAccountValue (quotUSDAvailableFundsquot) - ponieważ dostępne fundusze nie są określone w waluta bazowa. Jeśli jednak zadzwonisz do GetAccountValue (quotałTotalCashBalancequot), będzie on raportował w walucie BASE i może różnić się od GetAccountValue (quotusDTotalCashBalancequot), który będzie reprezentował tylko gotówkę w USD. Różnice wystąpią, jeśli masz pozycje gotówkowe w wielu walutach, więc kursywa pokazuje walutę sumy wszystkich pozycji we wszystkich walutach, tak jakby były one wymieniane na walutę podstawową GetExecInfo (string OrderId,. String Field) Ta funkcja pobiera wartość pola OrderId zamów z listy wykonawczej wartość numeryczną lub żądaną żądanego pola dla OrderId. Null, jeśli brak pola lub brak takiej pozycji Parametry: OrderId - string określający kolejność (zwracaną przez funkcję PlaceOrder lub pobieraną przez GetExecList). Field - jedna z nazw kolumn znajdujących się na stronie Exexecutionquot kontrolera IB. Na przykład quotAvg. pricequot podaje średnią cenę zakupu danego papieru wartościowego, quotFilledquot podaje liczbę akcjicontracts filled GetExecList (number Typ string filter) (nowy w 1.3.0) Zwraca rozdzielaną przecinkami listę zleceń z listy wykonań Parametry: Type - określa, co powinno zostać zwrócone 0 - podaje ORDERIDy (aktualnie jest to TYLKO akceptowana wartość) Filtr - gdy nie jest pusty, mówi IBc, że tylko zamówienia o określonym statusie powinny zostać zwrócone, gdy puste - wszystkie zamówienia z oczekującej listy są zwracane. symbols ibc. GetPendingList (0. Filled) - zwraca listę oddzielonych przecinkami pełnych symboli ID rozkazów ibc. GetPendingList (0.) - zwraca listę wszystkich identyfikatorów zamówień obecnych na liście notowań ofert Aby wyodrębnić symbole z listy, użyj tego rodzaju pętli: for (i 0 (symbol StrExtract (symbole, i)) i) printf (Symbol: symbol n) execlist ibc. GetExecList (0) zawiera listę wszystkich zleceń od wykonania execinfo dla (i 0 (OId StrExtract (execlist, i)) i) execinfo execinfo OID Symbol: ibc. GetExecInfo (OID, Symbol) Wypełniony: ibc. GetExecInfo (OID, wypełniony) Śr. cena: ibc. GetExecInfo (OID, średnia cena) n Ta funkcja zwraca tekst ostatniego łańcucha komunikatu o błędzie odpowiadającego komunikatowi o błędzie. Puste w przypadku, gdy nie było komunikatu o błędzie lub nie ma takiego zlecenia OrderId - określa identyfikator zamówienia, z którego mają być wysyłane ostatnie informacje o błędzie. Istnieje specjalna wartość, którą możesz przekazać: 0 (zero) i ma specjalne znaczenie: pobiera ostatni komunikat o błędzie dla KAŻDEGO zamówienia. Jest to dokładnie ten komunikat, który pojawia się na górze listy błędów w interfejsie użytkownika IBController. GetStatus (string OrderId, opcjonalny boolean InclFilled) Ta funkcja pobiera stan oczekującego zamówienia. Łańcuch, który opisuje status, może to być: quotNotYetTransmittedquot, quotPreSubmittedquot, quotPendingquot, quotCancelledquot, quotSubmittedquot, quotFollowquot, quotErrorquot (new w wersji 1.0.2), quotInactivequot lub empty, gdy nie znaleziono zgodnej kolejności W zależności od pola InclFilled niektóre statusy są sporadyczne. Jeśli InclFilled nie jest określone lub jest równe false (zero), to spójnie raportowane są tylko quotNotYetTransmittedquot, quotPendingquot, quotPreSubmittedquot, quotSubmittedquot statusy. quotCancelledquot i quotFilledquot statusy są sporadyczne, ponieważ takie zamówienia są usuwane z listy zamówień oczekujących w ciągu jednej sekundy od anulowania wypełnienia zamówienia (to się zmieni w przyszłości). quotErrorquot status oznacza, że ​​wystąpił błąd podczas przetwarzania ostatniego żądania w celu upozycjonowania zamówienia i możesz wysyłać zapytania o szczegółowe informacje o błędach za pomocą funkcji GetLastError. Jeśli InclFilled jest ustawione na True, to zgłaszane są również statusy zamówień wymienionych na liście Executionquot, co oznacza, że ​​można uzyskać konsekwentnie quotCancelledquot, quotFilledquot, quotErrorquot, quotInactivequot. Uwaga: Parametr InclFilled został wprowadzony w wersji 1.0.8. Parametry: OrderId - ciąg określający identyfikator zamówienia, który ma zostać zmodyfikowany (zwrócony przez wcześniejsze wywołanie PlaceOrder lub ModifyOrder). GetPositionInfo (string Ticker, string field) Ta funkcja pobiera wartość symbolu Field of Ticker aktualnie posiadanego w portfolio WAŻNE ZMIANY w wersji 1.1.0. funkcja NIE zgłasza pozycji o zerowych rozmiarach więcej niż wartość liczbowa żądanego pola dla Ticker. Null, jeśli brak pola lub brak takiej pozycji Parametry: Ticker - ciąg znaków określający symbol securitycontract. Symbol powinien być zgodny z symboliką opisaną szczegółowo w: amibrokerib. html Pole - jedna z nazw kolumn znajdujących się na stronie PORTfolioquot kontrolera IB. Na przykład quotAvg. costquot daje średni koszt zakupu danego papieru wartościowego, kwota niezrealizowana PNLquot daje niezrealizowane zyski i straty. Ta funkcja wyszukuje liczbę akcji oznaczonych symbolem Ticker znajdującym się obecnie w portfelu, który określa aktualnie zajmowany rozmiar pozycji dla Ticker. Liczby dodatnie oznaczają pozycję długą, liczby ujemne oznaczają pozycję krótką, zero oznacza, że ​​dany ticker nie jest trzymany w portfelu Parametry: Ticker - ciąg określający symbol securitycontract. Symbol powinien być zgodny z symboliką zdefiniowaną szczegółowo na stronie: amibrokerib. html IsConnected () Ta funkcja pobiera status połączenia z TWS. 0 - Brak połączenia 1 - połączenie w toku 2 - oznacza połączenie OK, brak wiadomości 3 - połączenie OK, ale TWS wygenerował kilka komunikatów ostrzegawczych (patrz zakładkaWiadomości) IsOrderPending (string OrderId) Ta funkcja sprawdza, czy podana kolejność jest w toku (czy jeszcze nie przekazywane). Prawda - jeśli zamówienie nadal znajduje się na liście oczekujących, Fałsz, jeśli zamówienie zostało wypełnione, anulowane lub nie ma takiej kolejności w ogóle Parametry: OrderId - ciąg określający identyfikator zamówienia, który ma zostać zmodyfikowany (zwrócony przez wcześniejsze wywołanie PlaceOrder lub ModifyOrder). Zwraca listę symboli rozdzielonych przecinkami aktualnie otwartych pozycji. WAŻNA ZMIANA w wersji 1.1.0. funkcja NIE zgłasza pozycji o zerowych rozmiarach już lista otwartych pozycji i ich rozmiary ibc GetTradingInterface (IB) dla (i 0 (symbol StrExtract (openpos, i)) i) printf (Pozycja i tSymbol: symbol tRozmiar: ibc. GetPositionSize ( symbol) n) Zwraca listę rozkazów oddzielonych przecinkami od oczekującej listy Parametry: Typ - określa, co powinno zostać zwrócone 0 - podaje ORDERIDy, 1 daje listy symboli Filtr - gdy nie jest pusty, mówi IBc, że tylko zamówienia o określonym statusie powinny zostać zwrócone, gdy puste - zwracane są wszystkie zamówienia z oczekującej listy. symbols ibc. GetPendingList (0. Pending) - zwraca oddzieloną przecinkami listę oczekujących symboli ID zleceń ibc. GetPendingList (1. Oczekujące) - zwraca listę symboli SYMBOLI, które mają oczekujące zamówienia, oddzieloną przecinkami ibc. GetPendingList (0. Błąd) - lista zwrotów zamówień, które mają symbole błędów ibc. GetPendingList (0. Anulowane) - zwraca anulowane zamówienia (pamiętaj, że anulowane zamówienie zostanie automatycznie usunięte z listy po kilku sekundach) symbols ibc. GetPendingList (0.) - zwraca listę wszystkich orderIDs obecna na liście kwot do przetargu (może być w toku lub może byćpoczątkowo wypełnionaprzedstawieniem wypełnienia, itp.) Aby wyodrębnić symbole z listy, użyj tego rodzaju pętli: for (i 0 (symbol StrExtract (symbole, i)) i) printf (Symbol: symbol n) CloseAllOpenPositions (opcjonalnie string Ticker) (nowy w wersji 1.0.8) Wysyła zlecenia, aby zamknąć wszystkie aktualnie otwarte pozycje. przesyła zlecenie MARKET SELLBUY dla każdej pozycji LONGSHORT na stronie portfela - powinno skutecznie zamykać wszystkie otwarte pozycje (pod warunkiem, że zlecenia zamykające będą prawidłowo wypełniane), należy jednak pamiętać, że może się zdarzyć, że te zlecenia zamknięcia mogą zawieść (na przykład, gdy rynki są zamknięte ) Nowość w wersji 1.1.0: teraz funkcja przyjmuje opcjonalny parametr. Gdy zostanie podana, funkcja zamyka pozycje tylko na określonym pasku. Jeśli nie jest określony - działa tak jak poprzednio (zamyka pozycje we wszystkich symbolach). CancelAllPendingOrders (opcjonalny ciąg znaków) (nowy w wersji 1.0.8) Anuluje wszystkie oczekujące zlecenia Wysyła anulowanie dla każdego zamówienia wyświetlanego na stronie Zamówienia oczekujące (z wyjątkiem zamówień z błędami) Nowość w wersji 1.1.0: teraz przyjmuje opcjonalny parametr . Gdy zostanie podana, funkcja anuluje tylko zamówienia określonego znacznika. Jeśli nie jest określony - działa tak jak poprzednio (anuluje wszystkie oczekujące zamówienia na wszystkich symbolach). Transmit (string OrderID) (nowość w 1.0.8) Modyfikuje flagę transmisji w kolejności NotYetTransmitted Paramters: OrderID - ciąg określający orderid zwrócony przez PlaceOrder Zwraca wartość niezerową (true), gdy orderid został znaleziony na liście oczekujących zamówień, a zero w przeciwnym razie. Nie oznacza to koniecznie, że transmisja zakończyła się powodzeniem. Transmit (orderid) służy do przesyłania zleceń wcześniej umieszczonych z flagą nadawania ustawioną na false. Transmituj wewnętrznie jest obsługiwany przez wywołanie funkcji quothodify orderquot (nie musisz więc podawać tych samych parametrów ponownie), ale pamiętaj, że TWS ma problemy z obsługą modyfikacji żądań przychodzących zbyt szybko, więc NIE będziesz w stanie natychmiast wywołać modifytransmit po złożeniu zamówienia z transmisją fałszywy. W takich przypadkach zalecamy użycie wyzwalacza ręcznego, który jest wystarczająco powolny, aby nie powodować problemów. Przykład: ibc. Transmit (orderid) To jest funkcja EXPERIMENTAL. Zawiesza wykonywanie przez określoną liczbę milisekund. NIE używaj tej funkcji, chyba że naprawdę musisz. ponieważ blokuje zarówno IBController, jak i AmiBroker na określony czas, a obie aplikacje nie reagują na akcje użytkownika (takie jak wejście myszy). Jeśli zawiesisz wykonywanie na więcej niż kilka sekund, AmiBroker będzie skarżył się, że serwer OLE nie odpowiada. Przykład: ibc. Sleep (1000) sleep dla 1000 milisekund 1 sekunda Czyści określoną listę wyświetlania. gdzie ListNo może być: 0 - lista oczekujących zamówień 1 - lista realizacji 2 - lista portfeli 3 - lista informacji o koncie 4 - lista komunikatów o błędach -1 - znaczenie specjalne (nowe w 1.3.5) - wyczyść WSZYSTKIE listy ibc. ClearList (4) czyści listę komunikatów o błędach Zwróć uwagę, że ta funkcja wpływa tylko na wyświetlacz, NIE wpływa na status zamówień. Więc jeśli masz jakieś aktywne zlecenia, to kolejne liczby będą ponownie wypełniane bieżącymi aktywnymi zamówieniami podczas następnej aktualizacji statusu (zwykle w ułamku sekundy - więc może nie być zauważalne wizualnie) Dotyczy to również list informacji portfela i konta - zostaną one ponownie wypełnione kolejną aktualizacją konta - zwykle w ciągu kilku sekund. SetAccount (ciąg znaków) (nowy w wersji 1.1.0, zmieniony w 1.3.5) WAŻNE: Funkcjonalność tej funkcji została ZMIENIONA W 1.3.5 TYLKO DLA kont FA (doradcy finansowego). Ustawia aktywne konto dla następnych wywołań funkcji PlaceOrder () ModifyOrder (). Zauważ, że możliwe jest teraz określenie konta docelowego bezpośrednio za pomocą parametru przekazanego do PlaceOrderModifyOrder zamiast polegania na SetAccount (). SetAccount () NIE usuwa już list i NIE zmienia konta przeglądania tak, jak miało to miejsce w wersjach wcześniejszych niż 1.3.5. Usuwanie realizacji i oczekującej listy było problematyczne, ponieważ podczas przełączania kont informacje o wcześniej wysłanych zamówieniach na innym koncie zostały utracone na kontach FampF. Tak więc SetAccount () nie usuwa automatycznie list. Jeśli chcesz to zrobić, możesz wyraźnie wywołać ClearList (-1). Również ta funkcja NIE zmienia konta, które jest wyświetlane w okienku informacyjnym quotaccount i w zakładkach quotportfolioquot. Aby zmienić konto wyświetlane na stronie informacyjnej quotaccount i na kartach quotportfolioquot, użyj nowej funkcji SetInfoAccount (). Rozdzielenie rachunków zleceń i rachunków umożliwia kierowanie zleceń na dowolne konto przy zmianie jakichkolwiek widoków, tzn. Można monitorować konto quotAllquot - wyświetlające zbiorcze informacje dla wszystkich kont FampFFA lub dowolnych innych kont podczas składania zamówień dla innych kont. Domyślnie informacje o wyświetleniu to konto quotquot i w większości przypadków nie ma potrzeby zmiany go, gdy otrzymuje aktualizacje ze wszystkich subkont. SetInfoAccount (ciąg znaków) (nowy w 1.3.5) Ta funkcja zmienia konto, które jest wyświetlane w okienku informacyjnym quotaccount i w kartach quotportfolioquot. NIE zmienia konta używanego do zamówień. Rozdzielenie rachunków zleceń i rachunków umożliwia kierowanie zleceń na dowolne konto przy zmianie jakichkolwiek widoków, tzn. Można monitorować konto quotAllquot - wyświetlające zbiorcze informacje dla wszystkich kont FampFFA lub dowolnych innych kont podczas składania zamówień dla innych kont. Domyślnie informacje o wyświetleniu to konto quotquot i w większości przypadków nie ma potrzeby zmiany go, gdy otrzymuje aktualizacje ze wszystkich subkont. Zauważ, że IB używa podskoku quotAquot do oznaczania konta quotAllquot, które jest agregatem wszystkich subkont. Więc jeśli twoje konto FA ma numer F1234, musisz dodać do niego przyrostek Kwarantanna, aby uzyskać dane zagregowane: Zamyka połączenie z TWS i ponownie je otwiera, czyści wszystkie listy i żądania dla oczekujących zamówień. Zasadniczo daje to taki sam efekt, jaki można uzyskać, kończąc i ponownie uruchamiając kontroler IB. 1. Złożenie i przesłanie zamówienia kupna na 100 akcji, gdy MACD przekracza linię sygnału: Kupuj krzyż (MACD (), sygnał ()), jeśli (Ostatnia wartość (Kup)) ibc GetTradingInterface (IB) sprawdź, czy jesteśmy połączeni OK, jeśli (ibc. IsConnected ()) sprawdź, czy nie mamy już otwartej pozycji na tym magazynie, jeśli (ibc. GetPositionSize (Name ()) 0) przekazuje zlecenie ibc. PlaceOrder (Name (), Buy 100. MKT 0. 0. Day Prawda) 2. Wprowadzanie modyfikacji zlecenia limitu na aktualną cenę plus 0,10, ale bez przesyłania go (wymagana transmisja ręczna). Ten kod może być uruchamiany wiele razy i zmodyfikuje istniejące zamówienie, o ile nie zostanie przesłane. Używa zmiennych statycznych do przechowywania orderId z ostatniego uruchomienia. Kup Lt ref (H. - 1) kup, gdy ceny są wyższe, jeśli (LastValue (Buy)) ibc GetTradingInterface (IB) sprawdź czy jesteśmy połączeni OK, jeśli (ibc. IsConnected ()) składasz zamówienia tylko wtedy, gdy nie mamy już otwórz pozycję na tym symbolu, jeśli (ibc. GetPositionSize (Name ()) 0) pobierze identyfikator orderID z poprzedniego uruchomienia, będzie puste, jeśli żadne zamówienie nie zostało złożone przed OrderID StaticVarGetText (OrderID Name ()) miejsce lub zmodyfikuj zamówienie - nie przesyłaj jeszcze OrderID ibc. ModifyOrder (OrderID, Name (), BUY 100. LMT LastValue (C) 0.10 0. Day Fałsz) przechowuj orderID dla następnego uruchomienia, abyśmy wiedzieli, która kolej modyfikować StaticVarSetText (OrderID Name (), OrderID) 3 Ręczne modyfikowanie z okna dialogowego Parametry. Kod do zastosowania w Konstruktorze wskaźników. (Zmodyfikowano, aby używać nowych funkcji w wersji 1.0.2) Ten kod może być uruchamiany wiele razy i zmodyfikuje istniejące zamówienie, o ile nie zostanie przesłane. Używa zmiennych statycznych do przechowywania orderId z ostatniego uruchomienia. Param blok TriggerOrder ParamTrigger (złożyć zamówienie Kliknij tutaj, aby złożyć zamówienie) Tryb ParamToggle (Modyfikuj istniejącyZawsze złożyć nowe zamówienie) ACT ParamList (Action. BUYSELLSSHORT) OT ParamList (Typ zamówienia MKTLMTSTP) TIF ParamList (Time In Force. DAYGTCIOC) Ticker ParamStr (Ticker: Name ()) NumShares Param (liczba udziałów 10. 10. 100. 10) LimitPrice LastValue (C) Param (ograniczenie przesunięcia ceny 0, - 0.1 0.1 0.01) StopPrice LastValue (C) Param ( Zatrzymaj przesunięcie ceny 0, - 0.1 0.1 0.01) Prześlij ParamToggle (Transmituj NIE nadawaj Transmituj 0) Trigger Anuluj ParamTrigger (Anuluj zamówienie Kliknij tutaj, aby anulować zamówienie) Msg ta zmienna przechowuje tekst komunikatu o błędzie tworzymy wystąpienie interfejsu handlowego ibc GetTradingInterface (IB) pobiera identyfikator zlecenia z poprzedniego uruchomienia, będzie puste, jeśli żadne zlecenie nie zostało złożone przed OrderID StaticVarGetText (OrderID Ticker), jeśli (TriggerOrder) sprawdź czy jesteśmy połączeni OK, jeśli (ibc. IsConnected ()) jeśli (Mode 1) OrderID i f tryb ustawiany zawsze zawsze nowy, a następnie usuń porządek sortuj zlecenia tylko wtedy, gdy nie mamy już otwartej pozycji w tym miejscu symbolu lub zmodyfikuj zamówienie - nie przesyłaj jeszcze OrderID ibc. ModifyOrder (OrderID, Ticker, ACT, NumShares, OT, LimitPrice, StopPrice , TIF, Transmit) porządek zlecenia sklepu dla następnego uruchomienia, więc wiemy, która kolejność modyfikacji StaticVarSetText (OrderID Ticker, OrderID), jeśli (tryb 1) Msg Nowe zamówienie zostało złożone z identyfikatorem else Msg Zamówienie zostało zmodifikowane z identyfikatorem Msg Msg OrderID on Now () w przeciwnym razie Msg Złożenie zamówienia nie powiodło się z powodu braku połączenia z TWS, jeśli (TriggerAnuluj) jeśli (OrderId) if (ibc. CancelOrder (OrderId)) Msg Żądanie anulowania zamówienia Identyfikator zamówienia wysłany z powodzeniem inny Msg Żądanie anulowania zamówienia OrderID nie powiodło się. else Msg Nie można anulować zamówienia, ponieważ OrderID jest pustym execlistem ibc. GetExecList (0.) all execinfo for (i 0 (OId StrExtract (execlist, i)) i) execinfo execinfo OID Symbol: ibc. GetExecInfo (OID, Symbol) Wypełniony: ibc. GetExecInfo (OID, Filled) Śr. cena: ibc. GetExecInfo (OID, średnia cena) n kod monitorujący Tytuł Msg nLast TWS wiadomość: 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,20170917, 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 - tra de 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 amibrokerThe Snake Trading System - Forex Strategies - Forex Resources - Forex Trading-free forex trading signals and FX Forecast 461 The Snake Trading System ALL INDICATORS REPAINT For each indicators, there are a max number of bars within the signal can be repainted, it depends on how many bars the signal is calculated. Jeśli jest obliczany na ostatnich 3 taktach, sygnał za czwartym słupkiem nie zmienia koloru. Jeśli signifa jest obliczana tylko na ostatnim pasku, odświeża tylko bieżący otwarty pasek i możesz zamienić ten sygnał na zamknięcie paska. Nieprawidłowo, nazywa się je wskaźnikami, które nie zmieniają koloru. Większość wskaźników, które przekazują EA do EA (systemy Auto-Trading, które potrzebują tylko wyraźnych sygnałów) działa w ten sposób, ale niekoniecznie jest to najlepszy sposób na zbudowanie wskaźnika dla dyskretnego systemu transakcyjnego. W Discretional Trading Stystem również problemem jest odmalowanie. Nie możesz czuć się z znikającymi strzałami, liniami i kropkami. Szczęśliwie ludzkie oko może łatwo filtrować dobre i złe sygnały, używając innych wskaźników monitorujących różne parametry. Czasami w systemie transakcyjnym. lepiej niech system handlu daje ci kilka szybkich sygnałów, oprócz innych opóźnionych wskaźników, silniejszych. Share your opinion, can help everyone to understand the forex strategy. Todays 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. Jeśli w dowolnym momencie jesteś zainteresowany przywróceniem ustawień domyślnych, wybierz ustawienie domyślne powyżej. Jeśli masz jakiekolwiek pytania lub masz jakiekolwiek problemy ze zmianą ustawień domyślnych, wyślij e-mail na adres isfeedbacknasdaq. Potwierdź swój wybór: Wybrałeś zmianę domyślnego ustawienia Wyszukiwania wyceny. Będzie to teraz domyślna strona docelowa, chyba że ponownie zmienisz konfigurację lub usuniesz pliki cookie. Czy na pewno chcesz zmienić swoje ustawienia Mamy przyjemność zapytać Proszę wyłączyć blokowanie reklam (lub zaktualizować ustawienia, aby zapewnić, że javascript i pliki cookie są włączone), abyśmy mogli nadal dostarczać Ci najwyższej jakości wiadomości na temat rynku i dane, których oczekujesz od nas.

No comments:

Post a Comment