Anal yz ing y o u r strateg y FIN AN C IAL TR AD IN G IN R Il y a - - PowerPoint PPT Presentation

anal yz ing y o u r strateg y
SMART_READER_LITE
LIVE PREVIEW

Anal yz ing y o u r strateg y FIN AN C IAL TR AD IN G IN R Il y a - - PowerPoint PPT Presentation

Anal yz ing y o u r strateg y FIN AN C IAL TR AD IN G IN R Il y a Kipnis Professional Q u antitati v e Anal y st and R programmer O u r strateg y B uy w hen : 50- da y mo v ing a v erage > 200- da y mo v ing a v erage and d v o < 20 Sell


slide-1
SLIDE 1

Analyzing your strategy

FIN AN C IAL TR AD IN G IN R

Ilya Kipnis

Professional Quantitative Analyst and R programmer

slide-2
SLIDE 2

FINANCIAL TRADING IN R

Our strategy

Buy when: 50-day moving average > 200-day moving average and dvo < 20 Sell when: 50-day moving average < 200-day moving average

  • r dvo > 80
slide-3
SLIDE 3

FINANCIAL TRADING IN R

Run your strategy

Apply your strategy

applyStrategy(strategy = strategy.st, portfolios = portfolio.st)

Update the portfolio

updatePortf(portfolio.st) daterange <- time(getPortfolio(portfolio.st)$summary)[-1]

Update the account

updateAcct(account.st, daterange) updateEndEq(account.st)

slide-4
SLIDE 4

FINANCIAL TRADING IN R

tStats <- tradeStats(Portfolios = portfolio.st) tStats Portfolio Symbol Num.Txns Num.Trades Net.Trading.PL LQD firstStrat LQD 382 156 25681.09 Avg.Trade.PL Med.Trade.PL Largest.Winner Largest.Loser LQD 164.6223 363.0143 2981.424 -7012.523 Gross.Profits Gross.Losses Std.Dev.Trade.PL Percent.Positive LQD 77251.33 -51570.24 1174.442 66.66667 Percent.Negative Profit.Factor Avg.Win.Trade Med.Win.Trade LQD 32.69231 1.497983 742.8012 624.5683 Avg.Losing.Trade Med.Losing.Trade Avg.Daily.PL Med.Daily.PL LQD -1011.181 -660.7456 164.6223 363.0143 Std.Dev.Daily.PL Ann.Sharpe Max.Drawdown Profit.To.Max.Draw LQD 1174.442 2.225141 -10625.62 2.416903 Avg.WinLoss.Ratio Med.WinLoss.Ratio Max.Equity Min.Equity LQD 0.7345877 0.9452477 27567.98 -1550.332 End.Equity LQD 25681.09

slide-5
SLIDE 5

FINANCIAL TRADING IN R

Characteristics of trading systems

Systems based on moving average/trend signals High average win/loss ratio (greater than 1) Low percent positive (less than 50%) Systems based on oscillation/reversion signals: High percent positive (greater than 50%) Low average win/loss ratio (less than 1)

slide-6
SLIDE 6

Let's practice!

FIN AN C IAL TR AD IN G IN R

slide-7
SLIDE 7

Visualizing your strategy

FIN AN C IAL TR AD IN G IN R

Ilya Kipnis

Professional Quantitative Analyst and R programmer

slide-8
SLIDE 8

FINANCIAL TRADING IN R

The chart.Posn function

chart.Posn() gives a good rst glance at strategy

performance

chart.Posn(portfolio = portfolio.st, Symbol = "LQD")

slide-9
SLIDE 9

FINANCIAL TRADING IN R

What it looks like

slide-10
SLIDE 10

FINANCIAL TRADING IN R

Adding indicators to charts

Recalculate indicators outside of strategy to add to chart

sma50 <- SMA(x = Cl(LQD), n = 50) sma200 <- SMA(x = Cl(LQD), n = 200) dvo <- DVO(HLC = HLC(LQD), nAvg = 2, percentLookback = 126)

Add indicators with add_TA() command. Use on = 1 to add to price plot

chart.Posn(Portfolio = portfolio.st, symbol = "LQD") add_TA(sma50, on = 1, col = "blue") add_TA(sma200, on = 1, col = "red")add_TA(dvo)

slide-11
SLIDE 11

FINANCIAL TRADING IN R

Zoomed in

Use zoom_Chart("date1/date2") to get a closer look

zoom_Chart("2007-08/2007-12") results in:

slide-12
SLIDE 12

Let's practice!

FIN AN C IAL TR AD IN G IN R

slide-13
SLIDE 13

Additional analytics

FIN AN C IAL TR AD IN G IN R

Ilya Kipnis

Professional Quantitative Analyst and R programmer

slide-14
SLIDE 14

FINANCIAL TRADING IN R

Generate profit & loss (P&L) series

The bloer environment contains history of transactions Syntax for P&L:

portPL <- .blotter$portfolio.firstStrat$summary$Net.Trading.PL head(portPL) Net.Trading.PL 1999-01-01 0 2003-01-02 0 2003-01-03 0 2003-01-06 0 2003-01-07 0 2003-01-08 0

slide-15
SLIDE 15

FINANCIAL TRADING IN R

Sharpe ratio

Can be obtained using P&L from your strategy Is the ratio of reward to risk from your strategy

SharpeRatio.annualized(portPL, geometric = FALSE) Net.Trading.PL Annualized Sharpe Ratio (Rf=0%) 0.04879364

slide-16
SLIDE 16

FINANCIAL TRADING IN R

Getting returns

Ratio between prot or loss

  • n a given trade, divided by

initial equity Obtaining portfolio returns:

instrets <- PortfReturns(account.st) head(instrets, n = 3) LQD.DailyEndEq 2003-01-02 0 2003-01-03 0 2003-01-06 0 tail(instrets, n = 3) LQD.DailyEndEq 2015-12-29 0 2015-12-30 0 2003-12-31 0

slide-17
SLIDE 17

FINANCIAL TRADING IN R

Getting Sharpe ratio for returns

SharpeRatio.annualized(instrets, geometric = FALSE) LQD.DailyEndEq Annualized Sharpe Ratio (Rf=0%) 0.488011

slide-18
SLIDE 18

Let's practice!

FIN AN C IAL TR AD IN G IN R