[R-SIG-Finance] Blotter package - problem with example.

Jeff Ryan jeff.a.ryan at gmail.com
Wed Oct 14 04:27:08 CEST 2009


Try installing the latest versions of xts and quantmod as well.  As
blotter is under development, it is best to update all the
dependencies as well.

In this case, I think that should solve your problem.

Best,
Jeff

On Tue, Oct 13, 2009 at 9:22 PM, Jan Vandermeer <nordicgnome at gmail.com> wrote:
> Hi all;
>
> I've been following the discussion here on backtesting
> ([R-SIG-Finance] Backtesting framework package -
> <https://stat.ethz.ch/pipermail/r-sig-finance/2009q2/004404.html> and
> the discussion  [R-SIG-Finance] QuantMod trading models docs?
> initiated by Mark Knecht and decided to give the blotter package a
> try.
> I tried running  through the example provided by the blotter package.
> </usr/lib64/R/library/blotter/html/blotter-package.html>
> I installed the latest version from R-forge. I am running R version
> 2.9.1 (2009-06-26) on an AMD Turion 64 with a Gentoo 2.6.31 kernel.
>
> Things ran smoothly as shown below until I got to the "p =
> updatePortf(p,'2007-01')" step, where R kicked out
>
> "Error in if (mid != 0 && key < vec[mid]) { :
>  missing value where TRUE/FALSE needed".
>
> So I went along and looked at the
> "/usr/lib64/R/library/blotter/html/00Index.html", which sent me along
> to "/usr/lib64/R/library/blotter/html/updatePosPL.html" and attempted
> to adjust some of the values because the usage seems to indicate that
> additional values may be required
>
> "Usage
> updatePosPL(Portfolio, Symbol, StartDate, EndDate, Prices = Cl(get(Symbol)))
> updatePortf(Portfolio, StartDate, EndDate)"
>
> I added an EndDate using the same format as in the getSymbols command.
> and received the following error.
>
>> p = updatePortf(p,'2007-01-01`, '2007-01-31')
> Error: unexpected numeric constant in "p = updatePortf(p,'2007-01-01`, '2007"
>
>
> I tried a couple of variations on the updatePosPL()
>
>> updatePosPL(p, "IBM", '2007-01-01', '2007-01-31', Prices = Cl(get(Symbol)))
> Error in updatePosPL(p, "IBM", "2007-01-01", "2007-01-31", Prices =
> Cl(get(Symbol))) :
>  unused argument(s) ("2007-01-31")
>> updatePosPL(p, "IBM", '2007-01-01', '2007-01-31', Prices = Cl(get(Symbol)))
> Error in updatePosPL(p, "IBM", "2007-01-01", "2007-01-31", Prices =
> Cl(get(Symbol))) :
>  unused argument(s) ("2007-01-31")
>> updatePosPL(p, "IBM", '2007-01-01', Prices = Cl(get(Symbol)))
> Error in get(Symbol) : object 'Symbol' not found
>> updatePosPL(p, "IBM", '2007-01-01', Prices = Cl(get(symbol)))
> Error in get(symbol) : object 'symbol' not found
>
> I also tried:
>> updatePosPL(p, "IBM", '2007-01-01', Prices = Cl(IBM))
> Error in if (any(i < 0)) { : missing value where TRUE/FALSE needed
>
>
> At this point I am at a bit of a loss. I tried looking through some of
> the stuff on R-Project to see if there are guidelines for code
> examples and where and if they should work. I guess I would expect the
> code examples include in the library or
> "/usr/lib64/R/library/blotter/R-ex" to just work.
>
> So, I am I doing something glaringly wrong? Do I need to update my
> version of R, xts, zoo or quantmod? I know I am on still on the steep
> part of the learning curve as far as R in general is concerned and
> specifically with time series and financial data with R but R texts
> I've seen suggest that working through examples with real data and
> known steps is a great way to learn. Successfully working through
> examples allows one small sign posts of success along the way
>
> Any assistance would be appreciated.
>
> Jan
>
>
>
> Blotter example entered into R and responses after the first _________
>
> I tried looking at the output for "p", see below the second ______. It
> appears to be included in the data.frame
>
> Values obtained through quantmod are below the third _______
>
> ________________________________
>> library(blotter)
> Loading required package: xts
> Loading required package: zoo
>
> Attaching package: 'zoo'
>
>
>        The following object(s) are masked from package:base :
>
>         as.Date.numeric
>
> xts now requires a valid TZ environment variable to be set
>  no TZ var is set, setting to TZ=GMT
>> symbols = c("IBM","F","MMM")
>> require(quantmod)
> Loading required package: quantmod
> Loading required package: Defaults
> Loading required package: TTR
>> getSymbols(symbols, from='2007-01-01', to='2007-01-31', index.class="POSIXct")
> [1] "IBM" "F"   "MMM"
>> print('Creating portfolio \"p\"...')
> [1] "Creating portfolio \"p\"..."
>> p = initPortf(symbols=symbols)
>> print('Adding trades to \"p\"...')
> [1] "Adding trades to \"p\"..."
>> # Make a couple of trades in IBM
>> p = addTxn(p, "IBM", '2007-01-03', 50, 96.5, -0.05*50)
> [1] "IBM 2007-01-03 50 @ 96.5"
>> p = addTxn(p, "IBM", '2007-01-04', 50, 97.1, -0.05*50)
> [1] "IBM 2007-01-04 50 @ 97.1"
>> # ...a few in F.
>> p = addTxn(p, "F", '2007-01-03', -100, 7.60, -0.05*100)
> [1] "F 2007-01-03 -100 @ 7.6"
>> p = addTxn(p, "F", '2007-01-04', 50, 7.70, -0.05*50)
> [1] "F 2007-01-04 50 @ 7.7"
>> p = addTxn(p, "F", '2007-01-10', 50, 7.78, -0.05*50)
> [1] "F 2007-01-10 50 @ 7.78"
>> # ...and some in MMM
>> p = addTxn(p, "MMM", '2007-01-05', -50, 77.9, -0.05*50)
> [1] "MMM 2007-01-05 -50 @ 77.9"
>> p = addTxn(p, "MMM", '2007-01-08', 50, 77.6, -0.05*50)
> [1] "MMM 2007-01-08 50 @ 77.6"
>> p = addTxn(p, "MMM", '2007-01-09', 50, 77.6, -0.05*50)
> [1] "MMM 2007-01-09 50 @ 77.6"
> ___________
>
>
> It appears that the transactions have been posted correctly
>
>> p
> $IBM
> $IBM$txn
>           Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost Pos.Qty
> 1950-01-01       0       0.0      0.0       0.0         0.00       0
> 2007-01-03      50      96.5     -2.5    4827.5        96.55      50
> 2007-01-04      50      97.1     -2.5    4857.5        97.15     100
>           Pos.Avg.Cost Realized.PL
> 1950-01-01         0.00           0
> 2007-01-03        96.55           0
> 2007-01-04        96.85           0
>
> $IBM$posPL
>           Pos.Qty Pos.Value Txn.Value Txn.Fees Realized.PL Unrealized.PL
> 1950-01-01       0         0         0        0           0             0
>           Trading.PL
> 1950-01-01          0
>
>
> $F
> $F$txn
>           Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost Pos.Qty
> 1950-01-01       0      0.00      0.0       0.0         0.00       0
> 2007-01-03    -100      7.60     -5.0    -755.0         7.55    -100
> 2007-01-04      50      7.70     -2.5     387.5         7.75     -50
> 2007-01-10      50      7.78     -2.5     391.5         7.83       0
>           Pos.Avg.Cost Realized.PL
> 1950-01-01         0.00           0
> 2007-01-03         7.55           0
> 2007-01-04         7.35         -10
> 2007-01-10         0.00         -24
>
> $F$posPL
>           Pos.Qty Pos.Value Txn.Value Txn.Fees Realized.PL Unrealized.PL
> 1950-01-01       0         0         0        0           0             0
>           Trading.PL
> 1950-01-01          0
>
>
> $MMM
> $MMM$txn
>           Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost Pos.Qty
> 1950-01-01       0       0.0      0.0       0.0         0.00       0
> 2007-01-05     -50      77.9     -2.5   -3892.5        77.85     -50
> 2007-01-08      50      77.6     -2.5    3882.5        77.65       0
> 2007-01-09      50      77.6     -2.5    3882.5        77.65      50
>           Pos.Avg.Cost Realized.PL
> 1950-01-01         0.00           0
> 2007-01-05        77.85           0
> 2007-01-08         0.00          10
> 2007-01-09        77.65           0
>
> $MMM$posPL
>           Pos.Qty Pos.Value Txn.Value Txn.Fees Realized.PL Unrealized.PL
> 1950-01-01       0         0         0        0           0             0
>           Trading.PL
> 1950-01-01
>
> _________________________________________
>
>> IBM
>           IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
> 2007-01-03    97.18    98.40   96.26     97.27    9196800        92.84
> 2007-01-04    97.25    98.79   96.88     98.31   10524500        93.83
> 2007-01-05    97.60    97.95   96.91     97.42    7221300        92.98
> 2007-01-08    98.50    99.50   98.35     98.90   10340000        94.40
> 2007-01-09    99.08   100.33   99.07    100.07   11108200        95.51
> 2007-01-10    98.50    99.05   97.93     98.89    8744800        94.39
> 2007-01-11    99.00    99.90   98.50     98.65    8000700        94.16
> 2007-01-12    98.99    99.69   98.50     99.34    6636500        94.82
> 2007-01-16    99.40   100.84   99.30    100.82    9602200        96.23
> 2007-01-17   100.69   100.90   99.90    100.02    8200700        95.47
> 2007-01-18    99.80    99.95   98.91     99.45   14725000        94.92
> 2007-01-19    95.00    96.85   94.55     96.17   26035800        91.79
> 2007-01-22    96.42    97.23   96.12     97.11   13539300        92.69
> 2007-01-23    96.91    97.38   96.20     97.08   10337400        92.66
> 2007-01-24    97.08    97.58   96.58     97.40    5700000        92.96
> 2007-01-25    97.22    97.92   97.22     97.51    6201300        93.07
> 2007-01-26    97.52    97.83   96.84     97.45    5771100        93.01
> 2007-01-29    97.70    98.66   97.45     98.54    7294800        94.05
> 2007-01-30    98.57    99.45   98.50     99.37    7177900        94.84
> 2007-01-31    98.80    99.48   98.35     99.15    6432600        94.63
>> F
>           F.Open F.High F.Low F.Close  F.Volume F.Adjusted
> 2007-01-03   7.56   7.67  7.44    7.51  78652200       7.51
> 2007-01-04   7.56   7.72  7.43    7.70  63454900       7.70
> 2007-01-05   7.72   7.75  7.57    7.62  40562100       7.62
> 2007-01-08   7.63   7.75  7.62    7.73  48938500       7.73
> 2007-01-09   7.75   7.86  7.73    7.79  56732200       7.79
> 2007-01-10   7.79   7.79  7.67    7.73  42397100       7.73
> 2007-01-11   7.73   7.80  7.68    7.77  40020800       7.77
> 2007-01-12   7.77   7.92  7.76    7.89  57053800       7.89
> 2007-01-16   7.89   8.01  7.87    7.94  66699800       7.94
> 2007-01-17   7.97   8.10  7.97    8.04  63728700       8.04
> 2007-01-18   8.06   8.24  8.06    8.18  78375700       8.18
> 2007-01-19   8.24   8.32  8.17    8.30  66023300       8.30
> 2007-01-22   8.33   8.43  8.25    8.41  53554600       8.41
> 2007-01-23   8.39   8.62  8.24    8.30 116406900       8.30
> 2007-01-24   8.31   8.35  8.11    8.20  76821900       8.20
> 2007-01-25   8.15   8.52  8.00    8.22  99688700       8.22
> 2007-01-26   8.15   8.48  8.14    8.42  54421900       8.42
> 2007-01-29   8.44   8.51  8.35    8.37  55791000       8.37
> 2007-01-30   8.38   8.42  8.19    8.20  28763200       8.20
> 2007-01-31   8.17   8.20  8.04    8.13  65038600       8.13
>> MMM
>           MMM.Open MMM.High MMM.Low MMM.Close MMM.Volume MMM.Adjusted
> 2007-01-03    77.53    78.85   77.38     78.26    3781500        72.40
> 2007-01-04    78.40    78.41   77.45     77.95    2968400        72.11
> 2007-01-05    77.89    77.90   77.01     77.42    2765200        71.62
> 2007-01-08    77.42    78.04   76.97     77.59    2434500        71.78
> 2007-01-09    78.00    78.23   77.44     77.68    1896800        71.86
> 2007-01-10    77.31    77.96   77.04     77.85    1787500        72.02
> 2007-01-11    78.05    79.03   77.88     78.65    2372500        72.76
> 2007-01-12    78.41    79.50   78.22     79.36    2582200        73.42
> 2007-01-16    79.48    79.62   78.92     79.56    2526600        73.60
> 2007-01-17    79.33    79.51   78.75     78.91    2711300        73.00
> 2007-01-18    78.71    79.70   78.60     78.81    1963000        72.91
> 2007-01-19    79.09    79.88   78.82     79.25    2912100        73.32
> 2007-01-22    79.25    79.29   78.13     78.49    2139300        72.61
> 2007-01-23    78.71    79.15   78.33     78.85    1949500        72.95
> 2007-01-24    78.85    79.66   78.85     79.49    1772700        73.54
> 2007-01-25    79.56    79.75   78.83     79.01    2888700        73.09
> 2007-01-26    78.97    79.19   78.23     78.69    1996300        72.80
> 2007-01-29    78.54    79.20   78.25     78.96    3420300        73.05
> 2007-01-30    74.92    76.18   74.24     74.70   15657900        69.11
> 2007-01-31    74.21    74.68   73.09     74.30    9284500        68.74
>
> _______________________________________________
> R-SIG-Finance at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only.
> -- If you want to post, subscribe first.
>



-- 
Jeffrey Ryan
jeffrey.ryan at insightalgo.com

ia: insight algorithmics
www.insightalgo.com



More information about the R-SIG-Finance mailing list