コード例 #1
0
ファイル: explore5.py プロジェクト: johnh865/dumbot
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,
コード例 #2
0
        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)