def data_standardize_money163(stock_code, index_code='000001.SH'):
    # 1.读取万得的股票数据
    stock_data = Functions.import_stock_data_money163(stock_code)
    # 2.读取指数数据
    index_data = Functions.import_index_data_wande(index_code=index_code)
    # 3.个股数据除权处理, 默认后复权,直接替换OLHC列
    stock_data = Functions.cal_adjust_price(stock_data)
    # 3.合并个股数据和指数数据
    stock_data = Functions.merge_with_index_data(stock_data, index_data)
    # 4.添加涨跌停列
    stock_data = Functions.limit_up_down(stock_data)
    return stock_data
def data_standardize_xbx(code):
    # 1.读取万得的股票数据
    stock_data = Functions.import_stock_data_xbx(code)
    # 2.读取指数数据
    index_data = Functions.import_index_data_xbx()
    # 3.个股数据除权处理, 默认后复权,直接替换OLHC列
    stock_data = Functions.cal_adjust_price(stock_data)
    # 3.合并个股数据和指数数据
    stock_data = Functions.merge_with_index_data(stock_data, index_data)
    # 4.添加涨跌停列
    stock_data = Functions.limit_up_down(stock_data)
    return stock_data
Пример #3
0
def data_standardize_money163(df,
                              index_code='000001.SH',
                              return_type=1,
                              start_date='19890101'):
    # 1.读取万得的股票数据
    # stock_data = Functions.import_stock_data_money163(stock_code)
    stock_data = df.copy()
    # 2.读取指数数据
    index_data = Functions.import_index_data_wande(index_code=index_code)
    # 3.个股数据除权处理, 默认后复权,直接替换OLHC列
    stock_data = Functions.cal_adjust_price(stock_data,
                                            return_type=return_type)
    # 3.合并个股数据和指数数据
    stock_data = Functions.merge_with_index_data(stock_data, index_data)
    # 4.添加涨跌停列
    stock_data = Functions.limit_up_down(stock_data)
    # 取得指定时间范围的数据
    stock_data = stock_data[stock_data['date'] >= pd.to_datetime(start_date)]

    return stock_data
Пример #4
0
from Performance_analysis import equity_cal
import matplotlib.pyplot as plt

warnings.filterwarnings("ignore")
pd.set_option('expand_frame_repr', False)

# 导入指数数据,作为benchmark
index_data = Functions.import_index_data_wande()

# 此处可以填入对应的code进行单个股票测试
stock_data = Functions.import_stock_data_wande('600000.SH')
stock_data = Functions.cal_adjust_price(stock_data,
                                        adjust_type='adjust_back',
                                        return_type=2)
# 和index合并
stock_data = Functions.merge_with_index_data(stock_data, index_data)
stock_data = stock_data[[
    'date', 'code', 'open', 'high', 'low', 'close', 'change'
]]

concat = pd.DataFrame()

for i in range(14, 19):
    df = TA_strategy.adx(stock_data, i)
    df = df[df['date'] >= pd.to_datetime('2005-01-01')]  # 采用2005年起的数据
    df.reset_index(inplace=True,
                   drop=True)  # 在计算ADX之后,最早的一部分数据没有对应的值,需要重新排index

    # 当pdi上穿mdi,买入,信号为1;当pdi下穿mdi,卖空,信号为0
    # 计算ADX指标并得到信号和仓位
    df = Functions.cross_both(df, 'pdi', 'mdi')
Пример #5
0
                                               adjust_type='adjust_forth',
                                               return_type=2)
print stock_data_adjust
exit()

# ==== 4 测试从一个指定的文件夹里获得所有股票名称的列表
# 4.1 从万得的数据读取股票列表
# file_path = 'C:/all_trading_data/data/input_data/stock_data_wande'
# print Functions.get_stock_code_list_in_one_dir_wande(file_path)
# 4.2 从xbx的数据读取股票列表
file_path = 'D:/all_trading_data/data/input_data/stock_data'
# print Functions.get_stock_code_list_in_one_dir_xbx(file_path)
# exit()

# ==== 5 个股数据和指数数据合并,日周期
stock_data = Functions.merge_with_index_data(stock_data_adjust, index_data)
# print stock_data
# exit()

# ==== 6 周期转换
stock_data = Functions.transfer_to_period_data(stock_data, period_type='m')
print stock_data
exit()
# print stock_data
# 涨跌停信号添加
stock_data = Functions.limit_up_down(stock_data)

# stock_data.ix[stock_data['open'] > stock_data['close'].shift(1) * 1.097, 'limit_up'] = 1
print stock_data
exit()