Set Data1 = MarketData.GetHistoryData("IF08","ZJ",0)
CP1 = Data1.Close(Data1.Count-1)
Application.MsgOut cp1
Set Data2 = MarketData.GetHistoryData("IF09","ZJ",0)
CP2 = Data2.Close(Data2.Count-1)
application.MsgOut CP2
Spread=CP2 - CP1
结果:
2417
2428.8
11.80005
每次运行,spread都有5位小数。实际上,应该为1位,如11.8。 如何才能使数据保留一位小数?即是,如何规范变量数位格式?
使用round函数,取1位小数就行了。如:round(cp2-cp1,1)
我曾尝试过,但仍带有小数,原以为round函数在vba不可用呢。
for i = N to 1 step -1
Set HD1 = MarketData.GetHistoryData("IF08","ZJ",0)
CP1i = HD1.Close(HD1.Count-i)
Application.MsgOut cp1i
Set HD2 = MarketData.GetHistoryData("IF09","ZJ",0)
CP2i = HD2.Close(HD2.Count-i)
application.MsgOut CP2i
Spreadi=CP2i -CP1i
call round (Spreadi)
application.MsgOut Spreadi
结果:
2415.4
2427
11.6001
2414.8
2427.2
12.3999
2414.8
2426.4
11.59985
2413.2
2425
11.80005
2414
2425.8
11.80005
困难是每一个开发人员都必须经历的,磨难之后就会轻松很多了。