人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

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

內建函數NthExtremes拷貝到自定義函數中后再編譯有警示 [開拓者 TB]

  • 咨詢內容: 本帖最后由 china_lizhi 于 2016-3-9 13:05 編輯

    把內建函數NthExtremes中的源代碼原封不動地拷貝到了自定義函數中了,然后編譯對如下兩行代碼有如下的警示:
                    NthMaxValue = Extremes(Price, Length, True, nMaxBar);
                    NthMinValue = Extremes(Price, Length, False, nMinBar);
    這兩行提示:FOR、WHILE、IF、ELSE中包含序列函數,可能存在潛在的邏輯錯誤。

     

  • TB技術人員: 懇請提供函數NthExtremes中的代碼的詳細注解,以幫助TB初學者入門。謝謝

    懇請客服對于以下代碼給予詳細的注釋,以便于初學者入門

     

  • TB客服: 本帖最后由 china_lizhi 于 2016-3-9 13:06 編輯

    //------------------------------------------------------------------------
    // 簡稱: NthExtremes
    // 名稱: 求N極值
    // 類別: 用戶函數
    // 類型: 內建函數
    // 輸出: 數值型
    //------------------------------------------------------------------------

    Params
            NumericSeries Price(1);
            Numeric Length(10);
            Numeric N(5);
            Bool bMax(True);
            NumericRef NthExtremeBar;
    Vars
            Numeric nMaxBar;
            Numeric NthMaxValue;
            Numeric nMinBar;
            Numeric NthMinValue;
            Numeric TmpValue;
            Numeric NthReturnValue;
            Numeric nBetterCnt;
            Numeric nEqualCnt;
            Numeric nEqualIndex;
            Numeric i;
            Numeric j;
            Numeric k;
    Begin
            if (Length > 0 && N>0 && N <= Length)
            {
                    NthMaxValue = Extremes(Price, Length, True, nMaxBar);
                    NthMinValue = Extremes(Price, Length, False, nMinBar);
                   
                    If(bMax)
                    {
                            For i = 2 To N
                            {
                                    TmpValue = NthMinValue - 1;
                                    nBetterCnt = 0;
                                    nEqualCnt = 0;
                                    For j = 0 To Length - 1
                                    {
                                            If ( Price[j] > NthMaxValue)
                                            {
                                                    nBetterCnt = nBetterCnt + 1;
                                            }else If ( Price[j] < NthMaxValue)
                                            {
                                                    if (Price[j] > TmpValue)
                                                    {
                                                            TmpValue = Price[j] ;
                                                            nMaxBar = j;
                                                    }
                                            }Else
                                            {
                                                    nEqualCnt = nEqualCnt + 1;
                                            }
                                    }
                                           
                                    if (nBetterCnt + nEqualCnt >= i)
                                    {
                                            nEqualIndex = 0;
                                            for  k = 0 To  Length - 1
                                            {
                                                    if (Price[k] == NthMaxValue)
                                                    {
                                                            nEqualIndex = nEqualIndex + 1;
                                                            if (nEqualIndex == (i - nBetterCnt))
                                                            {
                                                                    nMaxBar = k;
                                                            }
                                                    }
                                            }
                                    }else
                                    {
                                            NthMaxValue = TmpValue;
                                    }                               
                            }
                            NthExtremeBar = nMaxBar;
                            NthReturnValue = NthMaxValue;
                    }Else
                    {
                            For i = 2 To N
                            {
                                    TmpValue = NthMaxValue + 1;
                                    nBetterCnt = 0;
                                    nEqualCnt = 0;
                                    For j = 0 To Length - 1
                                    {
                                            If ( Price[j] < NthMinValue)
                                            {
                                                    nBetterCnt = nBetterCnt + 1;
                                            }else If ( Price[j] > NthMinValue)
                                            {
                                                    if (Price[j] < TmpValue)
                                                    {
                                                            TmpValue = Price[j] ;
                                                            nMinBar = j;
                                                    }
                                            }Else
                                            {
                                                    nEqualCnt = nEqualCnt + 1;
                                            }
                                    }
                                           
                                    if (nBetterCnt + nEqualCnt >= i)
                                    {
                                            nEqualIndex = 0;
                                            for  k = 0 To  Length - 1
                                            {
                                                    if (Price[k] == NthMinValue)
                                                    {
                                                            nEqualIndex = nEqualIndex + 1;
                                                            if (nEqualIndex == (i - nBetterCnt))
                                                            {
                                                                    nMinBar = k;
                                                            }
                                                    }
                                            }
                                    }else
                                    {
                                            NthMinValue = TmpValue;
                                    }                               
                            }
                            NthExtremeBar = nMinBar;
                            NthReturnValue = NthMinValue;
                    }
            }Else
            {
                    NthReturnValue = -1;
                    NthExtremeBar = -1;
            }
            Return NthReturnValue;
    End

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

 

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

可聯系技術人員 QQ: 511411198  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 天天射天天草 | 午夜在线 | 欧美人成在线观看 | 久久精品视屏 | 一个色亚洲 | 黄网址在线 | 又长又深又硬又黄又猛又爽 | 青草视频青年娱乐 | 夜色资源站www国产在线资源 | 亚洲区精品 | 曰批全过程免费视频网址 | 中文字幕一二区 | 国产在线精品一区二区中文 | 欧美日韩 在线播放 | 日本不卡视频一区二区 | 国产热热| 美女色黄 | 免费看男女做黄的软件 | 国产短视频精品一区二区三区 | 青青青视频自偷自拍视频1 青青青视频免费一区二区 青青青久热国产精品视频 青青青国产在线 | 久草网站在线 | 精品一区在线 | 男女性爽大片视频男女生活 | 97国产大学生情侣11在线视频 | 欧美不卡视频 | 亚洲无线码一区在线观看 | 国内一级野外a一级毛片 | 透明奶罩的邻居三级在线观看 | 日韩欧美综合在线二区三区 | 欧美大胆一级视频 | 免费一级成人免费观看 | 视频网站黄 | 国产精品丝袜视频 | 九九精品九九 | 青草草 | 狂野欧美性猛交xxxx | 国产亚洲精品高清在线 | 中文字幕丝袜诱惑 | 免费人成网站在线高清 | 午夜小视频网站 | 黄色一级片欧美 |