您現在的位置:程序化交易>> 期貨公式>> 交易開拓者(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  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!

 


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

相關文章

    沒有相關內容
  主站蜘蛛池模板: 3d动漫h在线观看| 中文字幕第三页| 爱情鸟第一论坛com高清免费| 国产喷水女王在线播放| 99久久精品免费精品国产| 日本三级香港三级国产三级| 亚洲成年人电影网站| 精品人妻VA出轨中文字幕| 国产在线麻豆精品观看| 7777精品久久久大香线蕉| 恋恋视频2mm极品写真| 久久精品国产精品亚洲毛片| 永久免费毛片在线播放| 古代np多夫h肉辣文| 黄色网址在线免费观看| 国产精品视频网| www.jizz在线观看| 拍拍拍无挡视频免费观看1000| 亚洲AV日韩AV永久无码色欲| 永久黄网站色视频免费直播| 午夜dj在线观看免费高清在线| 青青免费在线视频| 国产白袜脚足j棉袜在线观看| 99香蕉国产精品偷在线观看| 成人浮力影院免费看| 久久天天躁狠狠躁夜夜躁2020| 欧美午夜在线播放| 亚洲精品第二页| 精品亚洲麻豆1区2区3区| 国产一区二区欧美丝袜| 91精品国产麻豆福利在线| 国产精品无码久久久久| a毛片成人免费全部播放| 成人免费观看一区二区| 久久久久人妻一区精品果冻| 最新理伦三级在线观看| 亚洲国产精品综合久久网各| 激情射精爆插热吻无码视频| 免费视频淫片aa毛片| 羞羞的漫画sss| 国产乱妇无码大黄aa片|