自动交易程序-股指期货-1

Discussion in 'Futures' started by zhaowd2001, Oct 13, 2010.

  1. 各位好!
    我正在做一套自动交易软件。
    目标是做股指期货的跨期套利。

    系统分3部分:1)行情信息; 2)交易决策; 3)下单。
    目前前两部分都实现了(因为用简单的算法)。
    下单是基于金仕达的网关协议(17990/17992端口)开发的。

    我很想向各位请教这方面的问题。
    第一个问题就是,谁有金仕达的服务器,给我个模拟帐户,能让我做做测试。
    谢谢
     
  2. 请求2:谁有联网服务器,我想把程序放到服务器上运行。但我没有自己的服务器(需要在线服务器和域名)。我没搞过这方面,谁有现成的,可以用用?
     
  3. 下单可以用CTP平台的接口吧。
     
  4. 是啊。怎么不考虑用ctp呢?
     
  5. 你这个金仕达的网关协议(17990/17992端口)是什么网关?

    照道理,网关协议一般不能从公网接入.假如可以从公网接入,你在网上找找,提高金仕达股指期货模拟账户的期货公司比较多
     
  6. CTP接口今天第一次听说。
    先做好金仕达的接口,然后再去做CTP的接口。

    >>金仕达的网关协议(17990/17992端口)是什么网关?
    >>照道理,网关协议一般不能从公网接入.假如可以从公网接入
    这个网关是期货公司从金仕达购买的,在自己的服务器上安装,提供给最终客户下单用的。
    只要期货公司开放这个接口,就可以访问了。
     
  7. 你是开发交易软件还是开发交易策略啊?
    做出来是自己用还是卖给别人啊?
    咋搞程序化交易没听过CTP啊。。从CTP做起比较容易啊
     
  8. 其他的接口也是必备的。不能只从ctp。
     
  9. “其他接口”,麻烦列个清单...
     
  10. 期货的交易平台就
    金仕达
    易盛
    恒生
    CTP
    还有啥?
     
  11. 除了CTP,其他这些都有API么?
     
  12. 除了CTP有公开的API外,其他的都没有公开的API,有些人有反向工程破解、钩子的,期货公司可能有厂商给的定制的API。
     
  13. 股指期货的跨期套利。
    目前程序做好了,也做了回归测试,确实能赚钱。
    不知道有人情愿合作试用一下?

    需要金仕达的网关帐号。
     
  14. 用金字塔的VBA脚本很容易就能写一个套利算法

    VBA套利模型范例 Post By:2010-7-14 15:02:03

    首先我们建立一个TLStart的宏,然后再响应品种报表数据变化事件,代码如下:

    Sub TLStart()
    '注册CF09和CF11品种
    call marketdata.RegReportNotify("CF09","ZQ")
    call marketdata.RegReportNotify("CF11","ZQ")
    End Sub

    '响应注册的品种行情变化通知
    Sub MARKETDATA_ReportNotify(ReportData)
    '得到这两个品种的行情报价
    Set Report1 = marketdata.GetReportData("CF09","ZQ")
    Set Report2 = marketdata.GetReportData("CF11","ZQ")

    '得到品种的持仓量等信息
    dim BuyHoding1
    dim BuyHlding2
    dim BuyTodayHoding1
    dim BuyTodayHoding2
    dim SellHoding1
    dim SellHoding2
    dim SellTodayHoding1
    dim SellTodayHoding2
    dim BuyCost
    dim SellCost
    dim PNL
    Dim UseMargin

    '取指定持仓品种信息
    call Order.HoldingInfoByCode2("CF09","ZQ",BuyHoding1,BuyCost,BuyTodayHoding1,SellHoding1,SellCost,SellTodayHoding1,PNL,UseMargin)
    call Order.HoldingInfoByCode2("CF11","ZQ",BuyHoding2,BuyCost,BuyTodayHoding2,SellHoding2,SellCost,SellTodayHoding2,PNL,UseMargin)

    '当差价出现大于1800时进行套利开仓
    '假设是09买 11卖
    Diff = Report1.SellPrice1 - Report2.BuyPrice1 '分别取卖价和买价计算差价
    if Diff > 1800 and BuyHoding1 = 0 then
    call Order.Buy(0,1,Report1.SellPrice1,0,"CF09","ZQ","",0)
    call Order.BuyShort(0,1,Report2.BuyPrice1,0,"CF11","ZQ","",0)
    end if

    '当差价小于1000时进行套利平仓
    Diff = Report1.BuyPrice1 - Report2.SellPrice1
    if diff < 1000 and BuyHoding1 > 0 then
    call Order.Sell(0,1,Report1.BuyPrice1,0,"CF09","ZQ","",0)
    call Order.Sellshort(0,1,Report2.SellPrice1,0,"CF11","ZQ","",0)
    end if
    End Sub

    代码编写完毕后Alt+F8,然后选择我们刚才建立的TLStart宏名即可
     
  15. 谢谢。
    果然很简单。有机会研究一下。
    我是想做全自动的交易,还想做backtest,最好不要手工操作。
    并且,必须稳定可靠