def plot_op_result(df): """ 打印BS操作效果 列名字: origin_money :不使用策略时的效益 strategy_money :使用策略时的效益 BS : 记录操作行为的列 money_remain : 剩余的资金 :param df: :return: """ sh_index = df fig, ax = plt.subplots(nrows=3, ncols=1) ax[0].plot(range(len(sh_index['date'])), sh_index['close'], 'b--') # 打印BS操作 tuple_bs = list(zip(range(len(sh_index['date'])), sh_index['BS'], sh_index['close'])) tuple_b = list(filter(lambda x: x[1] == 'buy', tuple_bs)) ax[0].plot(list(map(lambda x: x[0], tuple_b)), list(map(lambda x: x[2], tuple_b)), 'r*', label='buy') tuple_s = list(filter(lambda x: x[1] == 'sale', tuple_bs)) ax[0].plot(list(map(lambda x: x[0], tuple_s)), list(map(lambda x: x[2], tuple_s)), 'g*', label='sale') # 打印对比 ax[1].plot(range(len(sh_index['date'])), sh_index['origin_money'], 'b--', label='no_use_strategy') ax[1].plot(range(len(sh_index['date'])), sh_index['strategy_money'], 'r--', label='use_strategy') # 打印stk数量和剩余money ax[2].plot(range(len(sh_index['date'])), normal01(sh_index['money_remain']), 'b--', label='剩余money') # ax[2].plot(range(len(sh_index['date'])), normal01(sh_index['amount_remain']), 'r--', label='剩余stk数量') # 整理x轴label x_label = sh_index.apply(lambda x: str(x['date'])[2:].replace('-', ''), axis=1) ax[0] = add_axis(ax[0], x_label, 40, rotation=45, fontsize=8) ax[1] = add_axis(ax[1], x_label, 40, rotation=45, fontsize=8) ax[2] = add_axis(ax[2], x_label, 40, rotation=45, fontsize=8) # ax[3] = addXticklabel(ax[3], x_label, 40, rotation=45, fontsize=8) for ax_sig in ax: ax_sig.legend(loc='best') plt.show()
'g*', label='sale') # 打印对比 ax[3].plot(range(len(sh_index['date'])), sh_index['origin_money'], 'b--', label='no_use_strategy') ax[3].plot(range(len(sh_index['date'])), sh_index['strategy_money'], 'r--', label='use_strategy') # 打印stk数量和剩余money ax[2].plot(range(len(sh_index['date'])), normal01(sh_index['money_remain']), 'b--', label='剩余money') # ax[2].plot(range(len(sh_index['date'])), normal01(sh_index['amount_remain']), 'r--', label='剩余stk数量') # # 打印stk数量和剩余money ax[1].plot(range(len(sh_index['date'])), sh_index['C-M20'], 'g--', label='离心力') ax[1].plot(range(len(sh_index['date'])), np.zeros(len(sh_index['date'])), 'b--', label='零线') # 整理x轴label