def init(self, context): # super(GrahamDefender, self).init(context) # context.pool = list(stock_pool_dao.get_list()['code'].values) context.pool = list(stock_pool_dao.get_list()['code'].values) self.context = context
def predict_k_data(): df = stock_pool_dao.get_list() df_index = index_k_data_dao.get_rel_price() for code in df['code'].values: try: logger.debug('begin predict, code:%s' % code) data, features = k_data_dao.get_k_predict_data_with_features( code, df_index) lr = LogisticRegressionClassifier() svc = SupportVectorClassifier() rf = RandomForestClassifierModel() xgb = XGBoostClassier() #ann = SequantialNeuralClassifier() lr_pred = lr.predict(code, data[features]) svc_pred = svc.predict(code, data[features]) rf_pred = rf.predict(code, data[features]) xgb_pred = xgb.predict(code, data[features]) #ann_pred = ann.predict(code, data[features]) k_data_predict_log_dao.insert(code, logistic_regression=lr_pred, support_vector_classifier=svc_pred, random_forest_classifier=rf_pred, xgb_classifier=xgb_pred, sequantial_neural=0) logger.debug('predict end, code:%s' % code) except Exception as e: logger.error("predict k data error, code:%s, error:%s" % (code, repr(e)))
def training_k_data(start, end): df = stock_pool_dao.get_list() codes = df['code'].values[start:end] for code in codes: try: logger.debug('begin training mode, code:%s' % code) data, features = k_data_dao.get_k_data_with_features( code, '2015-01-01', datetime.now().strftime("%Y-%m-%d")) pca = PCAModel('k_data') lr = LogisticRegressionClassifier() svc = SupportVectorClassifier() rf = RandomForestClassifierModel() xgb = XGBoostClassier() #ann = SequantialNeuralClassifier() pca.training_model(code, data, features) lr.training_model(code, data, features) svc.training_model(code, data, features) rf.training_model(code, data, features) xgb.training_model(code, data, features) #ann.training_model(code, data, features) logger.debug('training mode end, code:%s' % code) except Exception as e: logger.error("training k data error, code:%s, error:%s" % (code, repr(e)))
def code_muning(): code_list = stock_pool_dao.get_list().values.tolist() # code_list = ['a', 'b', 'c', 'd', 'e'] lenth = len(code_list) - 1 pair_sets = [] for i in range(0, lenth, 1): for j in range(lenth, 0, -1): if i == j or j < i: continue code1 = code_list[i][0] code2 = code_list[j][0] pair_sets.append((code1, code2)) # print(pair_sets) # print(len(pair_sets)) return pair_sets
def cal_stock_pool(): df_poll = stock_pool_dao.get_list() code_list = list(df_poll['code'].values) w_data_list = k_data_weekly_dao.get_multiple_k_data(code_list, start='2013-01-01', end=get_current_date()) k_data_list = k_data_dao.get_multiple_k_data(code_list=code_list, start=get_next_date(-720), end=get_current_date()) # k_data_list = k_data_list.set_index('code', inplace=True) # k_data_list = k_data_dao.get_market_snapshot(code_list=code_list, futu_quote_ctx=futu_quote_ctx) matched = [] for code in code_list: rs = cal_single_stock(code, k_data_list, w_data_list) if rs is True: matched.append(code) print("matched:%s" % matched)
def test_get_list(self): df = stock_pool_dao.get_list() print(df)
ma10 = data['ma10'].values[-1] ma5 = data['ma5'].values[-1] if price < ma5: return None, None, None if price < 4: return None, None, None label, k, d = cal_signal(data) return label, k, d if __name__ == '__main__': df_pool = stock_pool_dao.get_list() data = pd.DataFrame(columns=[ 'code', 'date', 'name', 'bk_code', 'bk_name', 'k', 'd', 'label' ]) list = [] for index, row in df_pool.iterrows(): code = row['code'] logger.debug("execute code:%s" % code) try: label, k, d = cal_single_stock(code) if label is None: continue
def init(self, context): super(KDJStrategy, self).init(context) context.pool = stock_pool_dao.get_list()['code'].values self.context = context