您現(xiàn)在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者公式>>正文內(nèi)容

開拓者 TB公式入門教程[開拓者公式]

  • 咨詢內(nèi)容: 請大家不要在此貼回復(fù),關(guān)于該貼的問題請到這里回復(fù),謝謝!


    TradeBlazer公式入門教程(1)

    Step 1、在開始寫公式之前,我們先了解以下基本概念

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

    Step 2、接下來,我們從TradeBlazer公式的HelloWorld開始
    該貼前期已經(jīng)發(fā)過,因此在此只給出鏈接:
    TradeBlazer公式的HelloWorld!

    Step 3、建立一個簡單的指標(biāo):成交量
    對于交易開拓者界面不熟悉的朋友可以參看以下帖子:
    如何在交易開拓者中編寫技術(shù)指標(biāo)?

    新建指標(biāo)簡稱: MyVol
    1. Begin

    2.         PlotNumeric("Vol",Vol);       

    3. End

     

  • TB技術(shù)人員: TradeBlazer公式入門教程(2)
    Step 4:
    前面我們所建的技術(shù)指標(biāo)MyVol,可以輸出成交量,但成交量只能設(shè)置為屬性所選的一種顏色。如下圖:
    普通成交量.png (8.75 KB, 下載次數(shù): 291) 2007-8-21 15:50:44 上傳下載次數(shù): 291

    很多朋友習(xí)慣于看紅綠色表示漲跌的成交量。
    下面我們來實(shí)現(xiàn)帶紅綠顏色的成交量指標(biāo),代碼如下:
    1. Begin

    2.     PlotNumeric(“Vol”,Vol,IIf(Close>=Open,Red,Green));

    3. End
    復(fù)制代碼
    使用的情形如下:
    紅綠色成交量.png (9.19 KB, 下載次數(shù): 293) 2007-8-21 15:50:44 上傳下載次數(shù): 293

    關(guān)于IIF
    函數(shù)原形:
        Numeric IIF(Bool Conditon,Numeric TrueValue,Numeric FalseValue)
    參數(shù):
        Conditon 條件表達(dá)式;
        TrueValue 條件為True時的返回值;
        FalseValue 條件為False時的返回值。

    針對上面的使用IIF進(jìn)行成交量顏色指定的腳本, 我們還有另外一種寫法:
    1. Begin

    2.     If(Close>=Open)

    3.         PlotNumeric(“Vol”,Vol,Red);

    4.     Else

    5.         PlotNumeric(“Vol”,Vol,Green);

    6. End
    復(fù)制代碼
    PlotNumeric由輸出的名字來區(qū)分是否為同一條線!

    關(guān)于IF語句
    If語句是一個條件語句,當(dāng)特定的條件滿足后執(zhí)行一部分操作。
    語法如下:
    If (Condition)
    {
      TradeBlazer公式語句;
    }
    TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略{},二條或者二條以上的語句必須使用{}。

    [ 本帖最后由 nopain 于 2007-8-21 15:58 編輯 ]

     

  • TB客服: TradeBlazer公式入門教程(3)
    Step5

    關(guān)于條件表達(dá)式
    ?
       
    邏輯操作符
    邏輯運(yùn)算符常常用于比較兩個True/False的表達(dá)式,共有三個邏輯操作符:AND(&&),OR(||),NOT(!)。   
               
    ?        表達(dá)式1 AND 表達(dá)式2
    ?        表達(dá)式1 OR 表達(dá)式2
    ?        NOT表達(dá)式1

               如下圖表所示可以讓大家更清晰地理解邏輯操作符在表達(dá)式中的運(yùn)算結(jié)果
    未命名111.JPG (42.58 KB, 下載次數(shù): 290) 2007-8-22 12:16:51 上傳下載次數(shù): 290

    [ 本帖最后由 小米 于 2007-8-22 12:19 編輯 ]

     

  • 網(wǎng)友回復(fù): TradeBlazer公式入門教程(4)
    Step6

    前面第一貼已經(jīng)講過了IF語句,接下來要講解條件語句的另外三種表達(dá)方式:
       If-Else
       If-Else-If
       If-Else的嵌套


    關(guān)于If-Else語句
    If-Else語句是對指定條件進(jìn)行判斷,如果條件滿足執(zhí)行If后的語句。否則執(zhí)行Else后面的語句。

    語法如下:
    1. If (Condition)

    2. {

    3.     TradeBlazer公式語句1;

    4. }Else

    5. {

    6.     TradeBlazer公式語句2;

    7. }
    復(fù)制代碼
    Condition是一個邏輯表達(dá)式,當(dāng)Condition為True的時候,TradeBlazer公式語句1將會被執(zhí)行;Condition為False時,TradeBlazer公式語句2將會被執(zhí)行。Condition可以是多個條件表達(dá)式的邏輯組合,Condition必須用()括起來。

    TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略{},二條或者二條以上的語句必須使用{}。


    例如,比較當(dāng)前Bar和上一個Bar的收盤價,如果Close > Close[1],Value1 = Value1 + Vol;否則Value1 = Value1 - Vol,腳本如下:
    1. If (Close > Close[1])

    2.     Value1 = Value1 + Vol;

    3. Else

    4.     Value1 = Value1 - Vol;
    復(fù)制代碼



    關(guān)于If-Else-If的語句
    If-Else-If是在If-Else的基礎(chǔ)上進(jìn)行擴(kuò)展,支持條件的多重分支。

    語法如下:

    1. If (Condition1)

    2. {

    3.     TradeBlazer公式語句1;

    4. }Else If(Condition2)

    5. {

    6.     TradeBlazer公式語句2;

    7. }Else

    8. {

    9.     TradeBlazer公式語句3;

    10. }
    復(fù)制代碼

    Condition1是一個邏輯表達(dá)式,當(dāng)Condition1為True的時候,TradeBlazer公式語句1將會被執(zhí)行,Condition1為False時,將會繼續(xù)判斷Condition2的值,當(dāng)Condition2為True時,TradeBlazer公式語句2將會被執(zhí)行。Condition2為False時,TradeBlazer公式語句3將會被執(zhí)行。Condition1,Condition2可以是多個條件表達(dá)式的邏輯組合,條件表達(dá)式必須用()括起來。

    TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略{},二條或者二條以上的語句必須使用{}。

    If-Else-If的語句可以根據(jù)需要一直擴(kuò)展,在最后的Else之后再加If(Condition)和新的執(zhí)行代碼即可。當(dāng)然您也可以省略最后的Else分支,語法如下:

    1. If (Condition1)

    2. {

    3.     TradeBlazer公式語句1;

    4. }Else If(Condition2)

    5. {

    6.     TradeBlazer公式語句2;

    7. }
    復(fù)制代碼



    If-Else的嵌套

    If-Else的嵌套是在If-Else的執(zhí)行語句中包含新的條件語句,即一個條件被包含在另一個條件中。

    語法如下:

    1. If (Condition1)

    2. {

    3.     If (Condition2)

    4.     {

    5.         TradeBlazer公式語句1;

    6.     }Else

    7.     {

    8.         TradeBlazer公式語句2;

    9.     }

    10. }Else

    11. {

    12.     If (Condition3)

    13.     {

    14.         TradeBlazer公式語句3;

    15.     }Else

    16.     {

    17.         TradeBlazer公式語句4;

    18.     }

    19. }
    復(fù)制代碼


    Condition1是一個邏輯表達(dá)式,當(dāng)Condition1為True的時候,將會繼續(xù)判斷Condition2的值,當(dāng)Condition2為True時,TradeBlazer公式語句1將會被執(zhí)行。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公式語句是單條,您可以省略{},二條或者二條以上的語句必須使用{}。

    例如,在一個交易指令中,條件設(shè)置如下:當(dāng)前行情上漲的時候,如果收盤價高于開盤價時,則產(chǎn)生一個以收盤價買入1張合約;否則產(chǎn)生一個以開盤價買入1張合約。當(dāng)前行情沒有上漲的時候,如果收盤價高于開盤價,則產(chǎn)生一個以收盤價賣出1張合約;否則產(chǎn)生一個以開盤價賣出1張合約。腳本如下:

    1. If (Open > High[1])

    2. {

    3.     If (Close>Open)

    4.     {

    5.         Buy(1,close);

    6.     }Else

    7.     {

    8.         Buy(1,open);

    9.     }

    10. }Else

    11. {

    12.     If (Close > Open)

    13.     {   

    14.         Sell(1,close);

    15.     }Else

    16.     {

    17.         Sell (1,open);

    18.     }

    19. }
    復(fù)制代碼

     

  • 網(wǎng)友回復(fù): TradeBlazer公式入門教程(5)

    Step7


    現(xiàn)在再回到成交量指標(biāo)
    有人喜歡在成交量指標(biāo)上加均線,我們來看如何實(shí)現(xiàn)這樣的功能。
    1. Begin

    2.     PlotNumeric(“Vol”,Vol);

    3.     PlotNumeric(“AvgVol5”,AverageFC(Vol,5));

    4. End
    復(fù)制代碼

    如下圖中所示便是加了均線的成交量

    avgvol.PNG (11.63 KB, 下載次數(shù): 260) 2007-8-23 15:33:38 上傳下載次數(shù): 260


    Step8

    關(guān)于Average和 AverageFC
    Average和AverageFC都是內(nèi)建的用戶函數(shù),目的都是用來求N個Bar以來的平均值,您可以直接看到實(shí)現(xiàn)的代碼。
    如下:
    Average
    1. Params

    2.         NumericSeries Price(1);

    3.         Numeric Length(10);

    4. Vars

    5.         Numeric AvgValue;

    6. Begin

    7.         AvgValue = Summation(Price, Length) / Length;        

    8.         Return AvgValue;

    9. End
    復(fù)制代碼

    AverageFC
    1. Params

    2.         NumericSeries Price(1);

    3.         Numeric Length(10);

    4. Vars

    5.         Numeric AvgValue;

    6. Begin

    7.         AvgValue = SummationFC(Price, Length) / Length;        

    8.         Return AvgValue;

    9. End
    復(fù)制代碼

    Average和AverageFC有什么不同呢?AverageFC是指FastCalculate,即快速計算。當(dāng)這兩個函數(shù)的第二個變量,即N個Bar是常量時,使用AverageFC,提高計算效率。當(dāng)N是不確定的變量時,則必須使用Average,否則會出現(xiàn)計算問題。
    單看Average和AverageFC似乎是一樣的,唯一不同的是AvgValue的計算方式用到的是Summation和SumamtionFC。



    Summation和SumamtionFC
    現(xiàn)在再來看看Summation與SumamtionFC的不同之處。公式表達(dá)如下:

    Summation

    1. Params

    2.         NumericSeries Price(1);

    3.         Numeric Length(10);

    4. Vars

    5.         Numeric SumValue(0);

    6.         Numeric i;

    7. Begin

    8.         If (CurrentBar >= Length-1)

    9.         {

    10.                 for i = 0 to Length - 1

    11.                 {

    12.                         SumValue = SumValue + Price[i];

    13.                 }

    14.         }Else

    15.         {

    16.                 SumValue = InvalidNumeric;

    17.         }

    18.         Return SumValue;

    19. End
    復(fù)制代碼


    SummationFC

    1. Params

    2.         NumericSeries Price(1);

    3.         Numeric Length(10);

    4. Vars

    5.         NumericSeries SumValue(0);

    6.         Numeric i;

    7. Begin

    8.         If ( CurrentBar < Length || Price[Length] == InvalidNumeric || SumValue[1] == InvalidNumeric )

    9.         {

    10.                 for i = 0 to Length - 1

    11.                 {

    12.                         SumValue = SumValue + Price[i];

    13.                 }

    14.         }Else

    15.         {

    16.                 SumValue = SumValue[1] + Price - Price[Length] ;

    17.         }

    18.         Return SumValue;

    19. End
    復(fù)制代碼


    關(guān)于Average函數(shù)的參數(shù)

    Numeric Average(NumericSeries Price, Numeric Length);
    Price 需要進(jìn)行平均的序列變量
    Length 平均時回溯的Bar數(shù)量

    [ 本帖最后由 小米 于 2007-8-24 10:35 編輯 ]

 

有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 262069696  點(diǎn)擊在線交流進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價格!

 


【字體: 】【打印文章】【查看評論

相關(guān)文章

    沒有相關(guān)內(nèi)容
  主站蜘蛛池模板: 自拍偷自拍亚洲精品播放| 亚洲综合色婷婷在线观看| 99热这里只有精品99| 日本成人在线播放| 亚洲精品乱码久久久久久按摩 | 成人看免费一级毛片| 亚洲一区二区三区四区视频| 精品少妇ay一区二区三区| 在线观看网站污| 丰满少妇好紧多水视频| 欧洲多毛裸体xxxxx| 亚洲色成人网站WWW永久| 老司机亚洲精品影院在线| 国产手机精品视频| 91麻豆国产自产| 开心五月激情综合婷婷| 久久精品中文字幕| 欧美最猛性xxxxx免费| 免费无遮挡无码视频网站| 色综合久久91| 国内大量揄拍人妻精品視頻| 久久精品成人一区二区三区| 精品无码三级在线观看视频| 国产成人av一区二区三区在线观看| 三浦惠理子在线播放| 日韩电影在线观看视频| 亚洲小视频在线播放| 狠狠色狠狠色综合系列| 国产成人精品午夜二三区波多野 | 欧美日韩一级片在线观看| 免费看污成人午夜网站| 色一情一乱一伦一视频免费看 | 国产一级性生活| 99精品无人区乱码在线观看| 最近更新中文字幕在线| 亚洲精品你懂的| 精品久久久久久777米琪桃花| 国产第一区二区三区在线观看| 99在线视频网站| 尹人香蕉久久99天天| 中文字幕精品一区二区|