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

Brian G. Peterson brian at braverock.com
Tue Oct 7 17:52:58 CEST 2014


On 10/07/2014 01:22 AM, Daniel Cegiełka wrote:
> 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.

Thanks, patches applied in svn r1637.

Of course, a backtest with zero losing trades is implausibly perfect...

Regards,

Brian


-- 
Brian G. Peterson
http://braverock.com/brian/
Ph: 773-459-4973
IM: bgpbraverock



More information about the R-SIG-Finance mailing list