金字塔有个好处是全推数据。而掘金 不是全推数据。最近遇到转债软件开发遇到一个问题, 就是要利用掘金的全推数据,送给原来的掘金软件模块,里面涉及到金字塔tick和掘金tick的中间件 开发。
两个时间格式转化是关键!!
mtick 为掘金tick格式。
strTickData *tick1 为金字塔 tick格式
void MyStrategy::on_tickKing(strTickData *tick1){
int nCode = atoi(tick1->sCode )/10000;
if ( nCode ==11 ) {
memset( mick.symbol, LEN_SYMBOL, 0);
sprintf( mick.symbol, "SHSE.%s", tick1->sCode );
mick.last_amount = tick1->fVolumeNow* tick1->fLastPrice*10;
mick.last_volume = tick1->fVolumeNow*10;
mick.cum_volume = tick1->fVolume ;
mick.quotes[0].ask_volume = tick1->fSellVolume1*10;
mick.quotes[1].ask_volume = tick1->fSellVolume2*10;
mick.quotes[2].ask_volume = tick1->fSellVolume3*10;
mick.quotes[3].ask_volume = tick1->fSellVolume4*10;
mick.quotes[4].ask_volume = tick1->fSellVolume5*10;
mick.quotes[0].bid_volume = tick1->fBuyVolume1 *10;
mick.quotes[1].bid_volume = tick1->fBuyVolume2*10;
mick.quotes[2].bid_volume = tick1->fBuyVolume3*10;
mick.quotes[3].bid_volume = tick1->fBuyVolume4*10;
mick.quotes[4].bid_volume = tick1->fBuyVolume5*10;
}
else if ( nCode == 12 ) {
memset ( mick.symbol, LEN_SYMBOL, 0);
sprintf( mick.symbol, "SZSE.%s", tick1->sCode );
mick.cum_volume = tick1->fVolume/10;
mick.last_volume = tick1->fVolumeNow;
mick.last_amount = tick1->fVolumeNow * tick1->fLastPrice;
mick.quotes[0].ask_volume = tick1->fSellVolume1 ;
mick.quotes[1].ask_volume = tick1->fSellVolume2;
mick.quotes[2].ask_volume = tick1->fSellVolume3;
mick.quotes[3].ask_volume = tick1->fSellVolume4;
mick.quotes[4].ask_volume = tick1->fSellVolume5;
mick.quotes[0].bid_volume = tick1->fBuyVolume1 ;
mick.quotes[1].bid_volume = tick1->fBuyVolume2;
mick.quotes[2].bid_volume = tick1->fBuyVolume3;
mick.quotes[3].bid_volume = tick1->fBuyVolume4;
mick.quotes[4].bid_volume = tick1->fBuyVolume5; }
else{ return ; }
mick.cum_amount = tick1->fAmount;
mick.high = tick1->fLastPrice;
mick.low = tick1->fLastPrice;
mick.price = tick1->fLastPrice;
mick.open = tick1->fLastPrice;
mick.quotes[0].ask_price = tick1->fSellPrice1;
mick.quotes[1].ask_price = tick1->fSellPrice2;
mick.quotes[2].ask_price = tick1->fSellPrice3;
mick.quotes[3].ask_price = tick1->fSellPrice4;
mick.quotes[4].ask_price = tick1->fSellPrice5;
mick.quotes[0].bid_price = tick1->fBuyPrice1;
mick.quotes[1].bid_price = tick1->fBuyPrice2;
mick.quotes[2].bid_price = tick1->fBuyPrice3;
mick.quotes[3].bid_price = tick1->fBuyPrice4;
mick.quotes[4].bid_price = tick1->fBuyPrice5;
nCode = atoi(tick1->sCode );
// 这部分很重要,涉及到两个时间格式的转换
char c[22];
int nMon = tick1->nDate%10000;
int nMin = tick1->nTime%10000;
memset(c, 22, 0);
sprintf( c, "%d-%02d-%02d %02d:%02d:%02d", tick1->nDate/10000 , nMon/100, nMon%100 , nMin/100, nMin%100, 0);
mick.created_at = stamString.standard_to_stamp(c);
on_tick0(&mick);
}
时间格式转换函数如下:
int CaStamString::standard_to_stamp(char *str_time)
{ struct tm stm;
int iY, iM, iD, iH, iMin, iS;
memset(&stm, 0, sizeof(stm));
iY = atoi(str_time);
iM = atoi(str_time + 5);
iD = atoi(str_time + 8);
iH = atoi(str_time + 11);
iMin = atoi(str_time + 14);
iS = atoi(str_time + 17);
stm.tm_year = iY - 1900;
stm.tm_mon = iM - 1;
stm.tm_mday = iD;
stm.tm_hour = iH;
stm.tm_min = iMin;
stm.tm_sec = iS;
return (int)mktime(&stm);
}
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...