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