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

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

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

    函數(shù)的說明



    圖表顯示的結(jié)果




    理論上,不是應(yīng)該在current_bar小于10的時候,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. ? ? ? ? //此處實現(xiàn)事件函數(shù)
    20. ? ? ? ?
    21. ? ? ? ? //初始化事件函數(shù),策略運行期間,首先運行且只有一次,應(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è)置映射真實價格

    31. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_AutoSwapPosition());? ? ? ? //設(shè)置自動換倉

    32. ? ? ? ? ? ? ? ? ? ? ? ? //AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());? ? ? ? //設(shè)置忽略換倉信號計算

    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ù)源不參與生成報告標(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ù)費率為成交金額的5%%,不收平今, BitOr進(jìn)行位或運算即設(shè)置屬性和
    44. ? ? ? ? ? ? ? ? ? ? ? ?
    45. ? ? ? ? ? ? ? ? ? ? ? ? //SetSlippage(Enum_Rate_PointPerHand,2);? ? ? ? //設(shè)置滑點為2跳/手
    46. ? ? ? ? ? ? ? ? ? ? ? ?
    47. ? ? ? ? ? ? ? ? ? ? ? ? //SetOrderPriceOffset(2);? ? ? ? //設(shè)置委托價為叫買/賣價偏移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. ? ? ? ? //持倉更新事件函數(shù),參數(shù)pos表示更新的持倉結(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ù)id表示定時器的編號,millsecs表示定時間的間隔毫秒值
    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小于指定周期時,也會有相應(yīng)的計算值 ,并不會是無效值 。。
    只不過此時的計算結(jié)果是可能不符合交易者需求的,所以建議在代碼里做一些判斷控制,不要用此計算結(jié)果來進(jìn)行交易的判斷。

 

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

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

怎么收費,代編流程等詳情請點擊閱讀!

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


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

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 黑人猛男大战俄罗斯白妞| 久久99国产精品尤物| 精品久久久久久无码中文字幕一区| 国产欧美精品一区二区三区四区| 一个人看的www在线观看免费| 日韩毛片免费在线观看| 亚洲精品无码久久久久久| 美女被免费喷白浆视频| 国产欧美va欧美va香蕉在| 99爱在线精品视频网站| 成人精品视频一区二区三区尤物| 亚洲av无码一区二区二三区| 狠狠色狠狠色综合日日五| 国产chinesehd精品酒店| 欧美成人性动漫在线观看| 在线jyzzjyzz免费视频| 三级国产4国语三级在线| 色婷婷综合在线| 国产精品嫩草影院线路| xxxx69hd老师| 日本人69视频jzzij| 亚洲w码欧洲s码免费| 激情伊人五月天久久综合| 又黄又骚的网站| 香蕉在线精品视频在线观看6| 国产精品高清在线观看93| 一个人看的日本www| 日本在线高清视频| 亚洲专区第一页| 欧美裸体XXXX极品少妇| 全彩里番acg海贼王同人本子| 边摸边脱吃奶边高潮视频免费| 国产精品丝袜黑色高跟鞋| 99久久精品这里只有精品| 快猫官方网站是多少| 久久人人爽人人爽人人片AV超碰 | 欧美人七十二式性视频教程一| 亚洲视频在线不卡| 精品亚洲aⅴ在线观看| 国产v片成人影院在线观看| 黄色一级视频免费|