本人菜鸟5月份新入手金字塔VBA,我想模拟做一个价差K线,
用VBA做价差K线思路是取两个合约的历史数据相扣减,整了老半天感觉这样子好像错了。
getHistoryData获取的历史数据是历史上交易数据,不同合约的历史交易数据时点是不一样的,数据量也不一样的吧?
自己一个人瞎整不知道我这样子的思路是不是对的。麻烦各位大哥指点下了。应该是取什么数据进行二者的价差计算,或者有什么好的思路,谢谢;
假如用公式计算价差,这样子好像没办法根据不通的品种动态计算价差进行K线显示,只能每次维护吧?或者公式能传入 String类型的参数?
另外,绘制K线思路是不是对HistoryData对象设置相应的数据,然后再调用将它呈现出来呢?
eg:
for i = Count-1 to 0 step -1
'插入一个K线
call HistoryC.InsertAt(i+1)
'K线数据
HistoryC.open(i+1) = mxopen
HistoryC.close(i+1) = mxclose
HistoryC.high(i+1) = mxhigh
HistoryC.low(i+1) = mxlow
HistoryC.date(i+1) = historyDate(Count-1-i)
call HistoryC.SaveData(newStock,newMarket,0)
next
call Application.ActivateFrameWithCode("Technic",newStock,newMarket,5)
call Technic.Refresh
通常使用相同市场的1分钟周期的合约来计算价差是没啥问题的
如果你使用跨市场不同时区的数据,就要考虑首先要将时间进行转换,对齐时间后再来计算,金字塔的跨品种跨周期数据调用会自动对齐时间,但是VBA就需要你程序来自己对齐了
谢谢,根据等价K线思路做出了自己的价差K线,但是,如何让自己的价差K线根据实时行情进行走动呢,设置一个定时器,每隔1秒计算K线数据并且保存到价差K线的历史数据中吗?我的程序这样子做一直没有动态刷新K线。对窗格进行刷新也没用。求解这是为何?