SCM

SCM Repository

[blotter] Annotation of /pkg/quantstrat/demo/luxor.6.paramset.stoptrailing.R
ViewVC logotype

Annotation of /pkg/quantstrat/demo/luxor.6.paramset.stoptrailing.R

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1457 - (view) (download)

1 : opentrades 1457 #!/usr/bin/Rscript --vanilla
2 :     #
3 :     # Jan Humme (@opentrades) - August 2012
4 :     #
5 :     # Tested and found to work correctly using blotter r1230
6 :     #
7 :     # From Jaekle & Tamasini: A new approach to system development and portfolio optimisation (ISBN 978-1-905641-79-6)
8 :     #
9 :     # compute StopTrailing percentage for various paramsets
10 :    
11 :     require(quantstrat)
12 :    
13 :     ##### PLACE DEMO AND TEST DATES HERE #################
14 :     #
15 :     #if(isTRUE(options('in_test')$in_test))
16 :     # # use test dates
17 :     # {initDate="2011-01-01"
18 :     # endDate="2012-12-31"
19 :     # } else
20 :     # # use demo defaults
21 :     # {initDate="1999-12-31"
22 :     # endDate=Sys.Date()}
23 :    
24 :     source('luxor.include.R')
25 :     source('luxor.getSymbols.R')
26 :    
27 :     ###
28 :    
29 :     initPortf(portfolio.st, symbols='GBPUSD', initDate=initDate, currency='USD')
30 :     addPosLimit(
31 :     portfolio=portfolio.st,
32 :     symbol='GBPUSD',
33 :     timestamp=initDate,
34 :     maxpos=.orderqty)
35 :    
36 :     initAcct(account.st, portfolios=portfolio.st, initDate=initDate, currency='USD')
37 :    
38 :     ###
39 :    
40 :     initOrders(portfolio.st, initDate=initDate)
41 :    
42 :     load.strategy(strategy.st)
43 :    
44 :     ### BEGIN uncomment lines to activate StopLoss and/or StopTrailing and/or TakeProfit rules
45 :    
46 :     enable.rule('luxor', 'chain', 'StopLoss')
47 :     enable.rule('luxor', 'chain', 'StopTrailing')
48 :     #enable.rule('luxor', 'chain', 'TakeProfit')
49 :    
50 :     ### END uncomment lines to activate StopLoss and/or StopTrailing and/or TakeProfit rules
51 :    
52 :     require(foreach)
53 :     #registerDoSEQ()
54 :    
55 :     require(doMC)
56 :     registerDoMC(cores=2)
57 :    
58 :     #require(doParallel)
59 :     #registerDoParallel(cores=2)
60 :    
61 :     #require(doRedis)
62 :     #registerDoRedis('jobs')
63 :    
64 :     ############################
65 :    
66 :     results <- apply.paramset(strategy.st, paramset.label='StopTrailing', portfolio.st=portfolio.st, account.st=account.st, nsamples=80, verbose=TRUE)
67 :    
68 :     stats <- results$tradeStats
69 :    
70 :     print(stats)
71 :    
72 :     plot(100*stats$StopTrailingLONG, stats$Net.Trading.PL, type='b', xlab='StopTrailing %', ylab='Net.Trading.PL', main='Luxor')
73 :    
74 :     ##### PLACE THIS BLOCK AT END OF DEMO SCRIPT ###################
75 :     # book = getOrderBook(port)
76 :     # stats = tradeStats(port)
77 :     # rets = PortfReturns(acct)
78 :     ################################################################

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge