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

下載本文檔

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

文檔簡(jiǎn)介

1、TB公式入門(mén).Bar數(shù)據(jù):公式在進(jìn)展計(jì)算時(shí),都是建立在根本數(shù)據(jù)源(Bar數(shù)據(jù))之上,我們這里所謂的Bar數(shù)據(jù),是指商品在不同周期下構(gòu)成的序列數(shù)據(jù),在單獨(dú)的每個(gè)Bar上面包含開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)、最低價(jià)、成交量及時(shí)間。期貨等種類(lèi)還有持倉(cāng)量等數(shù)據(jù)。一切的Bar按照不同周期組合,并按照時(shí)間從先到后進(jìn)展陳列,由此構(gòu)成為序列數(shù)據(jù),整個(gè)序列稱(chēng)之為Bar數(shù)據(jù)。公式如何執(zhí)行:TradeBlazer公式在計(jì)算時(shí)按照Bar數(shù)據(jù)的Bar數(shù)目,從第一個(gè)Bar到最后一個(gè)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í)行。買(mǎi)賣(mài)開(kāi)辟者公式

2、根底.公式執(zhí)行順序.公式執(zhí)行順序TradeBlazer公式的HelloWorld! FileAppend(c:Formula.log,hello world);End .公式的種類(lèi)目的K線形狀特征走勢(shì)買(mǎi)賣(mài)指令函數(shù).公式環(huán)境的組織層次1 BAR數(shù)據(jù)目的K線形狀特征走勢(shì)買(mǎi)賣(mài)指令.公式環(huán)境的組織層次2 BAR數(shù)據(jù)目的K線形狀特征走勢(shì)買(mǎi)賣(mài)指令函數(shù).建立一個(gè)最簡(jiǎn)單的目的:畫(huà)零線Begin PlotNumeric(“Line1,0);EndBegin和End宣告公式正文的開(kāi)場(chǎng)和終了,公式語(yǔ)句應(yīng)該放到Begin和End之間。PlotNumeric表示輸出一個(gè)數(shù)值型組成的數(shù)組。技術(shù)目的屬性的設(shè)置.再畫(huà)一條線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由輸出的名字來(lái)區(qū)分能否為同一條線。.關(guān)于IF語(yǔ)句If語(yǔ)句是一個(gè)條件語(yǔ)句,當(dāng)特定的條件滿足后執(zhí)行一部分操作。語(yǔ)法如下:If (Condition) TradeBlazer公式語(yǔ)句; TradeBlazer公式語(yǔ)句是一些語(yǔ)句的組合,假設(shè)TradeBlazer公式語(yǔ)句是單條,您可以省略,二條或者二條以上的語(yǔ)句必需運(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ì)引見(jiàn)參見(jiàn)協(xié)助文件公式系統(tǒng)操作符留意:條件表達(dá)式括號(hào)后面不要加分號(hào)。.IF-ElseIf-Else語(yǔ)句是對(duì)指定條件進(jìn)展判別,假設(shè)條件滿足執(zhí)行If后的語(yǔ)句。否那么執(zhí)行Else后面的語(yǔ)句。語(yǔ)法如下:If (Condition) TradeBlazer公式語(yǔ)句1;Else TradeBlazer公式語(yǔ)句2; .If-Else-IfIf-Else-If是在If-Else的根底上進(jìn)展擴(kuò)展,支持條件的多重分支。語(yǔ)法如下: If (Condition1) TradeBlazer公式語(yǔ)句1; Else If(Condition2) TradeBlazer公式語(yǔ)句2; Else TradeBlaz

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

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ù)使流程更加簡(jiǎn)約ParamsNumeric Length1(0);Numeric Length2(5);VarsNumeric biger;Beginbiger = GetBiger(Length1,Length2);PlotNumeric(

8、“Line1, biger );End.函數(shù)1GetBiger的內(nèi)容Return 語(yǔ)句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目的的模板寫(xiě)法.函數(shù)2假設(shè)要寫(xiě)這樣一個(gè)目的:兩個(gè)數(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.一個(gè)新需求用函數(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.一個(gè)新需求另一種寫(xiě)法:冒泡Varsnumeric smallest(999999);/ 初始值很重要!Beginif(low2 samllest)smallest = low2;if(low1 sa

12、mllest)smallest = low1;if(low samllest)smallest = low;return smallest;End.最近N個(gè)BAR的最低值(循環(huán)語(yǔ)句)Paramsnumeric Length(5);Varsnumeric smallest(999999);/ 初始值很重要!numeric i;Beginfor i=1 to Length-1if(lowi = smallest)smallest = lowi;return smallest;End.最近N個(gè)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相對(duì)于當(dāng)前Bar的偏移值,該值必需大于等于0,當(dāng)nOffset = 0時(shí),即為獲取當(dāng)前Bar的參數(shù)值。并且nOffset不能大于當(dāng)時(shí)的CurrentBar,這樣會(huì)導(dǎo)致數(shù)據(jù)訪問(wèn)越界。呵斥不可預(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.沒(méi)完沒(méi)了的新需求得到最低值與最低值的位置.沒(méi)完沒(méi)了的新需求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)于常量和變量的定義常量是用來(lái)替代一個(gè)數(shù)或字符串的稱(chēng)號(hào) 。在公式整個(gè)執(zhí)行過(guò)程中不發(fā)生改動(dòng)。變量是一個(gè)存儲(chǔ)

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

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

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

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

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

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

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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論