【问题标题】:Quantstrat rule label in transaction交易中的 Quantstrat 规则标签
【发布时间】:2015-11-03 22:13:34
【问题描述】:

我似乎没有找到在审查交易时查看规则名称/标签的方法。我使用 getTxns() 但它来自吸墨纸包,它不知道由 quantstrat 创建的规则。最好的方法是什么?

【问题讨论】:

    标签: r quantstrat blotter


    【解决方案1】:

    作为一般规则,blotter 对 quantstrat 所做的事情一无所知(除了 quantstrat 创建的事务)。

    我相信tradeOrderStats 函数的功能与您正在寻找的功能接近。它将包含规则标签的 quantstrat 订单簿与吸墨纸 txn 表合并。

    例如:

    require(quantstrat)
    demo("macd", ask=FALSE)
    head(tradeOrderStats(portfolio.st, stock.str),2)
               Order.Qty Order.Price  Order.Type Order.Side Order.Threshold
    2007-08-17 "all"     "117.049995" "market"   "long"     NA             
    2008-01-16 "all"     "169.039997" "market"   "long"     NA             
               Order.Status Order.StatusTime      Prefer Order.Set Txn.Fees Rule  
    2007-08-17 "closed"     "2007-08-17 00:00:00" ""     "exit2"   "0"      "exit"
    2008-01-16 "closed"     "2008-01-16 00:00:00" ""     "exit2"   "0"      "exit"
               Time.In.Force Start        End          Init.Pos Max.Pos Num.Txns
    2007-08-17 ""            "2007-03-16" "2007-08-17" "100"    "100"   "2"     
    2008-01-16 ""            "2007-09-05" "2008-01-16" "100"    "100"   "2"     
               Max.Notional.Cost Net.Trading.PL MAE          MFE         
    2007-08-17 " 8957"           " 3249.0002"   "    0.0000" " 5643.0003"
    2008-01-16 "14416"           " 1547.9994"   "-1239.0003" " 5566.9992"
               Pct.Net.Trading.PL Pct.MAE       Pct.MFE       tick.Net.Trading.PL
    2007-08-17 " 0.36273308"      " 0.00000000" "0.630010074" " 3249.0002"       
    2008-01-16 " 0.10738065"      "-0.08594619" "0.386168086" " 1547.9994"       
               tick.MAE     tick.MFE    
    2007-08-17 "    0.0000" " 5643.0003"
    2008-01-16 "-1239.0003" " 5566.9992"
    

    【讨论】:

      【解决方案2】:

      您可以手动将 Quantstrat 的订单簿与 Blotter 的交易合并,这将为您提供交易(进入和退出)的完整列表以及该交易的规则标签。

      library(plyr)
      
      QSOrderbook <- ldply(getOrderBook(portfolio.st), data.frame)
      rownames(QSOrderbook) <- as.POSIXct(QSOrderbook$data.Order.StatusTime, format = "%Y-%m-%d %H:%M")
      
      bltrTransactions <- as.data.frame(getTxns(Portfolio=portfolio.st, symbols))
      
      Transactions <- merge(QSOrderbook, bltrTransactions[-1,], by=0)
      

      【讨论】:

        猜你喜欢
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多