通达信数据格式-基本财务数据结构和专业财务数据结构(c语言)

Published

1.基本财务数据结构

通达信财务数据每季度更新。

1.1 基本财务数据结构数据文件名称及存放目录

D:\Thirdprogram\new_gtja_qq\T0002\hq_cache\base.dbf

1.2 基本财务数据结构

/ 通达信格式财务数据
#define	TDX_FHEADER_SIZE	0x521
typedef struct tdx_basedata_t {
	char	m_szMagic;
	char	m_szMarket;						// 市场 '0' 深圳 '1' 上海
	char	m_szCode[6];
	char	m_szDate_modified[8];			// 更新日期
	char	m_szShare_count_total[14];		// 总股本 10000
	char	m_szShare_count_national[14];	// 国家股 10000
	char	m_szShare_count_orig[14];		// 发起股 10000
	char	m_szShare_count_corp[14];		// 法人股 10000
	char	m_szShare_count_b[14];			// B股 10000
	char	m_szShare_count_h[14];			// H股 10000
	char	m_szShare_count_currency[14];	// 流通股 10000
	char	m_szShare_count_employ[14];		// 职工股 10000
	char	m_szUnkown1[14];				// 
	char	m_szAsset[14];					// 总资产 1000
	char	m_szAsset_currency[14];			// 流动资产 1000
	char	m_szAsset_capital[14];			// 固定资产 1000
	char	m_szAsset_imma[14];				// 无形资产 1000
	char	m_szInvest_long[14];			// 长期投资 1000
	char	m_szDebt_currency[14];			// 流动负债 1000
	char	m_szDebt_long[14];				// 长期负债 1000
	char	m_szAcc_fund[14];				// 公积金 1000
	char	m_szNet_asset[14];				// 净资产 1000
	char	m_szMain_income[14];			// 主营收入 1000
	char	m_szMain_profit[14];			// 主营利益 1000
	char	m_szOther_profit[14];			// 其他利益 1000
	char	m_szBusiness_profit[14];		// 营业利益 1000
	char	m_szInvest_profit[14];			// 投资收益 1000
	char	m_szAllow_profit[14];			// 补贴收入 1000
	char	m_szOut_profit[14];				// 业外收支 1000
	char	m_szProfit_regulate[14];		// 损益调整 1000
	char	m_szTotal_profit[14];			// 利润总额 1000
	char	m_szProfit_aftertax[14];		// 税后利益 1000
	char	m_szNet_profit[14];				// 净利益 1000
	char	m_szProfit_ud[14];				// 未分利润 1000
	char	m_szNet_asset_ps_regulate[14];	// 每股净资2
	char	m_szUnknown2[3];				// 
	char	m_szUnknown3[4];				// 
	char	m_szUnknown4[2];				//
	char	m_szDate_begin[8];				// 上市日期
	char	m_szUnknown5[3];				// 
	char	m_szUnknown6[11];				// 
}TDX_BASEDATA, *PTDX_BASEDATA;

1.3 基本财务数据结构读取代码

//数据管理-通达信财务数据导入-选择文件-通达信财务板块数据导入
int CSelfDB::InstallBasetableTdx(const char * filename)
{
	if (NULL == filename || strlen(filename) == 0)
		return 0;
	
	int	nCount	= 0;

	CSPString	sRoot		= GetRootPath();
	CSPString	sFileNameSHSZ	= sRoot + self_chna_basetbl;
	CSPFile	fileSHSZ, fileTdx;
	if (fileSHSZ.Open(sFileNameSHSZ, CSPFile::modeWrite | CSPFile::modeCreate)
		&& fileTdx.Open(filename, CSPFile::modeRead))
	{
		fileTdx.Seek(TDX_FHEADER_SIZE, CSPFile::begin);

		TDX_BASEDATA	tdxblock;
		while(sizeof(tdxblock) == fileTdx.Read(&tdxblock, sizeof(tdxblock)))
		{
			BASEDATA	block;
			if (convert_TDX_BASEDATA_to_BASEDATA(&tdxblock, &block))
			{
				fileSHSZ.Write(&block, sizeof(block));
				nCount	++;
			}
		}
	}

	return nCount;
}

 

https://github.com/CodeNewman/search_tushare/blob/2772c6a498e660297145d0b47035ebe07234b2f6/pytdx/parser/get_finance_info.py

2.专业财务数据结构

2.1 通达信专业财务数据文件位置及文件名

通达信的  D:\new_tdx\vipdoc\cw 文件夹里有有很多子同名dat文件和压缩文件,是专业财务数据。如:股票603093南华期货(刚上市所以财务数据文件小,只有68个字节)文件:D:\new_tdx\vipdoc\cw\gpsh603093.dat   

数据文件地址, 数据文件类型可以为 .zip 文件,也可以为解压后的 .dat

step 1:下载“专业财务数据”

https://github.com/RoveAllOverTheWorld512/hyb_ta/blob/9ee9e1729c6291d359a5233e3e1bc75527c38003/pytdx/pytdx/reader/history_financial_reader.py

 

Useful links

https://github.com/RoveAllOverTheWorld512/hyb_ta/blob/9ee9e1729c6291d359a5233e3e1bc75527c38003/pytdx/pytdx/reader/gbbq_reader.py