Hikyuu
Operand.h
浏览该文件的文档.
1 /*
2  * Operand.h
3  *
4  * Created on: 2015年3月30日
5  * Author: fasiondog
6  */
7 
8 #ifndef INDICATOR_OPERAND_H_
9 #define INDICATOR_OPERAND_H_
10 
11 #include "OperandNode.h"
12 
13 namespace hku {
14 
16  HKU_API friend std::ostream & operator<<(std::ostream &, const Operand&);
17  HKU_API friend Operand operator+(const Operand&, price_t);
18  HKU_API friend Operand operator+(price_t, const Operand&);
19  HKU_API friend Operand operator-(const Operand&, price_t);
20  HKU_API friend Operand operator-(price_t, const Operand&);
21  HKU_API friend Operand operator*(const Operand&, price_t);
22  HKU_API friend Operand operator*(price_t, const Operand&);
23  HKU_API friend Operand operator/(const Operand&, price_t);
24  HKU_API friend Operand operator/(price_t, const Operand&);
25  HKU_API friend Operand operator>(const Operand&, price_t);
26  HKU_API friend Operand operator>(price_t, const Operand&);
27  HKU_API friend Operand operator<(const Operand&, price_t);
28  HKU_API friend Operand operator<(price_t, const Operand&);
29  HKU_API friend Operand operator>=(const Operand&, price_t);
30  HKU_API friend Operand operator>=(price_t, const Operand&);
31  HKU_API friend Operand operator<=(const Operand&, price_t);
32  HKU_API friend Operand operator<=(price_t, const Operand&);
33  HKU_API friend Operand operator==(const Operand&, price_t);
34  HKU_API friend Operand operator==(price_t, const Operand&);
35  HKU_API friend Operand operator!=(const Operand&, price_t);
36  HKU_API friend Operand operator!=(price_t, const Operand&);
37  HKU_API friend Operand OP_AND(const Operand&, const Operand&);
38  HKU_API friend Operand OP_AND(const Operand&, price_t);
39  HKU_API friend Operand OP_AND(price_t, const Operand&);
40  HKU_API friend Operand OP_OR(const Operand&, const Operand&);
41  HKU_API friend Operand OP_OR(const Operand&, price_t);
42  HKU_API friend Operand OP_OR(price_t, const Operand&);
43 
44 public:
45  Operand();
46  Operand(const Indicator&);
47  Operand(const Operand&);
48  Operand(const Operand&, const Operand&);
49  virtual ~Operand();
50 
51  Operand& operator=(const Operand&);
52 
53  Indicator calculate(const Indicator&);
55  return calculate(ind);
56  }
57 
58  Operand operator()(const Operand&);
59  Operand operator+(const Operand&);
60  Operand operator-(const Operand&);
61  Operand operator*(const Operand&);
62  Operand operator/(const Operand&);
63  Operand operator>(const Operand&);
64  Operand operator<(const Operand&);
65  Operand operator>=(const Operand&);
66  Operand operator<=(const Operand&);
67  Operand operator==(const Operand&);
68  Operand operator!=(const Operand&);
69 
70  string name() const;
71  void name(const string& name);
72 
73 private:
74  OperandNodePtr m_root;
75 
76 #if HKU_SUPPORT_SERIALIZATION
77 private:
78  friend class boost::serialization::access;
79  template<class Archive>
80  void serialize(Archive & ar, const unsigned int version) {
81  ar & BOOST_SERIALIZATION_NVP(m_root);
82  }
83 #endif /* HKU_SUPPORT_SERIALIZATION */
84 };
85 
86 typedef Operand OP;
87 
108 HKU_API Operand OP_AND(const Operand&, const Operand&);
111 HKU_API Operand OP_OR(const Operand&, const Operand&);
114 
115 } /* namespace hku */
116 
117 #endif /* INDICATOR_OPERAND_H_ */
HKU_API Operand OP_OR(const Operand &op1, const Operand &op2)
Definition: Operand.cpp:297
Definition: Operand.h:15
Operand OP
Definition: Operand.h:86
Indicator operator()(const Indicator &ind)
Definition: Operand.h:54
指标类,具体由IndicatorImp实现,实现新指标时应继承IndicatorImp
Definition: Indicator.h:38
HKU_API Indicator operator/(const Indicator &ind1, const Indicator &ind2)
Indicator实例相除,两者的size必须相等,否在返回空
Definition: Indicator.cpp:266
HKU_API Indicator operator-(const Indicator &ind1, const Indicator &ind2)
Indicator实例相减,两者的size必须相等,否在返回空
Definition: Indicator.cpp:144
bool operator!=(const Datetime &, const Datetime &)
Definition: Datetime.h:205
#define HKU_API
Definition: DataType.h:12
bool operator>(const Datetime &, const Datetime &)
Definition: Datetime.h:209
HKU_API std::ostream & operator<<(std::ostream &os, const Block &blk)
Definition: Block.cpp:13
shared_ptr< OperandNode > OperandNodePtr
Definition: OperandNode.h:72
HKU_API Operand OP_AND(const Operand &op1, const Operand &op2)
Definition: Operand.cpp:276
double price_t
Definition: DataType.h:53
bool operator==(const Datetime &, const Datetime &)
Definition: Datetime.h:201
bool operator<(const Datetime &, const Datetime &)
Definition: Datetime.h:213
HKU_API Indicator operator*(const Indicator &ind1, const Indicator &ind2)
Indicator实例相乘,两者的size必须相等,否在返回空
Definition: Indicator.cpp:205
bool operator<=(const Datetime &, const Datetime &)
Definition: Datetime.h:221
HKU_API Indicator operator+(const Indicator &ind1, const Indicator &ind2)
Indicator实例相加,两者的size必须相等,否在返回空
Definition: Indicator.cpp:82
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
bool operator>=(const Datetime &, const Datetime &)
Definition: Datetime.h:217