股票量化:赫茲量化系統(tǒng)抽象基準(zhǔn)指標(biāo)類
我們將能夠在程序中按分組對(duì)指標(biāo)進(jìn)行排序。 我們不會(huì)在單獨(dú)的分組中輸入比爾·威廉姆斯的指標(biāo),因?yàn)樗鼈兠總€(gè)都與指定的分組之一有從屬關(guān)系。 因此,我認(rèn)為沒(méi)有必要輸入另一個(gè)單獨(dú)包括上面所列全部指標(biāo)的分組。
改進(jìn)庫(kù)類
首先,在函數(shù)庫(kù)里為指標(biāo)對(duì)象添加必要的文本消息。 在文件 \MQL5\Include\DoEasy\Data.mqh 里加入新的消息索引:
//--- CBuffer //--- removed for the sake of space //--- ... //--- ... //--- ... ? MSG_LIB_TEXT_BUFFER_TEXT_STYLE_SOLID, ? ? ? ? ? ? ?// Solid line ? MSG_LIB_TEXT_BUFFER_TEXT_STYLE_DASH, ? ? ? ? ? ? ? // Dashed line ? MSG_LIB_TEXT_BUFFER_TEXT_STYLE_DOT, ? ? ? ? ? ? ? ?// Dotted line ? MSG_LIB_TEXT_BUFFER_TEXT_STYLE_DASHDOT, ? ? ? ? ? ?// Dot-dash line ? MSG_LIB_TEXT_BUFFER_TEXT_STYLE_DASHDOTDOT, ? ? ? ? // Dash - two dots ? //--- CIndicatorDE ? MSG_LIB_TEXT_IND_TEXT_STATUS, ? ? ? ? ? ? ? ? ? ? ?// Indicator status ? MSG_LIB_TEXT_IND_TEXT_STATUS_STANDART, ? ? ? ? ? ? // Standard indicator ? MSG_LIB_TEXT_IND_TEXT_STATUS_CUSTOM, ? ? ? ? ? ? ? // Custom indicator ? ? MSG_LIB_TEXT_IND_TEXT_TIMEFRAME, ? ? ? ? ? ? ? ? ? // Indicator timeframe ? MSG_LIB_TEXT_IND_TEXT_HANDLE, ? ? ? ? ? ? ? ? ? ? ?// Indicator handle ? MSG_LIB_TEXT_IND_TEXT_GROUP, ? ? ? ? ? ? ? ? ? ? ? // Indicator group ? MSG_LIB_TEXT_IND_TEXT_GROUP_TREND, ? ? ? ? ? ? ? ? // Trend indicator ? MSG_LIB_TEXT_IND_TEXT_GROUP_OSCILLATOR, ? ? ? ? ? ?// Oscillator ? MSG_LIB_TEXT_IND_TEXT_GROUP_VOLUMES, ? ? ? ? ? ? ? // Volumes ? MSG_LIB_TEXT_IND_TEXT_GROUP_ARROWS, ? ? ? ? ? ? ? ?// Arrow indicator ? ? MSG_LIB_TEXT_IND_TEXT_EMPTY_VALUE, ? ? ? ? ? ? ? ? // Empty value for plotting where nothing will be drawn: ? MSG_LIB_TEXT_IND_TEXT_SYMBOL, ? ? ? ? ? ? ? ? ? ? ?// Indicator symbol ? MSG_LIB_TEXT_IND_TEXT_NAME, ? ? ? ? ? ? ? ? ? ? ? ?// Indicator name ? MSG_LIB_TEXT_IND_TEXT_SHORTNAME, ? ? ? ? ? ? ? ? ? // Indicator short name ? ?}; //+------------------------------------------------------------------+
... 進(jìn)而在同一文件中 - 與新添加索引相對(duì)應(yīng)的文本消息:
? {"Solid line"}, ? {"Broken line"}, ? {"Dotted line"}, ? {"Dash-dot line"}, ? {"Dash - two points"}, ? ? {"Indicator status"}, ? {"Standard indicator"}, ? {"Custom indicator"}, ? {"Indicator timeframe"}, ? {"Indicator handle"}, ? {"Indicator group"}, ? {"Trend indicator"}, ? {"Solid lineOscillator"}, ? {"Volumes"}, ? {"Arrow indicator"}, ? {"Empty value for plotting, for which there is no drawing"}, ? {"Indicator symbol"}, ? {"Indicator name"}, ? {"Indicator shortname"}, ? ?}; //+---------------------------------------------------------------------+
在文件 E:\MetaQuotes\MetaTrader 5\MQL5\Include\DoEasy\Defines.mqh 里,為函數(shù)庫(kù)對(duì)象添加已變?yōu)闃?biāo)準(zhǔn)的指標(biāo)對(duì)象參數(shù)。。
鑒于所有這些對(duì)象最終都將存儲(chǔ)在指標(biāo)緩沖區(qū)集合列表之中,因此我們?yōu)樗鼈円胱陨淼?ID:
//--- Collection list IDs #define COLLECTION_HISTORY_ID ? ? ? ? ?(0x777A) ? ? ? ? ? ? ? ? ? // Historical collection list ID #define COLLECTION_MARKET_ID ? ? ? ? ? (0x777B) ? ? ? ? ? ? ? ? ? // Market collection list ID #define COLLECTION_EVENTS_ID ? ? ? ? ? (0x777C) ? ? ? ? ? ? ? ? ? // Event collection list ID #define COLLECTION_ACCOUNT_ID ? ? ? ? ?(0x777D) ? ? ? ? ? ? ? ? ? // Account collection list ID #define COLLECTION_SYMBOLS_ID ? ? ? ? ?(0x777E) ? ? ? ? ? ? ? ? ? // Symbol collection list ID #define COLLECTION_SERIES_ID ? ? ? ? ? (0x777F) ? ? ? ? ? ? ? ? ? // Timeseries collection list ID #define COLLECTION_BUFFERS_ID ? ? ? ? ?(0x7780) ? ? ? ? ? ? ? ? ? // Indicator buffer collection list ID #define COLLECTION_INDICATORS_ID ? ? ? (0x7781) ? ? ? ? ? ? ? ? ? // Indicator collection list ID //--- Data parameters for file operations