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

開拓者求N天前的收盤價closD(N)原理,源碼[開拓者公式]

  • 咨詢內容: //------------------------------------------------------------------------
    // 簡稱: CloseD
    // 名稱: 求N天前的收盤價
    // 類別: 用戶函數
    // 類型: 內建函數
    // 輸出: 數值型
    //------------------------------------------------------------------------

    Params
            Numeric daysAgo(2);
    Vars
            NumericSeries barCnt;
            NumericSeries dayClose;
            Numeric i;
            Numeric j;
            Numeric nIndex(0);
            Numeric CBIndex;
    Begin
            CBIndex = CurrentBar;
            If(CBIndex == 0 || Date != Date[1])
            {
                    barCnt = 1;
            }Else
            {
                    barCnt = barCnt + 1;
            }
            dayClose = Close;
                   
            If(daysAgo == 0)
            {
                    return dayClose;//程序化交易 www.tumamayizhan.com
            }Else
            {
                    For i = 1 To daysAgo
                    {
                            If( i == 1)
                            {       
                                    j = 0;
                            }Else
                            {
                                    j = j + BarCnt[j];                               
                            }
                            If (j > CBIndex )
                                    Return InvalidNumeric;
                            nIndex = nIndex + BarCnt[j];
                    }
                    Return dayClose[nIndex];
            }
    End

    //------------------------------------------------------------------------
    // 編譯版本        GS2010.12.08
    // 版權所有        TradeBlazer Software 2003-2010
    // 更改聲明        TradeBlazer Software保留對TradeBlazer平
    //                        臺每一版本的TradeBlazer公式修改和重寫的權利
    //------------------------------------------------------------------------

     

  • TB技術人員:
    BarCnt記錄的是從當天第一根K線到當前K線的K線數
    所以回溯BarCnt就可得到前一天最后一K的收盤價,也就是CloseD(1)
    當回溯天數大于1,比如2:
    1. For i = 1 To daysAgo

    2.                 {

    3.                         If( i == 1)

    4.                         {      

    5.                                 j = 0;

    6.                         }Else

    7.                         {

    8.                                 j = j + BarCnt[j];                              

    9.                         }

    10.                         If (j > CBIndex )

    11.                                 Return InvalidNumeric;

    12.                         nIndex = nIndex + BarCnt[j];
    復制代碼i = 1時,j=0,nIndex = 0 + BarCnt[0] = BarCnt(cxh99.com),也就是回溯到前一天的最后一K;
    i = 2,j = 0 + BarCnt[0] = BarCnt
    nIndex = BarCnt+BarCnt[BarCnt]
    也就是回溯到前一天的前一天的最后一K;

    OK,以此類推。

     

  • TB客服: 謝謝樓上,有一點懂了;
    但是還有一點不明白,barCnt是NumericSeries,也就是序列,但是barCnt的每個元素并沒有初始賦值呀,真是奇怪了。
    比如:nIndex = BarCnt+BarCnt[BarCnt];
    BarCnt[BarCnt]沒有初始賦值,就使用,不會出錯嗎?

     

  • 網友回復: 比如以下代碼:
    Begin
            CBIndex = CurrentBar;
            If(CBIndex == 0 || Date != Date[1])
            {
                    barCnt = 1;
            }Else
            {
                    barCnt = barCnt + 1;
            }//www.tumamayizhan.com

    如果第一次執行Else里面的代碼,barCnt = barCnt + 1;而barCnt沒有初始值,不會出錯嗎?

     

  • 網友回復: 程序是從圖上第一根K線開始執行的

    此時CBIndex == 0成立,barCnt = 1,沒有問題

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 262069696  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!

 


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

相關文章

    沒有相關內容
  主站蜘蛛池模板: 女让张开腿让男人桶视频| 欧美日韩精品一区二区三区四区| 日产精品1区至六区有限公司| 动漫人物美女被吸乳羞羞动漫| 麻豆精品国产免费观看| 国产精品无码免费播放| a4yy私人影院| 少妇特殊按摩高潮惨叫无码| 久久99中文字幕伊人| 日韩国产在线观看| 亚洲va久久久噜噜噜久久| 欧美激情xxx| 亚洲色婷婷综合久久| 真实国产乱子伦在线视频不卡| 四虎国产精品免费久久久| 被公侵犯肉体中文字幕电影| 日韩精品国产另类专区| 国产成人综合久久精品尤物| 91欧美在线视频| 天使a中文在线观看| xxxx性bbbb欧美野外| 最近韩国免费观看hd电影国语 | 日本a∨在线播放高清| 久久精品国产99国产精品澳门| 樱花草在线社区www| 亚洲乱码一区二区三区在线观看 | 三级黄色片在线观看| 日本大乳高潮视频在线观看| 久久精品国产亚洲AV麻豆王友容| 最近2019免费中文字幕视频三| 亚洲人成色77777在线观看| 欧美性大战久久久久久| 亚洲春色在线视频| 欧美日韩中文一区二区三区| 亚洲欧美在线播放| 欧美日韩在线视频专区免费| 亚洲欧洲小视频| 欧美挠脚心tickling免费| 啊灬啊别停灬用力视频啊视频| 色欲AV无码一区二区三区| 国产精品亚洲精品日韩已方|