On Thu, Dec 10, 2015 at 4:30 PM, Schiele, Erik
<Erik.Schiele at bnymellon.com> wrote:> Hi,
>
> I'm beginning to fool around in R for trading strategy purposes. To
keep it simple, I have only played with stock data at this point.
>
> I have created a simple trend following strategy (in blue). Given my
statistical background, I am attempting to bootstrap the results and table the
same parameters highlighted below with no luck (in green). Any ideas on what I
could do differently?
>
People will be more likely to respond and help if you provide a more
specific problem statement than, "with no luck". What's wrong
with
your current solution? What other things have you tried and why
weren't they sufficient?
Also, please do not cross-post. It's inconsiderate to those who don't
follow both lists: they won't know whether someone has provided a
satisfactory answer on the list/forum they don't follow.
> Really Appreciate your help!!! Thanks
>
> library(quantmod)
> library(PerformanceAnalytics)
>
> b <- get(getSymbols('SPY'))["2011::"]
> s <- get(getSymbols('GLD'))["2011::"]
> b$sma1 <- SMA(Cl(s) , 1)
> s$sma50 <- SMA(Cl(s) , 50)
> s$position <- ifelse(Cl(s) > s$sma50 , 1 , -1)
> myReturn <- lag(s$position) * dailyReturn(s)
>
> table.Drawdowns(s$position, top = 5, digits = 1)
> table.Stats(s$position, ci = 0.95, digits = 2)
> table.SpecificRisk(s$position, b$sma1, Rf = 0, digits = 2)
> table.Correlation(s$position, b$sma1)
>
> charts.PerformanceSummary(cbind(dailyReturn(s),myReturn))
>
> N = 100 # Number of simulations
> Loop = mat.or.vec(N,2,1,1,1)
> for (i in 1:N){
>
> # sample with replacement from return distribution of index
> s.new = (sample(s, length(s), replace = T, prob = NULL))
> # demeaning returns
> s.new = s.new-mean(s)
> # new price series starting at same value as original series
> prices.new = xts(prices[[1]]*exp(cumsum(s.new)))
>
> # define strategies
> # mean reversion
> s$sma50.new = SMA(Cl(s.new) , 50)
>
> # Create buy/sell signals
> # mean reversion
> s$position.new <- ifelse(Cl(s) > s$sma50.new , 1 , -1)
>
> # replace missing values with zeros
> s$position.new[is.na(s$position.new)] = 0
>
> Loop[i,1] = if (mean(s$position.new) > mean(s$sma50.new)) {1}else{0}
> }
>
> #Loop
>
> # plots simulated series
> returns.new = cbind(s$sma50.new, cumsum(s$sma50.new))
>
> chart.CumReturns(returns.new,s$sma50.new,geometric=F)
>
> Erik Schiele
> Vice President
> Money Markets Trading, Originations and Sales
> 101 Barclay St, NY NY 10007 3rd Floor
> BNY Mellon Capital Markets, LLC
> Main Desk 212-815-8222
>
> This is for informational purposes only; from sources the Firm believes
reliable; may not be accurate or complete; is subject to change; is not a
recommendation or offer to buy/sell a financial instrument or adopt any
investment strategy; is not legal, tax, credit or accounting advice. Do not use
e-mail to submit any instructions - acceptances are at your risk. The Firm or
its affiliates lends to, borrows from and provides other products/services to
issuers and others, receives compensation therefore, and periodically has a
direct or indirect financial interest in the financial instruments/transactions
indicated. Additional risks may exist that are not referenced. Past performance
is not indicative of future returns. Other than CDs or CDARS, financial
instruments: are not FDIC insured; are not deposits or other obligations of and
are not guaranteed by the Firm or any bank or non-bank affiliate; and involve
investment risk including possible loss of principal. The Firm is !
> a wholly owned, indirect non-bank subsidiary of The Bank of New York
Mellon Corporation, and a member of FINRA and SIPC, and is solely responsible
for its obligations and commitments.
>
>
> The information contained in this e-mail, and any attachment, is
confidential and is intended solely for the use of the intended recipient.
Access, copying or re-use of the e-mail or any attachment, or any information
contained therein, by any other person is not authorized. If you are not the
intended recipient please return the e-mail to the sender and delete it from
your computer. Although we attempt to sweep e-mail and attachments for viruses,
we do not guarantee that either are virus-free and accept no liability for any
damage sustained as a result of viruses.
>
> Please refer to http://disclaimer.bnymellon.com/eu.htm for certain
disclosures relating to European legal entities.
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
--
Joshua Ulrich | about.me/joshuaulrich
FOSS Trading | www.fosstrading.com