SCM

Forum: help

Monitor Forum | Start New Thread Start New Thread
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"

Thanks to:
Vienna University of Economics and Business Powered By FusionForge