12 #include "../../KData.h" 13 #include "../../utilities/Parameter.h" 14 #include "../../trade_manage/TradeManager.h" 15 #include "../../serialization/Datetime_serialization.h" 17 #if HKU_SUPPORT_SERIALIZATION 18 #include <boost/serialization/shared_ptr.hpp> 19 #include <boost/serialization/set.hpp> 20 #include <boost/serialization/assume_abstract.hpp> 21 #include <boost/serialization/base_object.hpp> 43 bool shouldBuy(
const Datetime& datetime)
const;
50 bool shouldSell(
const Datetime& datetime)
const;
62 void _addBuySignal(
const Datetime& datetime);
68 void _addSellSignal(
const Datetime& datetime);
74 void setTO(
const KData& kdata);
93 void name(
const string& name);
99 virtual SignalPtr _clone() = 0;
102 virtual void _calculate() = 0;
114 #if HKU_SUPPORT_SERIALIZATION 116 friend class boost::serialization::access;
117 template<
class Archive>
118 void save(Archive & ar,
const unsigned int version)
const {
120 ar & boost::serialization::make_nvp(
"name", name_str);
121 ar & BOOST_SERIALIZATION_NVP(m_params);
122 ar & BOOST_SERIALIZATION_NVP(m_hold);
123 ar & BOOST_SERIALIZATION_NVP(m_buySig);
124 ar & BOOST_SERIALIZATION_NVP(m_sellSig);
129 template<
class Archive>
130 void load(Archive & ar,
const unsigned int version) {
131 ar & boost::serialization::make_nvp(
"name", m_name);
132 ar & BOOST_SERIALIZATION_NVP(m_params);
133 ar & BOOST_SERIALIZATION_NVP(m_hold);
134 ar & BOOST_SERIALIZATION_NVP(m_buySig);
135 ar & BOOST_SERIALIZATION_NVP(m_sellSig);
140 BOOST_SERIALIZATION_SPLIT_MEMBER()
144 #if HKU_SUPPORT_SERIALIZATION 145 BOOST_SERIALIZATION_ASSUME_ABSTRACT(
SignalBase)
148 #if HKU_SUPPORT_SERIALIZATION 162 #define SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION private:\ 163 friend class boost::serialization::access; \ 164 template<class Archive> \ 165 void serialize(Archive & ar, const unsigned int version) { \ 166 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SignalBase); \ 169 #define SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION 173 #define SIGNAL_IMP(classname) public:\ 174 virtual SignalPtr _clone() {\ 175 return SignalPtr(new classname());\ 177 virtual void _calculate(); 186 typedef shared_ptr<SignalBase>
SGPtr;
204 return m_buySig.count(datetime) ?
true :
false;
208 return m_sellSig.count(datetime) ?
true :
false;
bool m_hold
Definition: SignalBase.h:107
std::set< Datetime > m_buySig
Definition: SignalBase.h:108
K线数据
Definition: KData.h:19
string m_name
Definition: SignalBase.h:105
KData getTO() const
获取交易对象
Definition: SignalBase.h:191
日期类型
Definition: Datetime.h:33
#define GBToUTF8(s)
Definition: util.h:55
virtual void _reset()
子类复位接口
Definition: SignalBase.h:96
bool shouldBuy(const Datetime &datetime) const
指定时刻是否可以买入
Definition: SignalBase.h:203
void load(Archive &ar, hku::Block &blk, unsigned int version)
Definition: Block_serialization.h:34
bool shouldSell(const Datetime &datetime) const
指定时刻是否可以卖出
Definition: SignalBase.h:207
std::set< Datetime > m_sellSig
Definition: SignalBase.h:109
#define HKU_API
Definition: DataType.h:12
shared_ptr< SignalBase > SignalPtr
客户程序都应使用该指针类型,操作信号指示器
Definition: SignalBase.h:185
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
std::vector< Datetime > DatetimeList
日期列表
Definition: Datetime.h:177
string name() const
获取名称
Definition: SignalBase.h:195
#define PARAMETER_SUPPORT
Definition: Parameter.h:233
信号指示器基类
Definition: SignalBase.h:30
shared_ptr< SignalBase > SignalPtr
Definition: SignalBase.h:85
KData m_kdata
Definition: SignalBase.h:106
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
shared_ptr< SignalBase > SGPtr
Definition: SignalBase.h:186