[Blotter-commits] r1293 - pkg/quantstrat/inst/tests

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Thu Dec 13 14:33:34 CET 2012


Author: milktrader
Date: 2012-12-13 14:33:34 +0100 (Thu, 13 Dec 2012)
New Revision: 1293

Added:
   pkg/quantstrat/inst/tests/bbands_version_for_tests.R
   pkg/quantstrat/inst/tests/testthat_bbands.R
   pkg/quantstrat/inst/tests/testthat_bee.R
Log:
re-adding files with .R

Added: pkg/quantstrat/inst/tests/bbands_version_for_tests.R
===================================================================
--- pkg/quantstrat/inst/tests/bbands_version_for_tests.R	                        (rev 0)
+++ pkg/quantstrat/inst/tests/bbands_version_for_tests.R	2012-12-13 13:33:34 UTC (rev 1293)
@@ -0,0 +1,104 @@
+#################### CLEANUP PREVIOUS TEST ######################
+
+# suppressWarnings(rm(list=ls(.strategy), pos=.strategy))
+# suppressWarnings(rm(list=ls(.blotter), pos=.blotter))
+# suppressWarnings(rm(list=ls()))
+
+################### LOAD QUANTSTRAT #################
+
+suppressMessages(require(quantstrat))
+
+###################### LOAD TTRC ######################
+
+data('ttrc')
+TTRC = xts(ttrc[,-1],ttrc[,1])
+TTRC = head(TTRC, n=500)
+
+###################### DEFINE VARIABLES #################
+
+SD = 2 
+N = 20
+currency('USD')
+stock('TTRC', currency='USD', multiplier=1)
+initDate='1984-12-31'
+initEq=1000000
+portfolio.st='bbands'
+account.st='bbands'
+
+############################ INITIALIZE AND POSITION LOGIC ################
+
+initPortf(portfolio.st,symbols='TTRC', initDate=initDate)
+initAcct(account.st,portfolios='bbands', initDate=initDate)
+initOrders(portfolio=portfolio.st,initDate=initDate)
+addPosLimit(portfolio.st, 'TTRC', initDate, 200, 2 ) #set max pos
+stratBBands <- strategy("bbands")
+
+############################ INDICATOR ############################
+
+stratBBands <- add.indicator(strategy = stratBBands,
+                             name = "BBands", 
+                             arguments = list(HLC = quote(HLC(mktdata)), 
+                                              maType='SMA'))
+
+
+############################ SIGNALS ##############################
+
+stratBBands <- add.signal(stratBBands,
+                          name="sigCrossover",
+                          arguments = list(columns=c("Close","up"),
+                                           relationship="gt"),
+                          label="Cl.gt.UpperBand")
+
+stratBBands <- add.signal(stratBBands,
+                          name="sigCrossover",
+                          arguments = list(columns=c("Close","dn"),
+                                           relationship="lt"),
+                          label="Cl.lt.LowerBand")
+
+stratBBands <- add.signal(stratBBands,
+                          name="sigCrossover",
+                          arguments = list(columns=c("High","Low","mavg"),
+                                           relationship="op"),
+                          label="Cross.Mid")
+
+############################# RULES ###############################
+
+
+stratBBands <- add.rule(stratBBands,
+                        name='ruleSignal', 
+                        arguments = list(sigcol="Cl.gt.UpperBand",
+                                         sigval=TRUE, 
+                                         orderqty=-100, 
+                                         ordertype='market', 
+                                         orderside=NULL, 
+                                         threshold=NULL,
+                                         osFUN=osMaxPos),
+                        type='enter')
+
+stratBBands <- add.rule(stratBBands,
+                        name='ruleSignal', 
+                        arguments = list(sigcol="Cl.lt.LowerBand",
+                                         sigval=TRUE, 
+                                         orderqty= 100, 
+                                         ordertype='market', 
+                                         orderside=NULL, 
+                                         threshold=NULL,
+                                         osFUN=osMaxPos),
+                        type='enter')
+
+stratBBands <- add.rule(stratBBands,
+                        name='ruleSignal', 
+                        arguments = list(sigcol="Cross.Mid",
+                                         sigval=TRUE, 
+                                         orderqty= 'all', 
+                                         ordertype='market', 
+                                         orderside=NULL, 
+                                         threshold=NULL,
+                                         osFUN=osMaxPos),
+                        type='exit')
+
+######################## APPLY STRAT  ###################################################
+
+out<-try(applyStrategy(strategy=stratBBands , portfolios='bbands',parameters=list(sd=SD,n=N)) )
+
+updatePortf(Portfolio='bbands',Dates=paste('::',as.Date(Sys.time()),sep=''))

Added: pkg/quantstrat/inst/tests/testthat_bbands.R
===================================================================
--- pkg/quantstrat/inst/tests/testthat_bbands.R	                        (rev 0)
+++ pkg/quantstrat/inst/tests/testthat_bbands.R	2012-12-13 13:33:34 UTC (rev 1293)
@@ -0,0 +1,67 @@
+require(testthat)
+
+################## bee.r  #########################
+
+source('bbands_version_for_tests.r')
+
+stratstat   = tradeStats(portfolio.st)
+
+Txns      = stratstat$Num.Txns
+Trades    = stratstat$Num.Trades
+NetPL     = stratstat$Net.Trading.PL
+LWinner   = stratstat$Largest.Winner
+LLoser    = stratstat$Largest.Loser
+MaxDD     = stratstat$Max.Drawdown
+KFactor   = stratstat$K.Factor
+RINAindex = stratstat$RINA.Index
+InMarket  = stratstat$In.Market
+BuyHold   = stratstat$Buy.Hold
+
+# suppressWarnings(rm("order_book.bbands",pos=.strategy))
+# suppressWarnings(rm("account.bbands","portfolio.bbands",pos=.blotter))
+
+# suppressWarnings(rm("order_book.bbands",pos=.strategy))
+# suppressWarnings(rm("account.bbands","portfolio.bbands",pos=.blotter))
+
+# suppressWarnings(rm("order_book.bbands",pos=.strategy))
+# suppressWarnings(rm("account.bbands","portfolio.bbands",pos=.blotter))
+
+# suppressWarnings(rm("order_book.bbands",pos=.strategy))
+# suppressWarnings(rm("account.bbands","portfolio.bbands",pos=.blotter))
+# suppressWarnings(rm("account.st","portfolio.st","stock.str","stratBBands","initDate","initEq",'start_t','end_t'))
+# 
+######################## RUN TEST SUITE #######################
+
+context('Consistent trade statistics for bbands.R')
+
+test_that("Number of transactions is consistent", 
+          { expect_that(Txns, equals(51)) })
+
+test_that("Number of the number of trades is consistent", 
+          { expect_that(Trades, equals(21)) })
+
+test_that("Net Trading PL is consistent", 
+          { expect_that(NetPL, equals(46)) })
+
+test_that("Largest Winner is consistent", 
+          { expect_that(LWinner, equals(24)) })
+
+test_that("Largest Loser is consistent", 
+          { expect_that(LLoser, equals(-38)) })
+
+test_that("Max Drawdown is consistent", 
+          { expect_that(MaxDD, equals(-84)) })
+
+test_that("K Factor is consistent", 
+          { expect_that(KFactor, equals(0)) })
+
+test_that("RINA Index is consistent", 
+          { expect_that(RINAindex, equals(0)) })
+
+test_that("Time in Market is consistent", 
+          { expect_that(InMarket, equals(0)) })
+
+test_that("Buy and Hold is consistent", 
+          { expect_that(BuyHold, equals(0)) })
+
+

Added: pkg/quantstrat/inst/tests/testthat_bee.R
===================================================================
--- pkg/quantstrat/inst/tests/testthat_bee.R	                        (rev 0)
+++ pkg/quantstrat/inst/tests/testthat_bee.R	2012-12-13 13:33:34 UTC (rev 1293)
@@ -0,0 +1,63 @@
+require(testthat)
+
+################## bee.r  #########################
+
+source("bee_version_for_tests.R")
+
+#  bing = ls()
+#  bang = ls(.strategy)
+#  boom = ls(.blotter)
+
+stratstat   = tradeStats(port)
+
+Txns      = stratstat$Num.Txns
+Trades    = stratstat$Num.Trades
+NetPL     = stratstat$Net.Trading.PL
+LWinner   = stratstat$Largest.Winner
+LLoser    = stratstat$Largest.Loser
+MaxDD     = stratstat$Max.Drawdown
+KFactor   = stratstat$K.Factor
+RINAindex = stratstat$RINA.Index
+InMarket  = stratstat$In.Market
+BuyHold   = stratstat$Buy.Hold
+
+
+# suppressWarnings(rm(list=ls()))
+# suppressWarnings(rm(list=ls(), pos=.strategy))
+# suppressWarnings(rm(list=ls(), pos=.blotter))
+
+######################## RUN TEST SUITE #######################
+
+context("Consistent trade statistics for bee.R")
+
+test_that("Number of transactions is consistent", 
+          { expect_that(Txns, equals(24)) })
+
+test_that("Number of the number of trades is consistent", 
+          { expect_that(Trades, equals(16)) })
+
+test_that("Net Trading PL is consistent", 
+          { expect_that(NetPL, equals(63)) })
+
+test_that("Largest Winner is consistent", 
+          { expect_that(LWinner, equals(12)) })
+
+test_that("Largest Loser is consistent", 
+          { expect_that(LLoser, equals(-32)) })
+
+test_that("Max Drawdown is consistent", 
+          { expect_that(MaxDD, equals(-867)) })
+
+test_that("K Factor is consistent", 
+          { expect_that(KFactor, equals(0)) })
+
+test_that("RINA Index is consistent", 
+          { expect_that(RINAindex, equals(0)) })
+
+test_that("Time in Market is consistent", 
+          { expect_that(InMarket, equals(0)) })
+
+test_that("Buy and Hold is consistent", 
+          { expect_that(BuyHold, equals(0)) })
+
+



More information about the Blotter-commits mailing list