Beispiel #1
0
    def __init__(self, filename, parent=None):

        # Sets up window parent
        super(SnippingWindow, self).__init__(parent)

        self.main = False

        # Sets main window bar title and size
        self.setWindowTitle('Record Snipper')
        self.resize(800, 480)

        if filename == '':
            self.main = True
            self.all_files = ef.get_all_files('myo_data')
            if not len(self.all_files):
                self.closeEvent()

            print('Loading %s files' % len(self.all_files))
            filename = self.all_files[0]
            self.all_files = self.all_files[1:]

        if not filename == '':
            self.load_record(filename)
            print('Record Loaded')
            self.all_plots()
Beispiel #2
0
def get_today_more_data_for_MLP(code):
    '''
    :param code:股票代码
    :return: 今日预测的X
    '''
    import numpy as np
    stock_data_path = "./data/stock_data/"
    open_price, oneDayLine, volume, ma5, vma5, turnover, dates = load_fq_open_close_volume_ma5_vma5_turnover_from_tushare(
        stock_data_path + str(code) + '_fq.csv')


    if (str(code)[0] == '6'):
        # 上证指数
        open_index, close_index, volume_index, ma5_index, vma5_index, dates_index = load_index_open_close_volume_ma5_vma5_from_tushare(
            stock_data_path + '../sh.csv')
    else:
        # 深证指数
        open_index, close_index, volume_index, ma5_index, vma5_index, dates_index = load_index_open_close_volume_ma5_vma5_from_tushare(
            stock_data_path + '../sz.csv')
    daynum = 5
    X_clf = []
    ef = Extract_Features()


    for i in range(daynum, len(dates)):
        #以大盘为标准
        p = dates_index.index(dates[i])
        # 组装数据
        X_delta = [(oneDayLine[k] - oneDayLine[k - 1]) / oneDayLine[k - 1] for k in range(i - daynum, i)] + \
                  [(volume[k] - volume[k - 1]) / volume[k - 1] for k in range(i - daynum, i)] + \
                  [turnover[k] for k in range(i - daynum, i)] + \
                  [(ma5[i] - ma5[i - 1]) / ma5[i - 1]] + \
                  [(vma5[i] - vma5[i - 1]) / vma5[i - 1]] + \
                  [(open_index[p] - open_index[p - 1]) / open_index[p - 1]] + \
                  [(close_index[p] - close_index[p - 1]) / close_index[p - 1]] + \
                  [(volume_index[p] - volume_index[p - 1]) / volume_index[p - 1]] + \
                  [(ma5_index[p] - ma5_index[p - 1]) / ma5_index[p - 1]] + \
                  [(vma5_index[p] - vma5_index[p - 1]) / vma5_index[p - 1]] + \
                  covert_bin(ef.parse_weekday(dates[i]), 3) \
                  # + [(ef.MoneySupply(dates[i]) - ef.MoneySupply(dates[i - 22])) / ef.MoneySupply(dates[i - 22])]
        # covert_bin(ef.lunar_month(dates[i]), 5) + \
        if i == 5:
            X_delta[0] = X_delta[5] = 0.0  # 调整第一个百分比
        X_clf.append(X_delta)
    X_clf = preprocessing.MinMaxScaler().fit_transform(X_clf)
    # return np.array(X_clf)
    return X_clf[-1]
def get_last_N_days_data_for_MLP(code, N):
    '''
    '''
    import numpy as np
    data_path = "./data/stock_data/"
    oneDayLine, date = load_data_from_tushare(data_path + str(code) + '.csv')
    volumn, volumn_dates = load_volume_from_tushare(data_path + str(code) +
                                                    '.csv')
    # each data consist of delta od last daynum days
    daynum = 5
    num = N
    X_clf = []
    y_clf = []
    ef = Extract_Features()
    for i in range(len(date) - num, len(date)):
        X_delta = [oneDayLine[k] - oneDayLine[k - 1] for k in range(i - daynum, i)] + \
                  [volumn[k] for k in range(i - daynum, i)] + \
                  [float(ef.parse_weekday(date[i - 1]))] + \
                  [float(ef.lunar_month(date[i - 1]))] + \
                  [float(ef.rrr(date[i - 1]))] + \
                  [float(ef.MoneySupply(date[i - 1]))]
        X_clf.append(X_delta)
        y_clf.append([1, 0] if oneDayLine[i] -
                     oneDayLine[i - 1] >= 0 else [0, 1])
    return np.array(X_clf), np.array(y_clf)
def get_data_for_MLP(code):
    '''
    '''
    import numpy as np
    data_path = "./data/stock_data/"
    oneDayLine, date = load_data_from_tushare(data_path + str(code) + '.csv')
    volumn, volumn_dates = load_volume_from_tushare(data_path + str(code) +
                                                    '.csv')
    daynum = 5
    X = []
    y = []
    ef = Extract_Features()
    for i in range(daynum, len(date)):
        X_delta = [oneDayLine[k] - oneDayLine[k - 1] for k in range(i - daynum, i)] + \
                  [volumn[k] for k in range(i - daynum, i)] + \
                  [float(ef.parse_weekday(date[i - 1]))] + \
                  [float(ef.lunar_month(date[i - 1]))] + \
                  [ef.rrr(date[i - 1])] + \
                  [ef.MoneySupply(date[i - 1])]
        X.append(X_delta)
        y.append([1, 0] if oneDayLine[i] - oneDayLine[i - 1] >= 0 else [0, 1])
    return np.array(X), np.array(y)
def get_today_data_for_MLP(code):
    '''
    '''
    import numpy as np
    data_path = "./data/stock_data/"
    oneDayLine, date = load_data_from_tushare(data_path + str(code) + '.csv')
    volumn, volumn_dates = load_volume_from_tushare(data_path + str(code) +
                                                    '.csv')
    daynum = 5
    X = []
    ef = Extract_Features()
    for i in range(daynum, len(date)):
        X_delta = [oneDayLine[k] - oneDayLine[k - 1] for k in range(i - daynum, i)] + \
                  [volumn[k] for k in range(i - daynum, i)] + \
                  [float(ef.parse_weekday(date[i]))] + \
                  [float(ef.lunar_month(date[i]))] + \
                  [ef.rrr(date[i])] + \
                  [ef.MoneySupply(date[i])]
        X.append(X_delta)

    X = preprocessing.MinMaxScaler().fit_transform(X)
    return np.array(X[-1])
def get_last_month_more_data_for_MLP(code):
    '''
    '''
    import numpy as np
    stock_data_path = "./data/stock_data/"

    open_price, oneDayLine, volume, ma5, vma5, turnover, dates = load_fq_open_close_volume_ma5_vma5_turnover_from_tushare(
        stock_data_path + str(code) + '_fq.csv')

    if (str(code)[0] == '6'):
        # 上证指数
        open_index, close_index, volume_index, ma5_index, vma5_index, dates_index = load_index_open_close_volume_ma5_vma5_from_tushare(
            stock_data_path + '../sh.csv')
    else:
        # 深证指数
        open_index, close_index, volume_index, ma5_index, vma5_index, dates_index = load_index_open_close_volume_ma5_vma5_from_tushare(
            stock_data_path + '../sz.csv')

    daynum = 5
    num = 22
    X_clf = []
    ef = Extract_Features()
    # for i in range(daynum, len(dates)):
    #     #以大盘为标准
    #
    #     # if dates_index[p] in dates:
    #     #     # 对齐大盘与个股的日期,得到个股的对应日期位置i
    #     #     i = dates.index(dates_index[p])
    #     # else:
    #     #     X_delta = [0 for x in range(21)]
    #     #     X_clf.append(X_delta)
    #     #     continue
    #     p = dates_index.index(dates[i])
    #
    #     # 大单交易数据
    #     big_deals = get_big_deal_volume(code, dates[i])
    #
    #     # 组装数据
    #     X_delta = [oneDayLine[k] - oneDayLine[k - 1] for k in range(i - daynum, i)] + \
    #               [volume[k] - volume[k - 1] for k in range(i - daynum, i)] + \
    #               [ma5[i]] + \
    #               [vma5[i]] + \
    #               [open_index[p]] + [close_index[p]] + [volume_index[p]] + [ma5_index[p]] + [
    #                   vma5_index[p]] + \
    #               [big_deals] + \
    #               [ef.parse_weekday(dates[i])] + \
    #               [ef.lunar_month(dates[i])] + \
    #               [ef.MoneySupply(dates[i])]
    #     X_clf.append(X_delta)
    #     # y_clf.append([1, 0] if oneDayLine[i] - oneDayLine[i - 1] > 0 else [0, 1])
    # X_clf = preprocessing.MinMaxScaler().fit_transform(X_clf)
    # return X_clf
    for i in range(daynum, len(dates)):
        #以大盘为标准
        p = dates_index.index(dates[i])
        # 组装数据
        X_delta = [(oneDayLine[k] - oneDayLine[k - 1]) / oneDayLine[k - 1] for k in range(i - daynum, i)] + \
                  [(volume[k] - volume[k - 1]) / volume[k - 1] for k in range(i - daynum, i)] + \
                  [turnover[k] for k in range(i - daynum, i)] + \
                  [(ma5[i] - ma5[i - 1]) / ma5[i - 1]] + \
                  [(vma5[i] - vma5[i - 1]) / vma5[i - 1]] + \
                  [(open_index[p] - open_index[p - 1]) / open_index[p - 1]] + \
                  [(close_index[p] - close_index[p - 1]) / close_index[p - 1]] + \
                  [(volume_index[p] - volume_index[p - 1]) / volume_index[p - 1]] + \
                  [(ma5_index[p] - ma5_index[p - 1]) / ma5_index[p - 1]] + \
                  [(vma5_index[p] - vma5_index[p - 1]) / vma5_index[p - 1]] + \
                  covert_bin(ef.parse_weekday(dates[i]), 3) \
                  # + [(ef.MoneySupply(dates[i]) - ef.MoneySupply(dates[i - 22])) / ef.MoneySupply(dates[i - 22])]

        # covert_bin(ef.lunar_month(dates[i]), 5) + \
        if i == 5:
            X_delta[0] = X_delta[5] = 0.0  # 调整第一个百分比
        X_clf.append(X_delta)
    X_clf = preprocessing.MinMaxScaler().fit_transform(X_clf)
    # return np.array(X_clf)
    return X_clf