




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、上海金之塔信息技術(shù)有限公司2016金字塔決策交易系統(tǒng)高級(jí)教程上海金之塔信息技術(shù)有限公司2016金字塔決策交易系統(tǒng)高級(jí)教程本教程主要介紹金字塔的后臺(tái)程序化交易,VBA、C+二次開(kāi)發(fā)的編程。目錄TOC o 1-3 h z u HYPERLINK l _Toc453071879 目錄 PAGEREF _Toc453071879 h 2 HYPERLINK l _Toc453071880 第一章 金金字塔的的后臺(tái)程程序化交交易 PAGEREF _Toc453071880 h 1 HYPERLINK l _Toc453071881 1.1后臺(tái)臺(tái)程序化化工作機(jī)機(jī)理 PAGEREF _Toc45307188
2、1 h 1 HYPERLINK l _Toc453071882 1.2 后后臺(tái)程序序化交易易函數(shù) PAGEREF _Toc453071882 h 2 HYPERLINK l _Toc453071883 1.3 后后臺(tái)套利利模型范范例 PAGEREF _Toc453071883 h 5 HYPERLINK l _Toc453071884 1.4 后后臺(tái)程序序化的啟啟用 PAGEREF _Toc453071884 h 7 HYPERLINK l _Toc453071885 1.5 后后臺(tái)程序序化的調(diào)調(diào)試 PAGEREF _Toc453071885 h 8 HYPERLINK l _Toc45307
3、1886 1.6 后后臺(tái)程序序化注意意事項(xiàng) PAGEREF _Toc453071886 h 10 HYPERLINK l _Toc453071887 第二章 圖圖表交易易和后臺(tái)臺(tái)交易的的主要區(qū)區(qū)別和聯(lián)聯(lián)系 PAGEREF _Toc453071887 h 12 HYPERLINK l _Toc453071888 2.1 圖圖表、交交易函數(shù)數(shù)的區(qū)別別 PAGEREF _Toc453071888 h 12 HYPERLINK l _Toc453071889 2.11 圖表交交易函數(shù)數(shù) PAGEREF _Toc453071889 h 12 HYPERLINK l _Toc453071890 2.12
4、后臺(tái)交交易函數(shù)數(shù) PAGEREF _Toc453071890 h 12 HYPERLINK l _Toc453071891 2.3圖表表交易和和后臺(tái)交交易的主主要區(qū)別別 PAGEREF _Toc453071891 h 13 HYPERLINK l _Toc453071892 第三章 基基于VBBA的二二次開(kāi)發(fā)發(fā) PAGEREF _Toc453071892 h 14 HYPERLINK l _Toc453071893 3.1金字字塔VBBA與OFFFICEE VBBA區(qū)別別和聯(lián)系系 PAGEREF _Toc453071893 h 14 HYPERLINK l _Toc453071894 3.2
5、VVBA 原理的的隱喻 PAGEREF _Toc453071894 h 14 HYPERLINK l _Toc453071895 3.3 VVBA 簡(jiǎn)介 PAGEREF _Toc453071895 h 15 HYPERLINK l _Toc453071896 3.3.11VBAA 及其其IDEE 初步步 PAGEREF _Toc453071896 h 15 HYPERLINK l _Toc453071897 3.3.22模塊、函函數(shù)和過(guò)過(guò)程 PAGEREF _Toc453071897 h 18 HYPERLINK l _Toc453071898 3.3.33數(shù)據(jù)類(lèi)類(lèi)型和變變量 PAGEREF
6、_Toc453071898 h 20 HYPERLINK l _Toc453071899 3.3.44VBAA 語(yǔ)言言基礎(chǔ) PAGEREF _Toc453071899 h 23 HYPERLINK l _Toc453071900 3.3.55用戶(hù)窗窗體 PAGEREF _Toc453071900 h 29 HYPERLINK l _Toc453071901 3.4金字字塔的對(duì)對(duì)象模型型 PAGEREF _Toc453071901 h 33 HYPERLINK l _Toc453071902 3.4.11Apppliccatiion 對(duì)象 PAGEREF _Toc453071902 h 34 H
7、YPERLINK l _Toc453071903 3.4.22Ordder 對(duì)象 PAGEREF _Toc453071903 h 36 HYPERLINK l _Toc453071904 3.4.33MarrkettDatta 對(duì)對(duì)象 PAGEREF _Toc453071904 h 45 HYPERLINK l _Toc453071905 3.4.44 ReeporrtDaata對(duì)對(duì)象 PAGEREF _Toc453071905 h 49 HYPERLINK l _Toc453071906 3.4.55 HiistooryDDataa 對(duì)象象 PAGEREF _Toc453071906 h 5
8、0 HYPERLINK l _Toc453071907 3.4.66 Doocummentt對(duì)象 PAGEREF _Toc453071907 h 52 HYPERLINK l _Toc453071908 3.4.77 Frramee 對(duì)象象 PAGEREF _Toc453071908 h 54 HYPERLINK l _Toc453071909 3.4.88 Grrid對(duì)對(duì)象 PAGEREF _Toc453071909 h 56 HYPERLINK l _Toc453071910 3.4.99 Foormuula 對(duì)象 PAGEREF _Toc453071910 h 62 HYPERLINK
9、l _Toc453071911 3.4.110 NNetWWorkk 對(duì)象象 PAGEREF _Toc453071911 h 63 HYPERLINK l _Toc453071912 3.4.111 TTesttRepportt 對(duì)象象 PAGEREF _Toc453071912 h 65 HYPERLINK l _Toc453071913 第四章 VVBA實(shí)實(shí)用范例例 PAGEREF _Toc453071913 h 75 HYPERLINK l _Toc453071914 4.1 跨跨期套利利交易范范例 PAGEREF _Toc453071914 h 75 HYPERLINK l _Toc4
10、53071915 4.2 金金字塔VVBA指指標(biāo)調(diào)用用數(shù)據(jù)庫(kù)庫(kù)教程 PAGEREF _Toc453071915 h 76 HYPERLINK l _Toc453071916 4.2.11數(shù)據(jù)庫(kù)庫(kù)的準(zhǔn)備備工作(vba使用數(shù)據(jù)庫(kù)首先我們需要連接數(shù)據(jù)庫(kù)) PAGEREF _Toc453071916 h 76 HYPERLINK l _Toc453071917 4.2.22 數(shù)據(jù)據(jù)庫(kù)操作作方法(具具體代碼碼和注釋釋?zhuān)?PAGEREF _Toc453071917 h 77 HYPERLINK l _Toc453071943 第五章 基基于C+二次次開(kāi)發(fā) PAGEREF _Toc453071943 h 8
11、5 HYPERLINK l _Toc453071944 5.1使用用金字塔塔C+ APPI開(kāi)發(fā)發(fā)策略的的優(yōu)勢(shì) PAGEREF _Toc453071944 h 85 HYPERLINK l _Toc453071945 5.2金字字塔的CC+ APII與主程程序的組組織結(jié)構(gòu)構(gòu) PAGEREF _Toc453071945 h 86 HYPERLINK l _Toc453071946 5.3金字字塔的接接口范例例下載與與簡(jiǎn)要說(shuō)說(shuō)明 PAGEREF _Toc453071946 h 86 HYPERLINK l _Toc453071947 5.3.11 APPI接口口報(bào)價(jià)行行情訂閱閱 PAGEREF _T
12、oc453071947 h 86 HYPERLINK l _Toc453071948 5.3.22報(bào)價(jià)行行情變化化通知 PAGEREF _Toc453071948 h 87 HYPERLINK l _Toc453071949 5.3.33獲取指指定市場(chǎng)場(chǎng)全部合合約報(bào)價(jià)價(jià) PAGEREF _Toc453071949 h 87 HYPERLINK l _Toc453071950 5.3.44歷史數(shù)數(shù)據(jù)的獲獲取 PAGEREF _Toc453071950 h 87 HYPERLINK l _Toc453071951 5.3.55下單委委托指令令 PAGEREF _Toc453071951 h 88
13、HYPERLINK l _Toc453071952 5.3.66訂單狀狀態(tài)推送送回報(bào) PAGEREF _Toc453071952 h 88 HYPERLINK l _Toc453071953 5.3.77策略編編寫(xiě)調(diào)試試與跟蹤蹤 PAGEREF _Toc453071953 h 89 HYPERLINK l _Toc453071954 5.3.88APII接口更更多功能能信息 PAGEREF _Toc453071954 h 90 HYPERLINK l _Toc453071955 第六章 自自定義PPEL函函數(shù) PAGEREF _Toc453071955 h 91 HYPERLINK l _To
14、c453071956 6.1 使使用VBBA自定定義PEEL函數(shù)數(shù) PAGEREF _Toc453071956 h 91 HYPERLINK l _Toc453071957 6.1.11自定義義函數(shù)的的格式 PAGEREF _Toc453071957 h 91 HYPERLINK l _Toc453071958 6.1.22自定義義函數(shù)的的兩種工工作模式式 PAGEREF _Toc453071958 h 92 HYPERLINK l _Toc453071959 6.2 使使用C+DLLL擴(kuò)展展函數(shù)程程序調(diào)用用 PAGEREF _Toc453071959 h 94第一章 金金字塔的的后臺(tái)程程序化
15、交交易金字塔提供供功能性性和擴(kuò)展展性更為為強(qiáng)大的的基于后后臺(tái)預(yù)警警模式的的程序化化交易模模式(后后臺(tái)程序序化),可以在在不影響響用戶(hù)前前臺(tái)圖形形操作的的情況下下,高效效地與預(yù)警系系統(tǒng)一起起工作,實(shí)現(xiàn)自自動(dòng)交易易。由于該模模式運(yùn)行行在后臺(tái),不需要要打開(kāi)圖圖表占用用過(guò)多的的資源,且且只需最后后一個(gè)周周期的信信號(hào),所以原原則上公公式不做做多余計(jì)計(jì)算,效率高高,便于對(duì)對(duì)多個(gè)品品種同一一個(gè)策略略進(jìn)行輪輪循監(jiān)控控。從某種意義義講,后后臺(tái)程序序化屬于于圖表程程序的深化,它它的優(yōu)點(diǎn)點(diǎn)是更注注重于策策略的高高效執(zhí)行行,更完美地地實(shí)現(xiàn)策策略的設(shè)設(shè)計(jì)初衷衷。雖然然后臺(tái)程程序化的的功能強(qiáng)強(qiáng)大,但但用戶(hù)切切忌直接接使用
16、后后臺(tái)策略略,而跳跳過(guò)學(xué)習(xí)習(xí)圖表程程序化的的過(guò)程。原因是在后臺(tái)程序化中用戶(hù)無(wú)法直接在圖表上看到信號(hào)的整個(gè)出現(xiàn)過(guò)程,因此對(duì)用戶(hù)的公式編寫(xiě)水平有一定的要求。其次,用戶(hù)需要對(duì)金字塔的后臺(tái)交易系統(tǒng)工作機(jī)理有比較深的了解,并且要對(duì)自己的公式系統(tǒng)有清晰的認(rèn)識(shí),這樣一旦遇到問(wèn)題也能及時(shí)找到原因。后臺(tái)交易過(guò)程中,一旦遇到問(wèn)題,需要客戶(hù)掌握第八章后臺(tái)程序化交易調(diào)試的技巧。以我們多年的經(jīng)驗(yàn)來(lái)看,用戶(hù)先將策略經(jīng)測(cè)評(píng)、優(yōu)化、圖表實(shí)盤(pán)上運(yùn)行后,再轉(zhuǎn)化成后臺(tái)策略,會(huì)取得非常好的效果。1.1后臺(tái)臺(tái)程序化化工作機(jī)機(jī)理在初級(jí)教程程中,我我們介紹紹了基于于虛擬數(shù)數(shù)據(jù)技術(shù)術(shù)的圖表表程序化化交易。想想必經(jīng)過(guò)過(guò)一段時(shí)時(shí)間的學(xué)學(xué)習(xí),大大
17、家已將將圖表程程序化運(yùn)運(yùn)用的相相當(dāng)純熟熟。不過(guò)過(guò)當(dāng)你進(jìn)進(jìn)行實(shí)盤(pán)盤(pán)的時(shí)候候,是否否發(fā)現(xiàn)在在某些情情況下,例例如碰到到未成交交單、未未完全成成交單、需需要進(jìn)行行追撤單單等更精精細(xì)的下下單操作作時(shí),圖圖表程序序化就束束手無(wú)策策了。這這是由于于圖表基基于虛擬擬數(shù)據(jù)的的特性,無(wú)無(wú)法與真真實(shí)賬戶(hù)戶(hù)進(jìn)行交交互,虛虛擬數(shù)據(jù)據(jù)的成交交并不考考慮實(shí)盤(pán)盤(pán)的的流動(dòng)性性情況,只只要價(jià)格格達(dá)到即即成交。而而實(shí)際情情況可能能并不是是這樣。另一方面,當(dāng)當(dāng)圖表程程序化碰碰上多品品種、多多策略、或或者較復(fù)復(fù)雜的策策略時(shí),有有時(shí)系統(tǒng)統(tǒng)會(huì)顯得得相對(duì)較較慢、不不流暢。這這是由于于圖表需需要計(jì)算算大量以以往的歷歷史數(shù)據(jù)據(jù)進(jìn)行判判斷操作作
18、,并在在圖表上上進(jìn)行輸輸出。這這消耗了了相當(dāng)多多的資源源。但實(shí)實(shí)盤(pán)并不不需要考考慮歷史史曾經(jīng)如如何,實(shí)實(shí)時(shí)交易易需要考考慮的是是如何高高效的執(zhí)執(zhí)行,其其實(shí)只需需根據(jù)最最后一根根K線(xiàn)上上的數(shù)據(jù)據(jù),來(lái)確確定開(kāi)平平倉(cāng)的動(dòng)動(dòng)作。這這也就是是例如DDYNAAINFFO等這這些常數(shù)數(shù)函數(shù)無(wú)無(wú)法進(jìn)行行測(cè)評(píng)而而實(shí)盤(pán)的的公式確確可以用用的主要要原因,因因?yàn)镈YYNAIINFOO只有最最新的一一筆行情情數(shù)據(jù),而而沒(méi)有歷歷史的序序列數(shù)據(jù)據(jù)。金字字塔后臺(tái)臺(tái)程序化化也是這這個(gè)道理理,因?yàn)闉榻鹱炙暮笈_(tái)臺(tái)程序化化只注重重交易,因因此無(wú)法法用來(lái)測(cè)測(cè)評(píng)??偨Y(jié)一下,金字塔的后臺(tái)程序化交易是金字塔很大的特色。從工作機(jī)制的角度看
19、,后臺(tái)程序化在沿用PEL語(yǔ)言體系的情況下,為用戶(hù)創(chuàng)造了近似VB、C+才能達(dá)到的精細(xì)化、高效快捷程序化下單模式。因此它特別適合那些多周期、多策略、多品種的組合交易以及對(duì)效率要求較高的套利交易,為您的交易帶來(lái)無(wú)與倫比的便捷。1.2 后后臺(tái)程序序化交易易函數(shù)金字塔的后后臺(tái)程序序化交易易只能在在專(zhuān)業(yè)版版及更高高級(jí)的版版本中使使用,它它可以運(yùn)運(yùn)行在序序列和逐逐K線(xiàn)兩兩種模式式,但是是推薦序序列模式式運(yùn)行,這這樣可以以極大提提高后臺(tái)臺(tái)執(zhí)行的的效率。為了讓用戶(hù)戶(hù)更快的的編寫(xiě)和和熟悉金金字塔的的后臺(tái)程程序化交交易,金金字塔的的程序化化交易函函數(shù),前前面都在在交易系系統(tǒng)函數(shù)數(shù)名稱(chēng)前前加 TT 字母母,比如如BU
20、YY改為T(mén)TBUYY, 使使用方法法大致相相同,用用戶(hù)仔細(xì)細(xì)注意查查看函數(shù)數(shù)的使用用說(shuō)明。與與圖表交交易系統(tǒng)統(tǒng)函數(shù)不不同的是是,后臺(tái)臺(tái)程序化化交易的的函數(shù)都都使用實(shí)實(shí)際的用用戶(hù)持倉(cāng)倉(cāng)和資金金。讓我們通過(guò)過(guò)案例來(lái)來(lái)學(xué)習(xí)后后臺(tái)程序序化交易易函數(shù)。例1:MAA指標(biāo)后后臺(tái)公式式/中間變變量MA3:MMA(CC,3);MA5:MMA(CC,5);/交易系系統(tǒng)TBUY(CROOSS(MA33,MAA5),1,LLMT,C); /按照最最新價(jià)限限價(jià)開(kāi)多多TSELLL(CRROSSS(MAA5,MMA3),0,LMTT,C);/按照最最新價(jià)限限價(jià)平多多,0表表示平掉掉全部持持倉(cāng)請(qǐng)注意TBBUY和和TSEELL
21、函函數(shù)的參參數(shù)出現(xiàn)現(xiàn)了變化化,真正正的下單單時(shí),需需要指定定下單類(lèi)類(lèi)型和價(jià)價(jià)格的,否否則系統(tǒng)統(tǒng)會(huì)按照照市價(jià)進(jìn)進(jìn)行交易易。 用以模擬交交易的函函數(shù)和真真實(shí)交易易的函數(shù)數(shù),大部部分只是是有了前前面T字字母差別別,大部部分的用用以交易易評(píng)測(cè)的的交易系系統(tǒng),只只要將交交易函數(shù)數(shù)部分前前面加TT字母即即可解決決,唯一一區(qū)別最最大的就就是TBBUY,TSEELL,TBUUYSHHORTT,TSEELLSSHORRT 這這4個(gè)函函數(shù)與模模擬交易易用的函函數(shù)區(qū)別別較大,請(qǐng)請(qǐng)仔細(xì)辨辨別。請(qǐng)注意后臺(tái)臺(tái)程序化化交易不不能使用用圖表交交易功能能,且圖圖表交易易和后臺(tái)臺(tái)交易的的函數(shù)不不能混用用。交易控控制符 THIIS
22、CLLOSEE 在真真實(shí)交易易中被 LMTT 等真真實(shí)交易易控制符符所取代代,金字字塔的模模擬交易易控制符符和真實(shí)實(shí)交易控控制符兩兩者不能能通用。金字塔的真實(shí)下單函數(shù)只支持LMT限價(jià) MKT市價(jià) STP止損 STPLMT限價(jià)止損 這4個(gè)交易控制符。真實(shí)下單交交易函數(shù)數(shù),下單單數(shù)量不再支持持百分比比模式。程序化交易易的函數(shù)數(shù)介紹:程序化交易易系統(tǒng)之之開(kāi)多操操作:用法:TBBUY(CONND,VV,TTypee,P11,P22,ACC,STTOCKK);表示當(dāng)當(dāng)CONND條件件成立時(shí)時(shí),買(mǎi)入V股(手手)當(dāng)前前品種,TYPE表表示開(kāi)倉(cāng)倉(cāng)類(lèi)型,LMT限價(jià) MKT市價(jià) STP止損 STPLMT限價(jià)止損P
23、1表示開(kāi)開(kāi)倉(cāng)價(jià)格格,當(dāng)TTYPEE為L(zhǎng)MTT和STPP,STPPLMTT時(shí)為指指定限價(jià)價(jià)和止損損價(jià)格,其他情情況填00P2為止損損限價(jià),當(dāng)TYYPE為為STPPLMTT時(shí),必必須指定定P2的止止損限價(jià)價(jià),其他他情況填填0,當(dāng)當(dāng)P1止損損價(jià)觸發(fā)發(fā)時(shí)按照照P2價(jià)格格止損操操作.當(dāng)TYPEE參數(shù)省省略時(shí),為市價(jià)價(jià)開(kāi)倉(cāng)。AC為帳戶(hù)ID,為空時(shí)為系統(tǒng)默認(rèn)帳戶(hù),否則將下單到指定帳戶(hù)中STOCKK為品種種代碼,比比如SSH60002115,為空或或者不填填時(shí)為當(dāng)當(dāng)前品種種后臺(tái)程序化化交易不不能使用用圖表交交易功能能,且圖圖表交易易和后臺(tái)臺(tái)交易的的函數(shù)不不能混用用。例如如,限價(jià)價(jià)在圖表表中函數(shù)數(shù)為L(zhǎng)iimit
24、t,后臺(tái)臺(tái)為L(zhǎng)mmt。市市價(jià)在圖圖表是函函數(shù)Maarkeet,在在后臺(tái)是是Mktt。例如:TBBUY(COO ,110000,LMMT,CC);表表示收陽(yáng)陽(yáng)線(xiàn)則在在本周期期收盤(pán)價(jià)價(jià)上買(mǎi)入入10000股(手手)。TBUY(C00,10000,STPP,CLLOSEE+0.2);表示收收陽(yáng)線(xiàn)則則在本周周期收盤(pán)盤(pán)價(jià)高于于0.22元下110000股(手手)止損損單,當(dāng)當(dāng)盤(pán)中價(jià)價(jià)格到了了觸發(fā)價(jià)價(jià)時(shí)按市市價(jià)開(kāi)倉(cāng)倉(cāng)止損.TBUY(C00,10000,STPPLMTT,CLLOSEE+0.2,CCLOSSE);表示收收陽(yáng)線(xiàn)則則在本周周期收盤(pán)盤(pán)價(jià)高于于0.22元下110000股(手手)止損損單,當(dāng)當(dāng)盤(pán)中價(jià)價(jià)格到
25、了了觸發(fā)價(jià)價(jià)時(shí)按CCLOSSE價(jià)格格開(kāi)倉(cāng)止止損。程序化交易易系統(tǒng)之之平多操操作:TSELLL(COOND,V,Typpe,PP1,PP2,AAC,SSTOCCK); 用用法同上上程序化交易易系統(tǒng)之之開(kāi)空操操作:TBUYSSHORRT(CCONDD,V,Tyype,P1,P2,AC,STOOCK); 用法同同上程序化交易易系統(tǒng)之之平空操作作:TSELLLSHOORT(CONND,VV,TTypee,P11,P22,ACC,STTOCKK); 用法法同上注意:程序序化交易易系統(tǒng)的的函數(shù)中中交易類(lèi)類(lèi)型Tyype與與交易測(cè)測(cè)試系統(tǒng)統(tǒng)的差別別例2:唐奇奇安通道道模型/中間變變量inputt:N(20,5
26、,100,1),NS(10,0,60,1);Pricee:=AAVGEENTEERPRRICEE;/持倉(cāng)價(jià)價(jià)位/交易條條件開(kāi)多平空條條件:=CROOSS(H, hhvv(reef(hh,1),N);開(kāi)空平多條條件:=CROOSS(llvv(reef(ll,1), NN),LL);/交易系系統(tǒng)SELLSSHORRT(開(kāi)開(kāi)多平空空條件 aand 持倉(cāng)0,持持倉(cāng),mmarkket);SELLSSHORRT(持持倉(cāng)00,持倉(cāng)倉(cāng),maarkeet);SELL(持倉(cāng)0,持持倉(cāng),SStoppr,PPricce-NNS);/止止損BUYSHHORTT(開(kāi)空空平多條條件 aand 持倉(cāng)=0,30%,marrke
27、tt);/其他資產(chǎn):asssett,nooaxiis,ccoloorgrreenn;持倉(cāng):HOOLDIING,LINNETHHICKK0;總次數(shù): TOTTALTTRADDE,LLINEETHIICK00;盈利:NUUMWIINTRRADEE,LIINETTHICCK0;勝率:ROOUNDDS(1100*PERRCENNTWIIN,11),LLINEETHIICK00;連虧:MAAXSEEQLOOSS,LINNETHHICKK0;連盈:MAAXSEEQWIIN,LLINEETHIICK00;將交易模型型轉(zhuǎn)換成成程序化化交易系系統(tǒng),主主要是涉涉及交易易系統(tǒng)函函數(shù)的轉(zhuǎn)轉(zhuǎn)化,即即在交易易系統(tǒng)函函數(shù)前
28、加加“t”,以及及交易類(lèi)類(lèi)型的改改動(dòng);并并且程序序化交易易函數(shù)都都是在后后臺(tái)運(yùn)行行,不能能在圖表表中顯示示;交易易數(shù)量不不能用330%的的寫(xiě)法,只只能用具具體數(shù)量量。因此,唐奇奇安通道道模型轉(zhuǎn)轉(zhuǎn)化為可可程序化化交易的的系統(tǒng):/中間變變量inputt:N(20,00,600,1) ,NNS(330,00,1000,11);持倉(cāng):=ttHOLLDINNG,LLINEETHIICK00;KCS:= inttparrt(ttassset*0.33/(cloose*mulltipplieer);/也也表示330%的的開(kāi)倉(cāng)數(shù)數(shù)BUY1:=hhhv(rref(h,11),NN);SELL11:=lllv(r
29、eff(l,1),N);Pricee:=ttAVGGENTTERPPRICCE; /持持倉(cāng)價(jià)位位/交易條條件開(kāi)多平空條條件:=CROOSS(H,BBUY11);開(kāi)空平多條條件:=CROOSS(SELLL1,L);/交易系系統(tǒng)TSELLLSHOORT(開(kāi)多平空空條件 aand 持倉(cāng)0,tt持倉(cāng),mktt);TSELLLSHOORT(持倉(cāng)0,持持倉(cāng),mmkt);TSELLL(持倉(cāng)倉(cāng)0,持倉(cāng),Stpp,Prricee-NSS);TBUYSSHORRT(開(kāi)開(kāi)空平多多條件 aand 持倉(cāng)=0, KCCS,mmkt);若想與交易易模型完完全一樣樣,后句則需需這樣寫(xiě)寫(xiě):tSELLLSHOORT(reff(開(kāi)
30、多多平空條件件,1) annd 持持倉(cāng)00,t持持倉(cāng),mmkt);tSELLLSHOORT(持倉(cāng)0,tt持倉(cāng),mktt);tSELLL(持倉(cāng)倉(cāng)0,持倉(cāng),Stpp,Prricee-NSS);tBUYSSHORRT(rref(開(kāi)空平平多條件件,1) annd 持持倉(cāng)=0, KCCS,mmkt);注意:在公公式編輯輯中,點(diǎn)點(diǎn)擊 0; 平多開(kāi)空條條件 :=MAACD0; /交易系系統(tǒng)TSELLLSHOORT(平多開(kāi)開(kāi)空條件件,100, mmkt, 0,0, , SQRRB033); /平空空TBUY(平空開(kāi)多多條件,10,mktt, 0,00, SQRRB055);/開(kāi)多TSELLL(平多多開(kāi)空條條件
31、,110, mktt, 0,00, SQRRB055); /平平多TBUYSSHORRT(平平空開(kāi)多多條件,10,mktt, 00,0, , SQRRB033); /開(kāi)開(kāi)空(3)如何何編制技技術(shù)指標(biāo)標(biāo)的多賬賬戶(hù)模型型:賬戶(hù)1:1168001賬戶(hù)2:1168002/中間變變量DIFF := EMAA(C,12) - EMAA(C,26); DEA := EEMA(DIFFF,99); MACD:=2*(DIIFF-DEAA); /交易系系統(tǒng)IF THHOLDDINGG00 annd TTHOLLDINNG00,100, mmkt, 0,0, 1668022); /平平空ENDIF THHOLDD
32、INGG=0 THEEN BEGGINTBUY(MACCD00 annd TTHOLLDINNG=00,100,mkkt, 0,00, 168801);/開(kāi)多多TBUY(MACCD00,100,mkkt, 0,00, 168802);/開(kāi)多多ENDIF THHOLDDINGG0 THEEN BEGGINTSELLL(MAACD0, THOOLDIING,10, mkkt, 0,00,168801); /平平多TSELLL(MAACD0,110, mktt, 0,00,168802); /平平多ENDIF THHOLDDINGG=0 THEEN BEGGINTBUYSSHORRT(MMACDD0
33、 andd THHOLDDINGG=0,10,mktt, 0,00,168801); /開(kāi)開(kāi)空TBUYSSHORRT(MMACDD下單設(shè)設(shè)置-程序化化交易-將“記記錄下單單日志”打打勾。打打勾的同同時(shí),會(huì)會(huì)提醒您您日志所所保存的的文件路路徑。在圖表交易易和后臺(tái)臺(tái)自動(dòng)交交易的甚甚至手工工下單的的過(guò)程中中,金字字塔會(huì)將將與交易易有關(guān)的的動(dòng)作記記錄在內(nèi)內(nèi),便于于用戶(hù)查查找和分分析問(wèn)題題原因。1.6 后后臺(tái)程序序化注意事項(xiàng)項(xiàng)(1) 圖圖表BUUY等顯顯示函數(shù)數(shù)是不能能放在后后臺(tái)做監(jiān)監(jiān)控交易易的,但但是將允許程程序化交交易勾勾去掉后后單獨(dú)做做預(yù)警是是可以的的。(2)只有有少數(shù)的的帶T的的后臺(tái)交交易函數(shù)數(shù)
34、允許使使用在BBUY前前臺(tái)圖表表交易策策略中. Thholddingg, TAAVGEENTEERPRRICEE,Tacccouunt,Tasssett,但是是金字塔塔強(qiáng)烈不不建議使使用,因因?yàn)檫@樣樣會(huì)造成成圖表上上的交易易信號(hào)與與實(shí)際的的下單記記錄不符符。(3)金字字塔的后后臺(tái)交易易部分,使使用手工工閃電下下單的記記錄,將將無(wú)法通通過(guò)比如如TENNTERRPRIICE等等與交易易記錄有有關(guān)函數(shù)數(shù)中得到到結(jié)果,但但可以通通過(guò)程序序化交易易監(jiān)控中中的手工工下單干干預(yù)功能能完成此此項(xiàng)目的的。(4)金字字塔的后后臺(tái)交易易,查詢(xún)?cè)兂謧}(cāng)和和資產(chǎn)均均為用戶(hù)戶(hù)當(dāng)前的的實(shí)際數(shù)數(shù)值,如如果多個(gè)個(gè)策略同同時(shí)多一一
35、個(gè)品種種或通一一個(gè)帳戶(hù)戶(hù)進(jìn)行操操作會(huì)產(chǎn)產(chǎn)生相互互干擾現(xiàn)現(xiàn)象,解解決辦法法就是通通過(guò)使用用交易系系統(tǒng)使用用虛擬持持倉(cāng)和資資金,這這樣就完完全可以以避免這這種共振振現(xiàn)象,但但是推薦薦高級(jí)用用戶(hù)使用用,因?yàn)闉樾枰芎芏嗉记汕尚枰幪幚怼#?)用以以圖表顯顯示的交交易系統(tǒng)統(tǒng)和后臺(tái)臺(tái)程序化化交易的的交易指指令函數(shù)數(shù),參數(shù)數(shù)有明顯顯的不同同,用戶(hù)戶(hù)不能簡(jiǎn)簡(jiǎn)單的將將BUYY函數(shù)加加個(gè)T就就可以直直接后臺(tái)臺(tái)交易,使使用前應(yīng)應(yīng)該將鼠鼠標(biāo)放在在TBUUY函數(shù)數(shù)上認(rèn)真真看看函函數(shù)說(shuō)明明。同名交易系系統(tǒng)函數(shù)數(shù)與程序序化交易易函數(shù)的的差別:函數(shù)意義前臺(tái)圖表交交易模型型后臺(tái)交易系系統(tǒng)開(kāi)多BUYTBUY平多SELLTSEL
36、LL開(kāi)空BUYSHHORTTTBUYSSHORRT平空SELLSSHORRTTSELLLSHOORT其中TYPPE:次次周期限限價(jià)LIMITTREF(條條件,11),LLMTTYPE:本周期期限價(jià)LIMITTRLMTTYPE:次周期期停損STOPREF(條條件,11),SSTPTYPE:本周期期停損STOPRRSTPTYPE:次周期期市價(jià)MARKEETREF(條條件,11),MMKTTYPE:本周期期市價(jià)MARKEETRMKT開(kāi)倉(cāng)百分比比30%KCS:= inttparrt(ttassset*0.33/MUULTIIPLIIER/cloose);語(yǔ)句語(yǔ)句T語(yǔ)句函數(shù)可在圖表上上顯示不能在圖表表上
37、顯示示總之,通過(guò)過(guò)函數(shù)列列表,了了解他們們的細(xì)微微差別。第二章 圖圖表交易易和后臺(tái)臺(tái)交易的的主要區(qū)區(qū)別和聯(lián)聯(lián)系2.1 圖圖表、交交易函數(shù)數(shù)的區(qū)別別2.11 圖表交交易函數(shù)數(shù)BUY 開(kāi)多多BUYSSHORRT 開(kāi)空空SELLL 平多多SELLLSHOORT 平平空適用于圖圖表程序序式交易易模式,本本函數(shù)中中可以設(shè)設(shè)置下單單條件、下下單手?jǐn)?shù)數(shù)、下單單價(jià)格等等參數(shù)。這這種交易易函數(shù)優(yōu)優(yōu)點(diǎn)在于于可以將將本交易易函數(shù)套套用到若若干個(gè)循循環(huán)邏輯輯判斷語(yǔ)語(yǔ)句中,對(duì)對(duì)下單手手?jǐn)?shù)靈活活設(shè)置,對(duì)對(duì)下單價(jià)價(jià)格靈活活的掌控控,與之之配套使使用的各各類(lèi)函數(shù)數(shù)較多,因因此能夠夠用于實(shí)實(shí)現(xiàn)較為為復(fù)雜的的交易模模型;缺缺點(diǎn)是
38、沒(méi)沒(méi)有參數(shù)數(shù)設(shè)置賬賬戶(hù)名、下下單品種種、只能能運(yùn)行在在逐K線(xiàn)線(xiàn)模式等等。例2.1: BUY(vvol/reff(vool,11)33 ANND CCLOSSEOOPENN , 1 ,LIMMIT ,CLLOSEE );SELL(voll/reef(vvol,1)3 AAND CLOOSE3 THEEN BBEGIINBUY(CLOOSEOPEEN , 1 ,LIIMITT ,CCLOSSE );SELLL(CLLOSEE3 AAND CLOOSEOPEEN ,1,LLMT ,CLLOSEE ,00,33515579 ,al002);TSELLL(vool/rref(voll,1)3 ANDD
39、CLLOSEE圖圖表程序序化交易易”選項(xiàng)項(xiàng)。后臺(tái)程序化化交易的的設(shè)置和和啟用界界面位于于菜單欄欄的“交交易后后臺(tái)程序序化交易易”選項(xiàng)項(xiàng)。 (4)虛擬擬和真實(shí)實(shí)的區(qū)別別圖表程序化化交易采采用的是是虛擬持持倉(cāng)、虛虛擬資金金等概念念,各個(gè)個(gè)買(mǎi)賣(mài)點(diǎn)點(diǎn)以及中中間過(guò)程程返回給給用戶(hù)的的持倉(cāng)和和資金是是根據(jù)歷歷史交易易信號(hào)和和相關(guān)初初始化的的數(shù)據(jù)計(jì)計(jì)算得來(lái)來(lái),資金金、費(fèi)率率等初始始化數(shù)據(jù)據(jù)是在指指標(biāo)編輯輯器中的的“費(fèi)率率設(shè)置”中中進(jìn)行設(shè)設(shè)置。后臺(tái)程序化化交易采采用的是是真實(shí)持持倉(cāng)、真真實(shí)資金金的概念念,它們們調(diào)用的的是賬戶(hù)戶(hù)欄中真真實(shí)的賬賬戶(hù)數(shù)據(jù)據(jù)。 第三章 基基于VBBA的二二次開(kāi)發(fā)發(fā)一個(gè)優(yōu)秀的的程序化化
40、交易軟件件不僅需需要滿(mǎn)足足個(gè)人個(gè)個(gè)性化的的策略實(shí)現(xiàn)現(xiàn)外,策策略的執(zhí)執(zhí)行也至至關(guān)重要要,俗話(huà)話(huà)說(shuō):細(xì)細(xì)節(jié)決定定成敗,前前面章節(jié)節(jié)我們都都是介紹紹的使用用金字塔塔內(nèi)置的的PEL腳腳本語(yǔ)言言作為程程序化交易使使用,但是PPEL終終歸還是是為普通通非計(jì)算機(jī)機(jī)專(zhuān)業(yè)投投資者準(zhǔn)準(zhǔn)備的腳腳本語(yǔ)言言,方便便投資者者學(xué)習(xí)和和使用的的同時(shí),也也帶來(lái)了了其自身身存在的的格式固固化,運(yùn)運(yùn)行不夠夠靈活,效效率不足足等問(wèn)題題,是無(wú)無(wú)法滿(mǎn)足足具有更更多想法法更多需需求的程程序化交交易者的的。在各種種高級(jí)語(yǔ)語(yǔ)言中,熟熟悉和精精通VBB的人無(wú)無(wú)疑是最最多的。著名的微軟OFFICE辦公軟件中的二次開(kāi)發(fā)也是使用的VBA。但是金字塔不
41、僅僅是一個(gè)被廣泛應(yīng)用的金融分析軟件,除了具有一般軟件的數(shù)據(jù)處理、統(tǒng)計(jì)分析、圖表功能外,最大的特點(diǎn)是集成了VBA 環(huán)境。并提供了VBA 的IDE 環(huán)境??梢詰?yīng)用金字塔的所有現(xiàn)有功能,例如其數(shù)據(jù)處理、圖表繪制、數(shù)據(jù)庫(kù)連接、內(nèi)置函數(shù)等等。利用這些接口將極大的發(fā)揮我們專(zhuān)業(yè)程序化交易投資者的編程空間,使我們的交易系統(tǒng)具有強(qiáng)大的計(jì)算能力、擴(kuò)展能力和生命力。3.1金字字塔VBBA與OFFFICEE VBBA區(qū)別別和聯(lián)系系盡管金字塔塔VBAA與OFFFICEE VBBA都是是VBAA,但是是它們22個(gè)還是是有些不不同的地地方,這這里假設(shè)設(shè)讀者是是熟悉OOFFIICE VBAA的用戶(hù)戶(hù),如果果你是VBBA的初初
42、學(xué)者,那那么可以以不必理理會(huì)這里里的差別別。金字塔的的腳本引引擎是VVBS,與與OFFFICEE的VBBA主要要區(qū)別在在于變量量無(wú)需聲聲明就可可以使用用。金字字塔軟件件的VBBA系統(tǒng)統(tǒng)是介于于傳統(tǒng)VVBS與與VBAA之間的的系統(tǒng),支支持VBBA系統(tǒng)統(tǒng)中才有有的窗體體,框架架等等更更多的對(duì)對(duì)象,另另外,語(yǔ)語(yǔ)法上又又兼容VVBS。除了類(lèi)模塊塊外,所所有的框框架和窗窗體對(duì)象象模塊的的數(shù)據(jù)都都是公用用的,框框架和窗窗體之所所以獨(dú)立立是因?yàn)闉榉奖阌糜脩?hù)編輯輯和管理理,實(shí)際際運(yùn)行代代碼是合合在一起起的。比比如你在在框架或或者窗體體中定義義了一個(gè)個(gè)函數(shù)過(guò)過(guò)程外的的全局變變量,實(shí)實(shí)際上是是所有VVBS代代碼都
43、可可以調(diào)用用的,在在窗體框框架對(duì)象象中的過(guò)過(guò)程名在在其他窗窗體中調(diào)調(diào)用也無(wú)無(wú)需使用用 窗體體.過(guò)程程名 這這種方式式,可以以直接使使用過(guò)程程名。金字塔中的的窗體與與OFFFICEE其他組組件的窗窗體在訪(fǎng)訪(fǎng)問(wèn)其內(nèi)內(nèi)部控件件時(shí)稍有有不同,例如訪(fǎng)訪(fǎng)問(wèn)UsserFFormm1窗體體的Teext11編輯控控件,使使其隱藏藏。代碼碼如下: UsserFFormm1_Texxt1.Vissiblle = Faalsee除此之外外,金字字塔VBBA與OOFFIICE VBAA在IDDE界面面,使用用方法和和布局上上,完全全一致,如如果讀者者熟悉OOFFIICE VBAA的開(kāi)發(fā)發(fā),那么么就應(yīng)該該很快掌掌握金字字
44、塔VBBA的開(kāi)開(kāi)發(fā)。3.2 VVBA 原理的的隱喻VBA 的的基本原原理可通通過(guò)下圖圖做示意意性解釋釋。金字塔金字塔對(duì)象VBA代碼VBAVBA 作作為應(yīng)用用VBAA 編寫(xiě)寫(xiě)的代碼碼和金字字塔對(duì)象象之間的的一個(gè)橋橋梁,為為2 者之之間的調(diào)調(diào)用提供供支持,這這種調(diào)用用是通過(guò)過(guò)COMM 自動(dòng)動(dòng)化實(shí)現(xiàn)現(xiàn)的。例例如我們們的代碼碼中一句句代碼,調(diào)調(diào)用金字字塔中一一個(gè)對(duì)象象的一個(gè)個(gè)屬性,那那么這個(gè)個(gè)過(guò)程大大概是類(lèi)類(lèi)似這樣樣的:VVBA 環(huán)境解解釋執(zhí)行行這句代代碼,如如果發(fā)現(xiàn)現(xiàn)對(duì)金字字塔對(duì)象象的調(diào)用用,就通通過(guò)COOM 的的方式調(diào)調(diào)用這個(gè)個(gè)對(duì)象,獲獲取其屬屬性,這這樣VBBA 代代碼就可可以和金金字塔對(duì)對(duì)象進(jìn)
45、行行交互。3.3 VVBA 簡(jiǎn)介要使用 VVBA 進(jìn)行數(shù)數(shù)據(jù)處理理,第一一要熟悉悉VBAA 的IIDE 環(huán)境,知知道如何何進(jìn)行代代碼書(shū)寫(xiě)寫(xiě),如何何編寫(xiě)代代碼,設(shè)設(shè)計(jì)窗體體,創(chuàng)建建類(lèi)模塊塊(對(duì)象象),第第二要熟熟悉VBBA 的的基本語(yǔ)語(yǔ)法和。二者者都是VVBA 程序設(shè)設(shè)計(jì)的基基礎(chǔ),需需要認(rèn)真真學(xué)習(xí)。VBA 語(yǔ)語(yǔ)法不是是一章就就可以全全部介紹紹完全的的,本章章介紹的的內(nèi)容是是最基本本和應(yīng)該該熟練掌掌握的內(nèi)內(nèi)容,對(duì)對(duì)于不熟熟悉或者者不理解解的內(nèi)容容可以在在學(xué)習(xí)了了后面的的內(nèi)容后后再反過(guò)過(guò)頭來(lái)學(xué)學(xué)習(xí)。有有些內(nèi)容容需要反反復(fù)練習(xí)習(xí)和熟悉悉。對(duì)于于VBAA 語(yǔ)法法和用法法的很多多內(nèi)容可可以隨時(shí)時(shí)通過(guò)查查看
46、幫助助來(lái)獲得得相關(guān)信信息。本章和下一一章(金金字塔 對(duì)象模模型)的的部分內(nèi)內(nèi)容,特特別是表表格內(nèi)的的一些內(nèi)內(nèi)容,沒(méi)沒(méi)有必要要完全記記住,可可以作為為參考手手冊(cè)來(lái)使使用。3.3.11VBAA 及其其IDEE 初步步本部分將對(duì)對(duì) VBAA 及其其開(kāi)發(fā)環(huán)環(huán)境IDDE(集集成開(kāi)發(fā)發(fā)環(huán)境)作作一概略的的介紹。VBA IDE 是進(jìn)行程序設(shè)計(jì)和代碼編寫(xiě)的地方,同一個(gè)金字塔共享同一IDE。文中會(huì)涉及到一些諸如對(duì)象、事件等部分讀者可能不熟悉或不清楚的概念,對(duì)于此類(lèi)問(wèn)題可直接忽略之,因?yàn)樵诤竺鏁?huì)有詳細(xì)介紹。本部分也不是一個(gè)VBA 的參考文檔,只是其語(yǔ)法、特征的快速瀏覽和介紹。(1)VBBA 集集成開(kāi)發(fā)發(fā)環(huán)境(ID
47、E)的組成VBA 代代碼和金金字塔文文檔文件件是保存存在一起起的,可可以通過(guò)過(guò)點(diǎn)擊“工工具 宏 Viisuaal BBasiic工程”打開(kāi)開(kāi)VBAA 的IDEE 環(huán)境境,進(jìn)行行程序設(shè)設(shè)計(jì)和代代碼編寫(xiě)寫(xiě)。圖3-1VVisuual Bassic IDEE 環(huán)境境圖 3-11 為金字塔塔 VBBA 的的IDEE 環(huán)境境,缺省省情況下下,VBBA IIDE 環(huán)境上上方為菜菜單和工工具條(圖圖 3-11),左左側(cè)窗口口為工程程資源管管理器窗窗口,右右側(cè)最大大的窗口口為代碼碼窗口。每一個(gè)金金字塔文文檔文件件,對(duì)應(yīng)應(yīng)的VBBA 工工程都有有4 類(lèi)對(duì)對(duì)象,包包括:框框架、窗窗體、模模塊和類(lèi)類(lèi)模塊(圖圖 3-2
48、2)。這這里的框架主主要是金金字塔運(yùn)運(yùn)行時(shí)的的技術(shù)分分析圖表表,例如如我們常常見(jiàn)的KK線(xiàn)走勢(shì)勢(shì)分析圖圖的框架架對(duì)象,雙擊這些對(duì)象會(huì)打開(kāi)代碼窗口(圖3-1 右側(cè)窗口),在此窗口中可輸入相關(guān)的代碼,響應(yīng)事件,例如框架的打開(kāi)、關(guān)閉,窗格的激活、品種顯示的修改、選擇等(有關(guān)事件、金字塔 對(duì)象模型見(jiàn)后)。窗體對(duì)象代表了自定義對(duì)話(huà)框或界面,模塊為自定義代碼的載體,類(lèi)模塊則是以類(lèi)或?qū)ο蟮姆绞骄帉?xiě)代碼的載體,關(guān)于各對(duì)象的具體含義和使用見(jiàn)后。在工程資源管理器窗口的右鍵菜單下,有添加用戶(hù)窗體、模塊、類(lèi)模塊的選項(xiàng),也可以將已有的模塊移除、導(dǎo)入和導(dǎo)出。注意:建建議用戶(hù)戶(hù)新建一一個(gè)VBBA工程程來(lái)完成成你的個(gè)個(gè)性化VV
49、BA代代碼,盡盡量不要要在默認(rèn)的的工程中添添加,防防止多個(gè)個(gè)不同工工程的代代碼相互互干擾,您您可以點(diǎn)點(diǎn)擊左側(cè)側(cè)工程資資源窗口口上的工具欄欄來(lái)新建建一個(gè)VVBA工工程。(2)在 VBAA IDDE 下下進(jìn)行開(kāi)開(kāi)發(fā)熟悉了 VVBA 的IDEE 環(huán)境境后,我我們來(lái)開(kāi)開(kāi)發(fā)VBBA 之之旅的第第一個(gè)程程序。首首先我們們雙擊左左側(cè)工程程資源管管理器上的窗窗口的模模塊分類(lèi)類(lèi),然后后雙擊“MMacrro”模模塊,打打開(kāi)宏模塊代碼碼編輯窗窗口(圖圖3-33),然后后選擇“插入”菜單-過(guò)程程,再隨后彈彈出的宏宏名稱(chēng)編編輯窗口口里輸入入“MyyFirrstVVBAPProggramm”,然后單單擊確定定,這樣樣系統(tǒng)
50、會(huì)會(huì)自動(dòng)將將MyFFirsstVBBAPrrogrram這這個(gè)過(guò)程程函數(shù)插插入到代代碼編輯輯窗口中中,我們們只要在在打開(kāi)窗口口中輸入入以下代代碼:Sub MMyFiirsttVBAAProograam()MsgBoox “我的第一個(gè)自編程序。”End SSub通過(guò)“運(yùn)行行”菜單-宏,或或者按AAlt+F8快快捷鍵,彈彈出宏運(yùn)運(yùn)行窗口口,下拉拉框中選選擇我們們前面建建立的“MMyFiirsttVBAAProograam”宏宏,然后后就能看到到運(yùn)行的的結(jié)果了。圖3-2注意:與與其他程程序設(shè)計(jì)計(jì)語(yǔ)言不不同,VVBA 程序是是事件驅(qū)驅(qū)動(dòng)的,沒(méi)沒(méi)有Maain 函數(shù)之之類(lèi)的入入口的概概念。本本質(zhì)上,VBA
51、 代碼應(yīng)該只是一些完成具體工作的集合,而通過(guò)界面元素或者金字塔 的事件驅(qū)動(dòng)執(zhí)行,你可以通過(guò)自定義按鈕、菜單,并指定一個(gè)宏(VBA 過(guò)程,自定義界面也可以通過(guò)編程手段完成此類(lèi)工作),通過(guò)單擊此按鈕即可調(diào)用相應(yīng)的VBA代碼,或者將調(diào)用綁定在金字塔的某個(gè)事件下。下面我們簡(jiǎn)簡(jiǎn)單看一一下這段段代碼的的組成,代代碼第11 行表表示這是是一個(gè)新新的過(guò)程程,名稱(chēng)稱(chēng)為“MMyFiirsttVBAAProograam” 第2行行調(diào)用MMsgBBox 這個(gè)函函數(shù),顯顯示一個(gè)個(gè)對(duì)話(huà)框框,第33 行表表示過(guò)程程結(jié)束。VBA 程序由不同的模塊組成,在模塊內(nèi)部,可以定義不同的變量、過(guò)程或函數(shù),由此組成一個(gè)完整的程序。(3)
52、善用用工具及及其他VBA 集集成開(kāi)發(fā)發(fā)環(huán)境,提提供了很很多便利利的工具具可以幫幫助或輔輔助我們們寫(xiě)出好好的程序序,其中中的方便便必須親親自使用用才可以以體會(huì),因因此,一一定要善善用工具具。VBBA 的的代碼編編輯器提提供了幾幾項(xiàng)非常常有用的的功能,代代碼即時(shí)時(shí)提示可可以使我我們不必必記憶太太多的東東西,輸輸入對(duì)象象后會(huì)自自動(dòng)列出出其屬性性、方法法等內(nèi)容容。在實(shí)際的編編程過(guò)程程中,一一定要善善于利用用在線(xiàn)幫幫助,VVBA 的在線(xiàn)線(xiàn)幫助包包含了大大量對(duì)編編程有用用的參考考信息,任任何人都都不可能能記得住住所有的的函數(shù)、對(duì)對(duì)象的用用法和程程序語(yǔ)言言的語(yǔ)法法,所以以一定要要利用好好幫助。幫幫助的使使用
53、可以以在“幫幫助”菜菜單-VBAA編程信信息 處處獲得??煽梢酝ㄟ^(guò)過(guò)幫助目目錄瀏覽覽,或者者通過(guò)查查找輸入入關(guān)鍵字字查找相相關(guān)內(nèi)容容。圖3-3在代碼書(shū)寫(xiě)寫(xiě)中,如如果一句句代碼過(guò)過(guò)長(zhǎng),應(yīng)應(yīng)該使用用接行字字符(“-”)將其分為幾行,而不是書(shū)寫(xiě)為一行,一般來(lái)說(shuō),代碼的長(zhǎng)度不要超過(guò)80 個(gè)字符為宜,這樣閱讀方便,不需要橫向拉動(dòng)滾動(dòng)條,也不容易出錯(cuò)。例如上面第一個(gè)例子我們可以將對(duì)話(huà)框文字輸出分成2行:MsgBoox _“我的第一一個(gè)自編編程序?!睂?duì)于代碼格格式,一一定要養(yǎng)養(yǎng)成縮進(jìn)進(jìn)的習(xí)慣慣,在過(guò)過(guò)程之后后,循環(huán)環(huán)語(yǔ)句、判判斷語(yǔ)句句之內(nèi),如如本書(shū)的的例子樣樣子,縮縮進(jìn)4 個(gè)字符,便便于閱讀讀。代碼碼中,在
54、在一個(gè)邏邏輯或者者操作完完成之后后,應(yīng)該該空一行行,以表表示其邏邏輯關(guān)系系,在過(guò)過(guò)程與過(guò)過(guò)程之間間,也應(yīng)應(yīng)該空一一行。VVBA 中,使使用單引引號(hào)“”表示示注釋?zhuān)幘帉?xiě)程序序時(shí),一一定要養(yǎng)養(yǎng)成注釋釋的習(xí)慣慣。注釋釋不是所所有代碼碼都要注注釋?zhuān)灰灰话銇?lái)說(shuō)說(shuō),對(duì)一一個(gè)模塊塊、過(guò)程程、函數(shù)數(shù),要大大概說(shuō)明明其功能能,參數(shù)數(shù);對(duì)于于一個(gè)過(guò)過(guò)程,如如果涉及及較復(fù)雜雜的算法法,要說(shuō)說(shuō)明其使使用的算算法或流流程。在在過(guò)程和和函數(shù)中中,對(duì)關(guān)關(guān)鍵代碼碼,說(shuō)明明其操作作的目的的、算法法或流程程。3.3.22模塊、函函數(shù)和過(guò)過(guò)程(1)模塊塊模塊是自定定義的過(guò)過(guò)程、函函數(shù)保存存的地方方有兩種種基本類(lèi)類(lèi)型的模模塊:類(lèi)類(lèi)
55、模塊和和標(biāo)準(zhǔn)模模塊,本本節(jié)介紹紹標(biāo)準(zhǔn)模模塊,類(lèi)類(lèi)模塊將將在專(zhuān)門(mén)門(mén)介紹。模模塊可以以通過(guò)右右鍵單擊擊工程資資源管理理器的工工程名,選選擇“插插入 模塊”來(lái)來(lái)新建,新新建的模模塊缺省省的名稱(chēng)稱(chēng)為“模模塊 1”,“模模塊2”,建議在在模塊右右鍵-重命名名中更改改為有意意義的名名稱(chēng)。模模塊有22 個(gè)任務(wù):(1)保存存過(guò)程和和函數(shù);(2)定義義類(lèi)模塊內(nèi)內(nèi)的私有有變量或或整個(gè)工工程的公公有變量量。在模塊中可可以聲明明變量(包包括對(duì)象象),定定義過(guò)程程和函數(shù)數(shù)。過(guò)程程和函數(shù)數(shù)的定義義見(jiàn)下文文,變量量的聲明明如下。變量的聲明明:Dim II Dimm 表示示聲明變變量i注意:要求求變量聲聲明VBBA 缺缺省可
56、以以不聲明明變量,在在第一次次使用的的時(shí)候自自動(dòng)聲明明,但此此功能也也是VBBA 代代碼(包包括其他他Bassic 代碼)的的一個(gè)主主要錯(cuò)誤誤之源。試試想第一一次使用用了一個(gè)個(gè)變量sstrMMyFiirsttNamme,之之后又通通過(guò)sttrMyyFirrstNNme(少少一個(gè)aa)來(lái)使使用它,但但由于拼拼寫(xiě)不同同,VBBA 以以為是一一個(gè)新的的變量,于于是會(huì)新新聲明一一個(gè)變量量,這樣樣的錯(cuò)誤誤極其難難以發(fā)現(xiàn)現(xiàn)??梢砸酝ㄟ^(guò)“工工具 選項(xiàng)”對(duì)對(duì)話(huà)框,在在“其他他”頁(yè),選選中“VVBA變量量名必須須顯式聲明明所有變量量”,則則在使用用變量前前,都必必須先通通過(guò)Diim 語(yǔ)語(yǔ)句聲明明。(2)過(guò)程程過(guò)
57、程是最基基本的運(yùn)運(yùn)行單位位。一個(gè)個(gè)完整的的過(guò)程一一般類(lèi)似似如下格格式:Sub TTestt(參數(shù)數(shù)列表) End SSub在以上程序序中,SSub 代表過(guò)過(guò)程種類(lèi)類(lèi),表示示運(yùn)行指指定的操操作,但但不返回回運(yùn)行結(jié)結(jié)果;TTestt表示過(guò)過(guò)程名稱(chēng)稱(chēng),最后后以Ennd SSub 結(jié)束。其中按值值按地址址傳遞參參數(shù)指一一種將參參數(shù)地址址而不是是將值傳傳遞給過(guò)過(guò)程的方方式,這這就使過(guò)過(guò)程訪(fǎng)問(wèn)問(wèn)到實(shí)際際的變量量。結(jié)果果,過(guò)程程可改變變變量的的真正值值。VBBA 缺缺省按地地址傳遞遞參數(shù)。Sub MMyTeest()dim VV1,V2V1 = 1V2 = 2MyTesstCaall (v11,v22) v
58、v1,vv2是參參數(shù)MsgBoox vv1MsgBoox vv2End SSubSub MMyTeestCCalll(V11,V22) VV1=55 VV2=.6End SSub調(diào)用的方法法是:運(yùn)行結(jié)束后后,你會(huì)會(huì)發(fā)現(xiàn)VV1和V2值值都被改改變了。所有的可執(zhí)執(zhí)行代碼碼都必須須屬于某某個(gè)過(guò)程程。不能能在別的的過(guò)程中中定義 Subb 過(guò)程程。Exxit Subb 語(yǔ)句句使執(zhí)行行立即從從一個(gè) Subb 過(guò)程程中退出出。程序序接著從從調(diào)用該該 Subb 過(guò)程程的語(yǔ)句句下一條條語(yǔ)句執(zhí)執(zhí)行。在在 Subb 過(guò)程程的任何何位置都都可以有有 Exiit SSub 語(yǔ)句。在在 Subb 過(guò)程程中使用用的變量量分
59、為兩兩類(lèi):一一類(lèi)是在在過(guò)程內(nèi)內(nèi)顯式定定義的,另另一類(lèi)則則不是。在在過(guò)程內(nèi)內(nèi)顯式定定義的變變量(使使用 Dimm 方法法)都是是局部變變量。過(guò)過(guò)程(包包括函數(shù)數(shù)等)的的創(chuàng)建可可以通過(guò)過(guò)在代碼碼窗口直直接鍵入入“Suub”來(lái)來(lái)創(chuàng)建,也也可以使使用菜單單的“插插入 過(guò)程”對(duì)對(duì)話(huà)框來(lái)來(lái)創(chuàng)建。(3)函數(shù)數(shù)函數(shù)是包含含在 FFuncctioon 和和 Ennd FFuncctioon 語(yǔ)語(yǔ)句之間間的一組組語(yǔ)句。Function 過(guò)程與 Sub 過(guò)程類(lèi)似,但是 Function 過(guò)程可以返回值。Function 過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。如果 Function 過(guò)程無(wú)任何參數(shù),
60、則 Function 語(yǔ)句必須包含空括號(hào) ()。Function 過(guò)程通過(guò)函數(shù)名返回一個(gè)值,這個(gè)值是在過(guò)程的語(yǔ)句中賦給函數(shù)名的。Function 返回值的數(shù)據(jù)類(lèi)型總是 Variant。 在下面的示示例中,CCelssiuss 函數(shù)數(shù)將華氏氏度換算算為攝氏氏度。SSub 過(guò)程 ConnverrtTeemp 調(diào)用此此函數(shù)時(shí)時(shí),包含含參數(shù)值值的變量量被傳遞遞給函數(shù)數(shù)。換算算結(jié)果返返回到調(diào)調(diào)用過(guò)程程并顯示示在消息息框中。 Sub ConnverrtTeemp() temmp = InnputtBoxx(請(qǐng)請(qǐng)輸入華華氏溫度度。, 1) MsggBoxx 溫溫度為 & Ceelsiius(temmp) &
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藝術(shù)品租賃合同
- 會(huì)議場(chǎng)地租賃合同協(xié)議書(shū)
- 保密協(xié)議商業(yè)合同
- 無(wú)錫工藝職業(yè)技術(shù)學(xué)院《工程安全健康與環(huán)境管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧夏民族職業(yè)技術(shù)學(xué)院《賓館酒店管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 菏澤家政職業(yè)學(xué)院《輕工行業(yè)清潔生產(chǎn)及污染控制技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 5 Revealing Nature Developing ideas The Secret Language of Plants教學(xué)設(shè)計(jì) 2024-2025學(xué)年高中英語(yǔ)人教版選擇性必修第二冊(cè)
- 沈陽(yáng)醫(yī)學(xué)院《機(jī)器人工程專(zhuān)業(yè)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧夏財(cái)經(jīng)職業(yè)技術(shù)學(xué)院《主題閱讀(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東勝利職業(yè)學(xué)院《化工原理一》2023-2024學(xué)年第二學(xué)期期末試卷
- 1.1青春的邀約 教學(xué)課件 2024-2025學(xué)年七年級(jí)道德與法治下冊(cè)(統(tǒng)編版2024)
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2024年01月廣州期貨交易所2024年招考筆試歷年參考題庫(kù)附帶答案詳解
- 鋼棧橋設(shè)計(jì)計(jì)算書(shū)
- 貿(mào)易術(shù)語(yǔ)案例討論題匯總
- 建筑工地緊急事件處理流程圖
- 中山市培養(yǎng)引進(jìn)緊缺適用人才導(dǎo)向目錄(2011-2012年)
- 小學(xué)三年級(jí)下冊(cè)開(kāi)學(xué)語(yǔ)文老師家長(zhǎng)會(huì)發(fā)言
- 對(duì)講機(jī)測(cè)試報(bào)告
- 3、分段計(jì)費(fèi)問(wèn)題
- 防滲墻專(zhuān)項(xiàng)施工方法
評(píng)論
0/150
提交評(píng)論