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

求助死循環 [開拓者 TB]

 

  • 咨詢內容: 我的用戶函數:
    // 簡稱: NthCrossUpMAHighOverBarPos
    // 名稱: 回溯第N個上纏繞MA頂值、收過MABar索引值
    // 類別: 用戶函數
    // 類型: 用戶函數
    // 輸出: 數值型
    //------------------------------------------------------------------------
    Params
            Numeric N(0);
            Numeric Length(0);
            NumericRef CrossUpMAOverBarPos;
    Vars
            Numeric ReBarsCrossOverMA(0);
            Numeric ReBarsCrossOverMAplus(0);
            Numeric ReBarsCrossUnderMA(0);
            Numeric i;
            Numeric CrossUpMAHigh;
    Begin
            ReBarsCrossOverMA=NthCon(CrossOver(C,AverageFC(C,Length)),N);
            ReBarsCrossOverMAplus=NthCon(CrossOver(C,AverageFC(C,Length)),N+1);
            ReBarsCrossUnderMA=NthCon(CrossUnder(C,AverageFC(C,Length)),N);
            If ((ReBarsCrossOverMA<ReBarsCrossUnderMA)&&((CurrentBar-ReBarsCrossOverMAplus)>(Length-1)))
            {
                For i=ReBarsCrossOverMAplus DownTo ReBarsCrossUnderMA
                 {
                    If (H[i] > CrossUpMAHigh)
                        CrossUpMAHigh = H[i];
                }
               CrossUpMAOverBarPos=CurrentBar-ReBarsCrossOverMAplus;
            }
            Return CrossUpMAHigh;
    End
    //------------------------------------------------------------------------
    我的公式應用:
    // 簡稱: TproNthCrossUpMAHighOverBarPos
    // 名稱: 驗證回溯遞增第N個上纏繞MA頂值、收過MABar索引值
    // 類別: 公式應用
    // 類型: 用戶應用
    // 輸出:
    //------------------------------------------------------------------------
    Params
            Numeric N(2);
            Numeric Length(5);
    Vars
            Numeric CrossUpMAHigh;
            Numeric CrossUpMAOverBarPos;
            Numeric i;
            Numeric j;
            Numeric MyHigh;
            Numeric MyBarPos;
    Begin
            i=2;
            j=1;
            CrossUpMAHigh=NthCrossUpMAHighOverBarPos(1,Length,CrossUpMAOverBarPos);
            MyBarPos=CrossUpMAOverBarPos;
            While ((j<N)&&(MyBarPos>0))
            {MyHigh=NthCrossUpMAHighOverBarPos(i,Length,CrossUpMAOverBarPos);
             MyBarPos=CrossUpMAOverBarPos;
             i=i+1;
             If (MyHigh>CrossUpMAHigh)
                   {CrossUpMAHigh=MyHigh;
              j=j+1;
             }
            }
            If (MyBarPos==0)
            {CrossUpMAHigh=0;
            }
            Commentary("回溯遞增第"+Text(N)+"個上纏繞MA頂值"+Text(CrossUpMAHigh));
            Commentary("回溯遞增第"+Text(N)+"個上纏繞MA收過MABar索引值"+Text(MyBarPos));
    End
    //------------------------------------------------------------------------

    上述公式應用插入超級圖表,出現死循環,請教TB老師解決辦法,多謝!

     

  • TB技術人員: 應TB工程師的要求,發了上面的帖子,通了4次電話,過了4個小時,仍沒有回復,TB服務太差了!如果不想解決,為何要我發帖干等?

     

  • TB客服: 用戶函數那 N的值應要大于等于1的自然數, 您初始付的值為0

     

  • 網友回復: 本帖最后由 wwr_5817 于 2012-12-19 15:05 編輯

    多謝LZ,LZ實在是高!不死循環了!可結果在N>1時恒為0,可否再指點指點?

     

  • 網友回復:
    請管理員tradeblazer繼續解答我的問題!
    我的用戶函數:
    // 簡稱: NthCrossUpMAHighOverBarPos
    // 名稱: 回溯第N個上纏繞MA頂值、收過MABar索引值
    // 類別: 用戶函數
    // 類型: 用戶函數
    // 輸出: 數值型
    //------------------------------------------------------------------------
    Params
            Numeric N(1);
            Numeric Length(5);
            NumericRef CrossUpMAOverBarPos;
    Vars
            Numeric ReBarsCrossOverMA(0);
            Numeric ReBarsCrossOverMAplus(0);
            Numeric ReBarsCrossUnderMA(0);
            Numeric i;
            Numeric CrossUpMAHigh;
    Begin
            ReBarsCrossOverMA=NthCon(CrossOver(C,AverageFC(C,Length)),N);
            ReBarsCrossOverMAplus=NthCon(CrossOver(C,AverageFC(C,Length)),N+1);
            ReBarsCrossUnderMA=NthCon(CrossUnder(C,AverageFC(C,Length)),N);
            If ((ReBarsCrossOverMA<ReBarsCrossUnderMA)&&((CurrentBar-ReBarsCrossOverMAplus)>(Length-1)))
            {
                  For i=ReBarsCrossOverMAplus DownTo ReBarsCrossUnderMA
                 {
                     If (H[i] > CrossUpMAHigh)
                           CrossUpMAHigh = H[i];
                 }
                CrossUpMAOverBarPos=CurrentBar-ReBarsCrossOverMAplus;
            }
            Return CrossUpMAHigh;
    End
    //------------------------------------------------------------------------
    我的公式應用1:
    / 簡稱: TproNthCrossUpMAHighOverBarPos
    // 名稱: 驗證回溯遞增第N個上纏繞MA頂值、收過MABar索引值
    // 類別: 公式應用
    // 類型: 用戶應用
    // 輸出:
    //------------------------------------------------------------------------
    Params
            Numeric N(2);
            Numeric Length(5);
    Vars
            Numeric CrossUpMAHigh;
            Numeric CrossUpMAOverBarPos;
            Numeric i;
            Numeric j;
            Numeric MyHigh;
            Numeric MyBarPos;
    Begin
            i=2;
            j=1;
            CrossUpMAHigh=NthCrossUpMAHighOverBarPos(1,Length,CrossUpMAOverBarPos);
            MyBarPos=CrossUpMAOverBarPos;
            Commentary("While前CrossUpMAHigh="+Text(CrossUpMAHigh));
            Commentary("While前MyBarPos="+Text(MyBarPos));
            Commentary("While前j="+Text(j));
            Commentary("While前N="+Text(N));
            While ((j<N)&&(MyBarPos>0))
            {Commentary("While中調用戶函數前i="+Text(i));
             Commentary("While中調用戶函數前j="+Text(j));
             Commentary("While中調用戶函數前MyBarPos="+Text(MyBarPos));
             Commentary("While中調用戶函數前MyHigh="+Text(MyHigh));
             MyHigh=NthCrossUpMAHighOverBarPos(i,Length,CrossUpMAOverBarPos);
             Commentary("While中NthCrossUpMAHighOverBarPos(i,Length,CrossUpMAOverBarPos)="+Text(NthCrossUpMAHighOverBarPos(i,Length,CrossUpMAOverBarPos)));
             Commentary("While中CrossUpMAOverBarPos="+Text(CrossUpMAOverBarPos));
             MyBarPos=CrossUpMAOverBarPos;
             Commentary("While中i+1前i="+Text(i));
             Commentary("While中i+1前MyBarPos="+Text(MyBarPos));
             Commentary("While中i+1前MyHigh="+Text(MyHigh));
             i=i+1;
             Commentary("While中i="+Text(i));
             Commentary("While中MyBarPos="+Text(MyBarPos));
             Commentary("While中MyHigh="+Text(MyHigh));
             Commentary("While中CrossUpMAHigh="+Text(CrossUpMAHigh));
             If (MyHigh>CrossUpMAHigh)
         {CrossUpMAHigh=MyHigh;
              j=j+1;
              Commentary("While中j="+Text(j));
              Commentary("While中MyBarPos="+Text(MyBarPos));
              Commentary("While中CrossUpMAHigh="+Text(CrossUpMAHigh));
             }
            }
            If (MyBarPos==0)
            {CrossUpMAHigh=0;
            }
            Commentary("回溯遞增第"+Text(N)+"個上纏繞MA頂值"+Text(CrossUpMAHigh));
            Commentary("回溯遞增第"+Text(N)+"個上纏繞MA收過MABar索引值"+Text(MyBarPos));
    End
    //------------------------------------------------------------------------
    我的公式應用2:
    // 簡稱: TNthCrossUpMAHighOverBarPos
    // 名稱: 驗證回溯第N個上纏繞MA頂值、收過MABar索引值
    // 類別: 公式應用
    // 類型: 用戶應用
    // 輸出:
    //------------------------------------------------------------------------
    Params
            Numeric N(2);
            Numeric Length(5);
    Vars
            Numeric CrossUpMAHigh;
            Numeric CrossUpMAOverBarPos;
    Begin
            CrossUpMAHigh=NthCrossUpMAHighOverBarPos(N,Length,CrossUpMAOverBarPos);
            Commentary("回溯第"+Text(N)+"個上纏繞MA頂值"+Text(CrossUpMAHigh));
            Commentary("回溯第"+Text(N)+"個上纏繞MA收過MABar索引值"+Text(CrossUpMAOverBarPos));
    End
    //------------------------------------------------------------------------
    您于3樓的答復,我在1樓的公式應用不死循環了,但其結果在N=2時恒為0。用公式應用2驗證,我的用戶函數NthCrossUpMAHighOverBarPos(2,5,CrossUpMAOverBarPos)正確,但在1樓的公式應用中加入Commentary語句的公式應用1中While內首次調用NthCrossUpMAHighOverBarPos(2,5,CrossUpMAOverBarPos)結果為0,不知何故?公式應用1中While行后第二行插入“Commentary("While中調用戶函數前j="+Text(j));”,再次陷入死循環!現在,用本層的用戶函數和1樓的公式應用仍然死循環!

    另外,您于3樓的答復是否表明,用戶自編用戶函數中調用(系統自帶用戶函數)時,用戶自編用戶函數的參數默認值須不小于(系統自帶用戶函數)的參數默認值?

    切盼盡快指教!多謝!

 

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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 色偷偷成人网免费视频男人的天堂| 一级毛片**不卡免费播| 用电动玩具玩自己小视频| 国产对白真实伦视频在线| 99网站在线观看| 日本三级2021最新理论在线观看| 亚洲日产综合欧美一区二区| 精品国产一区二区三区无码 | 女教师巨大乳孔中文字幕| 久久精品aⅴ无码中文字字幕重口| 欧美黑人xxxx猛战黑人| 哒哒哒免费视频观看在线www| 国产在线一卡二卡| 国农村精品国产自线拍| 三级伦理在线播放| 日本爽爽爽爽爽爽在线观看免| 亚洲成a人片在线观看精品| 真实国产乱子伦高清| 国产亚洲一区二区手机在线观看 | 最新欧美精品一区二区三区| 亚洲精品国产精品国自产网站| 一级毛片特级毛片黄毛片| 最近免费高清版电影在线观看| 任你躁欧美一级在线精品| 老师的被到爽羞羞漫画| 国产无遮挡又黄又爽免费视频| 99久久99久久精品免费观看| 成人中文字幕一区二区三区| 久热这里只有精| 欧美日韩国产一区二区三区欧| 国产乡下三级全黄三级bd| 福利所第一导航| 在线免费观看色片| 一级毛片在线播放| 日本chinese人妖video| 亚洲黄色片免费看| 老子影院午夜伦不卡| 国产成人av乱码在线观看| 1000部夫妻午夜免费| 夜夜爽免费视频| 一级做a爰性色毛片|