期貨量化軟件:赫茲量化中MQL5 酷寶書(shū) – 財(cái)經(jīng)日歷
我更鐘情于面向?qū)ο笠欢恕?因此,我將給出一個(gè)類(lèi)的示例,該類(lèi)能提供對(duì)日歷屬性的訪問(wèn)。
請(qǐng)記住,日歷 這是一件相當(dāng)兼收并蓄的事物。 我并非數(shù)據(jù)庫(kù)專(zhuān)家,但據(jù)我所知,日歷通常是一個(gè)包含多個(gè)數(shù)據(jù)表的關(guān)系數(shù)據(jù)庫(kù)。
除了獲取屬性之外,CiCalendarInfo 類(lèi)還提供了旨在創(chuàng)建選定事件時(shí)間序列的實(shí)現(xiàn)。
我們先來(lái)看看輔助結(jié)構(gòu)。
2.1 時(shí)間序列結(jié)構(gòu)
因?yàn)槲覀円獧z索 TS(時(shí)間序列)的數(shù)據(jù),所以我們應(yīng)該創(chuàng)建其編程根基。 此 SiTimeSeries 結(jié)構(gòu)負(fù)責(zé)這一點(diǎn)。.
//+------------------------------------------------------------------+ //| Time series structure ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+------------------------------------------------------------------+ struct SiTimeSeries ?{ ? private: ? ? ?bool ? ? ? ? ? ? ?init; ? ? ? ?// is initialized? ? ? ?uint ? ? ? ? ? ? ?size; ? ? ?datetime ? ? ? ? ?timevals[]; ?// time values ? ? ?double ? ? ? ? ? ?datavals[]; ?// data values ? ? ?string ? ? ? ? ? ?name; ? ? ? ?// ts name ? public: ? ? ?//--- constructor ? ? ?void ? ? ? ? ? ? ?SiTimeSeries(void); ? ? ?//--- destructor ? ? ?void ? ? ? ? ? ? ~SiTimeSeries(void); ? ? ?//--- copy consructor ? ? ?void ? ? ? ? ? ? ?SiTimeSeries(const SiTimeSeries &src_ts); ? ? ?//--- assignment operator ? ? ?void ? ? ? ? ? ? ?operator=(const SiTimeSeries &src_ts); ? ? ?//--- equality operator ? ? ?bool ? ? ? ? ? ? ?operator==(const SiTimeSeries &src_ts); ? ? ?//--- indexing operator ? ? ?SiTsObservation ? operator[](const uint idx) const; ? ? ?//--- initialization ? ? ?bool ? ? ? ? ? ? ?Init(datetime &ts_times[], const double &ts_values[], ? ? ? ? ? ? ? ? ? ? ? ? ? ? const string ts_name); ? ? ?//--- get series properties ? ? ?bool ? ? ? ? ? ? ?GetSeries(datetime &dst_times[], double &dst_values[], string &dst_name); ? ? ?bool ? ? ? ? ? ? ?GetSeries(SiTsObservation &dst_observations[], string &dst_name); ? ? ?//--- service ? ? ?bool ? ? ? ? ? ? ?IsInit(void) const ? ? ? ?{ ? ? ? ? return init; ? ? ? ?}; ? ? ?uint ? ? ? ? ? ? ?Size(void) const ? ? ? ?{ ? ? ? ? return size; ? ? ? ?}; ? ? ?void ? ? ? ? ? ? ?Print(const int digs = 2, const uint step = 0); ?}; //+------------------------------------------------------------------+