![tb編程基礎(chǔ)詳解1_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec4/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec41.gif)
![tb編程基礎(chǔ)詳解1_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec4/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec42.gif)
![tb編程基礎(chǔ)詳解1_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec4/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec43.gif)
![tb編程基礎(chǔ)詳解1_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec4/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec44.gif)
![tb編程基礎(chǔ)詳解1_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec4/41f6ab5b-9e0c-4da6-bda7-acff5c3d2ec45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、交易開拓者(交易開拓者(TB)編程基礎(chǔ))編程基礎(chǔ) -公式篇公式篇 基本框架基本框架 TBTB公式概述公式概述 1 數(shù)據(jù)數(shù)據(jù) 2 語句語句 3 變量變量 5 數(shù)據(jù)回溯數(shù)據(jù)回溯 6 參數(shù)參數(shù) 4 公式公式 1 什么是什么是TradeBlazer公式公式 1、TradeBlazer公式是一種專為分析金融數(shù)據(jù)-時間序列而設(shè)計的高級語言 ,它提供直接、強(qiáng)大的框架將交易思想轉(zhuǎn)化為用戶函數(shù)、技術(shù)分析,交 易指令等計算機(jī)能夠識別的代碼。 2、TradeBlazer公式是一門語法簡單但是功能強(qiáng)大的語言,利用它能創(chuàng)建 自己的交易和技術(shù)分析工具。通過組合普通的交易指令和簡單的語句, TradeBlazer公式能夠很
2、容易并且直接的用簡單語句表達(dá)自己的交易規(guī)則 和行為。 3、交易開拓者能夠讀取TradeBlazer公式,在歷史價格數(shù)據(jù)基礎(chǔ)上進(jìn)行評 估,并能自動執(zhí)行特定的交易動作,將交易思想轉(zhuǎn)化為實際的交易操作 。 概述概述 TradeBlazer公式能做什么?公式能做什么? 通過TradeBlazer公式,能夠創(chuàng)建自己的交易指令、技術(shù)指標(biāo)、K 線型態(tài)、特征走勢、用戶函數(shù)。 TradeBlazer公式包含的公式類型如下: 用戶函數(shù):用戶函數(shù):用戶函數(shù)是能夠通過函數(shù)名稱進(jìn)行引用的指令集,它執(zhí)行一系列操作 并返回一個值。您可以在其他任何公式中使用用戶函數(shù)進(jìn)行計算; 技術(shù)指標(biāo):技術(shù)指標(biāo):技術(shù)指標(biāo)是基于基礎(chǔ)數(shù)據(jù),通過
3、一系列的數(shù)學(xué)運(yùn)算,在每個Bar返回相 應(yīng)的結(jié)果值的一類公式,這些值在圖表模塊中輸出為線條、柱狀圖、點等表現(xiàn)形 式; K線型態(tài):線型態(tài):K線型態(tài)是類似于技術(shù)指標(biāo)的一類公式,它主要著重于反映一段K線的 特定型態(tài),并通過不同的技術(shù)指標(biāo)的方式輸出到圖表; 特征走勢:特征走勢:特征走勢是類似于技術(shù)指標(biāo)的一類公式,它主要著重于反映整個價格 曲線的趨勢、變化特征,并通過特定的表達(dá)方式輸出到圖表; 交易指令:交易指令:交易指令是包含買、賣、平倉,頭寸,倉位控制的并執(zhí)行交易指令的 一類公式,它主要幫助您將您的交易思想轉(zhuǎn)化為計算機(jī)的操作。 通過調(diào)用TradeBlazer公式,您可以在交易開拓者中進(jìn)行技術(shù)分析、交易
4、策略優(yōu)化 測試、公式報警、自動交易等操作。 概述概述 數(shù)據(jù)類型 Bar數(shù)據(jù),是指商品在不同周期下形成的數(shù)據(jù),是指商品在不同周期下形成的序列數(shù)據(jù)序列數(shù)據(jù),在單獨的每個,在單獨的每個Bar上面包上面包 含開盤價、收盤價、最高價、最低價、成交量及時間。期貨等品種還有持倉含開盤價、收盤價、最高價、最低價、成交量及時間。期貨等品種還有持倉 量等數(shù)據(jù)。量等數(shù)據(jù)。 疊加數(shù)據(jù),交易開拓者的超級圖表支持商品疊加的顯示,當(dāng)疊加的圖表調(diào)用疊加數(shù)據(jù),交易開拓者的超級圖表支持商品疊加的顯示,當(dāng)疊加的圖表調(diào)用 各項公式時,可能有需要使用疊加的商品對應(yīng)的基礎(chǔ)數(shù)據(jù),針對這樣的需求各項公式時,可能有需要使用疊加的商品對應(yīng)的基礎(chǔ)
5、數(shù)據(jù),針對這樣的需求 ,TradeBlazer公式提供了疊加數(shù)據(jù)的支持。公式提供了疊加數(shù)據(jù)的支持。 行情數(shù)據(jù),行情數(shù)據(jù),TradeBlazer公式還可以支持實時行情數(shù)據(jù)的調(diào)用,行情數(shù)據(jù)是公式還可以支持實時行情數(shù)據(jù)的調(diào)用,行情數(shù)據(jù)是 指當(dāng)前商品最新的報價數(shù)據(jù),該數(shù)據(jù)和指當(dāng)前商品最新的報價數(shù)據(jù),該數(shù)據(jù)和Bar無關(guān),行情數(shù)據(jù)的回溯沒有意義無關(guān),行情數(shù)據(jù)的回溯沒有意義 。 屬性數(shù)據(jù),除了以上的各項數(shù)據(jù)之外,屬性數(shù)據(jù),除了以上的各項數(shù)據(jù)之外,TradeBlazer公式還提供一組重要的公式還提供一組重要的 屬性數(shù)據(jù),反映了該商品的一些基本信息,比如當(dāng)前數(shù)據(jù)周期,買賣盤個數(shù)屬性數(shù)據(jù),反映了該商品的一些基本信
6、息,比如當(dāng)前數(shù)據(jù)周期,買賣盤個數(shù) 、保證金設(shè)置等信息。在所有的、保證金設(shè)置等信息。在所有的Bar上面獲取的市場屬性數(shù)據(jù)都是一樣的,上面獲取的市場屬性數(shù)據(jù)都是一樣的, 屬性數(shù)據(jù)的回溯沒有意義。屬性數(shù)據(jù)的回溯沒有意義。 數(shù)據(jù)數(shù)據(jù) Bar數(shù)據(jù)數(shù)據(jù) 所有的Bar按照不同周期組合,并按照時間從先到后進(jìn)行排列,由此形成為序 列數(shù)據(jù),整個序列稱之為Bar數(shù)據(jù)。 以下列出所有的以下列出所有的Bar數(shù)據(jù)系統(tǒng)函數(shù):數(shù)據(jù)系統(tǒng)函數(shù): 計算方法計算方法 TradeBlazer公式在計算時按照Bar數(shù)據(jù)的Bar數(shù)目,從第一個Bar到最后一個Bar,依次 進(jìn)行計算,如果公式中出現(xiàn)了調(diào)用Bar數(shù)據(jù)函數(shù)的,則取出當(dāng)前Bar的相
7、應(yīng)值,進(jìn)行運(yùn) 算。如下圖箭頭所示,公式執(zhí)行從上至下,Bar從左到右執(zhí)行。 在公式的編寫中,經(jīng)常會遇到當(dāng)前Bar的數(shù)據(jù)和上一個Bar,上N個Bar數(shù)據(jù)進(jìn)行比較, 計算的情況,針對這種情況,TradeBlazer公式提供了一種處理機(jī)制:回溯。即對數(shù)據(jù) 的向前引用,比如,獲取上一個Bar的收盤價:Close1,獲取10天前的成交量: Vol10。以下提供一個簡單的例子來說明如何進(jìn)行回溯處理。 假定有如下語句: If (Close Close1) Buy(1,Close); 以上公式執(zhí)行一個簡單的操作,當(dāng)前Bar的收盤價大于上一個Bar的收盤價,即執(zhí)行按 照當(dāng)前收盤價買入1手的動作。根據(jù)上表的數(shù)據(jù),公
8、式將在CurrentBar為2和3的時候調(diào) 用Buy指令。 如果您足夠仔細(xì)的話,您會發(fā)現(xiàn):對于上面的一段公式的執(zhí)行,有一個小小的問題, 當(dāng)?shù)谝淮斡嬎愎綍r,即CurrentBar = 0時,這個時候需要獲取上一個Bar的數(shù)據(jù),但 是當(dāng)前Bar已經(jīng)是第一個Bar,這個時候就存在著問題,如何來獲取此時的Close1呢, TradeBlazer公式將默認(rèn)Close1為無效值,即系統(tǒng)函數(shù)中的InvalidNumeric,Close Close1的表達(dá)式計算結(jié)果是一個Bool值,其結(jié)果也是一個無效值,對于Bool值,我們 將False作為其無效值。因此,第一個Bar計算時,Buy指令不會被執(zhí)行。 對于技
9、術(shù)分析這類公式來說,假定Bar數(shù)據(jù)的總數(shù)共有100,相同的代碼將從 CurrentBar = 0到CurrentBar = 99 共執(zhí)行100遍,分別輸出公式中的結(jié)果值。 注意注意:在執(zhí)行TradeBlazer公式時,可能出現(xiàn)數(shù)據(jù)不存在的情況,可通過系統(tǒng)函數(shù) HistoryDataExist進(jìn)行判斷,如果該函數(shù)返回True,即為Bar數(shù)據(jù)有效。 疊加數(shù)據(jù)疊加數(shù)據(jù) 交易開拓者的超級圖表支持商品疊加的顯示,當(dāng)疊加的圖表調(diào)用各項公式時,可能有 需要使用疊加的商品對應(yīng)的基礎(chǔ)數(shù)據(jù) 假定,我們新建一個超級圖表模塊,其主數(shù)據(jù)對應(yīng)的商品為:cu1107,在此基礎(chǔ)上, 我們疊加了cu1108和cu1109。此時
10、,根據(jù)疊加操作的先后順序,cu1107為Data0, cu1108為Data1,cu1109為Data2,在TradeBlazer公式中,我們可以通過 Data1.Close(),Data2.Vol()類似方法調(diào)用疊加Bar數(shù)據(jù),疊加Bar數(shù)據(jù)的函數(shù)和Bar數(shù)據(jù) 一樣,只是需要在調(diào)用的時候加上數(shù)據(jù)源。 我們也可以使用Data0.Open()來調(diào)用Bar數(shù)據(jù),默認(rèn)情況下,可以省略對主數(shù)據(jù)源的指 定,為了方便,一般直接使用Open()來代替Data0.Open()。 數(shù)據(jù)類型數(shù)據(jù)類型 TradeBlazer公式支持有三種基本數(shù)據(jù)類型:數(shù)值型、字符串、布爾型。 為了通過用戶函數(shù)返回多個值,我們對三種
11、數(shù)據(jù)類型進(jìn)行了擴(kuò)展,增加了引用數(shù)據(jù)類 型。另外,為了對變量,參數(shù)進(jìn)行回溯,我們增加了序列數(shù)據(jù)類型。因此,我們的數(shù) 據(jù)類型共有九種,如下表所示: 數(shù)值型的表達(dá)式可以是一個數(shù)字,當(dāng)然,他們也可以是一個數(shù)值型的保留字 ,例如:保留字Close?;蛘呤峭ㄟ^運(yùn)算符號組合的一個計算表達(dá)式,該表 達(dá)式的結(jié)果是數(shù)值型。下文中的例子都是數(shù)值型的表達(dá)式。 154; Vol; (High+Low)/2; 布爾型的表達(dá)式能夠返回一個值True/False,或者說它可以對表達(dá)式的值進(jìn) 行評估,然后返回其值,要么為True,要么為False。邏輯表達(dá)式永遠(yuǎn)要涉及 到比較運(yùn)算,下面我們有一些邏輯表達(dá)式,它也就是對一個表達(dá)式
12、的值是 True還是False進(jìn)行判斷。 Close Open; 5 High1) Counter = Counter1 + 1; . End 在TradeBlazer公式中,If語句被廣泛使用,如K線型態(tài)和特征走勢,都需要大 量的使用If語句,當(dāng)條件滿足的時候,在滿足條件的Bar上面進(jìn)行標(biāo)記。例如 ,下面的語句就是特征走勢的例子: If(High High1 AND Low High1 AND Low High1 AND Low Close1,Value1 = Value1 + Vol;否則 Value1 = Value1 - Vol,腳本如下: If (Colse Close1) Valu
13、e1 = Value1 + Vol; Else Value1 = Value1 - Vol; If-Else-If 語句語句 If-Else-If是在If-Else的基礎(chǔ)上進(jìn)行擴(kuò)展,支持條件的多重分支。 語法如下: If (Condition1) TradeBlazer公式語句1; Else If(Condition2) TradeBlazer公式語句2; Else TradeBlazer公式語句3; lCondition1是一個邏輯表達(dá)式,當(dāng)Condition1為True的時候,TradeBlazer公式語句1將會被執(zhí)行, Condition1為False時,將會繼續(xù)判斷Condition2
14、的值,當(dāng)Condition2為True時,TradeBlazer公式語 句2將會被執(zhí)行。Condition2為False時,TradeBlazer公式語句3將會被執(zhí)行。Condition1, Condition2可以是多個條件表達(dá)式的邏輯組合,條件表達(dá)式必須用()括起來。 If-Else-If的語句可以根據(jù)需要一直擴(kuò)展,在最后的Else之后再加If(Condition)和新的執(zhí) 行代碼即可。 當(dāng)然您也可以省略最后的Else分支,語法如下: If (Condition1) TradeBlazer公式語句1; Else If(Condition2) TradeBlazer公式語句2; If-Els
15、e的嵌套的嵌套 If-Else的嵌套是在If-Else的執(zhí)行語句中包含新的條件語句,即一個條件被包含在另一個條件中。 語法如下: If (Condition1) If (Condition2) TradeBlazer公式語句1; Else TradeBlazer公式語句2; Else If (Condition3) TradeBlazer公式語句3; Else TradeBlazer公式語句4; Condition1是一個邏輯表達(dá)式,當(dāng)Condition1為True的時候,將會繼 續(xù)判斷Condition2的值,當(dāng)Condition2為True時,TradeBlazer公式語 句1將會被執(zhí)行。
16、Condition2為False時,TradeBlazer公式語句2將會 被執(zhí)行。當(dāng)Condition1為False的時候,將會繼續(xù)判斷Condition3的值 ,當(dāng)Condition3為True時,TradeBlazer公式語句3將會被執(zhí)行。 Condition3為False時,TradeBlazer公式語句4將會被執(zhí)行。 Condition1,Condition2,Condition3可以是多個條件表達(dá)式的邏輯組 合,條件表達(dá)式必須用()括起來。 TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句 是單條,您可以省略,二條或者二條以上的語句必須使用。 Tra
17、deBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句 是單條,您可以省略,二條或者二條以上的語句必須使用。 循環(huán)語句循環(huán)語句 For For語句是一個循環(huán)語句,重復(fù)執(zhí)行某項操作,直到循環(huán)結(jié)束。語句是一個循環(huán)語句,重復(fù)執(zhí)行某項操作,直到循環(huán)結(jié)束。 語法如下:語法如下: For 循環(huán)變量循環(huán)變量 = 初始值初始值 To 結(jié)束值結(jié)束值 TradeBlazer公式語句公式語句; 循環(huán)變量為在之前已經(jīng)定義的一個數(shù)值型變量,F(xiàn)or循環(huán)的執(zhí)行是從循環(huán)變量從初始值 到結(jié)束值,按照步長為1遞增,依次執(zhí)行TradeBlazer公式語句。結(jié)束值必須大于或等 于初始值才有意義,初始值和結(jié)束值可
18、以使用浮點數(shù),但是在執(zhí)行過程中會被直接取 整。只計算其整數(shù)部分。 TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省 略,二條或者二條以上的語句必須使用。 第一次執(zhí)行時,首先將循環(huán)變量賦值為初始值,然后判斷循環(huán)變量是否小于等于結(jié)束 值,如果滿足條件,則執(zhí)行TradeBlazer公式語句,同時循環(huán)變量加1。接著重新判斷 循環(huán)變量是否小于等于結(jié)束值,一直到條件為False,退出循環(huán)。 例如,以下的用戶計算Price最近Length周期的和。 Params NumericSeries Price(1); Numeric Length(10); Vars
19、 Numeric SumValue(0); Numeric i; Begin for i = 0 to Length - 1 SumValue = SumValue + Pricei; Return SumValue; End 如果希望For語句從大到小進(jìn)行循環(huán),可以使用以下的語法: For 循環(huán)變量 = 初始值 DownTo 結(jié)束值 TradeBlazer公式語句; For-DownTo讓循環(huán)變量從結(jié)束值每次遞減1直到等于結(jié)束值,依次調(diào)用 TradeBlazer公式語句執(zhí)行,初始值必須大于或等于結(jié)束值才有意義。 For語句是比較常用的一種循環(huán)控制語句,它應(yīng)用于知道循環(huán)次數(shù)的地方,很 多內(nèi)建用戶函數(shù)中都使用For語句來完成相應(yīng)的功能,比如Summation, Highest,Lowest,LinearReg等。 While While語句在條件為真的時候重復(fù)執(zhí)行某一項操作。即,只要條件表達(dá)式的值 為真(True)時,就重復(fù)執(zhí)行某個動作。直到行情信息改變以致條件為假 (False)時,循環(huán)才結(jié)束。 語法如下: While (Condition) TradeBlazer公式語句; Condition是一個邏輯表達(dá)式,當(dāng)Condition為True的時候,TradeBlazer公式 語句將會被循環(huán)執(zhí)行,Condition可以是多個條件表達(dá)式的邏輯組合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中外設(shè)備買賣合同模板
- 上海金融服務(wù)外包合作合同模板匯集
- 臨時教學(xué)樓改建工程合同
- 個人住房貸款合同樣本
- 臨時合作關(guān)系合同書
- 二手房購入合同范文:完整版
- 三人合伙投資合同范本
- 個人商業(yè)貸款抵押合同(1997年)版
- 個人債務(wù)履行擔(dān)保合同示例
- 個人定向捐贈合同模板修訂版
- PDCA提高患者自備口服藥物正確堅持服用落實率
- 上海石油化工股份有限公司6181乙二醇裝置爆炸事故調(diào)查報告
- 家譜人物簡介(優(yōu)選12篇)
- 品管部崗位職責(zé)20篇
- 2023年中智集團(tuán)下屬中智股份公司招聘筆試題庫及答案解析
- GA 1409-2017警用服飾硬式肩章
- 小兒垂釣 (課件)(14張)
- 嘉吉樂恩貝1-FarLactation課件
- 激光拉曼光譜技術(shù)課件
- DB33-T 2082-2017(2021)托幼機(jī)構(gòu)消毒衛(wèi)生規(guī)范
- 提高攜帶雙J管患者的健康教育落實率泌尿科品管圈課件
評論
0/150
提交評論