Hikyuu
TdxKDataDriver.h
浏览该文件的文档.
1 /*
2  * TdxKDataDriver.h
3  *
4  * Created on: 2017年10月12日
5  * Author: fasiondog
6  */
7 
8 #ifndef DATA_DRIVER_KDATA_TDX_TDXKDATADRIVER_H_
9 #define DATA_DRIVER_KDATA_TDX_TDXKDATADRIVER_H_
10 
11 #include "../../KDataDriver.h"
12 
13 namespace hku {
14 
15 class TdxKDataDriver: public KDataDriver {
16 public:
18  virtual ~TdxKDataDriver();
19 
20  virtual bool _init();
21 
22  virtual void loadKData(const string& market, const string& code,
23  KQuery::KType kType, size_t start_ix, size_t end_ix,
24  KRecordListPtr out_buffer) ;
25  virtual size_t getCount(const string& market, const string& code,
26  KQuery::KType kType);
27  virtual bool getIndexRangeByDate(const string& market, const string& code,
28  const KQuery& query, size_t& out_start, size_t& out_end);
29  virtual KRecord getKRecord(const string& market, const string& code,
30  size_t pos, KQuery::KType kType);
31 
32 private:
33  string _getFileName(const string& market, const string& code, KQuery::KType);
34  size_t _getBaseCount(const string& market, const string& code, KQuery::KType);
35  KRecord _getDayKRecord(const string& market, const string& code,
36  size_t pos, KQuery::KType ktype);
37  KRecord _getMinKRecord(const string& market, const string& code,
38  size_t pos, KQuery::KType ktype);
39 
40  void _loadDayKData(const string& market, const string& code,
41  KQuery::KType ktype, size_t start_ix, size_t end_ix,
42  KRecordListPtr out_buffer);
43  void _loadMinKData(const string& market, const string& code,
44  KQuery::KType ktype, size_t start_ix, size_t end_ix,
45  KRecordListPtr out_buffer);
46 
47  bool _getDayIndexRangeByDate(const string& market, const string& code,
48  const KQuery& query, size_t& out_start, size_t& out_end);
49 
50  bool _getMinIndexRangeByDate(const string& market, const string& code,
51  const KQuery& query, size_t& out_start, size_t& out_end);
52 
53 private:
54  string m_dirname;
55 };
56 
57 } /* namespace hku */
58 
59 #endif /* DATA_DRIVER_KDATA_TDX_TDXKDATADRIVER_H_ */
virtual bool getIndexRangeByDate(const string &market, const string &code, const KQuery &query, size_t &out_start, size_t &out_end)
获取指定日期范围对应的K线记录索引
Definition: TdxKDataDriver.cpp:298
K线数据记录
Definition: KRecord.h:19
按索引方式查询K线数据条件
Definition: KQuery.h:19
K线数据驱动基类
Definition: KDataDriver.h:21
TdxKDataDriver()
Definition: TdxKDataDriver.cpp:74
virtual size_t getCount(const string &market, const string &code, KQuery::KType kType)
获取指定类型的K线数据量
Definition: TdxKDataDriver.cpp:576
virtual KRecord getKRecord(const string &market, const string &code, size_t pos, KQuery::KType kType)
获取指定的K线记录
Definition: TdxKDataDriver.cpp:203
string KType
查询K线类型:日线/周线等
Definition: KQuery.h:51
shared_ptr< KRecordList > KRecordListPtr
Definition: KRecord.h:56
virtual void loadKData(const string &market, const string &code, KQuery::KType kType, size_t start_ix, size_t end_ix, KRecordListPtr out_buffer)
将指定类型的K线数据加载至缓存
Definition: TdxKDataDriver.cpp:94
Definition: TdxKDataDriver.h:15
virtual ~TdxKDataDriver()
Definition: TdxKDataDriver.cpp:78
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
virtual bool _init()
子类初始化私有变量接口
Definition: TdxKDataDriver.cpp:82