8 #ifndef CONDITIONBASE_H_ 9 #define CONDITIONBASE_H_ 12 #include "../../utilities/Parameter.h" 13 #include "../../utilities/util.h" 14 #include "../../KData.h" 15 #include "../../trade_manage/TradeManager.h" 16 #include "../signal/SignalBase.h" 18 #if HKU_SUPPORT_SERIALIZATION 19 #include <boost/serialization/shared_ptr.hpp> 20 #include <boost/serialization/assume_abstract.hpp> 21 #include <boost/serialization/base_object.hpp> 22 #include <boost/serialization/set.hpp> 44 void name(
const string& name);
50 void setTO(
const KData& kdata);
62 void setSG(
const SGPtr& sg);
71 void _addValid(
const Datetime& datetime);
82 bool isValid(
const Datetime& datetime);
85 virtual void _calculate() = 0;
91 virtual ConditionPtr _clone() = 0;
103 #if HKU_SUPPORT_SERIALIZATION 105 friend class boost::serialization::access;
106 template<
class Archive>
107 void save(Archive & ar,
const unsigned int version)
const {
109 ar & boost::serialization::make_nvp(
"m_name", name);
110 ar & BOOST_SERIALIZATION_NVP(m_params);
111 ar & BOOST_SERIALIZATION_NVP(m_valid);
115 template<
class Archive>
116 void load(Archive & ar,
const unsigned int version) {
118 ar & boost::serialization::make_nvp(
"m_name", name);
120 ar & BOOST_SERIALIZATION_NVP(m_params);
121 ar & BOOST_SERIALIZATION_NVP(m_valid);
125 BOOST_SERIALIZATION_SPLIT_MEMBER()
130 #if HKU_SUPPORT_SERIALIZATION 134 #if HKU_SUPPORT_SERIALIZATION 148 #define CONDITION_NO_PRIVATE_MEMBER_SERIALIZATION private:\ 149 friend class boost::serialization::access; \ 150 template<class Archive> \ 151 void serialize(Archive & ar, const unsigned int version) { \ 152 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(ConditionBase); \ 155 #define CONDITION_NO_PRIVATE_MEMBER_SERIALIZATION 164 typedef shared_ptr<ConditionBase>
CNPtr;
167 #define CONDITION_IMP(classname) public:\ 168 virtual ConditionPtr _clone() {\ 169 return ConditionPtr(new classname());\ 171 virtual void _calculate(); SGPtr m_sg
Definition: ConditionBase.h:97
TradeManagerPtr getTM() const
获取交易管理实例
Definition: ConditionBase.h:203
系统有效条件基类
Definition: ConditionBase.h:32
K线数据
Definition: KData.h:19
SGPtr getSG() const
获取系统信号指示器
Definition: ConditionBase.h:195
日期类型
Definition: Datetime.h:33
#define GBToUTF8(s)
Definition: util.h:55
void load(Archive &ar, hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:34
string m_name
Definition: ConditionBase.h:94
void setTM(const TradeManagerPtr &tm)
设置交易管理实例
Definition: ConditionBase.h:191
KData m_kdata
Definition: ConditionBase.h:95
shared_ptr< TradeManager > TradeManagerPtr
客户程序应使用此类型进行实际操作
Definition: TradeManager.h:635
#define HKU_API
Definition: DataType.h:12
KData getTO() const
获取交易对象
Definition: ConditionBase.h:187
void save(Archive &ar, const hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:20
string name() const
获取名称
Definition: ConditionBase.h:179
TMPtr m_tm
Definition: ConditionBase.h:96
HKU_API std::ostream & operator<<(std::ostream &os, const Block &blk)
Definition: Block.cpp:13
#define PARAMETER_SUPPORT
Definition: Parameter.h:233
virtual void _reset()
子类reset接口
Definition: ConditionBase.h:88
#define UTF8ToGB(s)
Definition: util.h:56
shared_ptr< TradeManager > TMPtr
Definition: TradeManager.h:636
shared_ptr< ConditionBase > CNPtr
Definition: ConditionBase.h:164
shared_ptr< ConditionBase > ConditionPtr
客户程序都应使用该指针类型
Definition: ConditionBase.h:163
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
shared_ptr< ConditionBase > ConditionPtr
Definition: ConditionBase.h:73
shared_ptr< SignalBase > SGPtr
Definition: SignalBase.h:186
void setSG(const SGPtr &sg)
设置系统信号指示器
Definition: ConditionBase.h:199
std::set< Datetime > m_valid
Definition: ConditionBase.h:98