예제 #1
0
 def analy_deal_type(self, stock_name, start_date, end_date, plt, color):
     delta_days = (end_date - start_date).days
     mysql = MySQL('trans')
     mysql.connect()
     for day in xrange(0, delta_days, 1):
         today = start_date + timedelta(days=day)
         next_day = start_date + timedelta(days=day+1)
         state_where_buy = "DEAL_DATE > '%s' and DEAL_DATE < '%s' and DEAL_TYPE = 1" % (today, next_day)
         buy_data = mysql.query_where(stock_name, state_where_buy)
         cnt_buy_data = len(buy_data)
         state_where_sell = "DEAL_DATE > '%s' and DEAL_DATE < '%s' and DEAL_TYPE = -1" % (today, next_day)
         sell_data = mysql.query_where(stock_name, state_where_sell)
         cnt_sell_data = len(sell_data)
         scale = 5
         if cnt_sell_data is not 0:
             if cnt_buy_data is not 0:
                 buy_total = self.sum_long(buy_data)
             else:
                 buy_total = 0
             sell_total = self.sum_long(sell_data)
             perc = (float(buy_total) / sell_total) * scale
             # perc = (float(cnt_buy_data) / cnt_sell_data) * scale
         else:
             perc = 0
         plt.scatter(today, perc, c=color)
     plt.axhline(y=scale, xmin=0, xmax=1)
     try:
         plt.savefig(".\\results\\"+self.stock_name+".png", dpi=200)
     except Exception:
         print "save png file error!"
     mysql.close_connect()
예제 #2
0
 def analy_big_trans(self, stock_name, gate_money, start_date, end_date, plt, color):
     delta_days = (end_date - start_date).days
     mysql = MySQL('trans')
     mysql.connect()
     for day in xrange(0, delta_days, 1):
         today = start_date + timedelta(days=day)
         next_day = start_date + timedelta(days=day+1)
         state_where = "DEAL_DATE > '%s' and DEAL_DATE < '%s' and TOTAL_AMOUNT > %d" % (today, next_day, gate_money)
         big_data = mysql.query_where(stock_name, state_where)
         state_where = "DEAL_DATE > '%s' and DEAL_DATE < '%s'" % (today, next_day)
         all_data = mysql.query_where(stock_name, state_where)
         cnt_big_data = len(big_data)
         cnt_all_data = len(all_data)
         if cnt_all_data is not 0:
             perc = (float(cnt_big_data) / cnt_all_data) * 100
         else:
             perc = 0
         plt.scatter(today, perc, c=color)
     mysql.close_connect()
예제 #3
0
 def analysis_deal_price(self, stock_name, start_date, end_date, plt, color):
     one_day = timedelta(days=1)
     delta_days = (end_date - start_date).days
     mysql = MySQL('trans')
     mysql.connect()
     for day in xrange(0, delta_days, 1):
         query_day = start_date + timedelta(days=day)
         state_where = "DEAL_DATE > '%s' and DEAL_DATE < '%s'" % (query_day, query_day + one_day)
         data = mysql.query_where(stock_name, state_where)
         ret = self.max_data(data)
         # ax.scatter(query_day, ret, c=color)
         plt.plot(query_day, ret, 'o-', c=color)
     mysql.close_connect()
예제 #4
0
 def analysis_close_price(self, stock_name, start_date, end_date, plt, color):
     one_day = timedelta(days=1)
     delta_days = (end_date - start_date).days
     mysql = MySQL('daily')
     mysql.connect()
     for day in xrange(0, delta_days, 1):
         query_day = start_date + timedelta(days=day)
         state_where = "DATE = '%s'" % query_day
         data = mysql.query_where(stock_name, state_where)
         if len(data) > 0:
             plt.scatter(query_day, data[0][5], c=color)
         else:
             plt.scatter(query_day, 0, c=color)
     mysql.close_connect()