freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

金字塔決策交易系統(tǒng)—高級(jí)教程(編輯修改稿)

2025-07-15 02:18 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 格式固化,運(yùn)行不夠靈活,效率不足等問(wèn)題,是無(wú)法滿足具有更多想法更多需求的程序化交易者的。在各種高級(jí)語(yǔ)言中,熟悉和精通VB的人無(wú)疑是最多的。著名的微軟OFFICE辦公軟件中的二次開發(fā)也是使用的VBA。但是金字塔不僅僅是一個(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ā)揮我們專業(yè)程序化交易投資者的編程空間,使我們的交易系統(tǒng)具有強(qiáng)大的計(jì)算能力、擴(kuò)展能力和生命力。 VBA區(qū)別和聯(lián)系盡管金字塔VBA與OFFICE VBA都是VBA,但是它們2個(gè)還是有些不同的地方,這里假設(shè)讀者是熟悉OFFICE VBA的用戶,如果你是VBA的初學(xué)者,那么可以不必理會(huì)這里的差別。 金字塔的腳本引擎是VBS,與OFFICE的VBA主要區(qū)別在于變量無(wú)需聲明就可以使用。金字塔軟件的VBA系統(tǒng)是介于傳統(tǒng)VBS與VBA之間的系統(tǒng),支持VBA系統(tǒng)中才有的窗體,框架等等更多的對(duì)象,另外,語(yǔ)法上又兼容VBS。除了類模塊外,所有的框架和窗體對(duì)象模塊的數(shù)據(jù)都是公用的,框架和窗體之所以獨(dú)立是因?yàn)榉奖阌脩艟庉嫼凸芾?,?shí)際運(yùn)行代碼是合在一起的。比如你在框架或者窗體中定義了一個(gè)函數(shù)過(guò)程外的全局變量,實(shí)際上是所有VBS代碼都可以調(diào)用的,在窗體框架對(duì)象中的過(guò)程名在其他窗體中調(diào)用也無(wú)需使用 這種方式,可以直接使用過(guò)程名。金字塔中的窗體與OFFICE其他組件的窗體在訪問(wèn)其內(nèi)部控件時(shí)稍有不同,例如訪問(wèn)UserForm1窗體的Text1編輯控件,使其隱藏。代碼如下: = False 除此之外,金字塔VBA與OFFICE VBA在IDE界面,使用方法和布局上,完全一致,如果讀者熟悉OFFICE VBA的開發(fā),那么就應(yīng)該很快掌握金字塔VBA的開發(fā)。 VBA 原理的隱喻VBA 的基本原理可通過(guò)下圖做示意性解釋。金字塔對(duì)象VBA代碼VBAVBA 作為應(yīng)用VBA 編寫的代碼和金字塔對(duì)象之間的一個(gè)橋梁,為2 者之間的調(diào)用提供支持,這種調(diào)用是通過(guò)COM 自動(dòng)化實(shí)現(xiàn)的。例如我們的代碼中一句代碼,調(diào)用金字塔中一個(gè)對(duì)象的一個(gè)屬性,那么這個(gè)過(guò)程大概是類似這樣的:VBA 環(huán)境解釋執(zhí)行這句代碼,如果發(fā)現(xiàn)對(duì)金字塔對(duì)象的調(diào)用,就通過(guò)COM 的方式調(diào)用這個(gè)對(duì)象,獲取其屬性,這樣VBA 代碼就可以和金字塔對(duì)象進(jìn)行交互。 VBA 簡(jiǎn)介要使用 VBA 進(jìn)行數(shù)據(jù)處理,第一要熟悉VBA 的IDE 環(huán)境,知道如何進(jìn)行代碼書寫,如何編寫代碼,設(shè)計(jì)窗體,創(chuàng)建類模塊(對(duì)象),第二要熟悉VBA 的基本語(yǔ)法和。二者都是VBA 程序設(shè)計(jì)的基礎(chǔ),需要認(rèn)真學(xué)習(xí)。VBA 語(yǔ)法不是一章就可以全部介紹完全的,本章介紹的內(nèi)容是最基本和應(yīng)該熟練掌握的內(nèi)容,對(duì)于不熟悉或者不理解的內(nèi)容可以在學(xué)習(xí)了后面的內(nèi)容后再反過(guò)頭來(lái)學(xué)習(xí)。有些內(nèi)容需要反復(fù)練習(xí)和熟悉。對(duì)于VBA 語(yǔ)法和用法的很多內(nèi)容可以隨時(shí)通過(guò)查看幫助來(lái)獲得相關(guān)信息。本章和下一章(金字塔 對(duì)象模型)的部分內(nèi)容,特別是表格內(nèi)的一些內(nèi)容,沒(méi)有必要完全記住,可以作為參考手冊(cè)來(lái)使用。 及其IDE 初步本部分將對(duì) VBA 及其開發(fā)環(huán)境IDE(集成開發(fā)環(huán)境)作一概略的介紹。VBA IDE 是進(jìn)行程序設(shè)計(jì)和代碼編寫的地方,同一個(gè)金字塔共享同一IDE。文中會(huì)涉及到一些諸如對(duì)象、事件等部分讀者可能不熟悉或不清楚的概念,對(duì)于此類問(wèn)題可直接忽略之,因?yàn)樵诤竺鏁?huì)有詳細(xì)介紹。本部分也不是一個(gè)VBA 的參考文檔,只是其語(yǔ)法、特征的快速瀏覽和介紹。(1)VBA 集成開發(fā)環(huán)境(IDE)的組成VBA 代碼和金字塔文檔文件是保存在一起的,可以通過(guò)點(diǎn)擊“工具 ― 宏 ― Visual Basic工程”打開VBA 的IDE 環(huán)境,進(jìn)行程序設(shè)計(jì)和代碼編寫。圖31Visual Basic IDE 環(huán)境圖 31 為金字塔 VBA 的IDE 環(huán)境,缺省情況下,VBA IDE 環(huán)境上方為菜單和工具條(圖 31),左側(cè)窗口為工程資源管理器窗口,右側(cè)最大的窗口為代碼窗口。 每一個(gè)金字塔文檔文件,對(duì)應(yīng)的VBA 工程都有4 類對(duì)象,包括:框架、窗體、模塊和類模塊(圖 32)。這里的框架主要是金字塔運(yùn)行時(shí)的技術(shù)分析圖表,例如我們常見(jiàn)的K線走勢(shì)分析圖的框架對(duì)象,雙擊這些對(duì)象會(huì)打開代碼窗口(圖31 右側(cè)窗口),在此窗口中可輸入相關(guān)的代碼,響應(yīng)事件,例如框架的打開、關(guān)閉,窗格的激活、品種顯示的修改、選擇等(有關(guān)事件、金字塔 對(duì)象模型見(jiàn)后)。窗體對(duì)象代表了自定義對(duì)話框或界面,模塊為自定義代碼的載體,類模塊則是以類或?qū)ο蟮姆绞骄帉懘a的載體,關(guān)于各對(duì)象的具體含義和使用見(jiàn)后。在工程資源管理器窗口的右鍵菜單下,有添加用戶窗體、模塊、類模塊的選項(xiàng),也可以將已有的模塊移除、導(dǎo)入和導(dǎo)出。 注意:建議用戶新建一個(gè)VBA工程來(lái)完成你的個(gè)性化VBA代碼,盡量不要在默認(rèn)的工程中添加,防止多個(gè)不同工程的代碼相互干擾,您可以點(diǎn)擊左側(cè)工程資源窗口上的工具欄來(lái)新建一個(gè)VBA工程。(2)在 VBA IDE 下進(jìn)行開發(fā)熟悉了 VBA 的IDE 環(huán)境后,我們來(lái)開發(fā)VBA 之旅的第一個(gè)程序。首先我們雙擊左側(cè)工程資源管理器上的窗口的模塊分類,然后雙擊“Macro”模塊,打開宏模塊代碼編輯窗口(圖33),然后選擇“插入”菜單過(guò)程,再隨后彈出的宏名稱編輯窗口里輸入“MyFirstVBAProgram”,然后單擊確定,這樣系統(tǒng)會(huì)自動(dòng)將MyFirstVBAProgram這個(gè)過(guò)程函數(shù)插入到代碼編輯窗口中,我們只要在打開窗口中輸入以下代碼:Sub MyFirstVBAProgram()MsgBox “我的第一個(gè)自編程序?!盓nd Sub通過(guò)“運(yùn)行”菜單宏,或者按Alt+F8快捷鍵,彈出宏運(yùn)行窗口,下拉框中選擇我們前面建立的“MyFirstVBAProgram”宏,然后就能看到運(yùn)行的結(jié)果了。圖32 注意:與其他程序設(shè)計(jì)語(yǔ)言不同,VBA 程序是事件驅(qū)動(dòng)的,沒(méi)有Main 函數(shù)之類的入口的概念。本質(zhì)上,VBA 代碼應(yīng)該只是一些完成具體工作的集合,而通過(guò)界面元素或者金字塔 的事件驅(qū)動(dòng)執(zhí)行,你可以通過(guò)自定義按鈕、菜單,并指定一個(gè)宏(VBA 過(guò)程,自定義界面也可以通過(guò)編程手段完成此類工作),通過(guò)單擊此按鈕即可調(diào)用相應(yīng)的VBA代碼,或者將調(diào)用綁定在金字塔的某個(gè)事件下。下面我們簡(jiǎn)單看一下這段代碼的組成,代碼第1 行表示這是一個(gè)新的過(guò)程,名稱為“MyFirstVBAProgram” 第2行調(diào)用MsgBox 這個(gè)函數(shù),顯示一個(gè)對(duì)話框,第3 行表示過(guò)程結(jié)束。VBA 程序由不同的模塊組成,在模塊內(nèi)部,可以定義不同的變量、過(guò)程或函數(shù),由此組成一個(gè)完整的程序。(3)善用工具及其他VBA 集成開發(fā)環(huán)境,提供了很多便利的工具可以幫助或輔助我們寫出好的程序,其中的方便必須親自使用才可以體會(huì),因此,一定要善用工具。VBA 的代碼編輯器提供了幾項(xiàng)非常有用的功能,代碼即時(shí)提示可以使我們不必記憶太多的東西,輸入對(duì)象后會(huì)自動(dòng)列出其屬性、方法等內(nèi)容。在實(shí)際的編程過(guò)程中,一定要善于利用在線幫助,VBA 的在線幫助包含了大量對(duì)編程有用的參考信息,任何人都不可能記得住所有的函數(shù)、對(duì)象的用法和程序語(yǔ)言的語(yǔ)法,所以一定要利用好幫助。幫助的使用可以在“幫助”菜單VBA編程信息 處獲得。可以通過(guò)幫助目錄瀏覽,或者通過(guò)查找輸入關(guān)鍵字查找相關(guān)內(nèi)容。圖33在代碼書寫中,如果一句代碼過(guò)長(zhǎng),應(yīng)該使用接行字符(“”)將其分為幾行,而不是書寫為一行,一般來(lái)說(shuō),代碼的長(zhǎng)度不要超過(guò)80 個(gè)字符為宜,這樣閱讀方便,不需要橫向拉動(dòng)滾動(dòng)條,也不容易出錯(cuò)。例如上面第一個(gè)例子我們可以將對(duì)話框文字輸出分成2行:MsgBox _“我的第一個(gè)自編程序。”對(duì)于代碼格式,一定要養(yǎng)成縮進(jìn)的習(xí)慣,在過(guò)程之后,循環(huán)語(yǔ)句、判斷語(yǔ)句之內(nèi),如本書的例子樣子,縮進(jìn)4 個(gè)字符,便于閱讀。代碼中,在一個(gè)邏輯或者操作完成之后,應(yīng)該空一行,以表示其邏輯關(guān)系,在過(guò)程與過(guò)程之間,也應(yīng)該空一行。VBA 中,使用單引號(hào)“’”表示注釋,編寫程序時(shí),一定要養(yǎng)成注釋的習(xí)慣。注釋不是所有代碼都要注釋;一般來(lái)說(shuō),對(duì)一個(gè)模塊、過(guò)程、函數(shù),要大概說(shuō)明其功能,參數(shù);對(duì)于一個(gè)過(guò)程,如果涉及較復(fù)雜的算法,要說(shuō)明其使用的算法或流程。在過(guò)程和函數(shù)中,對(duì)關(guān)鍵代碼,說(shuō)明其操作的目的、算法或流程。、函數(shù)和過(guò)程(1)模塊模塊是自定義的過(guò)程、函數(shù)保存的地方有兩種基本類型的模塊:類模塊和標(biāo)準(zhǔn)模塊,本節(jié)介紹標(biāo)準(zhǔn)模塊,類模塊將在專門介紹。模塊可以通過(guò)右鍵單擊工程資源管理器的工程名,選擇“插入 - 模塊”來(lái)新建,新建的模塊缺省的名稱為“模塊 1”,“模塊2”,建議在模塊右鍵重命名中更改為有意義的名稱。模塊有2 個(gè)任務(wù):(1)保存過(guò)程和函數(shù);(2)定義類模塊內(nèi)的私有變量或整個(gè)工程的公有變量。在模塊中可以聲明變量(包括對(duì)象),定義過(guò)程和函數(shù)。過(guò)程和函數(shù)的定義見(jiàn)下文,變量的聲明如下。變量的聲明:Dim I ‘Dim 表示聲明變量i注意:要求變量聲明VBA 缺省可以不聲明變量,在第一次使用的時(shí)候自動(dòng)聲明,但此功能也是VBA 代碼(包括其他Basic 代碼)的一個(gè)主要錯(cuò)誤之源。試想第一次使用了一個(gè)變量strMyFirstName,之后又通過(guò)strMyFirstNme(少一個(gè)a)來(lái)使用它,但由于拼寫不同,VBA 以為是一個(gè)新的變量,于是會(huì)新聲明一個(gè)變量,這樣的錯(cuò)誤極其難以發(fā)現(xiàn)。可以通過(guò)“工具- 選項(xiàng)”對(duì)話框,在“其他”頁(yè),選中“VBA變量名必須顯式聲明所有變量”,則在使用變量前,都必須先通過(guò)Dim 語(yǔ)句聲明。(2)過(guò)程過(guò)程是最基本的運(yùn)行單位。一個(gè)完整的過(guò)程一般類似如下格式:Sub Test(參數(shù)列表…)… …End Sub在以上程序中,Sub 代表過(guò)程種類,表示運(yùn)行指定的操作,但不返回運(yùn)行結(jié)果;Test表示過(guò)程名稱,最后以End Sub 結(jié)束。 其中按值按地址傳遞參數(shù)指一種將參數(shù)地址而不是將值傳遞給過(guò)程的方式,這就使過(guò)程訪問(wèn)到實(shí)際的變量。結(jié)果,過(guò)程可改變變量的真正值。VBA 缺省按地址傳遞參數(shù)。Sub MyTest()dim V1,V2V1 = 1V2 = 2MyTestCall (v1,v2) 39。v1,v2是參數(shù)MsgBox v1MsgBox v2End SubSub MyTestCall(V1,V2) V1=5 V2=.6End Sub調(diào)用的方法是:運(yùn)行結(jié)束后,你會(huì)發(fā)現(xiàn)V1和V2值都被改變了。所有的可執(zhí)行代碼都必須屬于某個(gè)過(guò)程。不能在別的過(guò)程中定義 Sub 過(guò)程。Exit Sub 語(yǔ)句使執(zhí)行立即從一個(gè) Sub 過(guò)程中退出。程序接著從調(diào)用該 Sub 過(guò)程的語(yǔ)句下一條語(yǔ)句執(zhí)行。在 Sub 過(guò)程的任何位置都可以有 Exit Sub 語(yǔ)句。在 Sub 過(guò)程中使用的變量分為兩類:一類是在過(guò)程內(nèi)顯式定義的,另一類則不是。在過(guò)程內(nèi)顯式定義的變量(使用 Dim 方法)都是局部變量。過(guò)程(包括函數(shù)等)的創(chuàng)建可以通過(guò)在代碼窗口直接鍵入“Sub…”來(lái)創(chuàng)建,也可以使用菜單的“插入 - 過(guò)程”對(duì)話框來(lái)創(chuàng)建。(3)函數(shù)函數(shù)是包含在 Function 和 End Function 語(yǔ)句之間的一組語(yǔ)句。Function 過(guò)程與 Sub 過(guò)程類似,但是 Function 過(guò)程可以返回值。Function 過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。如果 Function 過(guò)程無(wú)任何參數(shù),則 Function 語(yǔ)句必須包含空括號(hào) ()。Function 過(guò)程通過(guò)函數(shù)名返回一個(gè)值,這個(gè)值是在過(guò)程的語(yǔ)句中賦給函數(shù)名的。Function 返回值的數(shù)據(jù)類型總是 Variant。 在下面的示例中,Celsius 函數(shù)將華氏度換算為攝氏度。Sub 過(guò)程 ConvertTemp 調(diào)用此函數(shù)時(shí),包含參數(shù)值的變量被傳遞給函數(shù)。換算結(jié)果返回到調(diào)用過(guò)程并顯示在消息框中。 Sub ConvertTemp() temp = InputBox(請(qǐng)輸入華氏溫度。, 1) MsgBox 溫度為 amp。 Celsius(temp) amp。 攝氏度。 End Sub Function Celsius(fDegrees) Celsius = (fDegrees 32) * 5 / 9 End Function VBA 中有大量?jī)?nèi)置函數(shù),例如前邊例子里使用過(guò)的MsgBox,InputBox。VBA 的函數(shù)主要包括數(shù)學(xué)函數(shù)(包括三角函數(shù)、隨機(jī)數(shù)等)、字符串函數(shù)等等,熟悉VBA 的內(nèi)置函數(shù)可以提高工作效率,更好的完成工作。對(duì)于VBA 的函數(shù),可以參考VBA幫助文檔。(4)在代碼中使用 Sub 和 Function 過(guò)程調(diào)用 Function 過(guò)程時(shí),函數(shù)名必須用在變量賦值語(yǔ)句的右端或表達(dá)式中。例如: Temp = Celsius(fDegrees)或 MsgBox 溫度為 amp。 Celsius(fDegrees) amp。 攝氏度。調(diào)用 Sub 過(guò)程時(shí),只需輸入過(guò)程名及所有參數(shù)值,參數(shù)值之間使用逗號(hào)分隔。不需使用 Call 語(yǔ)句,但如果使用了此語(yǔ)句,則必須將所有參數(shù)包含在括號(hào)之中。 下面的示例顯示了調(diào)用 MyProc 過(guò)程的兩種方式。一種使用 Call 語(yǔ)句;另一種則不使用。兩種方式效果相同。 Call MyProc(firstarg, secondarg) MyProc firstarg, secondarg請(qǐng)注意當(dāng)不使用 Call 語(yǔ)句進(jìn)行調(diào)用時(shí),括號(hào)被省略。(1)什么是 VBA 數(shù)據(jù)類型?金字塔VBA 只有一種數(shù)據(jù)類型,稱為 Variant。Variant 是一種特殊的數(shù)據(jù)類型,根據(jù)使用的方式,它可以包含不同類別的信息。因?yàn)?Variant 是 VBScript 中唯一的數(shù)據(jù)類型,所以它也是 VBScript 中所有函數(shù)的返回值的數(shù)據(jù)類型。 最簡(jiǎn)單的 Variant 可以包含數(shù)字或字符串信息。Variant 用于數(shù)字上下文中時(shí)作為數(shù)字處理,用于字符串上下文中時(shí)作為字符串處理。這就是說(shuō),如果使
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1