rquantstratblotter

Quantstrat rule label in transaction


I don't seem to find is there a way to see Rule name/label of the transaction when reviewing them. I use getTxns() but it is from blotter package and it is not aware of rules that are created by quantstrat. What would be best way to do that?


Solution

  • As a general rule, blotter doesn't know anything about what quantstrat does (other than the transactions quantstrat creates).

    I believe the tradeOrderStats function does something close to what you're looking for. It merges the quantstrat order book, which contains the rule label, with the blotter txn table.

    For example:

    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"