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

 


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

相關文章

    沒有相關內容
  主站蜘蛛池模板: 永久看日本大片免费35分钟| 韩国公和熄三级在线观看| 成人片黄网站色大片免费| 亚洲乱码一二三四区国产| jizz视频在线观看| 日韩精品专区在线影院重磅| 国产一级一级片| 18岁日韩内射颜射午夜久久成人| 成人在线视频免费| 乱人伦视频中文字幕| 老司机免费福利午夜入口ae58| 国产精品亲子乱子伦xxxx裸| 久久久久久AV无码免费网站 | 在车子颠簸中进了老师的身体| 亚洲小视频在线观看| 精品国产专区91在线app| 国产国产人免费视频成69大陆 | 国产亚洲人成网站在线观看| 香蕉视频在线看| 天天射天天干天天色| 中文字幕在线播| 日韩人妻无码一区二区三区99| 冬日恋歌国语版20集中文版| 1区2区3区产品乱码免费| 少妇无码av无码专区线| 久久久午夜精品理论片| 欧洲精品码一区二区三区免费看| 又爽又黄又无遮挡的视频| 黑白高清在线观看| 好男人看片在线视频观看免费观看| 久久国产精品网| 狠狠色婷婷丁香六月| 四虎国产欧美成人影院| 香蕉污视频在线观看| 国产精品久久久久aaaa| 两个漂亮女百合啪啪水声| 欧美日韩不卡中文字幕在线| 国产a级黄色片| 黄页在线播放网址| 国产精品内射视频免费| 99久久er这里只有精品18|