|
公告
-
欢迎来到寒室,这是郭胜群的博客,与
其留下您的足迹,不如留下您的笔迹
我的导师:陈尹力教授..................
工作单位:广东金融学院...............
联系电话:
QQ:31632627
msn:007same@163.com..
日历
| | 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|
| 29 | 30 | 31 | 1 | 2 | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | 12 | 13 | 14 | 15 | 16 | 17 | 18 | | 19 | 20 | 21 | 22 | 23 | 24 | 25 | | 26 | 27 | 28 | 29 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|
统计
- 随笔 - 95
- 文章 - 48
- 评论 - 646
- 引用 - 2
导航
常用链接
我的标签
随笔分类
随笔档案
文章分类
我其它博客
资源与合作
最新评论
阅读排行榜
评论排行榜
推荐排行榜
|
通达信的zst的数据记录是每6508个字节为一天的数据,每26个字节为一个分钟的记录,这26个字节是这样分配的,时间占两个字节化为十进制为570的话表示9:30分(570/60=9.5) 下一个是占四个字节的叫现价,再下四个字节叫均价,另外还有两个字节为该分钟成交量(现在有可能已经改为四个字节),剩下的14个字节是预留的,那么大家会发现用我以前所有介绍的方法求出的现价和均价都是个天文数字,和股票价格相差甚远但又有规律似的,一般好像玛雅人才用到似的,我介绍一种最简单的办法给大家去求价格的对应关系,大家任找门股票把他的在整数位价格对应的四个字节的16进制和价格位记下来,如4元对应40800000 其实这时你如果对zstli任意个16进制的价格x 想求出他的对应的真实价格,只要用过比例式就能求出,不过先别高兴去操作,因为并不是所有价格档次都是同个比例的,大家看下面的表对照一下,我已经帮大家总结到32的价格,可算到64块钱内个股票64和128元的各位有兴趣在回复中补上, 补充一点就是该方法是我导师陈尹力教授指导下完成的,程序代码将公布在个人随笔里的思想里面,也是这个月四月发布,由于笔记本被偷失去很多资料,具体公布的东西仅供大家参考,也作为抛砖引玉,支持我的朋友请在回复中发表您的发现,丰富知识内容。 该算法适用与所有通达信行情软件,如南方证券,鑫网通达信行情软件,并且价格的换算算法对通达信的day日数据里面的价格也适用
| RMB |
zst数据 |
zst数据10进制 |
1¥对应的16进制间隔 |
人民币间隔 |
1¥对应的10进制间隔 |
| A |
B |
C |
D |
E |
F |
| 0 |
3F800000 |
1065353216 |
400000 |
1¥ |
4194304 |
| 4 |
40800000 |
1082130432 |
200000 |
1¥ |
2097152 |
| 8 |
41000000 |
1090519040 |
100000 |
1¥ |
1048576 |
| 16 |
41800000 |
1098907648 |
80000 |
1¥ |
524288 |
| 32 |
42240000 |
1109655552 |
40000 |
1¥ |
262144 |
| |
|
1118830592 |
|
|
|
按比例算法求。设取到的数为X(化为十进制的了),那么(X-C)/real(x)=F/(1¥*1000) 扩大一千倍,其实以上的C和F就是你可以通过判断逻辑求出取哪个对应的哪个C只有real(x)未知 移动方程两边可求出准确的价格(均价可达到0.001精度),求出后的十进制价格是放大了1000倍的 程序代码链接:http://www.cnblogs.com/same/archive/2007/04/13/711466.html 通达信日数据链接:
评论:
-
谢谢!
回复 引用
-
请问一下, tdx 的分时数据存储目录在哪?
比如上证指数在如下目录吗? C:\jcb_gx\vipdoc\sh\lday\SH000001.day
先谢了!
回复 引用
-
好像找到了, 在zst_cache目录下面, 还有一问题请教:
getRealPrice(1067702026)/1000 返回0.56, 而用TDX看分时图,大概是1.28, 总感觉, 小数位差一倍,整数位丢了, 请问是什么原因?
多谢了!
回复 引用
-
再问一个:
通达信的tic文件是什么数据文件? 下载网页: http://202.103.25.219/download/ShowArticle.asp?ArticleID=79
回复 引用
-
以上问题已解决,谢谢。
我想用通达信将某只或某些股票的一段时间,比如过去半年的“分时”数据下载到本地,有什么好方法? 笨方法是:对每只股票的时间短内的每一天K线,按回车,进入分时图,这样在对应的分时缓存文件里就有该天的分时数了。
还有一问,我发现在zst文件里,找不到每分钟“成交额",你的数据结构里也没有列成交额,只有成交量, 但是为什么我在tdx软件里能看到成交额, 难道存储在别的地方,或者是计算出来的?
请指点! 谢谢
回复 引用
-
有办法,我以前有个朋友,利用vb作了个程序,专门取分时数据,主要是用到sendkey方法,另外还要利用判断通达信程序的标题和窗口特征,当然也要注意在网络速度可以情况下处理,该程序就是完成,回车,esc,右移动"→" 再回车 到zst容量增加 换另外一门股票......程序不是我作的,不便发布,你自己可以试一下
回复 引用 查看
-
呵呵,这是我的第一反应, 英雄所见略同。
以后又什么心得,在过来交流!!!
谢谢
回复 引用
-
你的结构对的,但价格很好算,只要是浮点数就可以了。每人为了保存数据用如此复杂的算法。
回复 引用
-
“我介绍一种最简单的办法给大家去求价格” 这是我上面说的一句话,也就是为了简单易懂,其它办法是有的,当然高手不用看我的文章,因为高手自己一看就知道数据格式被处理为什么类型和进制
回复 引用 查看
-
tes
回复 引用
-
有谁知道通达信的除权信息存在什么地方(哪个文件里)???
回复 引用
-
能告诉我5分钟,10分钟,30分钟的数据格式吗?
多谢了!
回复 引用
-
郭兄,你好!由于前一个问题我没有全部看你的其他文档内容,所以就冒昧的提了这个你不方便回答的问题,请见谅!此处想请教一下,为何在K线的当天日线上按回车,在按ESC却不能保存今日的分时数据到*.zst文件中,有没有其他办法可以搞定,请指教,谢谢!
回复 引用
-
试一下其它通达信软件,如南方证券
回复 引用 查看
-
@郭胜群
郭兄,你好!我试过了,南方证券的也是不能保存当天的分时数据到*.zst.不知道哪里有疏漏。不过我发现下载分时数据后保存到的是sh.tfz和sz.tfz,但是这个文件的结构不是简单的5608的倍数,所以也难于解决目前的问题。如果能透露的请将sh.tfz和sz.tfz文件的数据结构发到我的邮箱:lys31871582@126.com.多谢!
回复 引用
-
我已经试着解开了一份通达信股本变迁文件,格式仍然很乱但能看到股票代码,gbbq和gbbq.map之间的关系还不清楚,有那位仁兄知道这方面的信息或者需要这份文件的,请EMAIL我:router119@sina.com.
回复 引用
-
大侠,能否提供通达信 tic 和 股本变迁 文件的数据格式,不胜感激
Email : lufei@sohu.com
回复 引用
-
非常感谢same,能否说说,通达信的分笔成交数据,以及VC++开发各种股票软件插件
回复 引用
-
能分析同花顺的权息数据结构和1分钟数据结构吗?
回复 引用
-
1:主力资金流向。2:个股主力,散户持仓状况。3:主力多日持仓趋势图
回复 引用
-
数据非常实用
回复 引用
-
通达信分笔数据结构是怎样的?
回复 引用
-
貌似表格有误,应该就是浮点数的二进制表示。
http://blog.csdn.net/maoxiang/archive/2008/04/11/2282839.aspx
回复 引用
-
诚邀兄莅临策略为王论坛,那里我们专门讨论开源股软及相关问题。兄关于股软数据结构的系列文章,对我们太有启发了,谢谢。
www.tsking.net
回复 引用
-
你好:我有一封信发至您的邮箱,请查收。主题是:关于股票指标预警软件的讨论。 扬州 刘浒 jdxnjgz@126.com
回复 引用
-
各位大侠,我现在有一个简单的私活想找人做,简单讲就是改写股票的价格。
以sz000001.day文件为例,该文件保存了深发展的日线数据,其中有开盘价,最高价,最低价,收盘价,成交量等等。
我现在的要求就是将收盘价改成我想要的其他价格,然后再存回到sz000001.day文件中去即可。需要提供一个改动价格的界面。
这是对日线数据的改动,对其他周期(周线、60分钟、30分钟、15分钟、5分钟、1分钟)的要求也是一样的。
对了,数据格式是通达信的。
由于相关课题紧,急要。哪位大侠能够帮帮忙?可以意思性的支付些费用,太多就承担不了,因为现在还是无产阶级。呵呵。
有意者请联系我QQ:93506222,邮件:93506222@qq.com
回复 引用
-
去年的时候用的通达信软件zst_cache目录里还有数据,前一段忽然发现里面没有数据了,在cache目录里有日线的临时数据,不知分时数据改到哪里了?
通达信的分笔数据是怎么样的呢?
回复 引用
-
通达信的5分钟数据结构如下,我在VB中调试过了:
Public Type tdxLC5 '通达信分时LC5文件格式
tdxD As Integer '日期
tdxT As Integer '时间
tdxO As Single '开盘
tdxH As Single '最高
tdxL As Single '最低
tdxC As Single '收盘
tdxJ As Single '成交量
tdxN As Long '成交额
tdxX As Long '保留
End Type
读取时32字节为一段
回复 引用
-
*.tfz,*.day中的价格就是float型数据,害我研究半天,在C++中申明float就可以读了
回复 引用
-
请问tic文件格式,谢谢
回复 引用
-
--引用--------------------------------------------------
cloutar: 去年的时候用的通达信软件zst_cache目录里还有数据,前一段忽然发现里面没有数据了,在cache目录里有日线的临时数据,不知分时数据改到哪里了?
<br>通达信的分笔数据是怎么样的呢?
--------------------------------------------------------
我也想知道。。
回复 引用
-
分时数据(实时)都在内存里了,历史分时才临时存在zst文件里。谁有办法获取内存的分时数据(实时)???
回复 引用
-
分时数据文件在sh.TFZ。
格式:
short shIndex = *(short*)(iBufInfo);
unsigned char ucHour = shIndex/60;
unsigned char ucMinute = shIndex%60;
CString strTime ;
strTime.Format("%.2d%.2d",ucHour,ucMinute);
int iTime ;
iTime = ucHour*100 + ucMinute;
char chTime[4];
//itoa(iTime,chTime,10);
memset(chTime,0,sizeof(chTime));
for(int i=0;i<strTime.GetLength();i++)
{
chTime[i]=strTime[i];
}
float fPrice = *(float*)(iBufInfo+2);
float fAvePrice = *(float*)(iBufInfo+6);
int iVol = *(int*)(iBufInfo+10);
回复 引用
-
int CStockDataProcess::ReadFileInfo(CString strFileName)
{
CFile oFile;
CFileException err;
if( !oFile.Open( strFileName, CFile::modeRead, &err ) )
{
//AfxMessageBox("Can't open the file , please try again!");
return -1; //_T("打开记录文件失败!"));
}
//////////////////////////////////////////////////////////////////////////
int dwFileSize=oFile.GetLength();
const int ci_FILE_LEN = 10*1024*1024;
if(dwFileSize > ci_FILE_LEN)
{
CString strLen;
strLen.Format(_T("The File is too long, the lengh is less than %d !"), ci_FILE_LEN);
AfxMessageBox(strLen);
return -2;
}
/*
int i_FileRecordLen = dwFileSize/sizeof(unsigned short);*/
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
HANDLE s_hHeap = NULL;
s_hHeap = HeapCreate(HEAP_NO_SERIALIZE,0,0);
if(s_hHeap == NULL)
{
oFile.Close();
//m_oLock.Unlock();
return -3;
}
if (0<dwFileSize)
{
int iLenInt = dwFileSize/sizeof(char);
char* pBuf =(char*) HeapAlloc(s_hHeap,0,dwFileSize);
if (!pBuf )
{
oFile.Close();
return -4;
}
oFile.SeekToBegin();
// oFile.Read(pBuf, dwFileSize );
oFile.Read(pBuf, dwFileSize );
char* piOffset;
int iLength ;
int index;
int iShOffset[860];
//////////////////////////////////////////////////////////////////////////
// Read Stock offset
char iBufOffset[5];
index=0;
piOffset= pBuf+0xb59;
iLength= sizeof(iBufOffset);
int iArraySize = sizeof(iBufOffset)/sizeof(iBufOffset[0]);
while(1)
{
memcpy(iBufOffset,piOffset,sizeof(iBufOffset));
int iTemp = *(int*)(iBufOffset+1);
//////////////////////////////////////////////////////////////////////////
if(iTemp == 0)
{
break;
}
iShOffset[index] = iTemp;
piOffset+=(iArraySize);
index ++;
}
///////////////////////////////////////////////////////////////
//
//ST_StockInfo stStockInfo;
CString strCode = "601318";
MapString2int::iterator map_iter;
map_iter = mapShCode2Index.find(strCode);
if(map_iter == mapShCode2Index.end())
{
return -2;
}
int iSel = map_iter->second;
if(iSel<1)
{
return -3;
}
#if 1
char iBufInfo[26];
index=0;
piOffset= pBuf+iShOffset[iSel];
iLength= sizeof(iBufInfo);
iArraySize = sizeof(iBufInfo)/sizeof(iBufInfo[0]);
float fMeanPrice = 0.0 ;
int iTotalMoney= 0;
float fTotalNetMoney =0.0;
int iTotalVol = 0;
float fLastPrice = 0.0;
int iInVol =0;
int iOutVol =0;
while(index<240)
{
memcpy(iBufInfo,piOffset,sizeof(iBufInfo));
short shIndex = *(short*)(iBufInfo);
unsigned char ucHour = shIndex/60;
unsigned char ucMinute = shIndex%60;
CString strTime ;
strTime.Format("%.2d%.2d",ucHour,ucMinute);
int iTime ;
iTime = ucHour*100 + ucMinute;
char chTime[4];
//itoa(iTime,chTime,10);
memset(chTime,0,sizeof(chTime));
for(int i=0;i<strTime.GetLength();i++)
{
chTime[i]=strTime[i];
}
float fPrice = *(float*)(iBufInfo+2);
float fAvePrice = *(float*)(iBufInfo+6);
int iVol = *(int*)(iBufInfo+10);
STDayInfo oSTDayInfo;
memset(&oSTDayInfo,0,sizeof(STDayInfo));
memcpy(oSTDayInfo.chTime,chTime,sizeof(chTime));
oSTDayInfo.fPrice = fPrice;
oSTDayInfo.fAvePrice = fAvePrice;
oSTDayInfo.iVol = iVol;
//mvector_STDayInfo.push_back(oSTDayInfo);
int iMoney = fAvePrice * iVol *100;
if(index == 0)
{
fLastPrice = fAvePrice;
}
if(fPrice > fLastPrice)
{
fTotalNetMoney += iMoney;
iInVol += iVol;
}
else
{
fTotalNetMoney -= iMoney;
iOutVol +=iVol;
}
iTotalMoney += iMoney;
iTotalVol += iVol;
fLastPrice = fPrice;
//int iDif = iTemp - iLast;
//iLast = iTemp;
//////////////////////////////////////////////////////////////////////////
index ++;
piOffset+=(iArraySize);
}
fMeanPrice = 1.0*iTotalMoney/(iTotalVol*100.0);
#endif
//////////////////////////////////////////////////////////////////////////
}
oFile.Close();
HeapDestroy(s_hHeap);
return 0;
}
回复 引用
-
typedef struct tag_STDayInfo
{
char chTime[4];
float fPrice ;
float fAvePrice ;
int iVol ;
} STDayInfo;
回复 引用
-
日線數據是簡單的.
有幾個文件不知道什麼內容.sh.xxx sz.xxx,xxx指幾個不同的擴展名
知道的請說說,歡迎去我的論壇玩 http://n2.nabble.com/Indvesting-f785510.html
回复 引用
-
请教cuijinting:我观察分时数据文件sh.TFZ中的数据是按浏览股票分时图的顺序累加数据,每个股票对应数据长度6240,如果不知道浏览顺序,怎么查找某只股票的分时数据段在文件中的位置?难道有索引文件?
回复 引用
-
分析*.TFZ文件有什么用?每个炒股软件的分时数据都不一样的!
回复 引用
-
没有都是6240吧!索引文件没找到,前面部分是每个股票数据的偏移地址,找出来后似乎没什么用!
回复 引用
-
*.tfz文件是分时图的缓冲文件,用通达信浏览的股票分时数据都存储在里面,如果自己编软件可以读这个文件获取有关股票的实时数据,现在的问题是能读出里面的分时数据,但不知道对应的股票代码。
回复 引用
-
通达信的zst文件存储的是历史分时数据,有五分钟历史数据用处不大
回复 引用
-
///////////////////////////////////////////////////////////////
//
//ST_StockInfo stStockInfo;
CString strCode = "601318";
MapString2int::iterator map_iter;
map_iter = mapShCode2Index.find(strCode);
if(map_iter == mapShCode2Index.end())
{
return -2;
}
这段代码是不是查找601318在 tfz文件中的数据位置呢?谁给解释一下,谢谢!!
回复 引用
-
自己建立一张索引表和*.tfz文件的股票偏移对应就行了.其实没什么用,分时数据记录的是一分钟内的总笔数,并不是每笔的数据!
回复 引用
-
有谁通过分时数据的分析发了财的,真的有参考价值吗?
回复 引用
-
成交笔数:DYNAINFO(50);
每笔均量:DYNAINFO(8)/DYNAINFO(50);
换手:=DYNAINFO(8)/CAPITAL*100;
每笔换手:换手/成交笔数*100,NODRAW;
分钟笔数:成交笔数/FROMOPEN,NODRAW;
回复 引用
-
如何自动保存每日DYNAINFO(50)及DYNAINFO(8)?
回复 引用
-
请求博主帮忙啊
回复 引用
-
我正在琢磨编制一个快速下单的程序(简单说就是一键下单,主要权证用),用的是通达信L2版券商集成版,不知道如何获得买卖十档的实时数据,请问有办法吗?
回复 引用
-
忘留邮箱了:tjdg_wjs@foxmail.com
回复 引用
-
现价和均价实际上是单精度数值float, 用下面API 函数可以转换
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
回复 引用
-
大家好,求各位高手帮助
我现在的营业部请来了一位高手,专门做超短线今天进明天出,带着客户打佣金失误很低。 操作套路 1 是看筹码分部上面没有什么套牢盘。2是用一分钟图.放出今天分时内,一分钟中最大的量预警(去掉了集合竟价的量)后用10-20秒观察如盘口继续汹涌买进就跟进. 一般是下午或尾市进票,放量时涨得太高了就不进了,复利也不少。 恳请各位高手帮忙.编一个(去掉了集合竟价的量)放出今天内1分钟中最大量的,预警的公式。 我自己编了5,6天了硬是搞不出来 敬请高手出手相助,在下不盛感激先谢谢啦!!
回复 引用 查看
-
请博主出手相助谢谢啦!!!!!!!
回复 引用 查看
-
怎么把L2分时图里的总买总卖指标用到分钟K线里使用?
在日线统计函数里有,可只能用到下载数据后的日线里,那分时图里的总买总卖指标是怎么即时显示出来的? 我用分钟K线看盘想把这指标加到分钟K线的副图看. 请博主和各高手帮帮忙弄一下.先谢了
回复 引用
-
to longhao:
对你说的很有兴趣,我也在研究这方面的分析与开发,请联系我,一起研究,成果共享。 Q我7644—5866
回复 引用
-
你好,郭兄,在贵博浏览验证后,发现有些问题,特请教如下
1.通达信获取分时图,如果股票价格小于2元,那么返回的价格有误,这个是不是没有考虑2一次方造成这个错误. 2.你在博中代码中写到这一段, "NumBase(4) = 1109655552 ': NumBase(5) = 1118830592",而有论友后来补充上"NumBase[5] = 1107296256 NumBase[6] = 1115684864",我不是特别清楚那个是正确? 特请教以上两个问题,还望回复,感谢致深!
回复 引用 查看
|