def _plot_trading(self):
price_x = list(range(len(self.price[:self.step_st+self.obs_len])))
self.price_plot = self.ax.plot(price_x, self.price[:self.step_st+self.obs_len], c=(0, 0.68, 0.95, 0.9),zorder=1)
# maybe seperate up down color
#self.price_plot = self.ax.plot(price_x, self.price[:self.step_st+self.obs_len], c=(0, 0.75, 0.95, 0.9),zorder=1)
self.features_plot = [self.ax3.plot(price_x, self.obs_features[:self.step_st+self.obs_len, i],
c=self.features_color[i])[0] for i in range(self.feature_len)]
rect_high = self.obs_price.max() - self.obs_price.min()
self.target_box = self.ax.add_patch(
patches.Rectangle(
(self.step_st, self.obs_price.min()), self.obs_len, rect_high,
label='observation',edgecolor=(0.9, 1, 0.2, 0.8),facecolor=(0.95,1,0.1,0.3),
linestyle='-',linewidth=1.5,
fill=True)
) # remove background)
self.fluc_reward_plot_p = self.ax2.fill_between(price_x, 0, self.reward_fluctuant_arr[:self.step_st+self.obs_len],
where=self.reward_fluctuant_arr[:self.step_st+self.obs_len]>=0,
facecolor=(1, 0.8, 0, 0.2), edgecolor=(1, 0.8, 0, 0.9), linewidth=0.8)
self.fluc_reward_plot_n = self.ax2.fill_between(price_x, 0, self.reward_fluctuant_arr[:self.step_st+self.obs_len],
where=self.reward_fluctuant_arr[:self.step_st+self.obs_len]<=0,
facecolor=(0, 1, 0.8, 0.2), edgecolor=(0, 1, 0.8, 0.9), linewidth=0.8)
self.posi_plot_long = self.ax2.fill_between(price_x, 0, self.posi_arr[:self.step_st+self.obs_len],
where=self.posi_arr[:self.step_st+self.obs_len]>=0,
facecolor=(1, 0.5, 0, 0.2), edgecolor=(1, 0.5, 0, 0.9), linewidth=1)
self.posi_plot_short = self.ax2.fill_between(price_x, 0, self.posi_arr[:self.step_st+self.obs_len],
where=self.posi_arr[:self.step_st+self.obs_len]<=0,
facecolor=(0, 0.5, 1, 0.2), edgecolor=(0, 0.5, 1, 0.9), linewidth=1)
self.reward_plot_p = self.ax2.fill_between(price_x, 0,
self.reward_arr[:self.step_st+self.obs_len].cumsum(),
where=self.reward_arr[:self.step_st+self.obs_len].cumsum()>=0,
facecolor=(1, 0, 0, 0.2), edgecolor=(1, 0, 0, 0.9), linewidth=1)
self.reward_plot_n = self.ax2.fill_between(price_x, 0,
self.reward_arr[:self.step_st+self.obs_len].cumsum(),
where=self.reward_arr[:self.step_st+self.obs_len].cumsum()<=0,
facecolor=(0, 1, 0, 0.2), edgecolor=(0, 1, 0, 0.9), linewidth=1)
trade_x = self.posi_variation_arr.nonzero()[0]
trade_x_buy = [i for i in trade_x if self.posi_variation_arr[i]>0]
trade_x_sell = [i for i in trade_x if self.posi_variation_arr[i]<0]
trade_y_buy = [self.price[i] for i in trade_x_buy]
trade_y_sell = [self.price[i] for i in trade_x_sell]
trade_color_buy = [self._gen_trade_color(i) for i in trade_x_buy]
trade_color_sell = [self._gen_trade_color(i) for i in trade_x_sell]
self.trade_plot_buy = self.ax.scatter(x=trade_x_buy, y=trade_y_buy, s=100, marker='^',
c=trade_color_buy, edgecolors=(1,0,0,0.9), zorder=2)
self.trade_plot_sell = self.ax.scatter(x=trade_x_sell, y=trade_y_sell, s=100, marker='v',
c=trade_color_sell, edgecolors=(0,1,0,0.9), zorder=2)
评论列表
文章目录