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

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

福利 跨周期的傻瓜式解決方案 [開拓者 TB]

  • 咨詢內容:          TB的跨周期調用,論壇以前已經有一些解決方案。但對很多人來說不夠方便 ,本方案主要參考了追漲殺跌的一些基礎函數,兼顧了使用方便、運算性能速度、精確,在具體的算法上如 均線ma 標準差std 等不用因為數據源的變化而重新編寫算法函數。
          
            比如close 的ma  myValue 的ma 都可以用一個 iMA函數解決。iMA的形式之所以不用  iMA(iPrice 數據源,TimeFrame 時間周期,Length 算法參數) 而是選擇  iMA((iPrice 數據源,mtBarCnt ,Length1);是為了運算速度,否則如果一個策略多次用到跨周期的算法 函數內部會多次重復計算mtBarCnt值 ,  會影響運算速度。

     

  • TB技術人員: 此函數是追漲殺跌的MtBar 函數 為了和后面函數包的美觀 修改了函數名
    1. //------------------------------------------------------------------------
    2. // 簡稱: iBar
    3. // 名稱:
    4. // 類別: 用戶函數
    5. // 類型: 用戶函數
    6. // 輸出: 數值型
    7. //------------------------------------------------------------------------

    8. Params
    9.         Numeric TimeFrame(1440);   
    10.         // 目標時間周期:月線=40320,周線=10080,日線=1440,4小時線=240
    11.         // 其他1小時內的周期等于相應的分鐘數,如:1小時=60, 30分鐘=30。。。
    12.         // 支持不規則分鐘數,如3分鐘,8分鐘,之類都行
    13.         
    14.         Numeric BarsBack(1);
    15.         // 目標時間周期BAR偏移:
    16.         // 1--表示將目標時間周期下的前1根K線數據作為與當前Bar對應的目標時間周期下的K線數據
    17.         // 0--表示將目標時間周期下的截止到目前為止的數據轉換為與當前BAR對應的目標時間周期下K線數據
    18.         
    19.         NumericRef oCurBar;                 // 目標時間周期下的Bar索引
    20.         NumericRef oOPenHT;         // 目標時間周期下的開盤價
    21.         NumericRef oHighHT;         // 目標時間周期下的最高價
    22.         NumericRef oLowHT;          // 目標時間周期下的最低價
    23.         NumericRef oCloseHT;        // 目標時間周期下的收盤價
    24.         NumericRef oVolHT;          // 目標時間周期下的成交量
    25.         NumericRef oOpenIntHT;      // 目標時間周期下的持倉量

    26. Vars
    27.         NumericSeries barCnt;
    28.         NumericSeries CurBar;
    29.         NumericSeries barCntSum;
    30.         NumericSeries OpenHT;
    31.         NumericSeries HighHT;
    32.         NumericSeries LowHT;
    33.         NumericSeries CloseHT;
    34.         NumericSeries VolHT;
    35.         NumericSeries OpenIntHT;
    36.         Numeric CurTime;
    37.         Numeric PreTime;
    38.         bool condition(false);
    39.         Numeric i;
    40. Begin
    41.         If (TimeFrame == 40320)                 // 月線
    42.         {
    43.                 CurTime = Month;
    44.                 PreTime = Month[1];
    45.         }
    46.         Else If (TimeFrame == 10080)                        // 周線
    47.         {
    48.                 CurTime = IntPart(DateDiff(19700105,Date)/7);
    49.                 PreTime = IntPart(DateDiff(19700105,Date[1])/7);
    50.         }
    51.         Else                                                                        // 其他時間周期
    52.         {
    53.                 CurTime = IntPart((DateDiff(19700105,date)*1440 + Hour*60 + Minute)/TimeFrame);
    54.                 PreTime = IntPart((DateDiff(19700105,date[1])*1440 + Hour[1]*60 + Minute[1])/TimeFrame);
    55.         }
    56.         condition = CurTime != PreTime;

    57.         If (CurrentBar==0)                // 如果是第一根Bar, CurBar=0
    58.         {
    59.                 barCnt = 0;
    60.                 CurBar = 0;
    61.                 OpenHT = Open;
    62.                 HighHT = High;
    63.                 LowHT = Low;
    64.                 CloseHT = Close;
    65.                 VolHT = Vol;
    66.                 OpenIntHT = OpenInt;
    67.         }
    68.         Else
    69.         {
    70.                 If(Condition)               
    71.                 // 如果在目標周期下,屬于另一根K線,則CurBar加1
    72.                 {
    73.                         barCnt = 1;
    74.                         CurBar = CurBar[1] + 1;
    75.                         OpenHT = Open;
    76.                         HighHT = High;
    77.                         LowHT = Low;
    78.                         VolHT = Vol;
    79.                 }Else
    80.                 // 如果在目標周期下,屬于同一根K線,則CurBar不變,但最高價和最低價要記錄價格的變化,成交量要累加
    81.                 {
    82.                         barCnt = barCnt[1] + 1;
    83.                         CurBar = CurBar[1];
    84.                         OpenHT = OpenHT[1];
    85.                         HighHT = Max(HighHT[1],High);
    86.                         LowHT = Min(LowHT[1],Low);
    87.                         VolHT = VolHT[1] + Vol;
    88.                 }
    89.                 // 收盤價和持倉量總是取最新值
    90.                 CloseHT = Close;
    91.                 OpenIntHT = OpenInt;
    92.         }
    93.         
    94.         // 上面的程序,在每根小周期的K線上,記錄了它所屬的大時間周期下的開高低收等值的變化。
    95.         // 接下來,要把在大的時間周期級別上,屬于同一根K線的開高低收這些數據,記錄在這一組小周期K線的最后一根上。
    96.         barCntSum = barCnt ;
    97.         If(BarsBack == 0)
    98.         // 如果Bar偏移參數為0,則取每根小周期K線上保留的大時間周期截止到這根小周期K線為止的BAR數據
    99.         {
    100.                 barCntSum = 0 ;
    101.         }Else If(BarsBack == 1)
    102.         // 如果Bar偏移參數為1,則取大時間周期的上一根K線的BAr數據
    103.         {
    104.                 barCntSum = barCnt ;
    105.         }Else
    106.         // 如果BAR偏移參數為其他,則取大時間周期的指定偏移后的那根K線的BAR數據
    107.         {
    108.                 For i = 2 To BarsBack
    109.                 {
    110.                         barCntSum = barCntSum + barCnt[barCntSum];
    111.                 }
    112.         }

    113.         // 最后將相應的K線數據作為引用參數返回
    114.         oCurBar = CurBar;
    115.         oOpenHT = OpenHT[barCntSum];
    116.         oHighHT = HighHT[barCntSum];
    117.         oLowHT = LowHT[barCntSum];
    118.         oCloseHT = CloseHT[barCntSum];
    119.         oVolHT = VolHT[barCntSum];
    120.         oOpenIntHT = OpenIntHT[barCntSum];
    121.         Return barCnt;
    122. End
    復制代碼

     

  • TB客服: iBar 參數太多 調用聲明參數太麻煩 以下為簡便寫法
    1. //------------------------------------------------------------------------
    2. // 簡稱: inBar
    3. // 名稱: 讀書山林
    4. // 類別: 用戶函數
    5. // 類型: 用戶函數
    6. // 輸出: 數值型
    7. //------------------------------------------------------------------------
    8. Params
    9.         Numeric TimeFrame(1440);        // 目標時間周期參數,參數說明參見MtBar
    10.         Numeric BarsBack(1);                // 目標時間周期BAR偏移參數,說明見MtBar函數
    11. Vars
    12.         NumericSeries mtBarCnt;
    13.         Numeric refCurBar;
    14.         Numeric refOpen;
    15.         Numeric refHigh;
    16.         Numeric refLow;
    17.         Numeric refClose;
    18.         Numeric refVol;
    19.         Numeric refOpenInt;
    20.         
    21.         Numeric SumValue(0);
    22.         Numeric i;
    23.         Numeric j(0);
    24. Begin
    25.         mtBarCnt=iBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOpenInt);

    26.         Return mtBarCnt;
    27. End
    復制代碼

     

  • 網友回復: 本帖最后由 讀書山林 于 2015-5-21 02:19 編輯

    跨周期求和函數
    1. //------------------------------------------------------------------------
    2. // 簡稱: iSum
    3. // 名稱: 跨周期求和函數 讀書山林
    4. // 類別: 用戶函數
    5. // 類型: 用戶函數
    6. // 輸出: 數值型
    7. //------------------------------------------------------------------------

    8. Params
    9.         NumericSeries iPrice(1);
    10.         NumericSeries BarCnt(0);
    11.         Numeric Length(10);
    12. Vars
    13.         NumericSeries SumValue(0);
    14.         Numeric i;
    15.         Numeric j(0);
    16. Begin
    17.        If(Length==0)
    18.        {
    19.             Return iPrice;           
    20.        }Else
    21.        {
    22.             j=0;
    23.             SumValue = 0;
    24.             For i = 1 to Length
    25.             {
    26.                 If (iPrice[j] <> InvalidNumeric)
    27.                 {
    28.                         SumValue = SumValue + iPrice[j];
    29.                         j = j + BarCnt[j];
    30.                 }
    31.                 else Break;
    32.             }
    33.        }
    34.         Return SumValue;
    35. End
    復制代碼

     

  • 網友回復: 本帖最后由 讀書山林 于 2015-5-9 00:28 編輯
    1. //------------------------------------------------------------------------
    2. // 簡稱: iMA
    3. // 名稱: 跨周期求均值 讀書山林
    4. // 類別: 用戶函數
    5. // 類型: 用戶函數
    6. // 輸出: 數值型
    7. //------------------------------------------------------------------------
    8. Params
    9.         NumericSeries iPrice(1); //數據源必須為跨周期的值 否則不能返回正確值
    10.         NumericSeries mtBarCnt(1) ;  
    11.         Numeric Length(10);                           
    12. Vars
    13.         Numeric SumValue(0);
    14.         Numeric i;
    15.         Numeric oMA;      
    16. Begin
    17.         SumValue = iSum(iPrice,mtBarCnt,Length);
    18.         oMA = SumValue/Length;
    19.         Return oMA;
    20. End
    復制代碼iMA  可求任意數據源

 

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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 久久五月激情婷婷日韩 | 久久久国产亚洲精品 | 中文字幕日韩欧美一区二区三区 | 精品伊人网 | 爽天天天天天天天 | 欧美成人免费草草影院视频 | 看片网站在线 | 欧美精品二区 | 亚洲精品图区 | 噜噜噜狠狠夜夜躁 | 高h喷水荡肉爽文np肉色文 | 日批免费视频不要会员 | 亚洲精品午夜久久aaa级久久久 | 中文字幕在线观 | 日韩在线伦理片免费观看 | 在线看黄色网址 | 美女黄网站全是免费网址 | 亚洲欧美另类自拍第一页 | 在线观看日本亚洲一区 | 黄色片视频在线 | 国产亚洲精品线观看77 | 欧美人成a视频www | 丝袜老师在办公室被狠狠 | 黄色在线不卡 | 久久综合中文字幕一区二区 | 操人的网站 | 国内精品视频在线观看 | 成人羞羞视频在线观看 | 96xxxxx日本人| 日本一区二区三区免费在线观看 | 成免费视频 | 男女交性过程视频无遮挡在线 | 7777在线| 任我鲁这里有精品视频在线播 | 国产二区三区毛片 | 韩日精品| 免费黄色国产视频 | 精品午夜国产在线观看不卡 | 99精品欧美一区 | 成人免费网站视频www | 国产在线视频网站 |