量化投資經(jīng)典TB公式入門ppt課件_第1頁
量化投資經(jīng)典TB公式入門ppt課件_第2頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、TB公式入門.Bar數(shù)據(jù):公式在進(jìn)展計(jì)算時,都是建立在根本數(shù)據(jù)源(Bar數(shù)據(jù))之上,我們這里所謂的Bar數(shù)據(jù),是指商品在不同周期下構(gòu)成的序列數(shù)據(jù),在單獨(dú)的每個Bar上面包含開盤價(jià)、收盤價(jià)、最高價(jià)、最低價(jià)、成交量及時間。期貨等種類還有持倉量等數(shù)據(jù)。一切的Bar按照不同周期組合,并按照時間從先到后進(jìn)展陳列,由此構(gòu)成為序列數(shù)據(jù),整個序列稱之為Bar數(shù)據(jù)。公式如何執(zhí)行:TradeBlazer公式在計(jì)算時按照Bar數(shù)據(jù)的Bar數(shù)目,從第一個Bar到最后一個Bar,依次進(jìn)展計(jì)算,假設(shè)公式中出現(xiàn)了調(diào)用Bar數(shù)據(jù)函數(shù)的,那么取出當(dāng)前Bar的相應(yīng)值,進(jìn)展運(yùn)算。公式執(zhí)行從上至下,Bar從左到右執(zhí)行。買賣開辟者公式

2、根底.公式執(zhí)行順序.公式執(zhí)行順序TradeBlazer公式的HelloWorld! FileAppend(c:Formula.log,hello world);End .公式的種類目的K線形狀特征走勢買賣指令函數(shù).公式環(huán)境的組織層次1 BAR數(shù)據(jù)目的K線形狀特征走勢買賣指令.公式環(huán)境的組織層次2 BAR數(shù)據(jù)目的K線形狀特征走勢買賣指令函數(shù).建立一個最簡單的目的:畫零線Begin PlotNumeric(“Line1,0);EndBegin和End宣告公式正文的開場和終了,公式語句應(yīng)該放到Begin和End之間。PlotNumeric表示輸出一個數(shù)值型組成的數(shù)組。技術(shù)目的屬性的設(shè)置.再畫一條線B

3、egin PlotNumeric(“Line1,5);End.參數(shù)一根線Params Numeric Length(0);Begin PlotNumeric(“Line1,length);EndN根線Params Numeric Length1(0); Numeric Length2(5);Begin PlotNumeric(“Line1,length1); PlotNumeric(“Line2,length2);End.取較大值Params Numeric Length1(0); Numeric Length2(5);Begin if(Length1 = Length2) PlotNumer

4、ic(“Line1,length1); else PlotNumeric(“Line1,length1); EndPlotNumeric由輸出的名字來區(qū)分能否為同一條線。.關(guān)于IF語句If語句是一個條件語句,當(dāng)特定的條件滿足后執(zhí)行一部分操作。語法如下:If (Condition) TradeBlazer公式語句; TradeBlazer公式語句是一些語句的組合,假設(shè)TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必需運(yùn)用。 .關(guān)于條件表達(dá)式邏輯操作符 :AND(&),OR(|),NOT(!) 表達(dá)式1 AND 表達(dá)式2 表達(dá)式1 OR 表達(dá)式2 NOT表達(dá)式1 留意:浮

5、點(diǎn)數(shù)字的等于詳細(xì)引見參見協(xié)助文件公式系統(tǒng)操作符留意:條件表達(dá)式括號后面不要加分號。.IF-ElseIf-Else語句是對指定條件進(jìn)展判別,假設(shè)條件滿足執(zhí)行If后的語句。否那么執(zhí)行Else后面的語句。語法如下:If (Condition) TradeBlazer公式語句1;Else TradeBlazer公式語句2; .If-Else-IfIf-Else-If是在If-Else的根底上進(jìn)展擴(kuò)展,支持條件的多重分支。語法如下: If (Condition1) TradeBlazer公式語句1; Else If(Condition2) TradeBlazer公式語句2; Else TradeBlaz

6、er公式語句3; If-Else-If的語句可以根據(jù)需求不斷擴(kuò)展,在最后的Else之后再加If(Condition)和新的執(zhí)行代碼即可。當(dāng)然您也可以省略最后的Else分支, .If-Else的嵌套 If-Else的嵌套是在If-Else的執(zhí)行語句中包含新的條件語句,即一個條件被包含在另一個條件中。If (Condition1) If (Condition2) TradeBlazer公式語句1; Else TradeBlazer公式語句2; Else If (Condition3) TradeBlazer公式語句3; Else TradeBlazer公式語句4; .回到目的賦值語句用變量使流程明

7、晰Params Numeric Length1(0); Numeric Length2(5);Vars Numeric biger;Begin if(Length1 = Length2) biger = Length1; else biger = Length2; PlotNumeric(“Line1, biger );End.公式的三段論.函數(shù)(1)用函數(shù)使流程更加簡約ParamsNumeric Length1(0);Numeric Length2(5);VarsNumeric biger;Beginbiger = GetBiger(Length1,Length2);PlotNumeric(

8、“Line1, biger );End.函數(shù)1GetBiger的內(nèi)容Return 語句Params Numeric Length1(0); Numeric Length2(5);Begin if(Length1 = Length2) return Length1; else return Length2; End.目的模板Params . VarsNumeric line1;Numeric line2;.Beginline1 = GetLine1(.);line2 = GetLine2(.);PlotNumeric(“Line1, line1 );PlotNumeric(“Line2, lin

9、e2 );.End參考MA目的的模板寫法.函數(shù)2假設(shè)要寫這樣一個目的:兩個數(shù)字型參數(shù),比較其大小,并輸出兩條線ParamsNumeric Length1(0);Numeric Length2(5);VarsNumeric biger;Numeric smaller;Beginbiger = GetBiger(Length1,Length2);smaller = GetSmaller(Length1,Length2);PlotNumeric(“bigger, biger );PlotNumeric(“smaller, smaller);End然而.函數(shù)2援用型參數(shù)函數(shù)compare的內(nèi)容Para

10、ms Numeric param1(0); Numeric param2(5); NumericRef samller;Begin if(param1 = param2) smaller = param2;return param1; else smaller = param1;return Length2; End.函數(shù)2調(diào)用compareParamsNumeric param1(0);Numeric param2(5);VarsNumeric biger;Numeric smaller;Beginbiger = compare(param1,param2,smaller);PlotNume

11、ric(“bigger, biger );PlotNumeric(“smaller, smaller);End.一個新需求用函數(shù)計(jì)算最近三根BAR的最低點(diǎn)Beginif(low = low1 & low =low2)return low;if(low1 = low & low1 =low2)return low1;if(low2 = low & low2 =low1)return low2;End.一個新需求另一種寫法:冒泡Varsnumeric smallest(999999);/ 初始值很重要!Beginif(low2 samllest)smallest = low2;if(low1 sa

12、mllest)smallest = low1;if(low samllest)smallest = low;return smallest;End.最近N個BAR的最低值(循環(huán)語句)Paramsnumeric Length(5);Varsnumeric smallest(999999);/ 初始值很重要!numeric i;Beginfor i=1 to Length-1if(lowi = smallest)smallest = lowi;return smallest;End.最近N個BAR的最低值Paramsnumeric Length(5);Varsnumeric smallest(99

13、9999);/ 初始值很重要!numeric i;Beginif(CurrentBar Length -1)return InvalidNumeric;for i=1 to Length-1if(lowi = smallest)smallest = lowi;return smallest;End.數(shù)據(jù)回溯如何運(yùn)用回溯表達(dá)? XXXnOffsetnOffset是要回溯援用的Bar相對于當(dāng)前Bar的偏移值,該值必需大于等于0,當(dāng)nOffset = 0時,即為獲取當(dāng)前Bar的參數(shù)值。并且nOffset不能大于當(dāng)時的CurrentBar,這樣會導(dǎo)致數(shù)據(jù)訪問越界。呵斥不可預(yù)知的計(jì)算結(jié)果。變量回溯,參數(shù)

14、回溯,函數(shù)回溯(系統(tǒng)函數(shù)).序列參數(shù)ParamsnumericSeriesPrice(1);numeric Length(5);Varsnumeric smallest(999999);/ 初始值很重要!numeric i;Beginif(CurrentBar Length -1)return InvalidNumeric;for i=1 to Length-1if(Pricei = smallest)smallest =Pricei;return smallest;End.沒完沒了的新需求得到最低值與最低值的位置.沒完沒了的新需求ParamsnumericSeriesPrice(1); nu

15、mericRefPosition;VarsnumericSeries smallest(999999); numericSeries i;Beginif(CurrentBar = 0)smallest = Price;I = 0;Position = i;return smallest;elsesmallest = smallest1;I = i1;if(price = smallest)samllest = price;I = currentBar;return smallest;End.關(guān)于常量和變量的定義常量是用來替代一個數(shù)或字符串的稱號 。在公式整個執(zhí)行過程中不發(fā)生改動。變量是一個存儲

16、值的地址,當(dāng)變量被聲明之后,就可以在腳本中運(yùn)用變量,可以對其賦值,也可以在其他地方援用變量的值進(jìn)展計(jì)算,要對變量進(jìn)展操作,直接運(yùn)用變量稱號即可。 變量的主要用途在于它可以存放計(jì)算或比較的結(jié)果,以方便在之后的腳本中直接援用運(yùn)算的值,而無需重現(xiàn)計(jì)算過程。.關(guān)于變量的類型TradeBlazer公式支持有三種根本數(shù)據(jù)類型:數(shù)值型(Numeric)、字符串(String)、布爾型(Bool)。為了經(jīng)過用戶函數(shù)前往多個值,我們對三種數(shù)據(jù)類型進(jìn)展了擴(kuò)展,添加了援用數(shù)據(jù)類型。另外,為了對變量,參數(shù)進(jìn)展回溯,我們添加了序列數(shù)據(jù)類型。因此,我們的數(shù)據(jù)類型共有九種.9種數(shù)據(jù)類型Bool布爾型。BoolRef布爾型援

17、用。BoolSeries和周期長度一致的Bool型序列值。Numeric數(shù)值型。NumericRef數(shù)值型援用。NumericSeries和周期長度一致的Numeric型序列值。String字符串。StringRef字符串援用。StringSeries和周期長度一致的String型序列值。.關(guān)于參數(shù)參數(shù)是一個預(yù)先聲明的地址,用來存放輸入?yún)?shù)的值,在聲明之后,您就可以在接下來的公式中運(yùn)用該參數(shù)的稱號來援用其值。參數(shù)的值在公式的內(nèi)部是不可以被修正,在整個程序中不斷堅(jiān)持不變,不能對參數(shù)進(jìn)展賦值操作(援用參數(shù)是個特例)。參數(shù)的益處在于您可以在調(diào)用執(zhí)行技術(shù)分析,買賣指令的時候才指定相應(yīng)的參數(shù),而不需求重

18、新編譯。詳細(xì)運(yùn)用參見協(xié)助文件公式系統(tǒng)參數(shù).買賣戰(zhàn)略-完好的買賣系統(tǒng)通常單個買賣指令只完成建倉或平倉的單個動作,而一個完好的買賣戰(zhàn)略應(yīng)該至少包含建倉、平倉買賣指令,并且根據(jù)需求加上止損,獲利等鎖定風(fēng)險(xiǎn)和收益的買賣指令。多個買賣指令的組合才干更加有效的協(xié)助我們完好的進(jìn)展買賣,因此,我們將多個買賣指令的有效組合稱之為買賣戰(zhàn)略。.買賣戰(zhàn)略的運(yùn)轉(zhuǎn)機(jī)制(1)假定我們創(chuàng)建一個買賣戰(zhàn)略,該買賣戰(zhàn)略由以下買賣指令組成,并按照如下順序運(yùn)用到超級圖表中。.買賣戰(zhàn)略的運(yùn)轉(zhuǎn)機(jī)制(2)當(dāng)我們將該買賣戰(zhàn)略運(yùn)用到超級圖表上時,TradeBlazer公式將會從圖表的第一個Bar開場執(zhí)行買賣戰(zhàn)略,在第一個Bar上首先執(zhí)行多頭建倉

19、指令A(yù),能夠會產(chǎn)生買賣委托開倉,該委托能夠被設(shè)置為在當(dāng)前Bar執(zhí)行,也可以被設(shè)置為延遲到下一個Bar執(zhí)行。當(dāng)多頭建倉指令A(yù)執(zhí)行完成之后,將按順序調(diào)用多頭平倉指令B,同時該指令會判別當(dāng)前的持倉形狀,倉位等信息,當(dāng)條件滿足的時候會產(chǎn)生買賣委托平倉。.買賣戰(zhàn)略的運(yùn)轉(zhuǎn)機(jī)制(3)接下來依次執(zhí)行止損平倉指令C和獲利平倉指令D,當(dāng)四個買賣指令在第一個Bar上都執(zhí)行完之后,將會移到第二個Bar執(zhí)行,這時候,系統(tǒng)會首先讀取上一個Bar能否有延遲的買賣委托,假設(shè)有延遲的買賣委托,對這些委托先進(jìn)展處置,然后像第一個Bar一樣,依次調(diào)用各個買賣指令。以此類推,從圖表的第一個Bar到最后一個Bar,全部執(zhí)行完成之后,整

20、個買賣戰(zhàn)略執(zhí)行終了。在整個執(zhí)行過程產(chǎn)生的一切買賣委托被保管下來供超級圖表模塊顯示或進(jìn)展性能測試分析。.歷史數(shù)據(jù)測試和實(shí)踐買賣的關(guān)系.MarketPosition與A_TotalPosition普通型函數(shù)形狀型函數(shù).Q函數(shù)和A函數(shù)Q函數(shù),指以Q_開頭的系統(tǒng)函數(shù),主要是獲取實(shí)時行情信息。A函數(shù),指以A_開頭的系統(tǒng)函數(shù),獲取自動買賣關(guān)聯(lián)帳戶的帳戶信息,只需在啟動自動買賣的情況下才干取值。Q函數(shù)和A函數(shù)都是反映最新的實(shí)時形狀,不能取歷史上的值,所以只能在當(dāng)前有效,在公式中表現(xiàn)為只能在最后Bar上取值。.買賣設(shè)置的作用.Buy,SellShort等Buy:多頭開倉; Sell:多頭平倉SellShort

21、:空頭開倉;BuyToCover:空頭平倉Bool Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False) Share 買入數(shù)量,為整型值,默以為運(yùn)用系統(tǒng)設(shè)置參數(shù);Price 買入價(jià)錢,為浮點(diǎn)數(shù),默許=0時為運(yùn)用現(xiàn)價(jià)(非最后Bar為Close);Delay 買入動作能否延遲,默以為當(dāng)前Bar發(fā)送委托,當(dāng)Delay=True,在下一個Bar執(zhí)行。 .關(guān)于Delay默許情況下,4個買賣函數(shù)產(chǎn)生的委托單即時發(fā)送;當(dāng)參數(shù)Delay=True時,委托單將延遲到下一個Bar發(fā)送,這樣設(shè)計(jì)的緣由在于:延遲的委托單才會保證發(fā)送的買賣指令的正確性。假定在某商品

22、A的周期為5分鐘的數(shù)據(jù)上運(yùn)用買賣指令,A商品每1秒鐘會產(chǎn)生一個Tick數(shù)據(jù),因此一段時間內(nèi)5分鐘A商品最后一個Bar的數(shù)據(jù)的收盤價(jià),最高價(jià),最低價(jià)以及成交量等數(shù)據(jù),會隨著Tick的變化和累計(jì)而產(chǎn)生相應(yīng)的變化。在某種情況下,上一個Tick更新時,Buy的預(yù)設(shè)條件能夠?yàn)镕alse,下一個Tick更新時,Buy的預(yù)設(shè)條件為True。假設(shè)不延遲,將會馬上發(fā)送該委托單到買賣所。但是,當(dāng)更多的Tick累計(jì),產(chǎn)生一個新的Bar時,Buy的預(yù)設(shè)條件能夠會變成False。在這種情況,前面產(chǎn)生的委托單將會喪失,不會在測試和優(yōu)化報(bào)表中出現(xiàn)。該委托單實(shí)踐上是由于噪音數(shù)據(jù)產(chǎn)生的錯誤訊號導(dǎo)致,為了防止這種情況的出現(xiàn),一定要等最后Bar數(shù)據(jù)更新終了之后,新Bar產(chǎn)生第一個Tick時,才會發(fā)送上一個Bar產(chǎn)生的委托單。當(dāng)買賣函數(shù)的延遲設(shè)置

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論