예제 #1
0
def getCategories(day):
    currentDay = day
    pro=getTushareInstance()
    lastTradeDay = getLastTradeDay(currentDay)
    theDayBeforeLastTradeDay = getLastTradeDay(lastTradeDay)
    threeDayBefore = getLastTradeDay(theDayBeforeLastTradeDay)
    return[
    {
      'text': '昨日首板失败收益率',
      # 上上个交易日首板 昨日收盘价/昨日最高价<0.90 9点25分跌幅小于-5%
      'func': crawl_earning_of_stocks('%s的未涨停 %s的涨停 (%s的收盘价/%s的最高价)<0.90 %s的竞价小于-5%s %s收盘涨跌幅 %s' % (threeDayBefore, theDayBeforeLastTradeDay, lastTradeDay, lastTradeDay, currentDay, '%', currentDay, no_st + no_new), currentDay, True)
    }
  ]
예제 #2
0
def partTwo(start_date, i='1'):
    # start_date = '20220303'
    # start_date=datetime.datetime.now().strftime("%Y%m%d")
    # end_date=datetime.datetime.now().strftime("%Y%m%d")
    last_date = getLastTradeDay(start_date)
    _day = start_date
    print(_day + ':')
    no_st = "非st 非退市"
    # 今日涨停封死计数
    row_1 = crawl_length(_day + "涨停 " + no_st)
    # 今日涨停炸版计数
    row_2 = crawl_length(_day + "曾涨停 " + no_st)
    # 盘中带量曾封跌停计数
    row_3 = -crawl_length(_day + "曾跌停或者跌停 " + no_st)
    # 收盘带量封死跌停计数
    row_4 = -crawl_length(_day + "跌停且非一字跌停 " + no_st)
    # 盘中超跌-5%计数
    row_5 = -crawl_length(("%s最低价格/%s收盘价格小于0.95 " %
                           (start_date, last_date)) + no_st)
    # 收盘超跌-5%计数
    row_6 = -crawl_length(_day + " 跌幅大于5% " + no_st)
    # 阈值
    row_7 = -250
    # 打板当日封板率
    row_8 = '自动计算'
    # 昨日所有涨停收益率(不包含炸板)
    row_9 = crawl_earning_of_stocks(
        '%s涨跌幅 %s涨停 非st 非新股 非退市' % (_day, last_date), _day, True)
    # 昨日所有涨停真实收益率(包含炸板)
    row_10 = crawl_earning_of_stocks(
        '%s涨跌幅 %s涨停或%s曾涨停 %s非一字板或者%s放量 非st 非退市' %
        (_day, last_date, last_date, last_date, last_date), _day, True)
    # 当天两市最高连板板数
    row_11 = crawl_highest('%s非st 非创业板 非科创板 非新股 二连板以上' % _day, _day)
    # 当天两市次高连板板数
    row_12 = crawl_sub_height('%s非st 非创业板 非科创板 非新股 二连板以上' % _day, _day)
    # ma3涨停
    row_13 = '自动计算'
    # 偏离幅度
    row_14 = '自动计算'
    print('%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s' %
          (row_1, row_2, row_3, row_4, row_5, row_6, row_7, row_8, row_9,
           row_10, row_11, row_12, row_13, row_14))
    worksheet.write('A' + i, _day)
    worksheet.write('B' + i, row_1)
    worksheet.write('C' + i, row_2)
    worksheet.write('D' + i, row_3)
    worksheet.write('E' + i, row_4)
    worksheet.write('F' + i, row_5)
    worksheet.write('G' + i, row_6)
    worksheet.write('H' + i, row_7)
    worksheet.write('I' + i, row_8)
    worksheet.write('J' + i, row_9)
    worksheet.write('K' + i, row_10)
    worksheet.write('L' + i, row_11)
    worksheet.write('M' + i, row_12)
    worksheet.write('N' + i, row_13)
    worksheet.write('O' + i, row_14)
예제 #3
0
def getHistoryData():
    global hasWriteHeader, a
    daylength = 5
    # currentDay = '20200106'
    currentDay = getCurrentTradeDay()
    for i in range(0, daylength):
        values = getData(currentDay)
        # values= a[currentDay]
        worksheet.write(letter[0] + str(daylength-(i-1)), datetime.datetime.strptime(currentDay, '%Y%m%d').strftime("%Y/%m/%d"))
        for index, value in enumerate(values):
            worksheet.write(letter[index+1] + str(daylength -(i-1)), value)
        print(i, currentDay, values)
        currentDay = getLastTradeDay(currentDay)
        hasWriteHeader = True
예제 #4
0
def fetchLost():
    day = '20220411'
    lastDay = getLastTradeDay(day)
    stocks = crawl_stock_data('((%s的最高价 - %s的收盘价)/%s的收盘价>0.10 非st 非创业板 非科创板' %
                              (day, day, lastDay))
    index = 0
    for stock in stocks:
        topValue = stock['最高价:不复权[%s]' % day]
        closeValue = stock['收盘价:不复权[%s]' % day]
        lastDayCloseValue = stock['收盘价:不复权[%s]' % lastDay]
        percent = (float(topValue) -
                   float(closeValue)) / lastDayCloseValue * 100
        index += 1
        print(index, stock['股票简称'], '回撤值', percent)
    pass
예제 #5
0
def getRate(_day):
    max = 50
    for d in range(1, max):
        lastDay = getLastTradeDay(_day)
        # partTwo(cDay, str(21-d))
        r1 = str('%.2f' % crawl_earning_of_stocks(
            '%s涨跌幅 %s涨停 非st 非新股 非退市 %s涨跌幅' % (_day, lastDay, _day), _day))
        r2 = str('%.2f' % crawl_earning_of_stocks(
            '%s涨跌幅 %s涨停或%s曾涨停 %s非一字板或者%s放量 非st 非退市 %s涨跌幅' %
            (_day, lastDay, lastDay, lastDay, lastDay, _day), _day))
        print(_day, r1, r2)
        worksheet.write('A' + str(max - d), _day)
        worksheet.write('B' + str(max - d), r1)
        worksheet.write('C' + str(max - d), r2)
        _day = lastDay
    workbook.close()
    os.system('open hello.xlsx')
예제 #6
0
def crawl_lost_of_stocks(question='曾涨停', day=getCurrentTradeDay()):
    # print(question)
    stocks = crawl_stock_data(question)
    total = 0
    upTotal = 0
    index = 0
    stocks = sorted(stocks,
                    key=lambda stock: float(
                        stock.get('涨跌幅:前复权[%s]' % day, stock.get('最新涨跌幅', 0))),
                    reverse=True)
    for stock in stocks:
        topValue = stock['涨停价[%s]' % day]
        closeValue = stock['收盘价:不复权[%s]' % day]
        lastDayCloseValue = stock['收盘价:不复权[%s]' % getLastTradeDay(day)]
        percent = (float(topValue) -
                   float(closeValue)) / lastDayCloseValue * 100
        index += 1
        # print(index, stock['股票简称'], '回撤值', percent)
        total += float('%.2f' % float(percent))
    if len(stocks) == 0:
        return '-'
    return -float(str('%.2f' % float(total / len(stocks))))
def getCategories(day):
    currentDay = day
    pro=getTushareInstance()
    lastTradeDay = getLastTradeDay(currentDay)
    theDayBeforeLastTradeDay = getLastTradeDay(lastTradeDay)
    threeDayBefore = getLastTradeDay(theDayBeforeLastTradeDay)
    return[
    {
      'category': '%s曾涨停 %s未涨停 %s' % (currentDay, lastTradeDay, no_st + no_new),
      'text': '首板炸',
      'method': crawl_length
    },
    {
      'category': '%s曾涨停 %s' % (currentDay, no_st + no_new),
      'text': '涨停炸',
      'method': crawl_length
    },
    {
      'category': '%s涨停 %s未涨停 %s' % (currentDay, lastTradeDay, no_st + no_new),
      'text': '首板',
      'method': crawl_length
    },
    getSpecificHeightData(2, currentDay),
    getSpecificHeightData(3, currentDay),
    getSpecificHeightData(4, currentDay),
    getSpecificHeightData(5, currentDay),
    {
      'category': '%s涨停 %s连续涨停天数大于5 %s' % (currentDay, currentDay, no_st + no_new),
      'text': '5板+',
      'method': crawl_length
    },
    {
      'text': '最高板',
      'func': crawl_highest('非st 非创业板 非科创板 非新股 %s二连板以上' % (currentDay), currentDay)
    },
    autoCal('涨停数'),
    autoCal('连板数'),
    autoCal('整体封板率'),
    autoCal('首板成功率'),
    autoCal('1进2晋级率'),
    autoCal('2进3晋级率'),
    autoCal('3进4晋级率'),
    autoCal('4进5晋级率'),
    autoCal('5板以上晋级率'),
    autoCal('连板晋级率(2板+)'),
    autoCal('中高位晋级率(3板+)'),
    autoCal('总情绪'),
    {
      'category': '%s跌停 %s' % (currentDay, no_st + no_new),
      'text': '跌停',
      'method': crawl_length
    },
    {
      'text': '昨日首板成功收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s涨停 %s未涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '昨日首板失败收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s曾涨停 %s未涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '昨日首板真实收益率(包含炸板)',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s涨停或曾涨停 %s未涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '昨日1进2成功收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s连续涨停天数为2 %s' % (currentDay, lastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '昨日1进2失败收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s曾涨停 %s涨停 %s未涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, threeDayBefore, no_st + no_new), currentDay)
    },
    {
      'text': '昨日1进2真实收益率(包含炸板)',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s涨停或者曾涨停 %s涨停 %s未涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, threeDayBefore, no_st + no_new), currentDay)
    },
    {
      'text': '昨日连板成功收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s连续涨停天数为2以上 %s' % (currentDay, lastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '昨日连板失败收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s曾涨停 %s涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '昨日连板真实收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s涨停或者曾涨停 %s涨停 %s' % (currentDay, lastTradeDay, theDayBeforeLastTradeDay, no_st + no_new), currentDay)
    },
    {
      'text': '前日连板失败收益率',
      'func': crawl_earning_of_stocks('%s涨跌幅 %s未涨停 %s涨停 %s' % (currentDay, theDayBeforeLastTradeDay, threeDayBefore, no_st + no_new), currentDay)
    },
    {
      'text': '当日破板平均亏损',
      'func': crawl_lost_of_stocks('%s曾涨停 %s涨停价 %s收盘价 %s收盘价不为空 %s' % (currentDay, currentDay, currentDay, lastTradeDay,  no_st + no_new), currentDay)
    },
    {
      'text': '昨日破板平均收益',
      'func': crawl_earning_of_stocks('%s曾涨停 %s涨跌幅 %s' % (lastTradeDay, currentDay,  no_st + no_new), currentDay)
    },
    {
      'text': '昨日所有涨停真实收益率(包含炸板)',
      'func': crawl_earning_of_stocks('%s涨停或者曾涨停 %s涨跌幅 %s' % (lastTradeDay, currentDay, no_st + no_new), currentDay)
    },
    {
      'text': '上证涨跌幅',
      'func': crawl_index('%s上证涨跌幅' % currentDay, currentDay)
    },
  ]
예제 #8
0
            (_day, lastDay, lastDay, lastDay, lastDay, _day), _day))
        print(_day, r1, r2)
        worksheet.write('A' + str(max - d), _day)
        worksheet.write('B' + str(max - d), r1)
        worksheet.write('C' + str(max - d), r2)
        _day = lastDay
    workbook.close()
    os.system('open hello.xlsx')


if __name__ == "__main__":
    # print(111)
    cDay = getCurrentTradeDay()
    # cDay='20220426'
    # partTwo(cDay)
    _day = cDay
    # getRate(cDay)
    max = 5
    for d in range(1, max):
        lastDay = getLastTradeDay(_day)
        partTwo(_day, str(21 - d))
        # r1 = str('%.2f' % crawl_earning_of_stocks('%s涨跌幅 %s涨停 非st 非新股 非退市 %s涨跌幅' % (_day, lastDay,_day), _day))
        # r2 = str('%.2f' % crawl_earning_of_stocks('%s涨跌幅 %s涨停或%s曾涨停 %s非一字板或者%s放量 非st 非退市 %s涨跌幅' % (_day, lastDay, lastDay, lastDay, lastDay, _day), _day))
        # print(_day,r1, r2)
        # worksheet.write('A' + str(max - d), _day)
        # worksheet.write('B' + str(max - d), r1)
        # worksheet.write('C' + str(max - d), r2)
        _day = lastDay
    workbook.close()
    os.system('open hello.xlsx')