Hikyuu
PositionRecord.h
浏览该文件的文档.
1 /*
2  * PositionRecord.h
3  *
4  * Created on: 2013-2-21
5  * Author: fasiondog
6  */
7 
8 #ifndef POSITIONRECORD_H_
9 #define POSITIONRECORD_H_
10 
11 #include "../StockManager.h"
12 #include "../serialization/Stock_serialization.h"
13 
14 #if HKU_SUPPORT_SERIALIZATION
15 #include <boost/serialization/split_member.hpp>
16 #endif
17 
18 namespace hku {
19 
25 public:
27  PositionRecord(const Stock& stock,
28  const Datetime& takeDatetime,
29  const Datetime& cleanDatetime,
30  size_t number,
31  price_t stoploss,
32  price_t goalPrice,
33  size_t totalNumber,
34  price_t buyMoney,
35  price_t totalCost,
36  price_t totalRisk,
37  price_t sellMoney);
38 
40  string toString() const;
41 
45  size_t number;
48  size_t totalNumber;
53 
54 //===================
55 //序列化支持
56 //===================
57 #if HKU_SUPPORT_SERIALIZATION
58 private:
59  friend class boost::serialization::access;
60  template<class Archive>
61  void save(Archive & ar, const unsigned int version) const {
62  namespace bs = boost::serialization;
63  ar & BOOST_SERIALIZATION_NVP(stock);
64  hku_uint64 take = takeDatetime.number();
65  hku_uint64 clean = cleanDatetime.number();
66  ar & bs::make_nvp("takeDatetime", take);
67  ar & bs::make_nvp("cleanDatetime", clean);
68  ar & BOOST_SERIALIZATION_NVP(number);
69  ar & BOOST_SERIALIZATION_NVP(stoploss);
70  ar & BOOST_SERIALIZATION_NVP(goalPrice);
71  ar & BOOST_SERIALIZATION_NVP(totalNumber);
72  ar & BOOST_SERIALIZATION_NVP(buyMoney);
73  ar & BOOST_SERIALIZATION_NVP(totalCost);
74  ar & BOOST_SERIALIZATION_NVP(totalRisk);
75  ar & BOOST_SERIALIZATION_NVP(sellMoney);
76  }
77 
78  template<class Archive>
79  void load(Archive & ar, const unsigned int version) {
80  namespace bs = boost::serialization;
81  ar & BOOST_SERIALIZATION_NVP(stock);
82  hku_uint64 take, clean;
83  ar & bs::make_nvp("takeDatetime", take);
84  ar & bs::make_nvp("cleanDatetime", clean);
85  takeDatetime = Datetime(take);
86  cleanDatetime = Datetime(clean);
87  ar & BOOST_SERIALIZATION_NVP(number);
88  ar & BOOST_SERIALIZATION_NVP(stoploss);
89  ar & BOOST_SERIALIZATION_NVP(goalPrice);
90  ar & BOOST_SERIALIZATION_NVP(totalNumber);
91  ar & BOOST_SERIALIZATION_NVP(buyMoney);
92  ar & BOOST_SERIALIZATION_NVP(totalCost);
93  ar & BOOST_SERIALIZATION_NVP(totalRisk);
94  ar & BOOST_SERIALIZATION_NVP(sellMoney);
95  }
96 
97  BOOST_SERIALIZATION_SPLIT_MEMBER()
98 #endif /* HKU_SUPPORT_SERIALIZATION */
99 };
100 
101 
103 typedef vector<PositionRecord> PositionRecordList;
104 
105 
110 HKU_API std::ostream & operator<<(std::ostream &, const PositionRecord&);
111 
112 bool HKU_API operator==(const PositionRecord& d1, const PositionRecord& d2);
113 
114 } /* namespace hku */
115 #endif /* POSITIONRECORD_H_ */
unsigned long long number() const
返回如YYYYMMDDhhmmss格式的数字,方便比较操作, Null<Datetime>()对应的 number 为 Null<unsigned long lo...
Definition: Datetime.cpp:71
price_t sellMoney
累计卖出资金
Definition: PositionRecord.h:52
price_t buyMoney
累计买入资金
Definition: PositionRecord.h:49
日期类型
Definition: Datetime.h:33
Stock基类,Application中一般使用StockPtr进行操作
Definition: Stock.h:27
void load(Archive &ar, hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:34
Definition: Block_serialization.h:18
持仓记录
Definition: PositionRecord.h:24
price_t stoploss
当前止损价
Definition: PositionRecord.h:46
#define HKU_API
Definition: DataType.h:12
vector< PositionRecord > PositionRecordList
Definition: PositionRecord.h:103
Datetime cleanDatetime
平仓日期,当前持仓记录中为Null<Datetime>()
Definition: PositionRecord.h:44
void save(Archive &ar, const hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:20
HKU_API std::ostream & operator<<(std::ostream &os, const Block &blk)
Definition: Block.cpp:13
price_t totalRisk
累计交易风险 = 各次 (买入价格-止损)*买入数量, 不包含交易成本
Definition: PositionRecord.h:51
double price_t
Definition: DataType.h:53
bool operator==(const Datetime &, const Datetime &)
Definition: Datetime.h:201
price_t totalCost
累计交易总成本
Definition: PositionRecord.h:50
Datetime takeDatetime
初次建仓日期
Definition: PositionRecord.h:43
price_t goalPrice
当前的目标价格
Definition: PositionRecord.h:47
size_t number
当前持仓数量
Definition: PositionRecord.h:45
size_t totalNumber
累计持仓数量
Definition: PositionRecord.h:48
unsigned long long hku_uint64
Definition: DataType.h:46
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
Stock stock
交易对象
Definition: PositionRecord.h:42