Esempio n. 1
0
def find_sell(daytime):
    if daytime == 0:
        daytimeOne = time.strftime("%Y-%m-%d", time.localtime())
        daytimeTwo = daytimeOne.replace("-", "")[0:8]
        daytime = daytimeTwo
    conn1 = sqlite3.connect(
        'C:/Users/user/Desktop/十大交易人/小胖下載加權指數報酬率Crawler/db/crawler.db')
    c1 = conn1.cursor()
    tempObject = ""
    cursor = c1.execute(
        "select *,security_lending_sell*close_price from SecurityLendingSell where security_lending_sell*close_price>200000000"
    )

    for row in cursor:
        if (row[2] >= int(daytime)):
            # if (row[2] > beginDate) and (row[0] != '2330' and row[0] != '2317' and row[0] != '2454' and row[0] != '2882' and row[0] != '00637L' and row[0] != '2412'):
            tempObject = tempObject + "(股號:" + str(row[0]) + "股名:" + str(
                row[1]) + "日期:" + str(row[2]) + "收盤價:" + str(
                    row[5]) + ")      "
    if tempObject != "":
        print("滿足條件借券賣出", tempObject)
        lineNotifyMessage("今天借券賣出," + tempObject, 1)
        lineNotifyMessage("今天借券賣出," + tempObject, 3)
    # print("滿足條件借券賣出",row[0],row[1],row[2],row[5])
    # lineNotifyMessage("今天借券賣出,股號:" + str(row[0]) + "股名:" + str(row[1]) + "日期:" + str(row[2]) + "收盤價:" + str(row[5]), 1)
    # lineNotifyMessage("今天借券賣出,股號:" + str(row[0]) + "股名:" + str(row[1]) + "日期:" + str(row[2]) + "收盤價:" + str(row[5]), 3)
    conn1.commit()
    conn1.close()


# find_sell(0)
Esempio n. 2
0
def do_FIND_otc():
    conn1 = sqlite3.connect('C:/Users/user/Desktop/十大交易人/小胖下載加權指數報酬率Crawler/db/crawler.db')
    c1 = conn1.cursor()
    daytimeOne = time.strftime("%Y-%m-%d", time.localtime())
    daytimeTwo = daytimeOne.replace("-", "")[0:8];
    tempObject = "";
    cursor =  c1.execute("select *, funds_sum*close_price from ThreeBigOTC where funds_sum*close_price > 200000000 and trade_date =" + daytimeTwo + " order by trade_date desc")
    for row in cursor:
        print("今天櫃買中心第一題,股號:" + row[0] + "股名:" + row[1])
        lineNotifyMessage("今天櫃買中心第一題,股號:" + row[0] + "股名:" + row[1] + "買超金額:" + str(int(row[11])*0.00000001), 1)
        lineNotifyMessage("今天櫃買中心第一題,股號:" + row[0] + "股名:" + row[1] + "買超金額:" + str(int(row[11])*0.00000001), 2)
        lineNotifyMessage("今天櫃買中心第一題,股號:" + row[0] + "股名:" + row[1] + "買超金額:" + str(int(row[11])*0.00000001), 3)
        lineNotifyMessage("今天櫃買中心第一題,股號:" + row[0] + "股名:" + row[1] + "買超金額:" + str(int(row[11])*0.00000001), 4)
    cursor1 = c1.execute("select *, funds_sum * close_price from ThreeBigOTC where funds_sum * close_price < -200000000 and trade_date =" + daytimeTwo + " order by trade_date desc")
    for row in cursor1:
        print("今天櫃買中心反向第一題,股號:" + row[0] + "股名:" + row[1])
        lineNotifyMessage("今天證交所反向第一題,股號:" + row[0] + "股名:" + row[1] + "賣超金額:" + str(int(row[11])*0.00000001), 1)
        lineNotifyMessage("今天證交所反向第一題,股號:" + row[0] + "股名:" + row[1] + "賣超金額:" + str(int(row[11])*0.00000001), 2)
        lineNotifyMessage("今天證交所反向第一題,股號:" + row[0] + "股名:" + row[1] + "賣超金額:" + str(int(row[11])*0.00000001), 3)
        lineNotifyMessage("今天證交所反向第一題,股號:" + row[0] + "股名:" + row[1] + "賣超金額:" + str(int(row[11])*0.00000001), 4)
    cursor2 = c1.execute(' select * from ThreeBigOTC where funds_sum*10 > volume and trade_date = ' + daytimeTwo)
    for row in cursor2:
        tempObject = tempObject + "(股號:" + str(row[0]).replace(" ", "") + ";股名:" + str(row[1]).replace(" ","") + ")        "
    if tempObject != "":
        print("今天櫃買投信買超佔交易量超過10%," + tempObject)
        lineNotifyMessage("今天櫃買投信買超佔交易量超過10%," + tempObject, 1)
        lineNotifyMessage("今天櫃買投信買超佔交易量超過10%," + tempObject, 3)
        lineNotifyMessage("今天櫃買投信買超佔交易量超過10%," + tempObject, 4)
    cursor3 = c1.execute(' select * from ThreeBigOTC where funds_sum*5 < -1*volume and trade_date = ' + daytimeTwo)
    tempObject = "";
    for row in cursor3:
        tempObject = tempObject + "(股號:" + str(row[0]).replace(" ", "") + ";股名:" + str(row[1]).replace(" ", "") + ")        "
    if tempObject != "":
        print("今天櫃買投信賣超佔交易量超過20%," + tempObject)
        lineNotifyMessage("今天櫃買投信賣超佔交易量超過20%," + tempObject, 1)
        lineNotifyMessage("今天櫃買投信賣超佔交易量超過20%," + tempObject, 3)
        lineNotifyMessage("今天櫃買投信賣超佔交易量超過20%," + tempObject, 4)
    conn1.commit()
    conn1.close()

# do_FIND_otc();
Esempio n. 3
0
def Find_AllFurtrues(beginDate):
    if beginDate == 0:
        daytimeOne = time.strftime("%Y-%m-%d", time.localtime())
        daytimeTwo = daytimeOne.replace("-", "")[0:8]
        beginDate = daytimeTwo
        # print(beginDate);
    conn1 = sqlite3.connect(
        'C:/Users/user/Desktop/十大交易人/小胖下載加權指數報酬率Crawler/db/crawler.db')
    conn2 = sqlite3.connect(
        'C:/Users/user/Desktop/十大交易人/小胖下載加權指數報酬率Crawler/db/crawler.db')
    c1 = conn1.cursor()
    c2 = conn2.cursor()
    cursor = c1.execute("select * from AllFutures")
    lastlist = list()
    for row in cursor:
        if len(lastlist) == 0:
            lastlist = row
        else:
            if row[1] >= int(beginDate):
                print("今天和上一個交易日外資期貨多單數相差" + str(row[14] - lastlist[14]) +
                      ";收盤價相差" + str(
                          math.floor(float(row[2].replace(",", ""))) -
                          math.floor(float(lastlist[2].replace(",", "")))))
                lineNotifyMessage(
                    "今天和上一個交易日外資期貨多單數相差" + str(row[14] - lastlist[14]) +
                    ";收盤價相差" + str(
                        math.floor(float(row[2].replace(",", ""))) -
                        math.floor(float(lastlist[2].replace(",", "")))), 1)
                lineNotifyMessage(
                    "今天和上一個交易日外資期貨多單數相差" + str(row[14] - lastlist[14]) +
                    ";收盤價相差" + str(
                        math.floor(float(row[2].replace(",", ""))) -
                        math.floor(float(lastlist[2].replace(",", "")))), 3)
                lineNotifyMessage(
                    "今天和上一個交易日外資期貨多單數相差" + str(row[14] - lastlist[14]) +
                    ";收盤價相差" + str(
                        math.floor(float(row[2].replace(",", ""))) -
                        math.floor(float(lastlist[2].replace(",", "")))), 4)
            if (lastlist[14] - row[14]) > 4000:
                if (math.floor(float(lastlist[2].replace(",", ""))) -
                        math.floor(float(row[2].replace(",", "")))) < -40:
                    if row[1] >= int(beginDate):
                        print("外資期貨做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                              str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]))
                        lineNotifyMessage(
                            "外資期貨做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                            str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]), 1)
                        lineNotifyMessage(
                            "外資期貨做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                            str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]), 3)
                        lineNotifyMessage(
                            "外資期貨做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                            str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]), 4)
            if (lastlist[14] - row[14]) < -4000:
                if (math.floor(float(lastlist[2].replace(",", ""))) -
                        math.floor(float(row[2].replace(",", "")))) > 40:
                    if row[1] >= int(beginDate):
                        print("外資期貨做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                              str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]))
                        lineNotifyMessage(
                            "外資期貨做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                            str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]), 1)
                        lineNotifyMessage(
                            "外資期貨做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                            str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]), 3)
                        lineNotifyMessage(
                            "外資期貨做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                            str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]), 4)

            # if ((lastlist[14] -row[14])/lastlist[14]) > 0.05:
            #     if ( math.floor(float(lastlist[2].replace(",",""))) -math.floor(float(row[2].replace(",",""))) ) < -40:
            #         print("做空還大漲",+ row[1])
            # if ((lastlist[14] - row[14])/lastlist[14]) < -0.05:
            #     if ( math.floor(float(lastlist[2].replace(",",""))) -math.floor(float(row[2].replace(",",""))) ) > 40:
            #         print("做多還大跌",+ row[1])

            # 特定法人廢到笑
            # print(  (lastlist[9]- lastlist[10]) - (row[9] - row[10])  )
            # if ( (lastlist[9]- lastlist[10]) - (row[9] - row[10]) )> 5000:
            #     if ( math.floor(float(lastlist[2].replace(",",""))) -math.floor(float(row[2].replace(",",""))) ) < -40:
            #         if row[1] >= int(beginDate):
            #             if (lastlist[9] > row[9]) and (lastlist[10] < row[10]):
            #                 print("特定十大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" + str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]) )
            # if ((lastlist[9]- lastlist[10]) - (row[9] - row[10])) < -5000:
            #     if ( math.floor(float(lastlist[2].replace(",",""))) -math.floor(float(row[2].replace(",",""))) ) > 40:
            #         if row[1] >= int(beginDate):
            #             if (lastlist[9] < row[9]) and (lastlist[10] > row[10]):
            #                 print("特定十大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" + str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]))

            if ((lastlist[5] - lastlist[6]) - (row[5] - row[6])) > 4000:
                if (math.floor(float(lastlist[2].replace(",", ""))) -
                        math.floor(float(row[2].replace(",", "")))) < -40:
                    if row[1] >= int(beginDate):
                        if (lastlist[5] > row[5]) and (lastlist[6] < row[6]):
                            print("非特定十大做空還大漲條件成立" + str(row[1]) +
                                  ",昨日期貨多單數:" + str(lastlist[14]) +
                                  ",今日期貨多單數:" + str(row[14]))
                            lineNotifyMessage(
                                "非特定十大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                1)
                            lineNotifyMessage(
                                "非特定十大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                3)
                            lineNotifyMessage(
                                "非特定十大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                4)
            if ((lastlist[5] - lastlist[6]) - (row[5] - row[6])) < -4000:
                if (math.floor(float(lastlist[2].replace(",", ""))) -
                        math.floor(float(row[2].replace(",", "")))) > 40:
                    if row[1] >= int(beginDate):
                        if (lastlist[5] < row[5]) and (lastlist[6] > row[6]):
                            print("非特定十大做多還大跌條件成立" + str(row[1]) +
                                  ",昨日期貨多單數:" + str(lastlist[14]) +
                                  ",今日期貨多單數:" + str(row[14]))
                            lineNotifyMessage(
                                "非特定十大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                1)
                            lineNotifyMessage(
                                "非特定十大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                3)
                            lineNotifyMessage(
                                "非特定十大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                4)
            if ((lastlist[3] - lastlist[4]) - (row[3] - row[4])) > 4000:
                if (math.floor(float(lastlist[2].replace(",", ""))) -
                        math.floor(float(row[2].replace(",", "")))) < -40:
                    if row[1] >= int(beginDate):
                        if (lastlist[3] > row[3]) and (lastlist[4] < row[4]):
                            print("非特定五大做空還大漲條件成立" + str(row[1]) +
                                  ",昨日期貨多單數:" + str(lastlist[14]) +
                                  ",今日期貨多單數:" + str(row[14]))
                            lineNotifyMessage(
                                "非特定五大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                1)
                            lineNotifyMessage(
                                "非特定五大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                3)
                            lineNotifyMessage(
                                "非特定五大做空還大漲條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                4)
            if ((lastlist[3] - lastlist[4]) - (row[3] - row[4])) < -4000:
                if (math.floor(float(lastlist[2].replace(",", ""))) -
                        math.floor(float(row[2].replace(",", "")))) > 40:
                    if row[1] >= int(beginDate):
                        if (lastlist[3] < row[3]) and (lastlist[4] > row[4]):
                            print("非特定五大做多還大跌條件成立" + str(row[1]) +
                                  ",昨日期貨多單數:" + str(lastlist[14]) +
                                  ",今日期貨多單數:" + str(row[14]))
                            lineNotifyMessage(
                                "非特定五大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                1)
                            lineNotifyMessage(
                                "非特定五大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                3)
                            lineNotifyMessage(
                                "非特定五大做多還大跌條件成立" + str(row[1]) + ",昨日期貨多單數:" +
                                str(lastlist[14]) + ",今日期貨多單數:" + str(row[14]),
                                4)
            lastlist = row
    conn1.close()
    conn2.close()
def _get_0056_diff(data_return,data_0056_return):

    data_return = data_return.merge(data_0056_return, left_on='date', right_on='date')
    # print(data_return.to_string() )
    delay_day = 135
    sum_list=[]

    for i in range(len(data_return)):
        if i + delay_day == len(data_return)-1:
            # print( str(i) )
            # print(data_return.iloc[i:i + delay_day].close)
            # print(data_return.iloc[i + delay_day].close)
            if (data_return.iloc[i + delay_day].close > np.percentile(data_return.iloc[i:i + delay_day].close,(100), interpolation='midpoint')):
                print("今日0056分位數為創135日內新高>100;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請賣出")
                lineNotifyMessage("今日0056分位數為創135日內新高>100;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請賣出", 1)
                lineNotifyMessage("今日0056分位數為創135日內新高>100;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請賣出", 2)
                lineNotifyMessage("今日0056分位數為創135日內新高>100;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請賣出", 3)
                lineNotifyMessage("今日0056分位數為創135日內新高>100;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請賣出", 4)
            if (data_return.iloc[i + delay_day].close < np.percentile(data_return.iloc[i:i + delay_day ].close, (0),interpolation='midpoint')):
                lineNotifyMessage("今日0056分位數為創135日內新低<0;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請買入", 1)
                lineNotifyMessage("今日0056分位數為創135日內新低<0;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請買入", 2)
                lineNotifyMessage("今日0056分位數為創135日內新低<0;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請買入", 3)
                lineNotifyMessage("今日0056分位數為創135日內新低<0;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請買入", 4)
                print("今日0056分位數為創135日內新低<0;今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳0056買進分位數為低於25賣出的分位數為95,所以請買入")
            for j in range(0,100,1):
                if ( data_return.iloc[i+delay_day].close <= np.percentile(data_return.iloc[i:i + delay_day].close, (j+1), interpolation='midpoint') ):
                    if (data_return.iloc[i + delay_day].close >= np.percentile(data_return.iloc[i:i + delay_day ].close, (j), interpolation='midpoint')):
                        # print(str(data_return.iloc[i + delay_day].close))
                        # print(str(data_return.iloc[i]))
                        # print(str(data_return.iloc[i:i + 2]))
                        # print(str(np.percentile(data_return.iloc[i:i + delay_day-1].close, (100), interpolation='midpoint') ))
                        lineNotifyMessage("今日0056分位數為=" + str(j) + ";今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳買進分位數為低於25賣出的分位數為95", 1)
                        lineNotifyMessage("今日0056分位數為=" + str(j) + ";今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳買進分位數為低於25賣出的分位數為95", 2)
                        lineNotifyMessage("今日0056分位數為=" + str(j) + ";今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳買進分位數為低於25賣出的分位數為95", 3)
                        lineNotifyMessage("今日0056分位數為=" + str(j) + ";今日為=" + str(data_return.iloc[i + delay_day].date) + ";0056為=" + str(data_return.iloc[i + delay_day].close) + ";最佳買進分位數為低於25賣出的分位數為95", 4)
                        print("今日0056分位數為=" + str(j) + ";今日為=" + str(data_return.iloc[i+delay_day].date) + ";0056為=" + str(data_return.iloc[i+delay_day].close) + ";最佳買進分位數為低於25賣出的分位數為95")