用MT4来接入IB的TWS平台交易外汇?

Discussion in 'Interactive Brokers(盈透)' started by weijian, Apr 14, 2008.

  1. 祝贺你已经攻克大家都在想攻克的难点。有北京的朋友想请你出山讲课或编程,给你报酬帮他们解决问题,不知是否愿意出面帮忙?
     
  2. 可以联系我wjw792008@sohu.com
     
  3. 不知有无下文
     
  4. http://www.interactivebrokers.com.hk/en/p.php?f=connAltern&p=i&ib_entity=llc
    IB的API接口,for DDE for Excel, Java, C++(Windows环境), and ActiveX.

    IB API用户手册:
    http://individuals.interactivebrokers.com/php/apiUsersGuide/apiguide.htm

    You can connect using:
    • The DDE component to link through Excel (for Windows platforms)
    • The ActiveX control to link through a Visual Basic application (for Windows platforms)
    • The Windows C++ socket client component to link through a C++ application (for Windows platforms)
    • The Java API to link from a Java application (for all platforms)
    Note: API topics are written for experienced programmers and provide little guidance for non-technical users.
    ___________________________________________________

    使用IB api的前提,是IB客户端(TWS)正在运行。
    IB api通过TWS连接到IB服务器,其它程序通过IB api获取数据。
    能够在TWS中看到的信息,基本上都能够通过IB api获取。
    例如:(已经在api自带的测试软件上,测试过的功能)
    行情数据(实时、历史)、帐号信息(资金变动、交易记录)、委托信息(委托下单、修改委托)、等等。

    注:
    由于使用的是演示帐号(edemo),仅能下载一周的历史行情数据。
     
    Last edited by a moderator: Jul 29, 2008
  5. 测试平台:
    cpu: Intel T7100 1.8GHz
    内存: 2.5GB
    操作系统:Debian/Linux v4.0 r3 for amd64
    TWS演示帐号: edemo

    TWS for unix在sun jdk v1.5与v1.6的区别:
    jdk v1.5,程序不能释放内存。刚进入TWS,总内存使用量480MB。60分钟后总内存使用量780MB,并不断增加。4小时后,总内存使用量1.4GB。
    jdk v1.6,运行4小时后,总内存使用量≤500MB。
     
    Last edited by a moderator: Jul 30, 2008
  6. 招标:易盛下单连接TWS接口 3到10万人民币之间

    ..
     
  7. java 很讨厌,占用内存太多。
     
  8. 关于这点技术问题,我也有些不解,不知哪位IT高人指点一下?
    在内存只有512M及更少的时候TWS就存在了,当内存可以扩展到2G乃至4G的时候,为何还总占那么大呢?
    如果将来扩展到8G及16G及124G的时候,会不会仍然占很大内存呢?
     
  9. 还有下文吗?搞定了没?
    要是IB要接入MT4,不知道有多少兄弟会感谢作此贡献的大善人啊
     
  10. 好象确实没几个人喜欢Java,除了程序员们。
     
  11. java启动参数 -Xmx 是限定占用内存大小的,觉得用多了可以试着自己改
     
  12. 何不仔细讲讲?谢谢!
     
  13. 安装 tws 之后,找到程序组"Trader Workstation 4.0"快捷方式,右键、“属性”,查看“目标”,里面类似是这样:
    C:\WINDOWS\system32\javaw.exe -Dlocale_to_use=zh_CN -cp jts.jar;pluginsupport.jar;hsqldb.jar;jcommon-1.0.12.jar;jfreechart-1.0.9.jar;jhall.jar;other.jar;riskfeed.jar;rss.jar -Dsun.java2d.noddraw=true -Xmx512M jclient/LoginFrame C:\tws
    里面的参数 -Xmx512M 就是说最大占用 512M内存,运行后占用内存会逐渐变大,直到达到指定限制后才会自动回收内存。一般都没必要改吧,估计是安装时根据内存配置不同自动设置的。我机器是2G内存,占个512M没什么影响。
    java的特点就是对象不使用后并不马上释放内存,而是等到内存都消耗差不多了再由java平台来统一执行内存回收,只不过java运行内存回收时对性能影响比较大,所以如果频繁触发内存回收就不好了。我机器上装的tws启动后占物理内存不到100M,就是说给它限定100M也勉强可以运行,但是为了不频繁触发内存回收,最好还是它配个至少 256M内存。
     
  14. java pre allocate memory for VM. you can overwrite the default setting when start the application.
     
  15. 我喜欢java
     
  16. IB喜欢用JAVA是因为跨平台的问题,一个软件能在所有平台上用,好过弄几个软件。WIN一个,MAC一个,LIN一个,那样成本大了,就这么简单。咱们再怎么讨论都没用,浪费口水而已。呵呵
     
  17. 很早以前就看到过这个帖子(或类似的),如果当时说可以的,
    但是又不提供方法,也没有什么意思。

    今天正好看到这个帖子,顺便说一下:可以的(虽然不可能直接接入)。:)
    简单说就是:使用mt4做分析,运行一个指标,以tick数据去驱动,
    比如每3分钟生成一个信号文件,由策略引擎去读这个文件,进而管理 IB 的订单。

    详细参看此贴:
    http://www.oceantribe.org/vb/showpost.php?p=349094&postcount=143