您現在的位置:程序化交易>> 期貨公式>> 金字塔等>> 其他期貨軟件知識>>正文內容

函數不能在IF控制語句中被引用的原理和解決方案 [金字塔]

  • 咨詢內容:

    金字塔的公式系統在處于逐周期模式計算時,像例如REF,MA等帶有統計性質的函數以及指標公式引用無法直接使用在IF語句之中(序列運行模式可以),因為帶變量判斷的IF語句會在某些周期無法調用這些統計函數而導致計算結果出現錯誤。解決辦法是將這些函數放到IF語句之外去執行。
    目前有下列函數受此限制:

    "RET","LOD","HOD","VALUEWHEN","MD","LAST","ANY","SETVAL","FILTERX","BARSCOUNT","BARSLAST","BARSSINCE","COUNT","HHV","HHVBARS","LLV","LLVBARS",
    "MA","DMA","EMA","FILTER","REF","WMA","TMA","SMA","SUM","SUMBARS","CROSS","LONGCROSS","AVEDEV","DEVSQ","FORCAST","SLOPE","STD","STDP","VAR","VARP","SAR","BETA","COVAR","ALL",
    "BACKSET","REFX","PARTLINE","SFILTER","RELATE","ALIKE","FILLRGN","NEWHBARS","NEWLBARS","DRL","GEOMEAN","HARMEAN","KURT","SKEW","PEARSON","RSQ",
    "STEYX","INTERCEPT"

    例如:

    input:atrn1(1,1,10),atrn2(5,2,20);

    if atrn1<atrn2 and vol>20000 then
    begin
        TR1:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
        ATRn_1:= MA(TR1,atrn1);
        ATRn_2:= MA(TR1,atrn2);
    end;

    上述公式語句由于將REF和MA函數放在了IF語句之中,所以該公式無法正常編譯。解決辦法是將他們放到IF語句之外去執行:

    input:atrn1(1,1,10),atrn2(5,2,20);

    A1:=REF(CLOSE,1);
    MA1:=MA(TR1,atrn1);
    MA2:=MA(TR1,atrn2);

    if atrn1<atrn2 and vol>20000 then
    begin
        TR1:= MAX(MAX((HIGH-LOW),ABS(A1-HIGH)),ABS(A1-LOW));
        ATRn_1:= MA1;
        ATRn_2:= MA2;
    end;

    這樣經過修正的公式就可以正常編譯了,此外公式還將兩次REF語句引用合并到一個語句中,這樣做還可以提高公式系統的運行效率,因為REF統計語句只執行了一次。

    [此貼子已經被作者于2010-11-15 20:54:19編輯過]

     

  • 金字塔客服: 以下是引用admin在2009-11-2 10:19:35的發言:

    金字塔的公式系統由于支持IF語句的變量運行,所以像例如REF,MA等帶有統計性質的函數無法直接使用在IF語句之中,因為帶變量判斷的IF語句會在某些周期無法調用這些統計函數而導致計算結果出現錯誤。解決辦法是將這些函數放到IF語句之外去執行。
    目前有下列函數受此限制:

    "RET","LOD","HOD","VALUEWHEN","MD","LAST","ANY","SETVAL","FILTERX","BARSCOUNT","BARSLAST","BARSSINCE","COUNT","HHV","HHVBARS","LLV","LLVBARS",
    "MA","DMA","EMA","FILTER","REF","WMA","TMA","SMA","SUM","SUMBARS","CROSS","LONGCROSS","AVEDEV","DEVSQ","FORCAST","SLOPE","STD","STDP","VAR","VARP","SAR","BETA","COVAR","ALL",
    "BACKSET","REFX","PARTLINE","SFILTER","RELATE","ALIKE","FILLRGN","NEWHBARS","NEWLBARS"

    例如:

    input:atrn1(1,1,10),atrn2(5,2,20);

    if atrn1<atrn2 and vol>20000 then
    begin
        TR1:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
        ATRn_1:= MA(TR1,atrn1);
        ATRn_2:= MA(TR1,atrn2);
    end;

    上述公式語句由于將REF和MA函數放在了IF語句之中,所以該公式無法正常編譯。解決辦法是將他們放到IF語句之外去執行:

    input:atrn1(1,1,10),atrn2(5,2,20);

    A1:=REF(CLOSE,1);
    MA1:=MA(atrn1,atrn1);
    MA2:=MA(atrn2,atrn2);

    if atrn1<atrn2 and vol>20000 then
    begin
        TR1:= MAX(MAX((HIGH-LOW),ABS(A1-HIGH)),ABS(A1-LOW));
        ATRn_1:= MA1;
        ATRn_2:= MA2;
    end;

    這樣經過修正的公式就可以正常編譯了,此外公式還將兩次REF語句引用合并到一個語句中,這樣做還可以提高公式系統的運行效率,因為REF統計語句只執行了一次。

    [此貼子已經被作者于2009-11-2 10:22:11編輯過]

    input:atrn1(1,1,10),atrn2(5,2,20);

    A1:=REF(CLOSE,1);
    MA1:=MA(atrn1,atrn1);
    MA2:=MA(atrn2,atrn2);

    if atrn1<atrn2 and vol>20000 then
    begin
        TR1:= MAX(MAX((HIGH-LOW),ABS(A1-HIGH)),ABS(A1-LOW));
        ATRn_1:= MA1;
        ATRn_2:= MA2;
    end;
    這紅色的語句有問題吧

     

  • 用戶回復:

    呵呵呵,你好眼力,是筆誤。自己看幫助就知道了。。。。。

     

  • 網友回復:

    還有一處好象有問題!

    input:atrn1(1,1,10),atrn2(5,2,20);

    A1:=REF(CLOSE,1);
    MA1:=MA(tr1,atrn1);  //語句順序錯了!這樣tr1會提示沒有定義的!應直接把TR1:= MAX(MAX((HIGH-LOW),ABS(A1-HIGH)),ABS(A1-LOW));也放在IF語句外面,并在MA1前面!
    MA2:=MA(tr1,atrn2);

    if atrn1<atrn2 and vol>20000 then
    begin
        TR1:= MAX(MAX((HIGH-LOW),ABS(A1-HIGH)),ABS(A1-LOW));
        ATRn_1:= MA1;
        ATRn_2:= MA2;
    end;

    [此貼子已經被作者于2010-5-22 11:02:21編輯過]

     

  • 網友回復:

 

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

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

 


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

相關文章

    指定的模型還沒有相關內容!
主站蜘蛛池模板: 亚洲手机中文字幕| 国产亚洲人成无码网在线观看| 中国熟妇xxxx| 最近免费中文字幕大全高清大全1| 免费a级毛片无码专区| 韩国三级hd中文字幕| 国产精品视频白浆免费视频| 一边摸边吃奶边做爽动态| 曰韩无码二三区中文字幕| 亚洲色偷拍区另类无码专区| 色视频在线观看视频| 国产精品另类激情久久久免费| 一区二区三区美女视频| 日韩三级一区二区三区| 亚洲日韩乱码中文无码蜜桃| 精品四虎免费观看国产高清午夜| 国产在线观看的| 2021久久精品国产99国产精品| 小丑joker在线观看完整版高清| 久久国产精品一国产精品金尊| 欧美日韩免费在线视频| 免费国产在线视频| 色悠久久久久久久综合网| 国产日韩综合一区二区性色AV| 99RE久久精品国产| 少妇高潮太爽了在线观看| 久久久久免费精品国产| 最近的2019中文字幕hd| 亚洲欧美日韩国产精品久久| 精品久久人妻av中文字幕| 国产一区二区三区在线观看免费| 日本人强jizz多人高清| 国产高潮国产高潮久久久| yy22.tv夜月直播| 我要看a级毛片| 久久婷五月综合| 极品videossex日本妇| 亚洲欧洲专线一区| 狠狠色综合网站久久久久久久| 又湿又紧又大又爽a视频| 里番本子侵犯肉全彩|