Ib Controllore Amibroker Forex


Ami mediatore 6 febbraio 2015 AmiBroker permette di automatizzare l'esecuzione ordini tramite conto Interactive Brokers. Per poter utilizzare le funzionalità di auto-negoziazione, è necessario installare speciale componente che comunica con IB TWS 8211 il programma di installazione di interfaccia e la documentazione sono disponibili sul sito: per impostazione predefinita il controller IB viene installato nella cartella di installazione della versione a 32 bit. Quindi 8211 che è il seguente percorso nel sistema di Windows a 64 bit: Se stiamo usando la versione a 64 bit, allora è necessario necessità di copiare manualmente i file BrokerIB. exe e BrokerIB. xml nella cartella di installazione della versione a 64 bit, per di default che è: articoli correlati: I commenti sono chiusi. Categorie Copyright copy2016 AmiBroker. Tutti i diritti riservati. Questo sito utilizza cookies. L'utilizzo di questo sito l'utente accetta di nostra politica sulla privacy biscotti amp AmiBroker è una società di sviluppo software e non fornisce alcun tipo di servizi di investimento o di intermediazione in markets. February finanziaria 25, 2005 11:06 Questa è una versione beta del software. ASPETTARSI insetti. Utilizzare esclusivamente DEMO TWS, non reale CONTO. Basta eseguire il programma di installazione e seguire le istruzioni. Vedere CHANGE LOG di seguito per l'elenco dettagliato delle modifiche. AmiBroker 4.63.1 beta o workstation TWS superiore (DEMO è OK) da interactivebrokers. versione preferita: 840 TWS API 8.30 installata da: interactivebrokersdownloadInstallAX. exe IMPORTANTE: Fuoco openOrder sul cambiamento di stato acceso in TWS (Configure-gtAPI-gtFire openOrder sul menu di cambiamento di stato) Il controller IB (BrokerIB. EXE) è un'applicazione separata che agisce da cuscinetto tra AmiBroker e Interactive Brokers TWS. Si accetta comandi da AmiBroker ed inviare gli ordini recupera informazioni da TWS. Consente inoltre di canceltransmit ordini manualmente. L'applicazione del controller IB è gestito automaticamente dal AmiBroker se la formula contiene il seguente invito: Dopo questa chiamare il BrokerIB. EXE (IB Controller) applicazione viene avviata e la variabile IBC contiene il puntatore oggetto di automazione OLE che ha diversi metodi (funzioni) che permettono di placemodifycancel ordini via TWS e per interrogare le informazioni del portafoglio. Tali metodi (funzioni) sono chiamati come i metodi oggetto di automazione, per esempio: se (ibc. IsConnected ()) controllare se la connessione al IB era successo ibc. PlaceOrder (MSFT, BUY, 100, MKT, 0, 0, giorno, False ) ordine del posto, ma non trasmettono ancora noti che questo è l'interfaccia di basso livello per gli utenti avanzati che viene reso disponibile nella cosiddetta fase di implementazione un trading automatico tramite IB. Ci saranno un'interfaccia di alto livello che sarà realizzato in seguito. IB Metodi Controller (funzioni): Questa funzione pone un nuovo ordine La funzione restituisce il OrderId (stringa) che può essere poi utilizzato per modifycancelquery stato dei parametri di ordine: Ticker - stringa che specifica il simbolo del securitycontract da acquistare. Il simbolo deve seguire la simbologia definita in dettaglio: amibrokerib. html Azione - specifica azione da intraprendere, i valori possibili sono: comprare, vendere, SSHORT Quantità - il numero di sharescontracts per buysell tipo - specifica il tipo di ordine, i valori possibili sono: MKT , MKTCLS, LMT, LMTCLS, PEGMKT, STP, STPLMT, TRAIL, REL, VWAP - consultare la documentazione di Interactive Brokers TWS per ulteriori informazioni sui tipi di ordine LimitPrice - questo definisce il prezzo limite per il limite e stop ordini limite StopPrice - questo definisce ferma prezzo per ordini stop TimeInForce - definisce il tempo in vigore del provvedimento, i valori possibili sono: GIORNO, GTC, CIO di trasmissione - flag booleano che specifica se dato ordine deve essere effettivamente trasmesso allo scambio. Se questo flag è impostato su FALSE, allora l'ordine non è trasmesso ma viene visualizzato nella workstation TWS in modo da poter premere trasmettere manualmente dopo ModifyOrder (string OrderId. stringa di Ticker. stringa di azione. numero di quantità. stringa tipo. numero LimitPrice. numero StopPrice. stringa TimeInForce. bool Transmit) Questa funzione modifica l'ordine che è stato posto prima, ma non ancora riempito. Questa funzione può essere utilizzata anche per modificare gli ordini che sono stati inviati con la trasmissione di bandiera impostato su False. Anche quando il parametro IDOrdine è vuota questa funzione funziona esattamente come PlaceOrder (in modo da poter inserire e modificare ordini utilizzando ModifyOrder () solo funzione) La funzione restituisce il OrderId (stringa) che può essere poi utilizzato per modifycancelquery stato dei parametri di ordine: OrderId - stringa che specifica il orderID di essere modificati (restituito dal precedente PlaceOrder o chiamata ModifyOrder). Se questo parametro è vuoto, la funzione inserisce un nuovo ordine tutti i rimanenti parametri sono gli stessi in funzione PlaceOrder Questa funzione annulla ordine in sospeso. Vero - se l'ordine pendente è stato trovato e annullare richiesta è stata inviata, False - se non esiste un ordine in sospeso con i parametri specificati OrderID: OrderId - stringa che specifica il orderID da modificare (restituito dal precedente PlaceOrder o chiamata ModifyOrder). GetAccountValue (string FieldName) Questa funzione recupera i valori di conto. Stringa che rappresenta il valore. Si noti che se avete bisogno di numero in AFL si dovrebbe utilizzare la funzione di conversione StrToNum che convertirà stringa restituita da questa funzione al numero. stringa vuota viene restituita se il campo non esiste o è vuoto. Parametri: FieldName - definisce il valore di interrogare elenco dei campi disponibili (maiuscole e minuscole): LookAheadMaintMarginReq accountcode OptionMarketValue DayTradesRemainingT3 NetLiquidationByCurrency AccountReady EquityWithLoanValue-S valuta FuturesPNL AccountType UnalteredInitMarginReq LookAheadInitMarginReq BuyingPower UnrealizedPnL TotalCashBalance GrossPositionValue-S LookAheadAvailableFunds-C LookAheadExcessLiquidity-C LookAheadInitMarginReq-C NetLiquidationByCurrency valuta FullExcessLiquidity DayTradesRemainingT2 FullAvailableFunds-C ExcessLiquidity-S TotalCashBalance NetLiquidation LookAheadNextChange InitMarginReq SMA-S NetLiquidation-S NetLiquidationByCurrency SettledCash-S RealizedPnL LookAheadMaintMarginReq-S AvailableFunds-S InitMarginReq-S TotalCashValue-S RealizedPnL FullMaintMarginReq-S DayTradesRemainingT1 StockMarketValue FullExcessLiquidity-C TotalCashBalance RealizedPnL UnalteredMaintMarginReq FullInitMarginReq-C SettledCash MaintMarginReq-C LookAheadAvailableFunds-S LookAheadExcessLiquidity-S LookAheadInitMarginReq-S FutureOptionValue SMA OptionMarketValue EquityWithLoanValue-C EquityWithLoanValue ExcessLiquidity PNL FullAvailableFunds-S StockMarketValue FullAvailableFunds FuturesPNL GrossPositionValue FutureOptionValue DayTradesRemaining AvailableFunds Leverage-S FullMaintMarginReq UnrealizedPnL StockMarketValue TotalCashValue ExcessLiquidity-C FutureOptionValue MaintMarginReq DayTradesRemainingT4 LookAheadExcessLiquidity FullExcessLiquidity-S NetLiquidation - C OptionMarketValue UnrealizedPnL FuturesPNL LookAheadAvailableFunds SettledCash-C FullInitMarginReq-S LookAheadMaintMarginReq-C AvailableFunds-C TotalCashValue-C InitMarginReq-C valuta FullMaintMarginReq-C FullInitMarginReq MaintMarginReq-S Questa funzione restituisce il testo dell'ultimo errore stringa del messaggio che rappresenta il messaggio di errore. Vuoto nel caso in cui non vi era alcun messaggio di errore o non esiste OrderId fine - specifica l'ID per poter interrogare ultime informazioni di errore da. C'è un valore speciale che è possibile passare: 0 (zero) e ha un significato speciale: recupera ultimo messaggio di errore per ogni ordine. Questo è esattamente il messaggio che appare in cima alla lista degli errori nell'interfaccia utente IBController. GetStatus (string OrderId) Questa funzione recupera lo stato di ordine pendente. stringa che descrive lo stato, può essere: NotYetTransmitted, attesa, Annullato, Riempito, errore (di nuovo in 1.0.2) o vuoto quando l'ordine di corrispondenza non è stata trovata Si prega di notare che attualmente solo NotYetTransmitted, gli stati in sospeso sono riportati in modo coerente. stati annullati e pieno sono intermittient perché tali ordini vengono rimossi dalla lista ordini in corso entro un secondo dal cancellingfilling l'ordine (questo cambierà in futuro). Stato di errore significa che c'è stato un errore durante l'elaborazione ultima richiesta di placemodify un ordine e si può interrogare informazioni dettagliate sull'errore usando la funzione GetLastError. Parametri: OrderId - stringa che specifica il orderID da modificare (restituiti da precedenti PlaceOrder o chiamata ModifyOrder). GetPositionInfo (string Ticker. Stringa Field) Questa funzione recupera il valore del campo di simbolo ticker tenuto attualmente in portafoglio il valore numerico del campo richiesto per Ticker. Null se nessun campo o no tale posizione disponibili Parametri: Ticker - stringa che specifica il simbolo di securitycontract. Il simbolo deve seguire la simbologia definita in dettaglio: amibrokerib. html campo - uno dei nomi delle colonne presenti nella pagina di portafoglio di IB Controller. Per esempio Avg. costo dà costo medio di acquisto di dato sicurezza, non realizzato PNL dà profitti non realizzati e perdite. Questa funzione recupera il numero di sharescontracts di simbolo Ticker detenuti attualmente in portafoglio il numero che descibes la taglia della posizione attualmente detenuta per Ticker. I numeri positivi indicano posizione long, numeri negativi significano posizione corta, zero significa che, dato ticker non è tenuto nei Parametri di portafoglio: Ticker - stringa che specifica il simbolo di securitycontract. Il simbolo deve seguire la simbologia definita in dettaglio: amibrokerib. html IsConnected () Questa funzione recupera lo stato della connessione di TWS. 0 - NO Collegamento 1 - Collegamento in corso 2 - mezzi di collegamento OK, nessun messaggio 3 - collegamento OK, ma TWS generato alcuni messaggi WarningError (vedi scheda Messaggi) IsOrderPending (stringa OrderId) Questa funzione controlla se dato ordine è in sospeso (o non ancora trasmessa). Vero - se l'ordine è ancora nella lista in attesa, False se l'ordine è stato riempito, annullata o non esiste ordine a tutti i parametri: OrderId - stringa che specifica il orderID da modificare (restituito dal precedente PlaceOrder o chiamata ModifyOrder). 1. L'immissione e la trasmissione di mercato Buy ordine per 100 azioni quando MACD attraversa sopra la linea di segnale: Comprare Cross (MACD (), Signal ()) se (LastValue (Buy)) ibc GetTradingInterface (IB) controllare se siamo connessi OK se (IBC. IsConnected ()) verificare se non abbiamo posizione già aperta su questo stock se (ibc. GetPositionSize (Nome ()) 0) trasmettere ordine ibc. PlaceOrder (Nome (), Buy. 100. MKT. 0. 0. Giorno . true) 2. Placingmodifying un ordine di limite sul prezzo corrente più 0,10 ma senza trasmetterla (trasmissione manuale richiesto). Questo codice può essere eseguito tante volte e modificherà ordine esistente finché non viene trasmessa. Esso utilizza variabili statiche per memorizzare orderId da ultimo run. Comprare L gt Ref (H -. 1) acquistare quando i prezzi gap up if (LastValue (Buy)) ibc GetTradingInterface (IB) controllare se siamo connessi OK se (ibc. IsConnected ()) gli ordini di posto solo se non abbiamo già posizione aperta su questo simbolo, se (ibc. GetPositionSize (Nome ()) 0) recuperare orderID dalla precedente esecuzione, sarà vuoto se non ordine è stato effettuato prima OrderID StaticVarGetText (OrderID Nome ()) posto o modificare l'ordine - non trasmettere ancora IDOrdine ibc. ModifyOrder (OrderID, Nome (), acquistare. 100. LMT. LastValue (C) 0.10. 0. Day. Falso) negozio orderID per la prossima corsa così sappiamo che per poter modificare StaticVarSetText (OrderID Nome (), OrderID) 3 . Placingmodifying manualmente dalla finestra di dialogo Parametri. Codice da applicare in Indicator Builder. (Modificato per utilizzare nuove funzioni 1.0.2) Questo codice può essere eseguito tante volte e modificherà ordine esistente finché non viene trasmessa. Esso utilizza variabili statiche per memorizzare orderId da ultimo run. Blocco Param TriggerOrder ParamTrigger (ordine del posto. Clicca qui per ordinare) Modalità ParamToggle (Mode. Modifica existingAlways posto nuovo ordine) ACT paramlist (azione. BUYSELLSSHORT) OT paramlist (Tipo ordine. MKTLMTSTP) TIF paramlist (ora in vigore. DAYGTCIOC) Ticker ParamStr (. Ticker Nome ()) NumShares Param (Numero di azioni 10. 10. 100. 10.) LimitPrice LastValue (C) (Offset limite di prezzo 0,. - 0,1 0,1 0,01..) Param StopPrice LastValue (C) Param ( prezzo di smettere di offset 0, -... 0.1 0.1 0.01) trasmissione ParamToggle (Transmit fare NON transmitTransmit 0) TriggerCancel ParamTrigger (Annulla ordine Clicca qui per cancellare ordine) Msg questa negozi messaggio di errore testo variabile creare un'istanza di commercio di interfaccia IBC GetTradingInterface... (IB) recuperare orderID dalla precedente esecuzione, sarà vuoto se non ordine è stato effettuato prima OrderID StaticVarGetText (OrderID Ticker) se (TriggerOrder) controllare se siamo connessi OK se (ibc. IsConnected ()) se (modalità 1) se la modalità IDOrdine settati sempre nuova, allora chiare posto orderid ordini soltanto se non abbiamo posizione già aperta su questo luogo simbolo o modificare l'ordine - non trasmettere ancora OrderID ibc. ModifyOrder (OrderID, Ticker, ACT, NumShares, OT, LimitPrice, StopPrice, TIF , Transmit) negozio orderID per la prossima corsa quindi sappiamo che per poter modificare StaticVarSetText (OrderID Ticker, IDOrdine) se (modalità 1) Msg nuovo ordine è stato collocato con ID altro Msg Ordinare placedmodified con ID Msg Msg IDOrdine su Now () altro Msg di ordinare riuscita a causa di alcuna connessione con TWS se (TriggerCancel) se (OrderId) se (ibc. CancelOrder (OrderId)) Msg richiesta di annullamento dell'ordine OrderId inviato con successo altro Msg richiesta di annullamento dell'ordine IDOrdine fallito. altro Msg non può annullare ordine becase OrderID è vuoto codice di monitoraggio Titolo messaggio Msg Nlast TWS: ibc. GetLastError (0) fondi nDisponibile: ibc. GetAccountValue (AvailableFunds) Gross Pos. Valore: 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) 1) che cosa è esattamente la IDOrdine, in cui è memorizzato il numero Come fa incremento possiamo assegnare il nostro OrderIDs OrderID è una stringa che rappresenta il numero d'ordine univoco che viene assegnato da IB controller (per gli ordini ricevuti tramite IB controller) o TWS (per gli ordini ricevuti in TWS) quando si inserisce l'ordine. Esso viene incrementato automaticamente ogni nuovo ordine. L'implementazione si prende cura che ha generato ID è unico per data sessione di TWS. Non si devono assegnare il proprio ID, perché si può rischiare di duplicati di generazione che saranno respinte dal TWS. 2) La IB interfaccia contiene un sacco di informazioni utili, possiamo accedere a queste informazioni in funzione AFL GetAccountValue () (introdotto nel 1.0.2) permette. 3) IMPORTANTE. Durante lo sviluppo spesso mi perdo la connessione con il TWS e non riesco a farlo andare di nuovo. A quali condizioni candoes questo accadono Questo è probabilmente causato da collocare ModifyOrder chiamate troppo spesso così TWS non è in grado di gestire le e invia messaggi di errore (in grado di modificare questo ordine come la sua ancora in fase di elaborazione) e il risultato e 'IsConnected () restituito false. Questo dovrebbe essere affrontato dalla versione successiva. Se tale cosa accade si può semplicemente chiudere la finestra IB Controller. 4) E 'possibile leggere i prezzi IB LastBifAsk durante l'esecuzione di un database eSignal In questo momento non vi è alcun accesso ai dati sui prezzi tramite IBController ma forse in futuro 5) Perché abbiamo un PlaceOrder () e un ModifyOrder (), se ModifyOrder può essere utilizzato in entrambi i casi Solo per completezza. Infatti ModifyOrder da solo sarebbe sufficiente. 5) Possiamo recuperare le esecuzioni e la pagina in sospeso (stringa) dalla finestra IB Controller, per la visualizzazione sul grafico in sospeso - sì, si può recuperare lo stato dell'ordine mentre è attesa a pagina usando GetStatus. Per quanto riguarda la scheda di esecuzione - come è già descritto nel leggere me questo è nelle opere. 6) Sembra la sequenza di avvio di TWS e AB è significativo, non è forse in realtà TWS e AB - sono indipendenti. Ma ciò che è importante eseguire TWS prima di eseguire IB Controller. Se invece avete il vostro codice di negoziazione di indicatore allora può essere auto-rinfrescati all'inizio AB e in questo caso specifico si avrebbe bisogno di eseguire TWS prima di AB. In ogni caso, se qualcosa non funziona si può semplicemente chiudere la finestra di controllo IB e riaprirà automaticamente e ricollegare sulla prossima chiamata a GetTradingInterface. 7) Quando la connessione TWSAB è rotto durante il commercio, qual è il modo migliore per ripristinare esso Close IB controller manualmente. Si riaprirà automaticamente e ricollegare sulla prossima chiamata a GetTradingInterface. 8) Qual è la conseguenza di ripetute PlaceOrder () o ModifyOrder () l'esecuzione a causa di AB Refresh Cosa succede quando, invece di utilizzare Croce () con l'utilizzo GT o lt interfaccia auto-trading Franly non è rientrato per essere utilizzato in indicatori. Esso è destinato ad essere utilizzato nella finestra AA. Ma se si preferisce eseguirlo in IB si può fare anche questo, ma allora si dovrebbe verificare gli ordini in corso e verificare portafoglio formato di posizione per data simbolo non comprare troppe azioni. Per rispondere alla tua domanda: chiamate PlaceOrder più si tradurrà in più ordini. Molteplici ModifyOrder () chiama può provocare lo stesso (se OrderID è vuoto) o può solo provocare l'aggiornamento dei valori di già exisiting, in attesa di ordine, se si specifica corretta IDOrdine di ordine fatto prima (si veda l'esempio 2.) 9) Una chiara pulsante messaggio sarebbe bello nella finestra IBC, devo scorrere verso il basso continuo a vedere l'ultimo messaggio (forse ultimo-on-top a scorrimento) E 'già disponibile nella versione 1.0.2 10) Qual è il modo migliore per scrivere una sola - (utente avviato) linea - Esecuzione di codice. questo è dove il ParamTask () ho suggerito in precedenza sarebbe venuto in aiuto. Utilizzare nuova funzione AFL ParamTrigger ParamTrigger (nome, il testo Button) - da utilizzare in indicatore builder - per creare trigger (pulsanti). Se si posiziona ParamTrigger nel codice dell'indicatore si creerà un pulsante nella finestra di dialogo dei parametri che può essere premuto. Normalmente ParamTrigger restituirà zero (0), ma quando si preme il pulsante nella finestra param poi si aggiorna il grafico e ParamTrigger restituirà 1 (uno) per questa singola esecuzione (Ulteriori aggiornamenti saranno restituire zero, fino a quando il tasto viene premuto di nuovo) grilletto ParamTrigger (ordine del posto. Clicca qui per ordinare) se (trigger) il codice one-shot qui 11) Quando si posiziona ordini da un indicatore (la cosa da fare in RT trading) e la modifica del codice si tradurrà in ulteriori esecuzioni AFL, come posso impedire dell'ordine randon dai passi in più parametri e dei segnali non può essere lo stesso di un risultato dell'utilizzo di loop, DLL, e le cose. Utilizzare variabili statiche come indicato nell'esempio 2 per modificare l'ordine esistente invece di mettere molti nuovi ordini. Oppure utilizzare il codice dato in risposta alla domanda 10 12) qualche messaggio nel GIR non sono clearprecise nel loro significato. Ebbene questi messaggi provengono da TWS e non ho alcuna influenza sulla loro formulazione :-) VARIAZIONI per la versione 1.0.3 compilati con TWS API 8.30 aggiunto metodo GetPositionInfo finestra codice di sblocco aggiunto (codice del file-gtEnter Unlock). IBController di default non trasmette automaticamente gli ordini. La trasmissione può essere attivata inserendo il codice di sblocco che viene reso disponibile per l'utente dopo aver accettato l'accordo. VARIAZIONI VERSIONE 1.0.2 IBC: Ora in attesa di lista di ordine funzionalità nuove errore codice di stato e nuova colonna: Ultimo errore IBC: pulsante Nuova della barra degli strumenti: auto-annullare gli ordini con errori - quando acceso, tutti gli ordini con errori vengono cancellati automaticamente IBC: Errore messaggi mostrano ora ID ordine e il codice di errore IBC: i messaggi ripetuti vengono ora visualizzati una volta con adeguato numero di ripetizioni e l'ultima volta aggiornamento IBC: la maggior parte dei messaggi di errore recenti appaiono ora in cima alla lista dei messaggi, quindi non avete bisogno di scorrere IBC: ordine duplicati problema risolto ID Ora, quando TWS invia messaggio di ordine duplicato, linea di ordine appropriato è segnato in IB controllata come errore e tale identificazione di ordine non è più utilizzato. Quando il nuovo ModifyOrder è posto quindi nuovo ordine id verrà assegnato IBC: la funzione GetAccountValue in IB cambiamenti di interfaccia per la versione 1.0.1 CancelOrder () rimuove gli ordini NotYetTransmitted dalla lista in attesa IsConnected () funcition ora restituisce valori interi 0..3 (non bool ) Cancellare messaggi pulsanti della barra degli strumenti VARIAZIONI aggiunto per la versione 1.0.0 Come segnalare i bug Se si verifica qualche problema con questa versione beta si prega di inviare una descrizione dettagliata del problema (in particolare i passi necessari per riprodurlo) per insetti a AmiBroker

Comments