最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

股票量化軟件:赫茲量化中面向?qū)ο蠓ń⒍鄷r(shí)間表及多貨幣面板

2023-07-25 16:02 作者:大牛啊呢  | 我要投稿

我來介紹一下此圖的組成元素:

  1. CTable。此面板的核心類。它負(fù)責(zé)繪制面板并管理其組件。

  2. SpyAgent。 它是一個(gè)負(fù)責(zé)“監(jiān)視”其它交易品種(工具)的指標(biāo)。創(chuàng)建的每一個(gè)代理都會(huì)發(fā)往不同的交易品種。此代理會(huì)在有新訂單號(hào)抵達(dá)交易品種圖表時(shí)對(duì) OnCalculate 事件做出反應(yīng),并發(fā)送 CHARTEVENT_CUSTOM 事件以通知 CTable 對(duì)象其須更新。此方法背后的整體理念基于 “赫茲量化 中多貨幣模式的實(shí)現(xiàn)"一文。您可以在此文中找到所有技術(shù)詳情。

  3. CRow。用于創(chuàng)建此面板的所有指標(biāo)及條件的基類。通過擴(kuò)展此類,即可能創(chuàng)建出此面板所有必需的組件。

  4. CPriceRow。CRow 的一個(gè)簡(jiǎn)單擴(kuò)展類,用于顯示當(dāng)前買價(jià)。

  5. CPriceChangeRow。CRow 擴(kuò)展類,用于顯示當(dāng)前柱的價(jià)格變化。它可以顯示價(jià)格變化、百分比變化或箭頭。

  6. CRSIRow。CRow 擴(kuò)展類,用于顯示當(dāng)前的 RSI 指標(biāo) 值。

  7. CPriceMARow。CRow 擴(kuò)展類,顯示某種自定義條件:SMA > 時(shí)價(jià)。

CTable、CRow 類以及 SpyAgent 指標(biāo)都是此面板的核心組成部分。而 CPriceRow、CPriceChangeRow、CRSIRow 以及 CPriceMARow 則是此面板的實(shí)際內(nèi)容。CRow 類的設(shè)計(jì)主旨,即在于由眾多的新類擴(kuò)展,從而實(shí)現(xiàn)想要的結(jié)果。所示的 4 個(gè)衍生類只是簡(jiǎn)單的例子,告訴大家能做些什么、怎樣做。


2. SpyAgent

我們從 SpyAgent 指標(biāo)開始。它僅于多貨幣模式下使用,而且如有新訂單號(hào)抵達(dá)其它圖表,必須用它才能妥善更新此面板。對(duì)此概念,我不想過多深入。“赫茲量化 中多貨幣模式的實(shí)現(xiàn)”一文中有所詳述。

SpyAgent 指標(biāo)于指定交易品種的圖表上運(yùn)行,并發(fā)送兩個(gè)事件:初始化事件與新訂單號(hào)事件。兩個(gè)事件均屬 CHARTEVENT_CUSTOM 類型。想要處理上述事件,我們必須使用 OnChartEvent(...) 處理程序(稍后呈現(xiàn))。

我們來看看 SpyAgent 的代碼:

//+------------------------------------------------------------------ //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SpyAgent.mq5 | //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Marcin Konieczny | //| ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+------------------------------------------------------------------ #property copyright "Marcin Konieczny" #property indicator_chart_window #property indicator_plots 0 input long ? chart_id=0; ? ? ? ?// 圖表識(shí)別符 input ushort custom_event_id=0; // 事件識(shí)別符 //+------------------------------------------------------------------ //| 指標(biāo)迭代函數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | //+------------------------------------------------------------------ int OnCalculate(const int rates_total, ? ? ? ? ? ? ? ?const int prev_calculated, ? ? ? ? ? ? ? ?const int begin, ? ? ? ? ? ? ? ?const double &price[]) ?{ ? if(prev_calculated==0) ? ? ?EventChartCustom(chart_id,0,0,0.0,_Symbol); // 發(fā)送初始事件 ? else ? ? ?EventChartCustom(chart_id,(ushort)(custom_event_id+1),0,0.0,_Symbol); // 發(fā)送新即時(shí)價(jià)格事件 ? return(rates_total); ?}

非常簡(jiǎn)單。它只做一件事,那就是接收新數(shù)據(jù)并發(fā)送CHARTEVENT_CUSTOM事件。

3. CTable

CTable 是此面板的核心類。它會(huì)存儲(chǔ)面板設(shè)置的相關(guān)信息并管理其組件。必要時(shí),它會(huì)更新(重繪)面板。

我們看看 CTable 的聲明:

//+------------------------------------------------------------------ //| CTable 類 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | //+------------------------------------------------------------------ class CTable ?{ private: ? int ? ? ? ? ? ? ? xDistance; ? ?// 圖表右邊框的距離 ? int ? ? ? ? ? ? ? yDistance; ? ?// 圖表頂邊框的距離 ? int ? ? ? ? ? ? ? cellHeight; ? // 表格單元高度 ? int ? ? ? ? ? ? ? cellWidth; ? ?// 表格單元寬度 ? string ? ? ? ? ? ?font; ? ? ? ? // 字體名 ? int ? ? ? ? ? ? ? fontSize; ? color ? ? ? ? ? ? fontColor; ? CList ? ? ? ? ? ?*rowList; ? ? ?// 行對(duì)象列表 ? bool ? ? ? ? ? ? ?tfMode; ? ? ? // 是多時(shí)間幀模式嗎? ? ENUM_TIMEFRAMES ? timeframes[]; // 多時(shí)間幀模式數(shù)組 ? string ? ? ? ? ? ?symbols[]; ? ?// 多貨幣對(duì)模式數(shù)組 ? //--- 私有方法 ? //--- 設(shè)置表格默認(rèn)參數(shù) ? void ? ? ? ? ? ? ?Init(); ? //--- 在指定表格單元內(nèi)畫文本標(biāo)簽 ? void ? ? ? ? ? ? ?DrawLabel(int x,int y,string text,string font,color col); ? //--- 返回給定的時(shí)間幀的文字表述 ? string ? ? ? ? ? ?PeriodToString(ENUM_TIMEFRAMES period); public: ? //--- 多時(shí)間幀模式構(gòu)造函數(shù) ? ? ? ? ? ? ? ? ? ? CTable(ENUM_TIMEFRAMES &tfs[]); ? //--- 多貨幣對(duì)模式構(gòu)造函數(shù) ? ? ? ? ? ? ? ? ? ? CTable(string &symb[]); ? //--- 析構(gòu)函數(shù) ? ? ? ? ? ? ? ? ? ?~CTable(); ? //--- 重畫表格 ? void ? ? ? ? ? ? ?Update(); ? //--- 設(shè)置表格參數(shù)函數(shù) ? void ? ? ? ? ? ? ?SetDistance(int xDist,int yDist); ? void ? ? ? ? ? ? ?SetCellSize(int cellW,int cellH); ? void ? ? ? ? ? ? ?SetFont(string fnt,int size,color clr); ? //--- 附加CRow對(duì)象至表格 ? void ? ? ? ? ? ? ?AddRow(CRow *row); ?};

正如您所見,所有的面板組件(行)均存儲(chǔ)為一個(gè) CRow 指針列表,因此,我們要向面板添加的每個(gè)組件,都必須擴(kuò)展 CRow 類。CRow 可被視為此面板與其組件之間的一個(gè)協(xié)議。CTable 并不包含供其單元格計(jì)算的任何代碼。那是 CRow 擴(kuò)展類的責(zé)任。CTable 只是保留 CRow 組件并于必要時(shí)重繪它們的一種結(jié)構(gòu)。

我們從頭到尾看一看 CTable 的方法。此類擁有兩個(gè)構(gòu)造函數(shù)。第一個(gè)用于多時(shí)間表模式且非常簡(jiǎn)單。我們只需要提供一個(gè)想要顯示的時(shí)間表數(shù)組。

//+------------------------------------------------------------------ //| 多時(shí)間幀模式構(gòu)造函數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | //+------------------------------------------------------------------ CTable::CTable(ENUM_TIMEFRAMES &tfs[]) ?{ //--- 復(fù)制所有時(shí)間幀至數(shù)組 ? ArrayResize(timeframes,ArraySize(tfs),0); ? ArrayCopy(timeframes,tfs); ? tfMode=true; ? //--- 用當(dāng)前圖表交易品種填充數(shù)組 ? ArrayResize(symbols,ArraySize(tfs),0); ? for(int i=0; i<ArraySize(tfs); i++) ? ? ?symbols[i]=Symbol(); //--- 設(shè)置默認(rèn)參數(shù) ? Init(); ?}

第二個(gè)構(gòu)造函數(shù)用于多貨幣模式,并接受交易品種(工具)數(shù)組。此構(gòu)造函數(shù)亦發(fā)送 SpyAgents。它會(huì)將 SpyAgents 一個(gè)一個(gè)地附至適當(dāng)?shù)膱D表。

//+------------------------------------------------------------------ //| 對(duì)貨幣對(duì)模式構(gòu)造函數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| //+------------------------------------------------------------------ CTable::CTable(string &symb[]) ?{ //--- 復(fù)制所有交易品種至自己的數(shù)組 ? ArrayResize(symbols,ArraySize(symb),0); ? ArrayCopy(symbols,symb); ? tfMode=false; ? //--- 用當(dāng)前時(shí)間幀填充數(shù)組 ? ArrayResize(timeframes,ArraySize(symb),0); ? ArrayInitialize(timeframes,Period()); //--- 設(shè)置默認(rèn)參數(shù) ? Init(); //--- 發(fā)送 SpyAgents 至每個(gè)請(qǐng)求交易品種 ? for(int x=0; x<ArraySize(symbols); x++) ? ? ?if(symbols[x]!=Symbol()) // 不要發(fā)送 SpyAgent 至自己的圖表 ? ? ? ? if(iCustom(symbols[x],0,"SpyAgent",ChartID(),0)==INVALID_HANDLE) ? ? ? ? ? { ? ? ? ? ? ?Print("設(shè)置 SpyAgent 錯(cuò)誤于 "+symbols[x]); ? ? ? ? ? ?return; ? ? ? ? ? } ?}

Init 方法會(huì)創(chuàng)建行列表(作為一個(gè) CList 對(duì)象 - CList 是一種 CObject 類型的動(dòng)態(tài)列表)并設(shè)置 CTable 內(nèi)部變量(字體、字號(hào)、顏色、單元格尺寸以及與圖表右上角的距離)的默認(rèn)值。


股票量化軟件:赫茲量化中面向?qū)ο蠓ń⒍鄷r(shí)間表及多貨幣面板的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
屏东市| 郑州市| 延庆县| 远安县| 通山县| 德安县| 化州市| 玉山县| 林口县| 怀柔区| 台江县| 田东县| 平和县| 定襄县| 察雅县| 双牌县| 望江县| 邢台市| 温泉县| 巍山| 轮台县| 岳普湖县| 孟州市| 平泉县| 吉首市| 乌苏市| 祥云县| 金坛市| 永仁县| 宿松县| 三门县| 锦屏县| 名山县| 滦南县| 平原县| 西吉县| 张家界市| 花莲县| 新竹市| 利川市| 滨海县|