Example #1
0
    def get_high_low_points(self, stock_code_list):
        msg = '''<html> <tr>Trend inverse reminder from H&L Model</tr> <table width="300" border="1" bordercolor="black" cellspacing="1">'''
        bar_size = [5, 30, 60]
        column_num = [5, 9, 13]
        threshold = [0.03, 0.05, 0.15]
        send_email_flag = False
        for ii in range(len(bar_size)):
            if bar_size[ii] == 60:
                stock_intraday_data = LoadData.get_daily_stock_data(
                    stock_code_list, "20100101")
                msg = msg + ''' <tr><td rowspan="2">''' + ''' daily </td>'''
            else:
                stock_intraday_data = LoadData.get_intraday_stock_data(
                    stock_code_list, bar_size=bar_size[ii], delta_days=365)
                msg = msg + ''' <tr><td rowspan="2">''' + str(
                    bar_size[ii]) + ''' min </td>'''
            high_point_index_list, high_point_list, high_point_time_list, low_point_index_list, low_point_list, low_point_time_list = HighLowPoint.get_high_low_points_list(
                stock_intraday_data, threshold[ii])

            fall_end_list = []
            rise_end_lsit = []
            fall_end_msg = ""
            rise_end_msg = ""
            for jj in range(len(stock_code_list)):

                self.write_data_to_file(column_num[ii], jj,
                                        high_point_list[jj][-1],
                                        high_point_time_list[jj][-1],
                                        low_point_list[jj][-1],
                                        low_point_time_list[jj][-1])

                temp_msg_fall_end, temp_msg_rise_end = self.judge_trend_inverse(
                    high_point_list[jj], low_point_list[jj],
                    self.current_price[jj])

                if temp_msg_fall_end == True:
                    fall_end_list.append(stock_code_list[jj])
                    send_email_flag = True
                if temp_msg_rise_end == True:
                    rise_end_lsit.append(stock_code_list[jj])
                    send_email_flag = True
            for item in fall_end_list:
                fall_end_msg = fall_end_msg + item + " "
            for item in rise_end_lsit:
                rise_end_msg = rise_end_msg + item + " "

            msg = msg + "<td>" + "Falling End" + "</td><td>" + fall_end_msg + "</td></tr><tr><td> Rising End </td><td>" + rise_end_msg + "</td></tr> \n"
        msg = msg + " </table></html>"
        print msg
        if send_email_flag == True:
            a = SendEmail.Send_Email("Trend inverse reminder from H&L Model",
                                     msg)
            print a.isSend
	def get_high_low_points(self,stock_code_list):
		msg = '''<html> <tr>Trend inverse reminder from H&L Model</tr> <table width="300" border="1" bordercolor="black" cellspacing="1">'''
		bar_size = [5,30,60]
		column_num = [5,9,13]
		threshold = [0.03,0.05,0.15]
		send_email_flag = False
		for ii in range(len(bar_size)):
			if bar_size[ii]==60:
				stock_intraday_data = LoadData.get_daily_stock_data(stock_code_list,"20100101")
				msg = msg +''' <tr><td rowspan="2">'''  + ''' daily </td>'''
			else:
				stock_intraday_data = LoadData.get_intraday_stock_data(stock_code_list,bar_size=bar_size[ii],delta_days = 365)
				msg = msg +''' <tr><td rowspan="2">''' +str(bar_size[ii]) + ''' min </td>'''
			high_point_index_list,high_point_list,high_point_time_list,low_point_index_list,low_point_list,low_point_time_list = HighLowPoint.get_high_low_points_list(stock_intraday_data,threshold[ii])
			
			
			fall_end_list = []
			rise_end_lsit = []
			fall_end_msg = ""
			rise_end_msg = ""
			for jj in range(len(stock_code_list)):

				self.write_data_to_file(column_num[ii],jj,high_point_list[jj][-1],high_point_time_list[jj][-1],low_point_list[jj][-1],low_point_time_list[jj][-1])
				
				temp_msg_fall_end, temp_msg_rise_end = self.judge_trend_inverse(high_point_list[jj],low_point_list[jj],self.current_price[jj]) 

				if temp_msg_fall_end ==True:
					fall_end_list.append(stock_code_list[jj])
					send_email_flag = True
				if temp_msg_rise_end == True:
					rise_end_lsit.append(stock_code_list[jj])
					send_email_flag = True
			for item in fall_end_list:
				fall_end_msg = fall_end_msg + item + " "
			for item in rise_end_lsit:
				rise_end_msg = rise_end_msg + item +" "

			msg = msg +"<td>" + "Falling End" + "</td><td>"+fall_end_msg +"</td></tr><tr><td> Rising End </td><td>"+rise_end_msg+"</td></tr> \n"
		msg = msg +" </table></html>"
		print msg
		if send_email_flag == True:
			a = SendEmail.Send_Email("Trend inverse reminder from H&L Model",msg)
			print a.isSend
    def creepy_data_from_wind_to_local(self):

        for ii in range(len(self.user_stock_name_list)):
            self.path_is_exist(self.user_stock_name_list[ii])
            data_base_path = sys.path[0] + "\\" + "data" + "\\" + "data_base"
            stock_fold_path = data_base_path + "\\" + self.user_stock_name_list[ii]

            for data_type in self.data_type_list:

                data_path = stock_fold_path + "\\" + data_type
                latest_date = self.get_latest_date_in_fold(data_path)
                print latest_date
                temp_stock_name = []
                temp_stock_name.append(self.user_stock_name_list[ii])

                delta_day = (
                    datetime.now() - datetime(int(latest_date[0:4]), int(latest_date[4:6]), int(latest_date[6:8]))
                ).days
                print latest_date, delta_day, self.user_stock_name_list[ii]

                pos = self.user_stock_name_list[ii].split(".")[1]
                print pos
                if data_type == "daily":

                    stock_daily_data = LoadData.get_daily_stock_data(temp_stock_name, latest_date)
                    for jj in range(len(stock_daily_data[0])):

                        output_data_path = data_path + "\\" + stock_daily_data[0][jj][0] + ".txt"
                        WriteToFile.write_to_file(output_data_path, stock_daily_data[0][jj])

                if pos != "SZ" and pos != "SH":
                    break

                if float(delta_day) > 3 * 365:
                    delta_day = 1095
                if data_type == "60min":
                    print "aaa"

                    stock_60_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=60, delta_days=delta_day
                    )
                    date_60_min_index = self.get_day_sperate_index(stock_60_min_data)
                    print stock_60_min_data
                    print date_60_min_index

                    for jj in range(len(date_60_min_index) - 1):
                        file_path = data_path + "\\" + stock_60_min_data[0][date_60_min_index[jj]][0][0:8] + ".txt"
                        WriteToFile.write_list_to_file(
                            file_path, stock_60_min_data[0][date_60_min_index[jj] : date_60_min_index[jj + 1]]
                        )

                elif data_type == "30min":
                    stock_30_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=30, delta_days=delta_day
                    )
                    date_30_min_index = self.get_day_sperate_index(stock_30_min_data)

                    for jj in range(len(date_30_min_index) - 1):
                        file_path = data_path + "\\" + stock_30_min_data[0][date_30_min_index[jj]][0][0:8] + ".txt"
                        WriteToFile.write_list_to_file(
                            file_path, stock_30_min_data[0][date_30_min_index[jj] : date_30_min_index[jj + 1]]
                        )
                elif data_type == "15min":
                    stock_15_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=15, delta_days=delta_day
                    )
                    date_15_min_index = self.get_day_sperate_index(stock_15_min_data)

                    for jj in range(len(date_15_min_index) - 1):
                        file_path = data_path + "\\" + stock_15_min_data[0][date_15_min_index[jj]][0][0:8] + ".txt"
                        WriteToFile.write_list_to_file(
                            file_path, stock_15_min_data[0][date_15_min_index[jj] : date_15_min_index[jj + 1]]
                        )

                elif data_type == "5min":
                    stock_5_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=5, delta_days=delta_day
                    )
                    date_5_min_index = self.get_day_sperate_index(stock_5_min_data)

                    for jj in range(len(date_5_min_index) - 1):
                        file_path = data_path + "\\" + stock_5_min_data[0][date_5_min_index[jj]][0][0:8] + ".txt"

                        WriteToFile.write_list_to_file(
                            file_path, stock_5_min_data[0][date_5_min_index[jj] : date_5_min_index[jj + 1]]
                        )
    def creepy_data_from_wind_to_local(self):

        for ii in range(len(self.user_stock_name_list)):
            self.path_is_exist(self.user_stock_name_list[ii])
            data_base_path = sys.path[0] + "\\" + "data" + "\\" + "data_base"
            stock_fold_path = data_base_path + "\\" + self.user_stock_name_list[
                ii]

            for data_type in self.data_type_list:

                data_path = stock_fold_path + "\\" + data_type
                latest_date = self.get_latest_date_in_fold(data_path)
                print latest_date
                temp_stock_name = []
                temp_stock_name.append(self.user_stock_name_list[ii])

                delta_day = (
                    datetime.now() -
                    datetime(int(latest_date[0:4]), int(latest_date[4:6]),
                             int(latest_date[6:8]))).days
                print latest_date, delta_day, self.user_stock_name_list[ii]

                pos = self.user_stock_name_list[ii].split(".")[1]
                print pos
                if data_type == "daily":

                    stock_daily_data = LoadData.get_daily_stock_data(
                        temp_stock_name, latest_date)
                    for jj in range(len(stock_daily_data[0])):

                        output_data_path = data_path + "\\" + stock_daily_data[
                            0][jj][0] + ".txt"
                        WriteToFile.write_to_file(output_data_path,
                                                  stock_daily_data[0][jj])

                if pos != "SZ" and pos != "SH":
                    break

                if float(delta_day) > 3 * 365:
                    delta_day = 1095
                if data_type == "60min":
                    print "aaa"

                    stock_60_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=60, delta_days=delta_day)
                    date_60_min_index = self.get_day_sperate_index(
                        stock_60_min_data)
                    print stock_60_min_data
                    print date_60_min_index

                    for jj in range(len(date_60_min_index) - 1):
                        file_path = data_path + "\\" + stock_60_min_data[0][
                            date_60_min_index[jj]][0][0:8] + ".txt"
                        WriteToFile.write_list_to_file(
                            file_path, stock_60_min_data[0]
                            [date_60_min_index[jj]:date_60_min_index[jj + 1]])

                elif data_type == "30min":
                    stock_30_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=30, delta_days=delta_day)
                    date_30_min_index = self.get_day_sperate_index(
                        stock_30_min_data)

                    for jj in range(len(date_30_min_index) - 1):
                        file_path = data_path + "\\" + stock_30_min_data[0][
                            date_30_min_index[jj]][0][0:8] + ".txt"
                        WriteToFile.write_list_to_file(
                            file_path, stock_30_min_data[0]
                            [date_30_min_index[jj]:date_30_min_index[jj + 1]])
                elif data_type == "15min":
                    stock_15_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=15, delta_days=delta_day)
                    date_15_min_index = self.get_day_sperate_index(
                        stock_15_min_data)

                    for jj in range(len(date_15_min_index) - 1):
                        file_path = data_path + "\\" + stock_15_min_data[0][
                            date_15_min_index[jj]][0][0:8] + ".txt"
                        WriteToFile.write_list_to_file(
                            file_path, stock_15_min_data[0]
                            [date_15_min_index[jj]:date_15_min_index[jj + 1]])

                elif data_type == "5min":
                    stock_5_min_data = LoadData.get_intraday_stock_data(
                        temp_stock_name, bar_size=5, delta_days=delta_day)
                    date_5_min_index = self.get_day_sperate_index(
                        stock_5_min_data)

                    for jj in range(len(date_5_min_index) - 1):
                        file_path = data_path + "\\" + stock_5_min_data[0][
                            date_5_min_index[jj]][0][0:8] + ".txt"

                        WriteToFile.write_list_to_file(
                            file_path, stock_5_min_data[0]
                            [date_5_min_index[jj]:date_5_min_index[jj + 1]])