[R-SIG-Finance] blotter tradeStats Profit.factor is Infinite ?

Daniel Cegiełka daniel.cegielka at gmail.com
Tue Oct 7 08:22:37 CEST 2014


2014-10-07 7:38 GMT+02:00 Daniel Cegiełka <daniel.cegielka at gmail.com>:
> https://github.com/rforge/blotter/blob/master/pkg/blotter/R/tradeStats.R#L147
>
> GrossProfits <- sum(PL.gt0)
> GrossLosses <- sum(PL.lt0)
> if(GrossLosses == 0) ProfitFactor <- NA
> else  ProfitFactor <- abs(GrossProfits/GrossLosses)

more compact:

GrossProfits <- sum(PL.gt0)
GrossLosses <- sum(PL.lt0)
ProfitFactor <- ifelse(GrossLosses == 0, NA, abs(GrossProfits/GrossLosses))

Maybe we should add more such checks to the code (for div ops)? eg:

AnnSharpe  <- ifelse(StdDailyPL == 0, NA, AvgDailyPL/StdDailyPL * sqrt(252))
AvgWinLoss <- ifelse(AvgLossTrade == 0, NA, AvgWinTrade/-AvgLossTrade)
MedWinLoss <- ifelse(MedLossTrade == 0, NA, MedWinTrade/-MedLossTrade)
ProfitToMaxDraw  <- ifelse(MaxDrawdown == 0, NA, -TotalNetProfit / MaxDrawdown)

btw. NA looks better than Inf.

Daniel



More information about the R-SIG-Finance mailing list