[Blotter-commits] r1097 - pkg/quantstrat/demo

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sun Jul 1 02:30:40 CEST 2012


Author: braverock
Date: 2012-07-01 02:30:39 +0200 (Sun, 01 Jul 2012)
New Revision: 1097

Modified:
   pkg/quantstrat/demo/bbands.R
Log:
- add example of osMaxPos and addPosLimit to bbands demo

Modified: pkg/quantstrat/demo/bbands.R
===================================================================
--- pkg/quantstrat/demo/bbands.R	2012-06-30 21:35:14 UTC (rev 1096)
+++ pkg/quantstrat/demo/bbands.R	2012-07-01 00:30:39 UTC (rev 1097)
@@ -23,7 +23,7 @@
 initPortf(portfolio.st,symbols=stock.str, initDate=initDate)
 initAcct(account.st,portfolios='bbands', initDate=initDate)
 initOrders(portfolio=portfolio.st,initDate=initDate)
-
+addPosLimit(portfolio.st, stock.str, initDate, 200, 2 ) #set max pos
 stratBBands <- strategy("bbands")
 
 #one indicator
@@ -36,9 +36,9 @@
 stratBBands <- add.signal(stratBBands,name="sigCrossover",arguments = list(columns=c("High","Low","mavg"),relationship="op"),label="Cross.Mid")
 
 # lets add some rules
-stratBBands <- add.rule(stratBBands,name='ruleSignal', arguments = list(sigcol="Cl.gt.UpperBand",sigval=TRUE, orderqty=-100, ordertype='market', orderside=NULL, threshold=NULL),type='enter')
-stratBBands <- add.rule(stratBBands,name='ruleSignal', arguments = list(sigcol="Cl.lt.LowerBand",sigval=TRUE, orderqty= 100, ordertype='market', orderside=NULL, threshold=NULL),type='enter')
-stratBBands <- add.rule(stratBBands,name='ruleSignal', arguments = list(sigcol="Cross.Mid",sigval=TRUE, orderqty= 'all', ordertype='market', orderside=NULL, threshold=NULL),type='exit')
+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')
 
 #alternately, to exit at the opposite band, the rules would be...
 #stratBBands <- add.rule(stratBBands,name='ruleSignal', arguments = list(data=quote(mktdata),sigcol="Lo.gt.UpperBand",sigval=TRUE, orderqty= 'all', ordertype='market', orderside=NULL, threshold=NULL),type='exit')
@@ -46,7 +46,7 @@
 
 #TODO add thresholds and stop-entry and stop-exit handling to test
 
-getSymbols(stock.str,from=initDate)
+getSymbols(stock.str,from=initDate,index.class=c('POSIXt','POSIXct'))
 start_t<-Sys.time()
 out<-try(applyStrategy(strategy=stratBBands , portfolios='bbands',parameters=list(sd=SD,n=N)) )
 



More information about the Blotter-commits mailing list