from backtester.analysis import BuySell, avg_future_growth from backtester.stockdata import YahooData from backtester.definitions import DF_ADJ_CLOSE from backtester import utils from backtester.smooth import SmoothOptimize, TrailingSavGol y = YahooData() names = y.get_symbol_names() np.random.seed(7) np.random.shuffle(names) symbol = 'MSFT' date1 = np.datetime64('2005-01-01') date2 = np.datetime64('2018-08-01') df = y.get_symbol_before(symbol, date2) ii = df.index.values >= date1 df = df.loc[ii] close = df[DF_ADJ_CLOSE] ts = TrailingStats(close, window_size=30) growth = ts.exp_growth plt.subplot(3, 1, 1) plt.hist(growth, bins=40) # Calculate statistics and cumulative probability of growth growth1 = growth.copy() growth1[np.isnan(growth)] = 0 growth_hist, edges = np.histogram( growth1,
j1 = break_points[ii] j2 = break_points[ii + 1] imask = np.arange(j1, j2) if mask[j1] == True: true_mask.append(imask) else: false_mask.append(imask) return true_mask, false_mask yahoo = YahooData() symbols = yahoo.get_symbol_names() date2 = np.datetime64('2020-03-25') df = yahoo.get_symbol_all('SPY') df = yahoo.get_symbol_before('SPY', date2) close = np.log(df[DF_ADJ_CLOSE]) peaks, _ = find_peaks( close, width=3, distance=10, ) troughs, _ = find_peaks( -close, width=3, distance=10, ) plt.plot(close)