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

tbquant函數(shù)小bug--average等小于指定周期的時(shí)候并沒有無效值 [開拓者 TB]

  • 咨詢內(nèi)容: 本帖最后由 quant_yunjinqi 于 2020-4-20 17:44 編輯

    函數(shù)的說明



    圖表顯示的結(jié)果




    理論上,不是應(yīng)該在current_bar小于10的時(shí)候,short_ma的值是無效值嗎?為什么是前面的bar的平均值?

    公式代碼
    1. Params
    2. ? ? ? ? //此處添加參數(shù)
    3. ? ? ? ? Numeric millsecs(1000);
    4. ? ? ? ? numeric short_window(10);
    5. ? ? ? ? numeric long_window(20);
    6. Vars
    7. ? ? ? ? //此處添加變量
    8. ? ? ? ? Numeric avg;
    9. ? ? ? ? Global Integer timerId;
    10. ? ? ? ? Series<Numeric> my_short_ma;
    11. ? ? ? ? Series<Numeric> my_long_ma;

    12. Defs
    13. ? ? ? ? //此處添加公式函數(shù)
    14. ? ? ? ? Numeric calcAvg(Numeric a,Numeric b)
    15. ? ? ? ? {
    16. ? ? ? ? ? ? ? ? return (a+b)/2;
    17. ? ? ? ? }

    18. Events
    19. ? ? ? ? //此處實(shí)現(xiàn)事件函數(shù)
    20. ? ? ? ?
    21. ? ? ? ? //初始化事件函數(shù),策略運(yùn)行期間,首先運(yùn)行且只有一次,應(yīng)用在訂閱數(shù)據(jù)等操作
    22. ? ? ? ? OnInit()
    23. ? ? ? ? {
    24. ? ? ? ? ? ? ? ? timerId=createTimer(millsecs);
    25. ? ? ? ? ? ? ? ? //與數(shù)據(jù)源有關(guān)
    26. ? ? ? ? ? ? ? ? Range[0:DataCount-1]
    27. ? ? ? ? ? ? ? ? {
    28. ? ? ? ? ? ? ? ? ? ? ? ? //=========數(shù)據(jù)源相關(guān)設(shè)置==============
    29. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_RolloverBackWard());? ? ? ? //設(shè)置后復(fù)權(quán)

    30. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_RolloverRealPrice());? ? ? ? //設(shè)置映射真實(shí)價(jià)格

    31. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_AutoSwapPosition());? ? ? ? //設(shè)置自動(dòng)換倉(cāng)

    32. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());? ? ? ? //設(shè)置忽略換倉(cāng)信號(hào)計(jì)算

    33. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_OnlyDay());? ? ? ? ? ? ? ? //設(shè)置僅日盤
    34. ? ? ? ? ? ? ? ? ? ? ? ?
    35. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_OnlyNight());? ? ? ? //設(shè)置僅夜盤

    36. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_StrategyQuote());? ? ? ? //設(shè)置返回公式行情
    37. ? ? ? ? ? ? ? ? ? ? ? ?
    38. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_NotGenReport());? ? ? ? //設(shè)置數(shù)據(jù)源不參與生成報(bào)告標(biāo)志
    39. ? ? ? ? ? ? ? ? ? ? ? ?
    40. ? ? ? ? ? ? ? ? ? ? ? ? //=========交易相關(guān)設(shè)置==============
    41. ? ? ? ? ? ? ? ? ? ? ? ? //SetMarginRate(0.1);? ? ? ? //設(shè)置保證金率為10%
    42. ? ? ? ? ? ? ? ? ? ? ? ?
    43. ? ? ? ? ? ? ? ? ? ? ? ? //SetCommissionRate(BitOr(Enum_Rate_FreeOfExitToday,Enum_Rate_ByFillAmount),5);? ? ? ? //設(shè)置手續(xù)費(fèi)率為成交金額的5%%,不收平今, BitOr進(jìn)行位或運(yùn)算即設(shè)置屬性和
    44. ? ? ? ? ? ? ? ? ? ? ? ?
    45. ? ? ? ? ? ? ? ? ? ? ? ? //SetSlippage(Enum_Rate_PointPerHand,2);? ? ? ? //設(shè)置滑點(diǎn)為2跳/手
    46. ? ? ? ? ? ? ? ? ? ? ? ?
    47. ? ? ? ? ? ? ? ? ? ? ? ? //SetOrderPriceOffset(2);? ? ? ? //設(shè)置委托價(jià)為叫買/賣價(jià)偏移2跳
    48. ? ? ? ? ? ? ? ? ? ? ? ?
    49. ? ? ? ? ? ? ? ? ? ? ? ? //SetOrderMap2MainSymbol();? ? ? ? //設(shè)置委托映射到主力
    50. ? ? ? ? ? ? ? ? ? ? ? ?
    51. ? ? ? ? ? ? ? ? ? ? ? ? //SetOrderMap2AppointedSymbol(symbols, multiples); ? ? ? ? //設(shè)置委托映射到指定合約,symbols是映射合約數(shù)組,multiples是映射倍數(shù)數(shù)組
    52. ? ? ? ? ? ? ? ? }
    53. ? ? ? ? ? ? ? ? //與數(shù)據(jù)源無關(guān)
    54. ? ? ? ? ? ? ? ? //SetBeginBarMaxCount(10);? ? ? ? //設(shè)置最大起始bar數(shù)為10
    55. ? ? ? ? ? ? ? ? ? ? ? ?
    56. ? ? ? ? ? ? ? ? //SetBackBarMaxCount(10);? ? ? ? //設(shè)置最大回溯bar數(shù)為10
    57. ? ? ? ? ? ? ? ?
    58. ? ? ? ? ? ? ? ? //=========交易相關(guān)設(shè)置==============
    59. ? ? ? ? ? ? ? ? //SetInitCapital(1000000);? ? ? ? //設(shè)置初始資金為100萬
    60. ? ? ? ? ? ? ? ?
    61. ? ? ? ? ? ? ? ? //AddTradeFlag(Enum_Trade_Ignore_Buy());? ? ? ? //設(shè)置忽略多開
    62. ? ? ? ? ? ? ? ? ? ? ? ?
    63. ? ? ? ? ? ? ? ? //AddTradeFlag(Enum_Trade_Ignore_Sell());? ? ? ? //設(shè)置忽略多平
    64. ? ? ? ? ? ? ? ? ? ? ? ?
    65. ? ? ? ? ? ? ? ? //AddTradeFlag(Enum_Trade_Ignore_SellShort());? ? ? ? //設(shè)置忽略空開
    66. ? ? ? ? ? ? ? ? ? ? ? ?
    67. ? ? ? ? ? ? ? ? //AddTradeFlag(Enum_Trade_Ignore_Buy2Cover());? ? ? ? //設(shè)置忽略空平
    68. ? ? ? ? }

    69. ? ? ? ? //在所有的數(shù)據(jù)源準(zhǔn)備完成后調(diào)用,應(yīng)用在數(shù)據(jù)源的設(shè)置等操作
    70. ? ? ? ? OnReady()
    71. ? ? ? ? {

    72. ? ? ? ? }

    73. ? ? ? ? //在新bar的第一次執(zhí)行之前調(diào)用一次,參數(shù)為新bar的圖層數(shù)組
    74. ? ? ? ? OnBarOpen(ArrayRef<Integer> indexs)
    75. ? ? ? ? {

    76. ? ? ? ? }

    77. ? ? ? ? //Bar更新事件函數(shù),參數(shù)indexs表示變化的數(shù)據(jù)源圖層ID數(shù)組
    78. ? ? ? ? OnBar(ArrayRef<Integer> indexs)
    79. ? ? ? ? {
    80. ? ? ? ? ? ? ? ? my_short_ma = average(close,short_window);
    81. ? ? ? ? ? ? ? ? my_long_ma = average(close,long_window);
    82. ??? ? ? ? ? ? ? ? Commentary("CurrentBar: "+text(CurrentBar));
    83. ??? ? ? ? ? ? ? ? Commentary("my_short_ma: "+text(my_short_ma));
    84. ??? ? ? ? ? ? ? ? Commentary("my_long_ma: "+text(my_long_ma));
    85. ??? ? ? ? ? ? ? ? if (my_short_ma[1]>my_long_ma[1] and MarketPosition<=0){buy(1,open);}
    86. ??? ? ? ? ? ? ? ? if (my_short_ma[1]<=my_long_ma[1] and MarketPosition>=0 ){sellshort(1,open);}
    87. ??? ? ? ? ? ? ? ?
    88. ? ? ? ? }

    89. ? ? ? ? //持倉(cāng)更新事件函數(shù),參數(shù)pos表示更新的持倉(cāng)結(jié)構(gòu)體
    90. ? ? ? ? OnPosition(PositionRef pos)
    91. ? ? ? ? {
    92. ? ? ? ? ? ? ? ?
    93. ? ? ? ? }

    94. ? ? ? ? //委托更新事件函數(shù),參數(shù)ord表示更新的委托結(jié)構(gòu)體
    95. ? ? ? ? OnOrder(OrderRef ord)
    96. ? ? ? ? {
    97. ? ? ? ? ? ? ? ?
    98. ? ? ? ? }

    99. ? ? ? ? //成交更新事件函數(shù),參數(shù)ordFill表示更新的成交結(jié)構(gòu)體
    100. ? ? ? ? OnFill(FillRef ordFill)
    101. ? ? ? ? {
    102. ? ? ? ? ? ? ? ?
    103. ? ? ? ? }

    104. ? ? ? ? //定時(shí)器更新事件函數(shù),參數(shù)id表示定時(shí)器的編號(hào),millsecs表示定時(shí)間的間隔毫秒值
    105. ? ? ? ? OnTimer(Integer id,Integer intervalMillsecs)
    106. ? ? ? ? {
    107. ? ? ? ? ? ? ? ?
    108. ? ? ? ? }

    ?

    ?來源:CXH99.COM

  • TB技術(shù)人員:
    1. Params
    2. ? ? ? ? Series<Numeric> Price(1);? ? ? ? //數(shù)值型序列值
    3. ? ? ? ? Numeric Length(10);? ? ? ? ? ? ? ? ? ? ? ? //周期數(shù)
    4. Vars
    5. ? ? ? ? Numeric AvgValue;
    6. Begin
    7. ? ? ? ? AvgValue = Summation(Price, Length) / Length;
    8. ? ? ? ? Return AvgValue;
    9. End
    復(fù)制代碼從average函數(shù)的算法里可以看出,在length小于指定周期時(shí),也會(huì)有相應(yīng)的計(jì)算值 ,并不會(huì)是無效值 。。
    只不過此時(shí)的計(jì)算結(jié)果是可能不符合交易者需求的,所以建議在代碼里做一些判斷控制,不要用此計(jì)算結(jié)果來進(jìn)行交易的判斷。

 

有思路,想編寫各種指標(biāo)公式,交易模型,選股公式,還原公式的朋友

可聯(lián)系技術(shù)人員 QQ: 262069696  點(diǎn)擊在線交流或微信號(hào):cxh99cxh99  進(jìn)行 有償收費(fèi) 編寫!

怎么收費(fèi),代編流程等詳情請(qǐng)點(diǎn)擊閱讀!

(注:由于人數(shù)限制,QQ或微信請(qǐng)選擇方便的一個(gè)聯(lián)系我們就行,加好友時(shí)請(qǐng)簡(jiǎn)單備注下您的需求,否則無法通過。謝謝您!)


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 免费v片在线观看视频网站| 天天干天天爱天天操| 亚洲熟妇av一区二区三区下载| 2022天天操| 成人无码精品1区2区3区免费看| 亚洲成在线观看| 美女被免费看视频网站| 国产精品国产福利国产秒拍| 中国欧美日韩一区二区三区| 果冻传媒91制片厂211| 任你操在线观看| 象人族女人能吃得消吗| 国产精品手机在线亚洲| а√在线地址最新版| 日韩不卡在线视频| 亚洲码欧美码一区二区三区| 美女扒开内裤羞羞网站| 国产成人精品免费视频大全五级| aaaaa级少妇高潮大片| 新婚之夜女警迎合粗大| 久草电影在线观看| 欧美成人手机视频| 人妻aⅴ无码一区二区三区| 综合欧美日韩一区二区三区 | 国产精品一区久久| a级午夜毛片免费一区二区| 成年女人午夜毛片免费视频| 久久精品国产99国产精品澳门| 欧美日韩亚洲国产千人斩| 伊人久久大香线蕉综合影院首页| 美女裸体a级毛片| 国产剧情jvid在线观看| 亚洲日本人成中文字幕| 国产麻豆综合视频在线观看| yjsp妖精视频网站| 新婚之夜女警迎合粗大| 久久精品午夜福利| 欧美一级视频在线| 亚洲日产韩国一二三四区| 渣男渣女抹胸渣男渣女| 免费看黄a级毛片|