예제 #1
0
 def plot_contrast(self, moneyrecord1, moneyrecord2, date_ls, startdate,
                   enddate):
     startdate = self.datetransfer(startdate)
     date_ls_change = []
     for i in date_ls:
         if int(i) >= int(startdate) and int(i) <= int(enddate):
             date_ls_change.append(i)
     mondays = WeekdayLocator(MONDAY)
     months = MonthLocator(range(1, 13), bymonthday=1, interval=3)
     monthsFmt = DateFormatter("%b '%y")
     print(date_ls_change)
     #print(date_ls)
     date = [str(e) for e in date_ls_change]
     date_ls = [
         datetime.datetime.strptime(d, '%Y%m%d').date() for d in date
     ]
     algo_pv = moneyrecord1['money'].tolist()
     print(algo_pv)
     bench_pv = moneyrecord2['moneybenchmark'].tolist()
     fig, ax = plt.subplots()
     plt.gca().set_color_cycle(['blue', 'red'])
     ax.plot_date(date_ls, algo_pv, '-')
     ax.plot_date(date_ls, bench_pv, '-')
     months.MAXTICKS = 5000
     mondays.MAXTICKS = 5000
     ax.xaxis.set_major_locator(months)
     ax.xaxis.set_major_formatter(monthsFmt)
     ax.xaxis.set_minor_locator(mondays)
     ax.autoscale_view()
     ax.grid(True)
     fig.autofmt_xdate()
     plt.title('P&L')
     plt.legend(['strategy', 'benchmark'], loc='upper left')
     plt.show()
예제 #2
0
 def plot_contrast(self,moneyrecord1,moneyrecord2,date_ls,startdate,enddate):
     startdate=self.datetransfer(startdate)
     date_ls_change=[]
     for i in date_ls:
         if int(i)>=int(startdate) and int(i)<=int(enddate):
             date_ls_change.append(i)
     mondays = WeekdayLocator(MONDAY)
     months = MonthLocator(range(1, 13), bymonthday=1, interval=3)
     monthsFmt = DateFormatter("%b '%y")
     print(date_ls_change)
     #print(date_ls)
     date = [str(e) for e in date_ls_change]
     date_ls = [datetime.datetime.strptime(d,'%Y%m%d').date() for d in date]
     algo_pv=moneyrecord1['money'].tolist()
     print(algo_pv)
     bench_pv=moneyrecord2['moneybenchmark'].tolist()
     fig, ax = plt.subplots()
     plt.gca().set_color_cycle(['blue', 'red'])
     ax.plot_date(date_ls, algo_pv,'-')
     ax.plot_date(date_ls, bench_pv,'-')
     months.MAXTICKS=5000
     mondays.MAXTICKS=5000
     ax.xaxis.set_major_locator(months)
     ax.xaxis.set_major_formatter(monthsFmt)
     ax.xaxis.set_minor_locator(mondays)
     ax.autoscale_view()
     ax.grid(True)
     fig.autofmt_xdate()
     plt.title('P&L')
     plt.legend(['strategy', 'benchmark'], loc='upper left')
     plt.show()
예제 #3
0
def formatAxticks(ax):
    days     = DayLocator()    # every month
    months   = MonthLocator()  # every month
    months.MAXTICKS = 3000
    yearsFmt = DateFormatter('%d/%m/%Y')
    ax.xaxis.set_major_locator(months)
    ax.xaxis.set_minor_locator(days)
    ax.xaxis.set_major_formatter(yearsFmt)
    ax.autoscale_view()
    ticks = ax.get_xticks()
    n = len(ticks)/4
    ax.set_xticks(ticks[::n])
    return ax
예제 #4
0
    def plot_alpha(self, alpha, date_ls, startdate, enddate):
        startdate = self.datetransfer(startdate)
        date_ls_change = []
        for i in date_ls:
            if int(i) >= int(startdate) and int(i) <= int(enddate):
                date_ls_change.append(i)
        mondays = WeekdayLocator(MONDAY)
        months = MonthLocator(range(1, 13), bymonthday=1, interval=3)
        monthsFmt = DateFormatter("%b '%y")
        #print(date_ls)
        date = [str(e) for e in date_ls_change]
        date_ls = [
            datetime.datetime.strptime(d, '%Y%m%d').date() for d in date
        ]
        algo_pv = alpha['alpha'].tolist()
        #print(algo_pv)
        fig, ax = plt.subplots()
        plt.gca().set_color_cycle(['blue', 'red'])
        ax.plot_date(date_ls, algo_pv, '-')
        months.MAXTICKS = 5000
        mondays.MAXTICKS = 5000
        ax.xaxis.set_major_locator(months)
        ax.xaxis.set_major_formatter(monthsFmt)
        ax.xaxis.set_minor_locator(mondays)
        ax.autoscale_view()
        ax.grid(True)
        fig.autofmt_xdate()
        plt.title('Alpha')
        plt.legend(['alpha'], loc='upper left')
        plt.show()


#KJ_profit_df=pd.DataFrame(columns=[i/10 for i in range(1,121)])
#for K in list_K:
#for J in list_J:
#KJ=B(cash,account,startdate,enddate,K,J)
#KJ_total_portfolio=KJ.test(startdate,enddate,K,J,cash)
#KJ_profit_df.loc[10*J-1,K]=KJ_total_portfolio

#KJ_profit_df.to_csv('KJ_finalprofit.csv')
예제 #5
0
    def plot_alpha(self,alpha,date_ls,startdate,enddate):
        startdate=self.datetransfer(startdate)
        date_ls_change=[]
        for i in date_ls:
            if int(i)>=int(startdate) and int(i)<=int(enddate):
                date_ls_change.append(i)
        mondays = WeekdayLocator(MONDAY)
        months = MonthLocator(range(1, 13), bymonthday=1, interval=3)
        monthsFmt = DateFormatter("%b '%y")
        #print(date_ls)
        date = [str(e) for e in date_ls_change]
        date_ls = [datetime.datetime.strptime(d,'%Y%m%d').date() for d in date]
        algo_pv=alpha['alpha'].tolist()
        #print(algo_pv)
        fig, ax = plt.subplots()
        plt.gca().set_color_cycle(['blue', 'red'])
        ax.plot_date(date_ls, algo_pv,'-')
        months.MAXTICKS=5000
        mondays.MAXTICKS=5000
        ax.xaxis.set_major_locator(months)
        ax.xaxis.set_major_formatter(monthsFmt)
        ax.xaxis.set_minor_locator(mondays)
        ax.autoscale_view()
        ax.grid(True)
        fig.autofmt_xdate()
        plt.title('Alpha')
        plt.legend(['alpha'], loc='upper left')
        plt.show()                            
                    
        


#KJ_profit_df=pd.DataFrame(columns=[i/10 for i in range(1,121)])
#for K in list_K:
    #for J in list_J:
        #KJ=B(cash,account,startdate,enddate,K,J)
        #KJ_total_portfolio=KJ.test(startdate,enddate,K,J,cash)
        #KJ_profit_df.loc[10*J-1,K]=KJ_total_portfolio

#KJ_profit_df.to_csv('KJ_finalprofit.csv')