@@ -855,8 +855,15 @@ protected override void StoreResult(Packet packet)
855855 // swap out our charts with the sampled data
856856 minuteCharts . Remove ( PortfolioMarginKey ) ;
857857 live . Results . Charts = minuteCharts ;
858+
859+ var totalPerformance = live . Results . TotalPerformance ;
860+ live . Results . TotalPerformance = null ; // we don't need to save this in minute data
861+
858862 SaveResults ( CreateKey ( "minute" ) , live . Results ) ;
859863
864+ // restore total performance
865+ live . Results . TotalPerformance = totalPerformance ;
866+
860867 // 10 minute resolution data, save today
861868 var tenminuteSampler = new SeriesSampler ( TimeSpan . FromMinutes ( 10 ) ) ;
862869 var tenminuteCharts = tenminuteSampler . SampleCharts ( live . Results . Charts , start , stop ) ;
@@ -983,9 +990,14 @@ private static void Truncate(LiveResult result, DateTime start, DateTime stop)
983990 ( x . LastFillTime != null && x . LastFillTime >= start && x . LastFillTime <= stop ) ||
984991 ( x . LastUpdateTime != null && x . LastUpdateTime >= start && x . LastUpdateTime <= stop )
985992 ) . ToDictionary ( x => x . Id ) ;
986- result . TotalPerformance . ClosedTrades = result . TotalPerformance . ClosedTrades
987- . Where ( x => x . ExitTime >= start && x . ExitTime <= stop )
988- . ToList ( ) ;
993+
994+ var closedTrades = result . TotalPerformance ? . ClosedTrades ;
995+ if ( closedTrades != null && closedTrades . Count > 0 )
996+ {
997+ result . TotalPerformance . ClosedTrades = closedTrades
998+ . Where ( x => x . ExitTime >= start && x . ExitTime <= stop )
999+ . ToList ( ) ;
1000+ }
9891001
9901002 //Log.Trace("LiveTradingResultHandler.Truncate: Truncate Outgoing: " + result.Charts["Strategy Equity"].Series["Equity"].Values.Count);
9911003 }
0 commit comments