Code Monkey home page Code Monkey logo

ib's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ib's Issues

Can not connect to TWS on Win32

I'm on a Mac (OS 10.9). I run TWS on a virtualbox WinXP image (32bit), because TWS sucks on Mac (I can not cycle between windows, I have to use the dock and the right click and so on).

When I try gofinance/ib under mac it works fine (e. g. with the IB Gateway), but when I connect from the Mac to the Windows VM it prints:

Could not connect to IB: EOF
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x22f1]

goroutine 1 [running]:
main.main()
/Users/uwe.voelker/go/bb.go:21 +0x2f1

goroutine 5 [chan send]:
github.com/gofinance/ib.func·001()
/Users/uwe.voelker/go/src/github.com/gofinance/ib/engine.go:88 +0x76
created by github.com/gofinance/ib.uniqueID
/Users/uwe.voelker/go/src/github.com/gofinance/ib/engine.go:91 +0xfb

goroutine 6 [chan send]:
github.com/gofinance/ib.func·001()
/Users/uwe.voelker/go/src/github.com/gofinance/ib/engine.go:88 +0x76
created by github.com/gofinance/ib.uniqueID
/Users/uwe.voelker/go/src/github.com/gofinance/ib/engine.go:91 +0xfb
exit status 2

I get the same (similar) output directly on Windows (I installed Go there as well).

A few years ago I wrote an IB API in Perl. I just tried to connect from Mac to my VM (via port forwarding in VirtualBox) and it worked.

So the connection to IB is possible! The problem must be somewhere in the Go library.

I would like to use Go for this task. How can I debug that further?

Are other users connection to TWS an Windows?

Thanks for your help.

`go test` not working

I am having an apparently separate issue from the previous poster's. I am using nothize's version, but to no avail. Here's the ibgw and go test output. I really cannot see how this isn't working.

GO TEST:

2017/06/25 21:08:22 localhost:4002/1 engine: RX error EOF
--- FAIL: TestAdvisorAccountManager (0.04s)
	engine_test.go:72: created engine for reuse
	manager_test.go:13: Manager returned an error after 0 updates: EOF
--- FAIL: TestChainManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestCurrentTimeManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestExecutionManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestHistoricalDataManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestHistoricalData (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestHistBarSizes (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestInstrumentManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestMetadataManagerWithCompleteContractSpec (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestMetadataManagerWithIncompleteContractSpec (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestPrimaryAccountManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
--- FAIL: TestRealTimeBarsManager (0.00s)
	engine_test.go:78: engine localhost:4002/1 not ready (did a prior test Stop() rather than ConditionalStop() ?)
FAIL
exit status 1
FAIL	_/Users/joeazar/Documents/Work/ib	0.159s

GATEWAY:

ibgwstart: line 3: fdemo: command not found
ibgwstart: line 4: demouser: command not found
~/Documents/Work/ib/testserver/tws ~/Documents/Work/ib/testserver
~/Documents/Work/ib/testserver/tws/IBJts ~/Documents/Work/ib/testserver/tws ~/Documents/Work/ib/testserver
~/Documents/Work/ib/testserver/tws ~/Documents/Work/ib/testserver
~/Documents/Work/ib/testserver
Macs-MacBook-Pro:testserver joeazar$ Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
System Properties
------------------------------------------------------------
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib
java.vm.version = 25.131-b11
gopherProxySet = false
java.vm.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
path.separator = :
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg = sun.io
user.country = US
sun.java.launcher = SUN_STANDARD
sun.os.patch.level = unknown
java.vm.specification.name = Java Virtual Machine Specification
user.dir = /Users/joeazar/Documents/Work/ib/testserver/tws/IBJts
java.runtime.version = 1.8.0_131-b11
java.awt.graphicsenv = sun.awt.CGraphicsEnvironment
java.endorsed.dirs = /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/endorsed
os.arch = x86_64
java.io.tmpdir = /var/folders/6d/vzkhp45n1pl75z0n_0342lqw0000gn/T/
line.separator = 

java.vm.specification.vendor = Oracle Corporation
os.name = Mac OS X
sun.jnu.encoding = UTF-8
java.library.path = /Users/joeazar/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.specification.name = Java Platform API Specification
java.class.version = 52.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 10.12.5
http.nonProxyHosts = local|*.local|169.254/16|*.169.254/16
user.home = /Users/joeazar
user.timezone = America/New_York
java.awt.printerjob = sun.lwawt.macosx.CPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
java.class.path = ../../ibcontroller-2.12.0.jar:jts.jar:total.2013.jar
user.name = joeazar
java.vm.specification.version = 1.8
sun.java.command = ibcontroller.IBGatewayController ../../ibcontroller.ini
java.home = /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
sun.arch.data.model = 64
user.language = en
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.lwawt.macosx.LWCToolkit
java.vm.info = mixed mode
java.version = 1.8.0_131
java.ext.dirs = /Users/joeazar/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
sun.boot.class.path = /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/classes
java.vendor = Oracle Corporation
file.separator = /
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeBig
sun.cpu.endian = little
socksNonProxyHosts = local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist = 
------------------------------------------------------------
21:08:01:287 IBController: ini file is ../../ibcontroller.ini
21:08:01:292 IBController: IBControllerServer is started.
21:08:02:739 JTS-Main: dayInit: new values: dayOfTheWeek: 1 (Sun), YYYYMMofToday: 201706, YYYYMMDDofToday: 20170625
21:08:03:006 JTS-Main: getFileFromUrl: dest=/Users/joeazar/Documents/Work/ib/testserver/tws/IBJts/tws/locales.jar empty sourceSize=101918
21:08:04:150 JTS-Main: Build 952.1e, Oct 27, 2015 2:21:22 PM
21:08:06:811 IBController: detected frame entitled: IB Gateway; event=Opened
21:08:06:952 IBController: detected frame entitled: IB Gateway; event=Activated
21:08:06:984 IBController: Button was disabled, has been enabled: Login
21:08:06:984 IBController: Click button: Login
21:08:07:411 IBController: detected frame entitled: IB Gateway.  API Account: fdemo; event=Opened
21:08:07:411 IBController: Found TWS main window
21:08:07:413 IBController: detected frame entitled: IB Gateway.  API Account: fdemo; event=Activated
21:08:07:419 JTS-AuthDispatcherS1-12:  NS_AUTH_START version=19 pwd=1 soft=0 token=0 tokenSubtype=0 initialTokenType=PWD authenticationType=MARKET_DATA_CONNECTION identityHashcode=2032337933
21:08:07:569 JTS-AuthDispatcherS1-12: setting session token in AuthenticationHandler: authenticationType=MARKET_DATA_CONNECTION hashCode=2032337933 new=283228383623305820615971472271889067834304249169 old=null ctciOld=null
21:08:07:801 JTS-PostAuthenticateS1-17: pre-logon message successfully sent
21:08:07:054 AWT-EventQueue-0: getFileFromUrl: dest=/Users/joeazar/Documents/Work/ib/testserver/tws/IBJts/tws/ddrykqws/language.jar empty sourceSize=6108760
21:08:09:592 AWT-EventQueue-0: S3: CCP does not support S3
21:08:10:732 IBController: detected frame entitled: Requesting startup parameters...; event=Opened
21:08:10:732 IBController: detected frame entitled: Requesting startup parameters...; event=Activated
21:08:11:607 IBController: IBControllerServer listening on address: Macs-MacBook-Pro.local/172.31.99.0 port: 7463
21:08:07:905 AWT-EventQueue-0: Warn! Demo SSO is not supported
21:08:08:098 AWT-EventQueue-0: Market rule file /Users/joeazar/Documents/Work/ib/testserver/tws/IBJts/tws/ddrykqws/Sun.rul does not exist or is removed
21:08:08:104 AWT-EventQueue-0: Settings : loadFromXMLFile : Could not find settings file /Users/joeazar/Documents/Work/ib/testserver/tws/IBJts/tws/ddrykqws/ibg.xml
21:08:12:017 AWT-EventQueue-0: Error
java.lang.NullPointerException
	at feature.configure.plugins.custom.ob.getChildCount(ob.java:191)
	at javax.swing.tree.DefaultTreeModel.getChildCount(DefaultTreeModel.java:186)
	at feature.ui.FilterableTreeModel.clear(FilterableTreeModel.java:178)
	at feature.ui.FilterableTreeModel.clear(FilterableTreeModel.java:183)
	at feature.ui.FilterableTreeModel.applyFilter(FilterableTreeModel.java:158)
	at feature.ui.FilterableTreeModel.applyFilter(FilterableTreeModel.java:145)
	at feature.configure.panels.generic.yb.<init>(yb.java:242)
	at feature.configure.mc.n(mc.java:513)
	at feature.configure.mc.a(mc.java:615)
	at feature.configure.vb.b(vb.java:832)
	at feature.configure.vb.a(vb.java:773)
	at feature.configure.vb.a(vb.java:745)
	at feature.configure.vb.a(vb.java:721)
	at feature.configure.vb.a(vb.java:717)
	at feature.configure.vb.a(vb.java:657)
	at feature.configure.vb.m(vb.java:637)
	at ibgateway.jc.onConfigure(Unknown Source)
	at ibgateway.jc.a(Unknown Source)
	at ibgateway.gc.a(Unknown Source)
	at trader.action.x.a(x.java:256)
	at jhotkey.xd.a(xd.java:306)
	at jhotkey.xd.a(xd.java:274)
	at trader.action.x.actionPerformed(x.java:240)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
	at ibcontroller.ConfigureSocketPort.configureItViaMenu(Unknown Source)
	at ibcontroller.ConfigureSocketPort.configureIt(Unknown Source)
	at ibcontroller.ConfigureSocketPort.access$000(Unknown Source)
	at ibcontroller.ConfigureSocketPort$1.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
21:08:12:087 JTS-ibdemoDispatcherS2-35:  NS_AUTH_START version=7 pwd=1 soft=0 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=691855443
21:08:12:232 JTS-CCPDispatcherS1-27: No defaults for: CMDTY
21:08:12:241 JTS-CCPDispatcherS1-27: No defaults for: CMDTY
21:08:12:245 JTS-SocketListener-38: API server listening on port 4001
21:08:12:419 JTS-demohmdsDispatcherS3-44:  NS_AUTH_START version=7 pwd=1 soft=0 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=1891088904
21:08:12:567 JTS-ForwardRouting-HISTORICAL_DATA-50: handleCompatibleRouting HISTORICAL_DATA compmode=true ready=false farm=demohmds
21:08:13:738 IBController: detected dialog entitled: Trader Workstation Configuration (Demo System); event=Opened
21:08:13:123 JTS-ForwardRouting-MARKET_DATA-55: handleCompatibleRouting MARKET_DATA compmode=true ready=false farm=ibdemo
21:08:13:849 IBController: detected dialog entitled: Trader Workstation Configuration (Demo System); event=Activated
21:08:13:851 IBController: detected frame entitled: Starting application...; event=Closed
21:08:13:852 IBController: Performing port configuration
21:08:13:852 IBController: getExpandsSelectedPaths = true
21:08:13:852 IBController: Selection path = [Configuration, API, Settings]
21:08:13:962 IBController: Click button: OK
21:08:14:050 IBController: TWS has been configured to the new socket port number.
21:08:14:055 IBController: detected dialog entitled: Trader Workstation Configuration (Demo System); event=Closed
21:08:15:328 JTS-SocketListener-60: API server listening on port 4002
21:08:22:148 JTS-SocketListener-60: State: STOP, IsAPI: NO
21:08:22:183 JTS-EServerSocket-62: Ignoring API request 'jextend.ke' since API is not accepted.
21:08:22:186 JTS-SocketListener-60: State: STOP, IsAPI: NO
21:08:22:188 JTS-EServerSocketNotifier-63: Terminating async queue thread
21:08:22:292 JTS-EServerSocket-66: [2:63:76:1:0:0:0:ERR] Socket connection for client{2} has closed. 
21:08:22:293 JTS-EServerSocketNotifier-67: Terminating async queue thread
21:08:23:418 IBController: detected frame entitled: IB Gateway.  API Account: fdemo; event=Activated

Gitter chat room

I know we had a chat room before, but the web view was constantly broken. I recently came across Gitter (http://gitter.im). Maybe we can open a chat room there.

RequestRealTimeBars Example

I have created a "Contract" and a "RequestRealTimeBars" struct, and also an active "Engine" connected to IB gateway on my machine, but I am not getting how to receive a reply into "RealTimeBars" struct. Any example will be much appreciated.

Sell in FA Group

I am trying to sell in a financial advisor group. The Java example provided by IB looks like this:

Contract m_contract = new Contract();
Order m_order = new Order();
.
.
// allocate the order for this group
m_order.m_faGroup = "USGroup";
// using the percent change method
m_order.m_faMethod = "PctChange";
m_order.m_faPercentage = "100";

m_client.placeOrder(orderId++, m_contract, m_order);

However, when I try a similar bit of code, setting the FA attributes on the Order, the consul says:

You must specify an allocation (either a single account, group, or profile).

Any ideas?

Placing A Basic Order

I am trying to figure out how to place an order. Is this currently possible?

I found the PlaceOrder type, but am unclear on how to actually place the order. I found the .write method on it, but it doesn't seem to be used anywhere and is private.

Noob question: No streaming data for instrument manager

Hi,

I am trying to get a price stream of a contract, so any time the price changes i want it to be captures. i have trued:
`

	engine,_:=ib.NewEngine(ib.EngineOptions{})
	rc := make(chan ib.Reply)



	mgr,_:=ib.NewInstrumentManager(engine, ib.Contract{
		Symbol:       "USD",
		SecurityType: "CASH",
		Exchange:     "IDEALPRO",
		Currency:     "ZAR",
	})
	s:=ib.RequestMarketDataType{
		MarketDataType: 1,
	}

	engine.Send(&s)
	engine.SubscribeAll(rc)

	for {
		select {
		case r := <-rc:
			//log.Printf("%s - RECEIVE %v",  reflect.TypeOf(r))
			fmt.Println(r)
			fmt.Println(mgr.Ask())
		}
	}

I get the values only once:
&{100 1 18.53616 2000000 true}
18.54108
&{100 2 18.54108 1000000 true}
18.54108
2020/04/15 09:39:54 Waited 5 seconds for reply channel 0xc0000546c0
2020/04/15 09:39:59 Waited 5 seconds for reply channel 0xc0000546c0
2020/04/15 09:40:04 Waited 5 seconds for reply channel 0xc0000546c0

but then afterwards i just get waited 5 seconds.

Please help

Thanks
Gareth

Large file issue in git repo

While merging with this repository, my git command line took a long time to download the deltas, and then complained during the later push to my own repository:

remote: warning: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: warning: See http://git.io/iEPt8g for more information.
remote: warning: File testserver/unixmacosx-952.1e.jar is 52.35 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB

Is this file really necessary?

Manager returned an error after 0 updates: SinkManager: no new update in 15s

"go get" the HEAD (85b9a6d) and tested it on Windows Server 2012 with the latest Jts and IBController 2.14.0

Test account is "fdemo"

PS C:\Users\user\Projects\Gohome\src\github.com\gofinance\ib> go version
go version devel +168a51b Thu Oct 8 07:49:35 2015 +0000 windows/amd64

PS C:\Users\user\Projects\Gohome\src\github.com\gofinance\ib> go test
--- FAIL: TestAdvisorAccountManager (15.41s)
        engine_test.go:72: created engine for reuse
        manager_test.go:13: Manager returned an error after 0 updates: SinkManager: no new update in 15s
--- FAIL: TestChainManager (16.65s)
        engine_test.go:81: reusing engine localhost:4002/1; state: EngineReady
        manager_test.go:13: Manager returned an error after 0 updates: SinkManager: no new update in 15s
[]
--- FAIL: TestInstrumentManager (0.52s)
        engine_test.go:81: reusing engine localhost:4002/1; state: EngineReady
        manager_test.go:13: Manager returned an error after 0 updates: No historical data query found for ticker id:110(110/366)
--- FAIL: TestPrimaryAccountManager (0.40s)
        engine_test.go:81: reusing engine localhost:4002/1; state: EngineReady
        manager_test.go:13: Manager returned an error after 0 updates: Error validating request:-'dd' : cause - The account code is required for this operation. (2147483647/321)
FAIL
exit status 1
FAIL    github.com/gofinance/ib 54.163s

missing request types?

The README.md mentions "Some request types (see eclientsocket.go) require porting". Is this still true? Which request types are missing?

Go test not working

Here is the output log of the ibgwstart file -
https://gist.github.com/bhanuc/29af6844868eb4afc19e5e7a1a09065f
It might contain the issue, but I was unable to pinpoint the exact issue.
On running go test, I just get a series of
2016/11/02 21:21:44 Waited 5 seconds for reply channel 0xc8200ae240
What is the expected amount of time I am supposed to wait for the test to succeed.
Update:
I manually entered the username and password on the 5th line of ibgwstart file:
Updated log: https://gist.github.com/bhanuc/a417eb70ceaee46a6884315ddc324d62
Updated test log: https://gist.github.com/bhanuc/99564fe1fd46c01d0c66cd4ecfe26b3c

The updated start log shows no error but the test log tells a different story

noob question: how can I access to my portfolio?

I've several stocks in my portfolio and I'd like to access them using go,

portfolio

right now I've the current code

account,err := ib.NewPrimaryAccountManager(engine)

if err != nil {
		fmt.Println("error getting account ",err)
	}

portfolio := account.Portfolio()

fmt.Println("Portfolio ", portfolio)

but I'm getting an empty map as portfolio

hope you can help me, thank you so much

NewInstrumentManager does not seem to work.

Thanks for sharing this project.

I tried to get some data using the following code but I get 0 as value. Is this package still under development or is it currently being used for some relatively important applications?

package main

import (
    "fmt"
    "log"
    "os"

    "github.com/gofinance/ib"
)

func failOnError(err error, msg string) {
    if err != nil {
        log.Fatalf("%s: %s", msg, err)
        panic(fmt.Sprintf("%s: %s", msg, err))
    }
}

func testCurrentTime(engine *ib.Engine) {
    m, err := ib.NewCurrentTimeManager(engine)
    failOnError(err, "Failed to create current time manager")
    defer m.Close()
    fmt.Println(m.Time())
}

func testInstrument1(engine *ib.Engine) {
    m, err := ib.NewInstrumentManager(engine, ib.Contract{
        Symbol:       "AAPL",
        SecurityType: "STK",
        Exchange:     "SMART",
        Currency:     "USD",
    })
    failOnError(err, "Failed to create instrument manager")
    defer m.Close()
    fmt.Println(m.Bid(), m.Ask(), m.Last())
}

func testInstrument2(engine *ib.Engine) {
    m, err := ib.NewInstrumentManager(engine, ib.Contract{
        Symbol:       "USD",
        SecurityType: "CASH",
        Exchange:     "IDEALPRO",
        Currency:     "CAD",
    })
    failOnError(err, "Failed to create instrument manager")
    defer m.Close()
    fmt.Println(m.Bid(), m.Ask(), m.Last())
}

func main() {
    opts := ib.NewEngineOptions{
        Gateway: "127.0.0.1:7496",
    }
    if os.Getenv("CI") != "" || os.Getenv("IB_ENGINE_DUMP") != "" {
        opts.DumpConversation = true
    }

    engine, err := ib.NewEngine(opts)
    failOnError(err, "Failed to connect engine")
    defer engine.Stop()

    testCurrentTime(engine)
    testInstrument1(engine)
    testInstrument2(engine)
}
$ go run test.go
0001-01-01 00:00:00 +0000 UTC
0 0 0
0 0 0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.