@@ -431,8 +431,8 @@ def relative_entropy(values: NDArray[np.float64]) -> float:
431431 n_bins = 10
432432 elif n >= 100 :
433433 n_bins = 5
434- min_val = np .min (x )
435- max_val = np .max (x )
434+ min_val = float ( np .min (x ) )
435+ max_val = float ( np .max (x ) )
436436 factor = (n_bins - 1.0e-10 ) / (max_val - min_val + 1.0e-60 )
437437 count = np .zeros (n_bins )
438438 for v in x :
@@ -453,7 +453,7 @@ def iqr(values: NDArray[np.float64]) -> float:
453453 x = values [~ np .isnan (values )]
454454 if not len (x ):
455455 return 0
456- q75 , q25 = np .percentile (x , [75 , 25 ], method = "midpoint" )
456+ q75 , q25 = tuple ( np .percentile (x , [75 , 25 ], method = "midpoint" ) )
457457 return q75 - q25
458458
459459
@@ -558,8 +558,8 @@ def avg_profit_loss(pnls: NDArray[np.float64]) -> tuple[float, float]:
558558 profits = pnls [pnls > 0 ]
559559 losses = pnls [pnls < 0 ]
560560 return (
561- np .mean (profits ) if len (profits ) else 0 ,
562- np .mean (losses ) if len (losses ) else 0 ,
561+ float ( np .mean (profits ) ) if len (profits ) else 0 ,
562+ float ( np .mean (losses ) ) if len (losses ) else 0 ,
563563 )
564564
565565
@@ -648,8 +648,8 @@ def r_squared(values: NDArray[np.float64]) -> float:
648648 coeffs = np .polyfit (x , values , 1 )
649649 pred = np .poly1d (coeffs )(x )
650650 y_hat = np .mean (values )
651- ssres = np .sum ((values - pred ) ** 2 )
652- sstot = np .sum ((values - y_hat ) ** 2 )
651+ ssres = float ( np .sum ((values - pred ) ** 2 ) )
652+ sstot = float ( np .sum ((values - y_hat ) ** 2 ) )
653653 if sstot == 0 :
654654 return 0
655655 return 1 - ssres / sstot
0 commit comments