Forum: help


RE: TradeStats Error [ Reply ] By: Joshua Ulrich on 2016-10-17 15:00 | [forum:43562] |
As I said in my previous message, you need to provide a reproducible example. You also still need to upgrade to the latest version of blotter. Until you do those two things, I cannot help further. |
RE: TradeStats Error [ Reply ] By: John Smith on 2016-10-17 14:50 | [forum:43561] |
When I run your code, I get the correct answer. However, when I re-ran my code, the gross profit and gross loss are correct, but the net trading pl is incorrect. See below. SPY Portfolio "MOM" Symbol "SPY" Num.Txns "46" Num.Trades "23" Net.Trading.PL "-3226.469" Avg.Trade.PL "654.7424" Med.Trade.PL "-567.58" Largest.Winner "8308.25" Largest.Loser "-1850.4" Gross.Profits "32060.58" Gross.Losses "-17001.5" > sessionInfo() R version 3.3.1 (2016-06-21) Platform: i386-w64-mingw32/i386 (32-bit) locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] mongolite_0.9.1 Quandl_2.8.0 [3] blotter_0.9.1741 PerformanceAnalytics_1.4.3541 [5] FinancialInstrument_1.2.0 quantmod_0.4-5 [7] TTR_0.23-1 xts_0.9-7 [9] zoo_1.7-13 loaded via a namespace (and not attached): [1] lattice_0.20-34 grid_3.3.1 R6_2.2.0 jsonlite_1.1 httr_1.2.1 [6] tools_3.3.1 |
RE: TradeStats Error [ Reply ] By: Joshua Ulrich on 2016-10-15 13:19 | [forum:43559] |
You did not provide a reproducible example, and I cannot replicate the Net.Trading.PL shown in your message with the code below. If you're still having issues, please ensure you're using the latest blotter from https://github.com/braverock/blotter, provide a minimal reproducible example, and provide the output of sessionInfo(). require(blotter) currency("USD") stock("SPY", "USD") initPortf("MOM", "SPY") txnData <- as.xts(read.zoo(text="Index,TxnQty,TxnPrice '2007-01-31 21:00:00', 173, 143.75 '2007-07-31 20:00:00', -173, 145.72 '2007-07-31 20:00:00', -171, 145.72 '2007-09-28 20:00:00', 171, 152.58 '2007-09-28 20:00:00', 163, 152.58 '2007-12-31 21:00:00', -163, 146.21 '2007-12-31 21:00:00', -170, 146.21 '2008-04-30 20:00:00', 170, 138.26 '2008-04-30 20:00:00', 180, 138.26 '2008-06-30 20:00:00', -180, 127.98 '2008-06-30 20:00:00', -195, 127.98 '2009-04-30 20:00:00', 195, 87.42 '2009-04-30 20:00:00', 285, 87.42 '2010-05-28 20:00:00', -285, 109.369 '2010-05-28 20:00:00', -228, 109.369 '2010-09-30 20:00:00', 228, 114.13 '2010-09-30 20:00:00', 219, 114.13 '2011-06-30 20:00:00', -219, 131.97 '2011-06-30 20:00:00', -189, 131.97 '2011-11-30 21:00:00', 189, 124.99 '2011-11-30 21:00:00', 200, 124.99 '2012-05-31 20:00:00', -200, 131.47 '2012-05-31 20:00:00', -190, 131.47 '2012-08-31 20:00:00', 190, 141.16 '2012-08-31 20:00:00', 177, 141.16 '2012-12-31 21:00:00', -177, 142.41 '2012-12-31 21:00:00', -175, 142.41 '2013-01-31 21:00:00', 175, 149.7 '2013-01-31 21:00:00', 167, 149.7 '2015-01-30 21:00:00', -167, 199.45 '2015-01-30 21:00:00', -125, 199.45 '2015-02-27 21:00:00', 125, 210.66 '2015-02-27 21:00:00', 118, 210.66 '2015-06-30 20:00:00', -118, 205.85 '2015-06-30 20:00:00', -121, 205.85 '2015-07-31 20:00:00', 121, 210.5 '2015-07-31 20:00:00', 118, 210.5 '2015-08-31 20:00:00', -118, 197.67 '2015-08-31 20:00:00', -126, 197.67 '2015-11-30 21:00:00', 126, 208.69 '2015-11-30 21:00:00', 119, 208.69 '2016-01-29 21:00:00', -119, 193.7208 '2016-01-29 21:00:00', -129, 193.7208 '2016-03-31 20:00:00', 129, 205.52 '2016-03-31 20:00:00', 121, 205.52 '2016-10-07 20:00:00', -121, 215.04", sep=",", header=TRUE)) addTxns("MOM", "SPY", txnData, ConMult=1) updatePortf("MOM", "SPY", Prices = txnData$TxnPrice) t(tradeStats('MOM')) |
TradeStats Error [ Reply ] By: John Smith on 2016-10-14 20:14 | [forum:43558] |
When I run TradeStats, an incorrect Net Trading P/L is shown. I have listed the output of tradeStats and the transactions via extractTxns. Thoughts? Thanks [1] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-01-31 21:00:00', TxnQty =173, TxnPrice =143.75, TxnFees =0, ConMult =1)" [2] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-07-31 20:00:00', TxnQty =-173, TxnPrice =145.72, TxnFees =0, ConMult =1)" [3] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-07-31 20:00:00', TxnQty =-171, TxnPrice =145.72, TxnFees =0, ConMult =1)" [4] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-09-28 20:00:00', TxnQty =171, TxnPrice =152.58, TxnFees =0, ConMult =1)" [5] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-09-28 20:00:00', TxnQty =163, TxnPrice =152.58, TxnFees =0, ConMult =1)" [6] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-12-31 21:00:00', TxnQty =-163, TxnPrice =146.21, TxnFees =0, ConMult =1)" [7] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2007-12-31 21:00:00', TxnQty =-170, TxnPrice =146.21, TxnFees =0, ConMult =1)" [8] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2008-04-30 20:00:00', TxnQty =170, TxnPrice =138.26, TxnFees =0, ConMult =1)" [9] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2008-04-30 20:00:00', TxnQty =180, TxnPrice =138.26, TxnFees =0, ConMult =1)" [10] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2008-06-30 20:00:00', TxnQty =-180, TxnPrice =127.98, TxnFees =0, ConMult =1)" [11] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2008-06-30 20:00:00', TxnQty =-195, TxnPrice =127.98, TxnFees =0, ConMult =1)" [12] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2009-04-30 20:00:00', TxnQty =195, TxnPrice =87.42, TxnFees =0, ConMult =1)" [13] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2009-04-30 20:00:00', TxnQty =285, TxnPrice =87.42, TxnFees =0, ConMult =1)" [14] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2010-05-28 20:00:00', TxnQty =-285, TxnPrice =109.369, TxnFees =0, ConMult =1)" [15] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2010-05-28 20:00:00', TxnQty =-228, TxnPrice =109.369, TxnFees =0, ConMult =1)" [16] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2010-09-30 20:00:00', TxnQty =228, TxnPrice =114.13, TxnFees =0, ConMult =1)" [17] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2010-09-30 20:00:00', TxnQty =219, TxnPrice =114.13, TxnFees =0, ConMult =1)" [18] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2011-06-30 20:00:00', TxnQty =-219, TxnPrice =131.97, TxnFees =0, ConMult =1)" [19] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2011-06-30 20:00:00', TxnQty =-189, TxnPrice =131.97, TxnFees =0, ConMult =1)" [20] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2011-11-30 21:00:00', TxnQty =189, TxnPrice =124.99, TxnFees =0, ConMult =1)" [21] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2011-11-30 21:00:00', TxnQty =200, TxnPrice =124.99, TxnFees =0, ConMult =1)" [22] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2012-05-31 20:00:00', TxnQty =-200, TxnPrice =131.47, TxnFees =0, ConMult =1)" [23] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2012-05-31 20:00:00', TxnQty =-190, TxnPrice =131.47, TxnFees =0, ConMult =1)" [24] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2012-08-31 20:00:00', TxnQty =190, TxnPrice =141.16, TxnFees =0, ConMult =1)" [25] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2012-08-31 20:00:00', TxnQty =177, TxnPrice =141.16, TxnFees =0, ConMult =1)" [26] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2012-12-31 21:00:00', TxnQty =-177, TxnPrice =142.41, TxnFees =0, ConMult =1)" [27] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2012-12-31 21:00:00', TxnQty =-175, TxnPrice =142.41, TxnFees =0, ConMult =1)" [28] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2013-01-31 21:00:00', TxnQty =175, TxnPrice =149.7, TxnFees =0, ConMult =1)" [29] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2013-01-31 21:00:00', TxnQty =167, TxnPrice =149.7, TxnFees =0, ConMult =1)" [30] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-01-30 21:00:00', TxnQty =-167, TxnPrice =199.45, TxnFees =0, ConMult =1)" [31] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-01-30 21:00:00', TxnQty =-125, TxnPrice =199.45, TxnFees =0, ConMult =1)" [32] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-02-27 21:00:00', TxnQty =125, TxnPrice =210.66, TxnFees =0, ConMult =1)" [33] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-02-27 21:00:00', TxnQty =118, TxnPrice =210.66, TxnFees =0, ConMult =1)" [34] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-06-30 20:00:00', TxnQty =-118, TxnPrice =205.85, TxnFees =0, ConMult =1)" [35] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-06-30 20:00:00', TxnQty =-121, TxnPrice =205.85, TxnFees =0, ConMult =1)" [36] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-07-31 20:00:00', TxnQty =121, TxnPrice =210.5, TxnFees =0, ConMult =1)" [37] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-07-31 20:00:00', TxnQty =118, TxnPrice =210.5, TxnFees =0, ConMult =1)" [38] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-08-31 20:00:00', TxnQty =-118, TxnPrice =197.67, TxnFees =0, ConMult =1)" [39] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-08-31 20:00:00', TxnQty =-126, TxnPrice =197.67, TxnFees =0, ConMult =1)" [40] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-11-30 21:00:00', TxnQty =126, TxnPrice =208.69, TxnFees =0, ConMult =1)" [41] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2015-11-30 21:00:00', TxnQty =119, TxnPrice =208.69, TxnFees =0, ConMult =1)" [42] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2016-01-29 21:00:00', TxnQty =-119, TxnPrice =193.7208, TxnFees =0, ConMult =1)" [43] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2016-01-29 21:00:00', TxnQty =-129, TxnPrice =193.7208, TxnFees =0, ConMult =1)" [44] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2016-03-31 20:00:00', TxnQty =129, TxnPrice =205.52, TxnFees =0, ConMult =1)" [45] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2016-03-31 20:00:00', TxnQty =121, TxnPrice =205.52, TxnFees =0, ConMult =1)" [46] "addTxn(Portfolio ='MOM', Symbol ='SPY', TxnDate = '2016-10-07 20:00:00', TxnQty =-121, TxnPrice =215.04, TxnFees =0, ConMult =1)" > print( t(tradeStats(strategy))) SPY Portfolio "MOM" Symbol "SPY" Num.Txns "46" Num.Trades "23" Net.Trading.PL "-3226.469" Avg.Trade.PL "654.7424" Med.Trade.PL "-567.58" Largest.Winner "8308.25" Largest.Loser "-1850.4" Gross.Profits "32060.58" Gross.Losses "-17001.5" Std.Dev.Trade.PL "3069.218" Percent.Positive "43.47826" Percent.Negative "56.52174" Profit.Factor "1.88575" Avg.Win.Trade "3206.058" Med.Win.Trade "1335.36" Avg.Losing.Trade "-1307.808" Med.Losing.Trade "-1388.52" Avg.Daily.PL "654.7424" Med.Daily.PL "-567.58" Std.Dev.Daily.PL "3069.218" Ann.Sharpe "3.386437" Max.Drawdown "-5073.385" Profit.To.Max.Draw "-0.6359598" Avg.WinLoss.Ratio "2.451475" Med.WinLoss.Ratio "0.9617146" Max.Equity "805.56" Min.Equity "-4267.825" End.Equity "-3226.469" |