金字塔決策交易系統(tǒng)—高級(jí)教程(2016修訂版)
《金字塔決策交易系統(tǒng)—高級(jí)教程(2016修訂版)》由會(huì)員分享,可在線閱讀,更多相關(guān)《金字塔決策交易系統(tǒng)—高級(jí)教程(2016修訂版)(99頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
金字塔決策交易系統(tǒng)初級(jí)教程 上海金之塔信息技術(shù)有限公司 2016 金字塔決策交易系統(tǒng) 高級(jí)教程 l 本教程主要介紹金字塔的后臺(tái)程序化交易,VBA、C++二次開發(fā)的編程。 目錄 目錄 2 第一章 金字塔的后臺(tái)程序化交易 1 1.1后臺(tái)程序化工作機(jī)理 1 1.2 后臺(tái)程序化交易函數(shù) 2 1.3 后臺(tái)套利模型范例 5 1.4 后臺(tái)程序化的啟用 7 1.5 后臺(tái)程序化的調(diào)試 8 1.6 后臺(tái)程序化注意事項(xiàng) 10 第二章 圖表交易和后臺(tái)交易的主要區(qū)別和聯(lián)系 12 2.1 圖表、交易函數(shù)的區(qū)別 12 2.11 圖表交易函數(shù) 12 2.12 后臺(tái)交易函數(shù) 12 2.3圖表交易和后臺(tái)交易的主要區(qū)別 13 第三章 基于VBA的二次開發(fā) 14 3.1金字塔VBA與OFFICE VBA區(qū)別和聯(lián)系 14 3.2 VBA 原理的隱喻 14 3.3 VBA 簡(jiǎn)介 15 3.3.1VBA 及其IDE 初步 15 3.3.2模塊、函數(shù)和過(guò)程 18 3.3.3數(shù)據(jù)類型和變量 20 3.3.4VBA 語(yǔ)言基礎(chǔ) 23 3.3.5用戶窗體 29 3.4金字塔的對(duì)象模型 33 3.4.1Application 對(duì)象 34 3.4.2Order 對(duì)象 36 3.4.3MarketData 對(duì)象 45 3.4.4 ReportData對(duì)象 49 3.4.5 HistoryData 對(duì)象 50 3.4.6 Document對(duì)象 52 3.4.7 Frame 對(duì)象 54 3.4.8 Grid對(duì)象 56 3.4.9 Formula 對(duì)象 62 3.4.10 NetWork 對(duì)象 63 3.4.11 TestReport 對(duì)象 65 第四章 VBA實(shí)用范例 75 4.1 跨期套利交易范例 75 4.2 金字塔VBA指標(biāo)調(diào)用數(shù)據(jù)庫(kù)教程 76 4.2.1數(shù)據(jù)庫(kù)的準(zhǔn)備工作(vba使用數(shù)據(jù)庫(kù)首先我們需要連接數(shù)據(jù)庫(kù)) 76 4.2.2 數(shù)據(jù)庫(kù)操作方法(具體代碼和注釋<使用時(shí)選取需要的代碼只要稍許修改>) 77 第五章 基于C++二次開發(fā) 85 5.1使用金字塔C++ API開發(fā)策略的優(yōu)勢(shì) 85 5.2金字塔的C++ API與主程序的組織結(jié)構(gòu) 86 5.3金字塔的接口范例下載與簡(jiǎn)要說(shuō)明 86 5.3.1 API接口報(bào)價(jià)行情訂閱 86 5.3.2報(bào)價(jià)行情變化通知 87 5.3.3獲取指定市場(chǎng)全部合約報(bào)價(jià) 87 5.3.4歷史數(shù)據(jù)的獲取 87 5.3.5下單委托指令 88 5.3.6訂單狀態(tài)推送回報(bào) 88 5.3.7策略編寫調(diào)試與跟蹤 89 5.3.8API接口更多功能信息 90 第六章 自定義PEL函數(shù) 91 6.1 使用VBA自定義PEL函數(shù) 91 6.1.1自定義函數(shù)的格式 91 6.1.2自定義函數(shù)的兩種工作模式 92 6.2 使用C++DLL擴(kuò)展函數(shù)程序調(diào)用 94 金字塔決策交易系統(tǒng)高級(jí)教程 第一章 金字塔的后臺(tái)程序化交易 金字塔提供功能性和擴(kuò)展性更為強(qiáng)大的基于后臺(tái)預(yù)警模式的程序化交易模式(后臺(tái)程序化),可以在不影響用戶前臺(tái)圖形操作的情況下,高效地與預(yù)警系統(tǒng)一起工作,實(shí)現(xiàn)自動(dòng)交易。由于該模式運(yùn)行在后臺(tái),不需要打開圖表占用過(guò)多的資源,且只需最后一個(gè)周期的信號(hào),所以原則上公式不做多余計(jì)算,效率高,便于對(duì)多個(gè)品種同一個(gè)策略進(jìn)行輪循監(jiān)控。 從某種意義講,后臺(tái)程序化屬于圖表程序的深化,它的優(yōu)點(diǎn)是更注重于策略的高效執(zhí)行,更完美地實(shí)現(xiàn)策略的設(shè)計(jì)初衷。雖然后臺(tái)程序化的功能強(qiáng)大,但用戶切忌直接使用后臺(tái)策略,而跳過(guò)學(xué)習(xí)圖表程序化的過(guò)程。原因是在后臺(tái)程序化中用戶無(wú)法直接在圖表上看到信號(hào)的整個(gè)出現(xiàn)過(guò)程,因此對(duì)用戶的公式編寫水平有一定的要求。其次,用戶需要對(duì)金字塔的后臺(tái)交易系統(tǒng)工作機(jī)理有比較深的了解,并且要對(duì)自己的公式系統(tǒng)有清晰的認(rèn)識(shí),這樣一旦遇到問(wèn)題也能及時(shí)找到原因。后臺(tái)交易過(guò)程中,一旦遇到問(wèn)題,需要客戶掌握第八章后臺(tái)程序化交易調(diào)試的技巧。以我們多年的經(jīng)驗(yàn)來(lái)看,用戶先將策略經(jīng)測(cè)評(píng)、優(yōu)化、圖表實(shí)盤上運(yùn)行后,再轉(zhuǎn)化成后臺(tái)策略,會(huì)取得非常好的效果。 1.1后臺(tái)程序化工作機(jī)理 在初級(jí)教程中,我們介紹了基于虛擬數(shù)據(jù)技術(shù)的圖表程序化交易。想必經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),大家已將圖表程序化運(yùn)用的相當(dāng)純熟。不過(guò)當(dāng)你進(jìn)行實(shí)盤的時(shí)候,是否發(fā)現(xiàn)在某些情況下,例如碰到未成交單、未完全成交單、需要進(jìn)行追撤單等更精細(xì)的下單操作時(shí),圖表程序化就束手無(wú)策了。這是由于圖表基于虛擬數(shù)據(jù)的特性,無(wú)法與真實(shí)賬戶進(jìn)行交互,虛擬數(shù)據(jù)的成交并不考慮實(shí)盤的的流動(dòng)性情況,只要價(jià)格達(dá)到即成交。而實(shí)際情況可能并不是這樣。 另一方面,當(dāng)圖表程序化碰上多品種、多策略、或者較復(fù)雜的策略時(shí),有時(shí)系統(tǒng)會(huì)顯得相對(duì)較慢、不流暢。這是由于圖表需要計(jì)算大量以往的歷史數(shù)據(jù)進(jìn)行判斷操作,并在圖表上進(jìn)行輸出。這消耗了相當(dāng)多的資源。但實(shí)盤并不需要考慮歷史曾經(jīng)如何,實(shí)時(shí)交易需要考慮的是如何高效的執(zhí)行,其實(shí)只需根據(jù)最后一根K線上的數(shù)據(jù),來(lái)確定開平倉(cāng)的動(dòng)作。這也就是例如DYNAINFO等這些常數(shù)函數(shù)無(wú)法進(jìn)行測(cè)評(píng)而實(shí)盤的公式確可以用的主要原因,因?yàn)镈YNAINFO只有最新的一筆行情數(shù)據(jù),而沒(méi)有歷史的序列數(shù)據(jù)。金字塔后臺(tái)程序化也是這個(gè)道理,因?yàn)榻鹱炙暮笈_(tái)程序化只注重交易,因此無(wú)法用來(lái)測(cè)評(píng)。 總結(jié)一下,金字塔的后臺(tái)程序化交易是金字塔很大的特色。從工作機(jī)制的角度看,后臺(tái)程序化在沿用PEL語(yǔ)言體系的情況下,為用戶創(chuàng)造了近似VB、C++才能達(dá)到的精細(xì)化、高效快捷程序化下單模式。因此它特別適合那些多周期、多策略、多品種的組合交易以及對(duì)效率要求較高的套利交易,為您的交易帶來(lái)無(wú)與倫比的便捷。 1.2 后臺(tái)程序化交易函數(shù) 金字塔的后臺(tái)程序化交易只能在專業(yè)版及更高級(jí)的版本中使用,它可以運(yùn)行在序列和逐K線兩種模式,但是推薦序列模式運(yùn)行,這樣可以極大提高后臺(tái)執(zhí)行的效率。 為了讓用戶更快的編寫和熟悉金字塔的后臺(tái)程序化交易,金字塔的程序化交易函數(shù),前面都在交易系統(tǒng)函數(shù)名稱前加 T 字母,比如BUY改為TBUY, 使用方法大致相同,用戶仔細(xì)注意查看函數(shù)的使用說(shuō)明。與圖表交易系統(tǒng)函數(shù)不同的是,后臺(tái)程序化交易的函數(shù)都使用實(shí)際的用戶持倉(cāng)和資金。 讓我們通過(guò)案例來(lái)學(xué)習(xí)后臺(tái)程序化交易函數(shù)。 例1:MA指標(biāo)后臺(tái)公式 //中間變量 MA3:MA(C,3); MA5:MA(C,5); //交易系統(tǒng) TBUY(CROSS(MA3,MA5),1,LMT,C); //按照最新價(jià)限價(jià)開多 TSELL(CROSS(MA5,MA3),0,LMT,C);//按照最新價(jià)限價(jià)平多,0表示平掉全部持倉(cāng) 請(qǐng)注意TBUY和TSELL函數(shù)的參數(shù)出現(xiàn)了變化,真正的下單時(shí),需要指定下單類型和價(jià)格的,否則系統(tǒng)會(huì)按照市價(jià)進(jìn)行交易。 用以模擬交易的函數(shù)和真實(shí)交易的函數(shù),大部分只是有了前面T字母差別,大部分的用以交易評(píng)測(cè)的交易系統(tǒng),只要將交易函數(shù)部分前面加T字母即可解決,唯一區(qū)別最大的就是TBUY,TSELL,TBUYSHORT,TSELLSHORT 這4個(gè)函數(shù)與模擬交易用的函數(shù)區(qū)別較大,請(qǐng)仔細(xì)辨別。 請(qǐng)注意后臺(tái)程序化交易不能使用圖表交易功能,且圖表交易和后臺(tái)交易的函數(shù)不能混用。交易控制符 THISCLOSE 在真實(shí)交易中被 LMT 等真實(shí)交易控制符所取代,金字塔的模擬交易控制符和真實(shí)交易控制符兩者不能通用。金字塔的真實(shí)下單函數(shù)只支持LMT限價(jià) MKT市價(jià) STP止損 STPLMT限價(jià)止損 這4個(gè)交易控制符。 真實(shí)下單交易函數(shù),下單數(shù)量不再支持百分比模式。 程序化交易的函數(shù)介紹: 程序化交易系統(tǒng)之開多操作: 用法:TBUY(COND,V,[Type,P1,P2,AC,STOCK]);表示當(dāng)COND條件成立時(shí), 買入V股(手)當(dāng)前品種, TYPE表示開倉(cāng)類型,LMT限價(jià) MKT市價(jià) STP止損 STPLMT限價(jià)止損 P1表示開倉(cāng)價(jià)格,當(dāng)TYPE為L(zhǎng)MT和STP,STPLMT時(shí)為指定限價(jià)和止損價(jià)格,其他情況填0 P2為止損限價(jià),當(dāng)TYPE為STPLMT時(shí),必須指定P2的止損限價(jià),其他情況填0,當(dāng)P1止損價(jià)觸發(fā)時(shí)按照P2價(jià)格止損操作. 當(dāng)TYPE參數(shù)省略時(shí),為市價(jià)開倉(cāng)。AC為帳戶ID,為空時(shí)為系統(tǒng)默認(rèn)帳戶,否則將下單到指定帳戶中 STOCK為品種代碼,比如SH600215,為空或者不填時(shí)為當(dāng)前品種 后臺(tái)程序化交易不能使用圖表交易功能,且圖表交易和后臺(tái)交易的函數(shù)不能混用。例如,限價(jià)在圖表中函數(shù)為L(zhǎng)imit,后臺(tái)為L(zhǎng)mt。市價(jià)在圖表是函數(shù)Market,在后臺(tái)是Mkt。 例如:TBUY(C>O ,1000,LMT,C);表示收陽(yáng)線則在本周期收盤價(jià)上買入1000股(手)。 TBUY(C>0,1000,STP,CLOSE+0.2);表示收陽(yáng)線則在本周期收盤價(jià)高于0.2元下1000股(手)止損單,當(dāng)盤中價(jià)格到了觸發(fā)價(jià)時(shí)按市價(jià)開倉(cāng)止損. TBUY(C>0,1000,STPLMT,CLOSE+0.2,CLOSE);表示收陽(yáng)線則在本周期收盤價(jià)高于0.2元下1000股(手)止損單,當(dāng)盤中價(jià)格到了觸發(fā)價(jià)時(shí)按CLOSE價(jià)格開倉(cāng)止損。 程序化交易系統(tǒng)之平多操作: TSELL(COND,V,[Type,P1,P2,AC,STOCK]); 用法同上 程序化交易系統(tǒng)之開空操作: TBUYSHORT(COND,V,[Type,P1,P2,AC,STOCK]); 用法同上 程序化交易系統(tǒng)之平空操作: TSELLSHORT(COND,V,[Type,P1,P2,AC,STOCK]); 用法同上 注意:程序化交易系統(tǒng)的函數(shù)中交易類型Type與交易測(cè)試系統(tǒng)的差別 例2:唐奇安通道模型 //中間變量 input:N(20,5,100,1),NS(10,0,60,1); Price:=AVGENTERPRICE;//持倉(cāng)價(jià)位 //交易條件 開多平空條件:=CROSS(H, hhv(ref(h,1),N)); 開空平多條件:=CROSS(llv(ref(l,1), N),L); //交易系統(tǒng) SELLSHORT(開多平空條件 and 持倉(cāng)<0,持倉(cāng),market); SELLSHORT(持倉(cāng)<0,持倉(cāng),Stopr,Price+NS); //止損 BUY(開多平空條件 and 持倉(cāng)=0,30%,market); SELL(開空平多條件 and 持倉(cāng)>0,持倉(cāng),market); SELL(持倉(cāng)>0,持倉(cāng),Stopr,Price-NS);//止損 BUYSHORT(開空平多條件 and 持倉(cāng)=0,30%,market); //其他 資產(chǎn):asset,noaxis,colorgreen; 持倉(cāng):HOLDING,LINETHICK0; 總次數(shù): TOTALTRADE,LINETHICK0; 盈利:NUMWINTRADE,LINETHICK0; 勝率:ROUNDS(100*PERCENTWIN,1),LINETHICK0; 連虧:MAXSEQLOSS,LINETHICK0; 連盈:MAXSEQWIN,LINETHICK0; 將交易模型轉(zhuǎn)換成程序化交易系統(tǒng),主要是涉及交易系統(tǒng)函數(shù)的轉(zhuǎn)化,即在交易系統(tǒng)函數(shù)前加“t”,以及交易類型的改動(dòng);并且程序化交易函數(shù)都是在后臺(tái)運(yùn)行,不能在圖表中顯示;交易數(shù)量不能用30%的寫法,只能用具體數(shù)量。 因此,唐奇安通道模型轉(zhuǎn)化為可程序化交易的系統(tǒng): //中間變量 input:N(20,0,60,1) ,NS(30,0,100,1); 持倉(cāng):=tHOLDING,LINETHICK0; KCS:= intpart(tasset*0.3/(close*multiplier));//也表示30%的開倉(cāng)數(shù) BUY1:=hhv(ref(h,1),N); SELL1:=llv(ref(l,1),N); Price:=tAVGENTERPRICE; //持倉(cāng)價(jià)位 //交易條件 開多平空條件:=CROSS(H,BUY1); 開空平多條件:=CROSS(SELL1,L); //交易系統(tǒng) TSELLSHORT(開多平空條件 and 持倉(cāng)<0,t持倉(cāng),mkt); TSELLSHORT(持倉(cāng)<0,持倉(cāng),Stp,Price+NS); TBUY(開多平空條件 and 持倉(cāng)=0, KCS,mkt); TSELL(開空平多條件 and 持倉(cāng)>0,持倉(cāng),mkt); TSELL(持倉(cāng)>0,持倉(cāng),Stp,Price-NS); TBUYSHORT(開空平多條件 and 持倉(cāng)=0, KCS,mkt); 若想與交易模型完全一樣,后6句則需這樣寫: tSELLSHORT(ref(開多平空條件,1) and 持倉(cāng)<0,t持倉(cāng),mkt); tSELLSHORT(持倉(cāng)<0,持倉(cāng),Stp,Price+NS); tBUY(ref(開多平空條件,1) and 持倉(cāng)=0, KCS,mkt); tSELL(ref(開空平多條件,1) and 持倉(cāng)>0,t持倉(cāng),mkt); tSELL(持倉(cāng)>0,持倉(cāng),Stp,Price-NS); tBUYSHORT(ref(開空平多條件,1) and 持倉(cāng)=0, KCS,mkt); 注意:在公式編輯中,點(diǎn)擊 [ << ] 可彈出函數(shù)列表,可按類查找需要的函數(shù),雙擊該函數(shù)將直接引入公式。公式中的藍(lán)色字段為函數(shù)名,將鼠標(biāo)放在未知的藍(lán)色字段上,將看到該函數(shù)的描述和基本用法。 1.3 后臺(tái)套利模型范例 基于后臺(tái)程序化效率高、操作靈活的特性,用來(lái)處理對(duì)價(jià)格異常敏感的套利交易就非常合適了。以下我們選取了常見(jiàn)的集中情況作為范例。 (1)簡(jiǎn)單價(jià)差類型的套利模型 C1 為兩個(gè)品種的價(jià)差。 當(dāng)價(jià)差小于 300 時(shí),買入開倉(cāng)前一品種RB05,賣出開倉(cāng)后一品種RB03 當(dāng)價(jià)差大于500時(shí),賣出平倉(cāng)前一品種,買入平倉(cāng)后一品種 當(dāng)價(jià)差大于 600 時(shí),賣出開倉(cāng)前一品種,買入開倉(cāng)后一品種 當(dāng)價(jià)差小于400時(shí),買入平倉(cāng)前一品種,賣出平倉(cāng)后一品種 由于涉及到需要同時(shí)下單到不同的品種,這里直接使用后臺(tái)程序化交易系統(tǒng)編寫。 //中間變量 C1:= “RB05$close”-“RB03$close”; //交易系統(tǒng) TBUY(CROSS(300,C1),10, mkt,0,0,,SQRB05);//開多 TBUYSHORT(CROSS(300,C1),10,mkt, 0,0,,SQRB03); //開空 TSELL(CROSS(C1,500),10,mkt, 0,0,, SQRB05); //平多 TSELLSHORT(CROSS (C1,500),10,mkt, 0,0, , SQRB03); //平空 TBUYSHORT(CROSS(C1,600),10,mkt, 0,0, ,SQRB05); //開空 TBUY(CROSS(C1,600),10, mkt, 0,0,, SQRB03);//開多 TSELLSHORT(CROSS (400,C1),10,mkt, 0,0, , SQRB05); //平空 TSELL(CROSS (400,C1),10,mkt, 0,0, , SQRB03); //平多 注意在后臺(tái)程序化交易監(jiān)控中,用戶至少需要監(jiān)控RB05或者RB03其中的一個(gè)。 (2)如何編制技術(shù)指標(biāo)的套利模型: //中間變量 C1:= “RB05$close”-“RB03$close”; DIFF := EMA(C1,12) - EMA(C1,26); DEA := EMA(DIFF,9); MACD:=2*(DIFF-DEA); //交易條件 平空開多條件 :=MACD>0; 平多開空條件 :=MACD<0; //交易系統(tǒng) TSELLSHORT(平多開空條件,10, mkt, 0,0, , SQRB03); //平空 TBUY(平空開多條件,10,mkt, 0,0,, SQRB05);//開多 TSELL(平多開空條件,10, mkt, 0,0,, SQRB05); //平多 TBUYSHORT(平空開多條件,10,mkt, 0,0, , SQRB03); //開空 (3)如何編制技術(shù)指標(biāo)的多賬戶模型: 賬戶1:16801 賬戶2:16802 //中間變量 DIFF := EMA(C,12) - EMA(C,26); DEA := EMA(DIFF,9); MACD:=2*(DIFF-DEA); //交易系統(tǒng) IF THOLDING<0 THEN BEGIN TSELLSHORT(MACD>0 and THOLDING<0, THOLDING, mkt, 0,0,16801); //平空 TSELLSHORT(MACD>0,10, mkt, 0,0, 16802); //平空 END IF THOLDING=0 THEN BEGIN TBUY(MACD>0 and THOLDING=0,10,mkt, 0,0, 16801);//開多 TBUY(MACD>0,10,mkt, 0,0, 16802);//開多 END IF THOLDING>0 THEN BEGIN TSELL(MACD<0 and THOLDING>0, THOLDING,10, mkt, 0,0,16801); //平多 TSELL(MACD<0,10, mkt, 0,0,16802); //平多 END IF THOLDING=0 THEN BEGIN TBUYSHORT(MACD<0 and THOLDING=0,10,mkt, 0,0,16801); //開空 TBUYSHORT(MACD<0,10,mkt, 0,0, 16802); //開空 END 所有上述模型僅供參考,據(jù)此交易風(fēng)險(xiǎn)自負(fù)。 更多范例請(qǐng)登陸 金字塔論壇——策略發(fā)布區(qū) http:/www.weistock.com/bbs/index.asp?boardid=10 1.4 后臺(tái)程序化的啟用 選擇“交易→后臺(tái)程序化交易”或按Ctrl + A會(huì)出現(xiàn)圖7.3本地預(yù)警交易。 圖1.41本地預(yù)警交易 (1)選“新增條件”,將出現(xiàn)圖7.4程序化條件設(shè)定 圖1.42程序化條件設(shè)定 (2) 參數(shù)設(shè)置 第一步:首先,點(diǎn)“指標(biāo)公式”,選擇你的模型和使用周期; 第二步:加入要監(jiān)控的品種; 第三步:其它各種設(shè)置, 注意:打勾“允許程序化交易”,其中,可將“下單需手工確認(rèn)”關(guān)閉,如勾選自定義分品種下單,會(huì)出現(xiàn)確認(rèn)對(duì)話框,請(qǐng)用戶詳看出現(xiàn)的每一個(gè)提示確認(rèn)對(duì)話框;設(shè)定“預(yù)警時(shí)間間隔”及“時(shí)間范圍啟用”;等等然后按“確認(rèn)” ; 最后點(diǎn)擊“啟動(dòng)預(yù)警”。 (3)在程序化交易過(guò)程中,用戶可隨時(shí)點(diǎn)擊【監(jiān)控】,觀察系統(tǒng)運(yùn)行情況,并可在信心爆棚時(shí),手工加減倉(cāng)干預(yù)。如圖7.5程序化交易明細(xì) 1.43程序化交易明細(xì) 1.5 后臺(tái)程序化的調(diào)試 如前文所述,后臺(tái)程序化需要用戶對(duì)金字塔的后臺(tái)交易系統(tǒng)工作機(jī)理有比較深的了解,并且要對(duì)自己的公式系統(tǒng)有清晰的認(rèn)識(shí),現(xiàn)在,我們就將講解的后臺(tái)自動(dòng)交易的調(diào)試內(nèi)容,這是每個(gè)后臺(tái)自動(dòng)交易編寫用戶所必須掌握的基本的能力要求,只有用戶掌握了調(diào)試技巧,才能在金字塔的平臺(tái)上做出有效而又符合要求的后臺(tái)自動(dòng)化交易模型。 供后臺(tái)調(diào)試金字塔提供了兩個(gè)函數(shù) DEBUGOUT 和 DEBUGFILE,其中DEBUGOUT是只針對(duì)程序化交易使用,在Ctrl+A預(yù)警設(shè)置窗口點(diǎn)擊“監(jiān)控”按鈕后的程序化交易監(jiān)控窗口,將顯示出當(dāng)前每個(gè)品種的監(jiān)控過(guò)程以及下單動(dòng)作。 圖1.5 DEBUGOUT函數(shù)的描述如下: DEBUGOUT(STR,NUM),STR為用戶指定輸出的一個(gè)行文字,NUM為用戶指定的一個(gè)監(jiān)控?cái)?shù)字. 例如:DEBUGOUT(當(dāng)前資產(chǎn)為%.2f, TASSET),將在程序化交易的監(jiān)控部分打印出來(lái) "當(dāng)前資產(chǎn)為1234.00",(假設(shè)當(dāng)前的資產(chǎn)為1234) "%.2f"為一個(gè)打印的控制符號(hào),系統(tǒng)會(huì)將他替換為指定的一個(gè)數(shù)字輸出,%.2f為顯示兩位小數(shù),%.0f則表示不顯示小數(shù). 用戶最常見(jiàn)的問(wèn)題就是,從圖表上看明明應(yīng)該某個(gè)時(shí)間段應(yīng)該是開平倉(cāng)了,但是結(jié)果確沒(méi)有反應(yīng),后臺(tái)并沒(méi)有按預(yù)計(jì)發(fā)出交易指令,這種情況用戶一般需要基于下面原因考慮: (1)用于交易的品種歷史數(shù)據(jù)是否補(bǔ)齊,因?yàn)榻鹱炙臍v史數(shù)據(jù)是基于點(diǎn)播模式補(bǔ)充的,處于后臺(tái)交易的品種如果缺失數(shù)據(jù)將會(huì)導(dǎo)致交易信號(hào)出現(xiàn)不可預(yù)料的情況。 (2)用戶所選擇的交易系統(tǒng)周期是否合理,預(yù)警監(jiān)控間隔時(shí)間是否合理,甚至用戶是否選中了“允許程序化交易”復(fù)選框。 (3)用戶的TBUY等交易指令在多帳戶交易時(shí),市價(jià)委托是否指定了交易價(jià)格,常見(jiàn)錯(cuò)誤是用戶認(rèn)為指定MKT指令后就不用填寫價(jià)格了,應(yīng)該填0補(bǔ)充。 比如: MA3:MA(C,3); MA5:MA(C,5); 開多條件:= CROSS(MA3,MA5); 平多條件:= CROSS(MA5,MA3); TBUY(開多條件,1,LMT,C); //按照最新價(jià)限價(jià)開多 TSELL(平多條件,0,LMT,C); //按照最新價(jià)限價(jià)平多,0表示平掉全部持倉(cāng) 這樣一個(gè)簡(jiǎn)單的公式,是否出現(xiàn)交易信號(hào),完全取覺(jué)于BK和平多條件這兩個(gè)變量的計(jì)算結(jié)果,只要這樣 MA3:MA(C,3); MA5:MA(C,5); 開多條件:= CROSS(MA3,MA5); 平多條件:= CROSS(MA5,MA3); DEBUGOUT(‘開多條件=%.0f’,開多條件); DEBUGOUT(‘平多條件=%.0f’,平多條件); TBUY(開多條件,1,LMT,C); //按照最新價(jià)限價(jià)開多 TSELL(平多條件,0,LMT,C); //按照最新價(jià)限價(jià)平多,0表示平掉全部持倉(cāng) 這樣用戶就可以一直在程序化交易監(jiān)控窗口看到整個(gè)變量在不斷循環(huán)中的值變化了,給用戶帶來(lái)了調(diào)試的機(jī)會(huì)。但是上述的只表達(dá)了開多條件,平多條件這兩個(gè)信號(hào),可能并不能讓用戶最終找到問(wèn)題原因,要找到,用戶可能還得將MA3,MA5的變量值變化也打印輸出,只要一直這樣往上逐個(gè)篩選每個(gè)結(jié)果數(shù)據(jù),就能最終找到問(wèn)題的原因。 金字塔的另一個(gè)非常重要函數(shù)DEBUGFILE,可以將調(diào)試日志記錄文件中,方便用戶查詢更長(zhǎng)的歷史記錄,如果用戶不習(xí)慣使用DEBUGOUT的窗口輸出模式,可以使用DEBUGFILE做輸出,使用其他文本工具打開。另外,DEBUGFILE與DEBUGOUT不同之處在于他不限于一定運(yùn)行在后臺(tái)程序化交易環(huán)境中,DEBUGFILE描述如下: 用法:DEBUGFILE(PATH,STR,NUM),PATH為用戶的本地計(jì)算機(jī)路徑,STR為用戶指定輸出的一個(gè)行文字,NUM為用戶指定的一個(gè)監(jiān)控?cái)?shù)字. 例如:DEBUGFILE(D:\TEST.TXT,當(dāng)前資產(chǎn)為%.2f,1234),將在程序化交易的監(jiān)控部分輸出到D:\TEST.TXT文件, "當(dāng)前資產(chǎn)為1234.00","%.2f"為一個(gè)打印的控制符號(hào),系統(tǒng)會(huì)將他替換為指定的一個(gè)數(shù)字輸出,%.2f為顯示兩位小數(shù),%.0f則表示不顯示小數(shù)。 此外金字塔提供的另一個(gè)MSGOUT函數(shù),通過(guò)在消息窗口自行輸出字符串信息,也可以起到很好的調(diào)試作用。 最后我們講一下日志記錄功能,此功能會(huì)記錄下您本地所有的下單情況。如何啟動(dòng)記錄日志:選擇“交易”菜單->下單設(shè)置->程序化交易->將“記錄下單日志”打勾。打勾的同時(shí),會(huì)提醒您日志所保存的文件路徑。 在圖表交易和后臺(tái)自動(dòng)交易的甚至手工下單的過(guò)程中,金字塔會(huì)將與交易有關(guān)的動(dòng)作記錄在內(nèi),便于用戶查找和分析問(wèn)題原因。 1.6 后臺(tái)程序化注意事項(xiàng) (1) 圖表BUY等顯示函數(shù)是不能放在后臺(tái)做監(jiān)控交易的,但是將"允許程序化交易"勾去掉后單獨(dú)做預(yù)警是可以的。 (2)只有少數(shù)的帶T的后臺(tái)交易函數(shù)允許使用在BUY前臺(tái)圖表交易策略中. Tholding, TAVGENTERPRICE,Taccount,Tasset,但是金字塔強(qiáng)烈不建議使用,因?yàn)檫@樣會(huì)造成圖表上的交易信號(hào)與實(shí)際的下單記錄不符。 (3)金字塔的后臺(tái)交易部分,使用手工閃電下單的記錄,將無(wú)法通過(guò)比如TENTERPRICE等與交易記錄有關(guān)函數(shù)中得到結(jié)果,但可以通過(guò)程序化交易監(jiān)控中的手工下單干預(yù)功能完成此項(xiàng)目的。 (4)金字塔的后臺(tái)交易,查詢持倉(cāng)和資產(chǎn)均為用戶當(dāng)前的實(shí)際數(shù)值,如果多個(gè)策略同時(shí)多一個(gè)品種或通一個(gè)帳戶進(jìn)行操作會(huì)產(chǎn)生相互干擾現(xiàn)象,解決辦法就是通過(guò)使用交易系統(tǒng)使用虛擬持倉(cāng)和資金,這樣就完全可以避免這種共振現(xiàn)象,但是推薦高級(jí)用戶使用,因?yàn)樾枰芏嗉记尚枰幚怼? (5)用以圖表顯示的交易系統(tǒng)和后臺(tái)程序化交易的交易指令函數(shù),參數(shù)有明顯的不同,用戶不能簡(jiǎn)單的將BUY函數(shù)加個(gè)T就可以直接后臺(tái)交易,使用前應(yīng)該將鼠標(biāo)放在TBUY函數(shù)上認(rèn)真看看函數(shù)說(shuō)明。 同名交易系統(tǒng)函數(shù)與程序化交易函數(shù)的差別: 函數(shù)意義 前臺(tái)圖表交易模型 后臺(tái)交易系統(tǒng) 開多 BUY TBUY 平多 SELL TSELL 開空 BUYSHORT TBUYSHORT 平空 SELLSHORT TSELLSHORT 其中TYPE:次周期限價(jià) LIMIT REF(條件,1),LMT TYPE:本周期限價(jià) LIMITR LMT TYPE:次周期停損 STOP REF(條件,1),STP TYPE:本周期停損 STOPR STP TYPE:次周期市價(jià) MARKET REF(條件,1),MKT TYPE:本周期市價(jià) MARKETR MKT 開倉(cāng)百分比 30% KCS:= intpart(tasset*0.3/MULTIPLIER/close); 語(yǔ)句 語(yǔ)句 T語(yǔ)句 函數(shù) 可在圖表上顯示 不能在圖表上顯示 總之,通過(guò)函數(shù)列表,了解他們的細(xì)微差別。 第二章 圖表交易和后臺(tái)交易的主要區(qū)別和聯(lián)系 2.1 圖表、交易函數(shù)的區(qū)別 2.11 圖表交易函數(shù) BUY 開多 BUYSHORT 開空 SELL 平多 SELLSHORT 平空 適用于圖表程序式交易模式,本函數(shù)中可以設(shè)置下單條件、下單手?jǐn)?shù)、下單價(jià)格等參數(shù)。這種交易函數(shù)優(yōu)點(diǎn)在于可以將本交易函數(shù)套用到若干個(gè)循環(huán)邏輯判斷語(yǔ)句中,對(duì)下單手?jǐn)?shù)靈活設(shè)置,對(duì)下單價(jià)格靈活的掌控,與之配套使用的各類函數(shù)較多,因此能夠用于實(shí)現(xiàn)較為復(fù)雜的交易模型;缺點(diǎn)是沒(méi)有參數(shù)設(shè)置賬戶名、下單品種、只能運(yùn)行在逐K線模式等。 例2.1: BUY(vol/ref(vol,1)>3 AND CLOSE>OPEN , 1 ,LIMIT ,CLOSE ); SELL(vol/ref(vol,1)>3 AND CLOSE- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 金字塔 決策 交易系統(tǒng) 高級(jí) 教程 2016 修訂版
鏈接地址:http://www.820124.com/p-10718303.html