连续指数的实时计算和获取




我来说一下怎么实时获取国内商品期货的连续指数(按文华财经软件的计算方法)。

文华财经某品种的连续指数= 所有月份的“持仓量*最新价格”之和/所有月份持仓量之和

如果有一个已经使用了CTP平台期货公司的帐号,那么只要通过API接口函数订阅行情,获取指定合约的LastPrice,OpenInterest这两个字段,那么就可以自己把这个连续指数计算出来了。这比较正规,而之前我说的用autoit+TCaptureX.dll就算是歪门邪道了。这里的难点可能在于怎么通过API连上CTP并请求行情,这需要比较专业的编程技能,如果取到了LastPrice,OpenInterest字段,后面的计算稍微懂点的都能写。我也不是专业编程的,前面那部分可以参考海风写的C接口,网上能下载到。官方的资料在202.109.110.121/api。我们论坛的咖啡兄好像在09年CTP刚出来时就编程测试自动交易了,目前不知道怎么样了。下面图片是用我vb编的一个小程序

连续指数的实时计算和获取

获取数据源,另外还有个更简单的方法,目前hexun的网页期货行情比较可靠,可以用autoit编一个小程序取数据。不过它那里的上海期货交易所数据是延迟15分钟的。代码里主要就是写这个函数,传人参数是品种名字,如cu,cf之类的,$array[$j][1]就是计算出的连续指数,也可以改写成return形式

Func get($x)
$oIE=
_IECreate(“https://quote.hexun.com/futures/” & $x
& “.html”,0,0,1,0)
$oTable =
_IETableGetCollection ($oIE, 0)
$aTableData =
_IETableWriteToArray ($oTable)

$rownum=UBound($aTableData,1)

$colnum=UBound($aTableData,2)
$sum1=0
$sum2=0
For $i=0 to $colnum-1


$sum1=$aTableData[1][$i]*$aTableData[12][$i]+$sum1

$sum2=$aTableData[12][$i]+$sum2
Next

$array[$j][1]=Int($sum1/$sum2)
_IEQuit ($oIE )

EndFunc

写得挺乱的,先这样把


说点什么