ShengLong.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:8k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. /*
  2. Cross Platform Core Code.
  3. Copyright(R) 2001-2002 Balang Software.
  4. All rights reserved.
  5. Using:
  6. class CShengLong;
  7. */
  8. #if !defined( __STKLIB_SHENGLONG_H__ )
  9. #define __STKLIB_SHENGLONG_H__
  10. #include "StdAfx.h"
  11. #include "../Include/Stock.h"
  12. #include "../Include/Database.h"
  13. #pragma pack(1)
  14. struct Slon_para{ // in file slonpara.dat
  15. WORD sh_A_para; // Offset of SH_A stock
  16. WORD sh_B_para;
  17. WORD sh_C_para;
  18. WORD sh_total_para;
  19. WORD sz_A_para;
  20. WORD sz_B_para;
  21. WORD sz_C_para;
  22. WORD sz_total_para;
  23. WORD data_tag[3];
  24. };
  25. struct Slon_day{ // in .day files of Slon
  26. DWORD day_date; // Format is YYYYMMDD
  27. DWORD open_price; // 0.001
  28. DWORD close_price; // 0.001
  29. DWORD high_price; // 0.001
  30. DWORD low_price; // 0.001
  31. DWORD day_amount; // 1000
  32. DWORD day_volume; // 100
  33. WORD reserved[6]; // Some infomation I don't know
  34. };
  35. struct Slon_HS{ // in lonhs.dat of Slon
  36. WORD data_tag1; // Some infomation I don't know
  37. BYTE stock_type; // =0xff is delete, =0x64 is OK
  38. DWORD stock_code; // number of stock code
  39. BYTE stock_name[8]; // name of stock
  40. BYTE data_tag2; // =0x0, Some infomation I don't know
  41. WORD data_tag3; // =0x64, Some infomation I don't know
  42. WORD last_close_price;
  43. WORD open_price;
  44. DWORD PMA5_volume; // The volume of 5day average
  45. WORD high_price;
  46. WORD low_price;
  47. WORD close_price;
  48. DWORD data_tag4; // Some infomation I don't know
  49. DWORD total_volume1; // Total volume
  50. DWORD total_volume2; // Total volume
  51. WORD buy_1_price; // The price of buying now
  52. BYTE buy_2_sub; // The offset of buy 1 and buy 2 price
  53. BYTE buy_3_sub; // The offset of buy 1 and buy 3 price
  54. DWORD buy_1_volume;
  55. DWORD buy_2_volume;
  56. DWORD buy_3_volume;
  57. WORD sell_1_price; // The price of selling now
  58. BYTE sell_2_add; // The offset of sell 1 and sell 2 price
  59. BYTE sell_3_add; // The offset of sell 1 and sell 3 price
  60. DWORD sell_1_volume;
  61. DWORD sell_2_volume;
  62. DWORD sell_3_volume;
  63. WORD refx;
  64. WORD refy;
  65. WORD hisfptr;
  66. WORD numppg;
  67. BYTE pgnum;
  68. WORD hisptr00;
  69. WORD hisptr01;
  70. WORD hisptr02;
  71. WORD hisptr03;
  72. WORD hisptr04;
  73. WORD hisptr05;
  74. WORD hisptr06;
  75. WORD hisptr07;
  76. WORD hisptr08;
  77. WORD hisptr09;
  78. WORD data_tag5;
  79. DWORD cur_volume;
  80. BYTE reserved1[12];
  81. WORD minfptr;
  82. WORD minsize;
  83. DWORD data_tag6;
  84. DWORD out_volume;
  85. BYTE reserved2[133];
  86. BYTE data_tag7; // always 07
  87. BYTE reserved3[145];
  88. BYTE end_hour;
  89. BYTE end_minute;
  90. WORD lastmin_vol;
  91. WORD data_tag8;
  92. DWORD total_volume3;
  93. WORD cur_price;
  94. DWORD average_price;
  95. BYTE reserved4[82];
  96. };
  97. #pragma pack()
  98. /* SLON data structure from MR.ZHAO BIAO
  99. Lonhs.dat结构分析(QB)
  100. 位置 长度 类型 说明
  101. 1 2 INTEGER ****************** 
  102. 2 1 STRING 标志,FF->delete 64-> ok 
  103. 3 4 LONG 股票代码 
  104. 4 8 STRING 股票名称 
  105. 5 1 STRING 00-> ? ***************** 
  106. 6 2 INTEGER 64-> ? ***************** 
  107. 7 2 INTEGER 前收盘价 
  108. 8 2 INTEGER 开盘价 
  109. 9 4 LONG 五日均量 
  110. 10 2 INTEGER 最高价 
  111. 11 2 INTEGER 最低价 
  112. 12 2 INTEGER 收盘价 
  113. 13 4 LONG ***************** 
  114. 14 4 LONG 总成交量 
  115. 15 4 LONG 总成交量 
  116. 16 2 INTEGER 当前买入价,即买1 
  117. 17 1 STRING 买2价,为与当前买入价的差值 
  118. 18 1 STRING 买3价,为与当前买入价的差值 
  119. 19 4 LONG 买1量 
  120. 20 4 LONG 买2量 
  121. 21 4 LONG 买3量 
  122. 22 2 INTEGER 当前卖出价,即卖1 
  123. 23 1 STRING 卖2价,为与当前买入价的差值 
  124. 24 1 STRING 卖3价,为与当前买入价的差值 
  125. 25 4 LONG 卖1量 
  126. 26 4 LONG 卖2量 
  127. 27 4 LONG 卖3量 
  128. 28 2 INTEGER ?与分时线坐标有关 
  129. 29 2 INTEGER ?与分时线坐标有关 
  130. 30 2 INTEGER 最近成交数据在LONHIS。DAT文件中的指针 
  131. 31 2 INTEGER 在LONHIS。DAT中的首页数据个数 
  132. 32 1 STRING 在LONHIS。DAT中的数据段数量,页数 
  133. 33 2 INTEGER 第一页在LONHIS。DAT中的指针1,FF-》无 
  134. 34 2 INTEGER 第二页指针 
  135. 35 2 INTEGER 第三页指针 
  136. 36 2 INTEGER 第四页指针 
  137. 37 2 INTEGER 第五页指针 
  138. 38 2 INTEGER 第六页指针 
  139. 39 2 INTEGER 第七页指针 
  140. 40 2 INTEGER 第八页指针 
  141. 41 2 INTEGER 第九页指针 
  142. 42 2 INTEGER 第十页指针 
  143. 43 2 INTEGER **************** 
  144. 44 4 LONG 当前成交手数 
  145. 45 12 STRING **************** 
  146. 46 2 INTEGER 该股票数据在LONMIN。DAT中的指针 
  147. 47 2 INTEGER 分时线在LONMIN文件中的长度,(分钟) 
  148. 48 2 INTEGER **************** 
  149. 49 2 INTEGER **************** 
  150. 50 4 LONG 外盘数据 
  151. 51 133 STRING **************** 
  152. 52 1 STRING ? 似乎只能为?/FONT>07” 
  153. 53 145 STRING **************** 
  154. 54 1 STRING 小时,似为分时线的终止时间 
  155. 55 1 STRING 分钟, 
  156. 56 2 INTEGER 最近一分钟成交量 
  157. 57 2 INTEGER *************** 
  158. 58 4 LONG 总成交量 
  159. 59 2 INTEGER 最新成交价 
  160. 60 4 LONG 均价 
  161. 61 82 STRING ************************* 
  162.  
  163. **************** 项作用不详。
  164.  
  165. Lohis.dat结构分析(QB)
  166. 位置 长度 类型 说明
  167. 1 1 STRING 时 
  168. 2 1 STRING 分 
  169. 3 4 LONG 成交量(手) 
  170. 4 2 INTEGER 成交价 
  171. 5 2 INTEGER 买入价 
  172. 6 2 INTEGER 卖出价 
  173.  
  174.  
  175. 该文件每128个记录为1只股票的某一时间段价格记录,其指针在LONHS。DAT文件中。
  176. 按成交情况记录
  177. Lomin.dat结构分析(QB)
  178. 位置 长度 类型 说明
  179. 1 1 STRING 时 
  180. 2 1 STRING 分 
  181. 3 4 LONG 现成交量(现手) 
  182. 4 4 LONG 总成交量(总手) 
  183. 5 2 INTEGER 当前成交价 
  184. 6 2 SINGLE 均价 
  185. 7 2 INTEGER 开盘至当前的分钟数 
  186. 8 6 STRING 估计为买卖力道数据 
  187. 该文件每400个记录为1只股票的分时线数据,其指针在LONHS。DAT文件中。
  188. 按时间记录
  189. */
  190. /***
  191. 胜龙数据格式的读取,未实现
  192. */
  193. class CShenglong : public IStStore
  194. {
  195. public:
  196. CShenglong( const char * rootpath, BOOL bOK = TRUE );
  197. virtual ~CShenglong( );
  198. virtual int GetMaxStockNumber( );
  199. virtual int LoadCodetable( CStockContainer & container );
  200. virtual int StoreCodetable( CStockContainer & container );
  201. virtual int LoadKDataCache( CStockContainer & container, PROGRESS_CALLBACK fnCallback, void *cookie, int nProgStart, int nProgEnd );
  202. virtual int LoadBasetable( CStockContainer & container );
  203. virtual int StoreBasetable( CStockContainer & container );
  204. virtual int LoadBaseText( CStock *pstock );
  205. virtual int LoadKData( CStock *pstock, int nKType );
  206. virtual int LoadDRData( CStock *pstock );
  207. virtual int StoreDRData( CStock *pstock );
  208. virtual int LoadReport( CStock *pstock );
  209. virtual int LoadMinute( CStock *pstock );
  210. virtual int LoadOutline( CStock *pstock );
  211. virtual int StoreReport( REPORT * pReport, int nCount, BOOL bBigTrade );
  212. virtual int StoreMinute( MINUTE * pMinute, int nCount );
  213. virtual int StoreOutline( OUTLINE * pOutline, int nCount );
  214. virtual int InstallCodetbl( const char * filename, const char *orgname );
  215. virtual int InstallCodetblBlock( const char * filename, const char *orgname );
  216. virtual int InstallCodetblFxjBlock( const char * filename, const char *orgname );
  217. virtual int InstallKData( CKData & kdata, BOOL bOverwrite = FALSE );
  218. virtual int InstallKDataTy( const char * stkfile, int nKType, PROGRESS_CALLBACK fnCallback, void *cookie );
  219. virtual int InstallKDataFxj( const char * dadfile, int nKType, PROGRESS_CALLBACK fnCallback, void *cookie );
  220. virtual int InstallDRData( CDRData & drdata );
  221. virtual int InstallDRDataClk( const char * filename, const char *orgname );
  222. virtual int InstallDRDataFxj( const char * fxjfilename );
  223. virtual int InstallBasetable( const char * filename, const char *orgname );
  224. virtual int InstallBasetableTdx( const char * filename );
  225. virtual int InstallBasetableFxj( const char * filename );
  226. virtual int InstallBaseText( const char * filename, const char *orgname );
  227. virtual int InstallBaseText( const char * buffer, int nLen, const char *orgname );
  228. virtual int InstallNewsText( const char * filename, const char *orgname );
  229. virtual int InstallNewsText( const char * buffer, int nLen, const char *orgname );
  230. virtual BOOL GetFileName( CSPString &sFileName, int nDataType,
  231. CStockInfo * pInfo = NULL, int nKType = CKData::ktypeDay );
  232. static BOOL GetAccurateRoot( const char * rootpath, char *accurateroot, int maxlen );
  233. // Attributes
  234. static char m_szDataType[256];
  235. static int GetType( ) { return dbtypeShenglong; }
  236. static const char * GetName( ) { return m_szDataType; }
  237. virtual int GetDBType( ) { return GetType(); }
  238. virtual const char * GetDBTypeName( ) { return GetName(); }
  239. };
  240. #endif //__STKLIB_SHENGLONG_H__