12 #include "../../KQuery.h" 13 #include "../../utilities/Parameter.h" 14 #include "../../utilities/util.h" 16 #if HKU_SUPPORT_SERIALIZATION 17 #include <boost/serialization/shared_ptr.hpp> 18 #include <boost/serialization/assume_abstract.hpp> 19 #include <boost/serialization/base_object.hpp> 20 #include <boost/serialization/set.hpp> 21 #include "../../serialization/Datetime_serialization.h" 22 #include "../../serialization/KQuery_serialization.h" 46 void name(
const string& name) {
54 void setQuery(
const KQuery& query);
69 EnvironmentPtr clone();
75 void _addValid(
const Datetime& datetime);
82 bool isValid(
const Datetime& datetime);
85 virtual void _calculate() = 0;
91 virtual EnvironmentPtr _clone() = 0;
101 #if HKU_SUPPORT_SERIALIZATION 103 friend class boost::serialization::access;
104 template<
class Archive>
105 void save(Archive & ar,
const unsigned int version)
const {
107 ar & boost::serialization::make_nvp(
"m_name", name);
108 ar & BOOST_SERIALIZATION_NVP(m_params);
110 ar & BOOST_SERIALIZATION_NVP(m_query);
111 ar & BOOST_SERIALIZATION_NVP(m_valid);
114 template<
class Archive>
115 void load(Archive & ar,
const unsigned int version) {
117 ar & boost::serialization::make_nvp(
"m_name", name);
119 ar & BOOST_SERIALIZATION_NVP(m_query);
120 ar & BOOST_SERIALIZATION_NVP(m_valid);
123 BOOST_SERIALIZATION_SPLIT_MEMBER()
127 #if HKU_SUPPORT_SERIALIZATION 131 #if HKU_SUPPORT_SERIALIZATION 145 #define ENVIRONMENT_NO_PRIVATE_MEMBER_SERIALIZATION private:\ 146 friend class boost::serialization::access; \ 147 template<class Archive> \ 148 void serialize(Archive & ar, const unsigned int version) { \ 149 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(EnvironmentBase); \ 152 #define ENVIRONMENT_NO_PRIVATE_MEMBER_SERIALIZATION 161 typedef shared_ptr<EnvironmentBase>
EVPtr;
164 #define ENVIRONMENT_IMP(classname) public:\ 165 virtual EnvironmentPtr _clone() {\ 166 return EnvironmentPtr(new classname());\ 168 virtual void _calculate(); shared_ptr< EnvironmentBase > EVPtr
Definition: EnvironmentBase.h:161
KQuery getQuery() const
获取查询条件
Definition: EnvironmentBase.h:57
按索引方式查询K线数据条件
Definition: KQuery.h:19
virtual void _reset()
子类复位接口
Definition: EnvironmentBase.h:88
shared_ptr< EnvironmentBase > EnvironmentPtr
客户程序都应使用该指针类型
Definition: EnvironmentBase.h:160
日期类型
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 name() const
获取名称
Definition: EnvironmentBase.h:41
#define HKU_API
Definition: DataType.h:12
环境判定策略基类
Definition: EnvironmentBase.h:32
std::set< Datetime > m_valid
Definition: EnvironmentBase.h:96
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
#define PARAMETER_SUPPORT
Definition: Parameter.h:233
string m_name
Definition: EnvironmentBase.h:94
#define UTF8ToGB(s)
Definition: util.h:56
KQuery m_query
Definition: EnvironmentBase.h:95
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
shared_ptr< EnvironmentBase > EnvironmentPtr
Definition: EnvironmentBase.h:61
void name(const string &name)
设置名称
Definition: EnvironmentBase.h:46