天天看點

自學python 一個簡單的股票工具,源代碼分享

項目名稱:股票工具

想要的功能:

1 擷取資料 實時某支股票的 ‘買一量’ ‘賣一量’ #擷取資料

2 資料分析 對’買一量’ ‘賣一量’的判斷 進入時候提醒

2.1 買一量,大于、小于 多少時,提示買入賣出

2.2 賣一量,大于、小于 多少時,提示買入賣出

2.3 漲幅計算

行動效果圖:

自學python 一個簡單的股票工具,源代碼分享

後面是源代碼:

#設定
from urllib import request
import re
print('程式啟動中。。。')
#url_input = input('輸入代碼(sh600593,sz000725,sz000630):')
#print(url_input)
n = 10 #條件觸發時提醒次數
#input0 = input('新的一天開始***理性交易***拒絕沖動***加油!按任意鍵同意 開始交易:')
print('新的一天開始***理性交易***拒絕沖動***加油!')
print('新的一天開始***理性交易***拒絕沖動***加油!')
print('新的一天開始***理性交易***拒絕沖動***加油!重要是事情說三遍')

#安全區間定義
#注意區間定義
#賣白菜定義

#功能區
while True:
    url0 = request.urlopen('http://hq.sinajs.cn/list=sh600593', timeout=60)  # 設定監控對象
    read_url0 = url0.readline().decode('GB18030')

    url1 = request.urlopen('http://hq.sinajs.cn/list=sz000630', timeout=60)  # 設定監控對象
    read_url1 = url1.readline().decode('GB18030')

    url2 = request.urlopen('http://hq.sinajs.cn/list=sz000725', timeout=60)  # 設定監控對象
    read_url2 = url2.readline().decode('GB18030')

    #print('程式運作中。。。')

    #print(b)
    c = re.split(r'[;,\s]\s*', read_url0)
    d = re.split(r'[;,\s]\s*', read_url1)
    e = re.split(r'[;,\s]\s*', read_url2)
    url0_buy0 = float(c[12])  # 買一
    url1_buy0 = float(d[12])  # 買一
    url2_buy0 = float(e[12])  # 買一

    #資料定義區#資料定義區#資料定義區#資料定義區#資料定義區#資料定義區#資料定義區#資料定義區#資料定義區

      #name = print(c[1])     #股票名稱
   # buy0 = float(c [12])#買一
    buy1 = float(c [14]) #買二
    buy2 = float(c [16]) #買三
    buy3 = float(c [18]) #買四
    buy4 = float(c [20])  #買五
#print(buy0,buy1,buy2,buy3,buy4)
    sell0 = float(c[22])    #賣一
    sell1 = float(c[24])    #賣一
    sell2 = float(c[26])    #賣一
    sell3 = float(c[28])    #賣一
    sell4 = float(c[30])    #賣一
#print(sell0,sell1,sell2,sell3,sell4)
    buy0_qty = float(c [11])  / 100 #買一量
    buy1_qty = float(c [13])  / 100  #買二量
    buy2_qty = float(c [15])  / 100 #買三量
    buy3_qty = float(c [17])  / 100#買四量
    buy4_qty = float(c [19])  / 100#買五量
#print(buy0,buy1,buy2,buy3,buy4)
    sell0_qty = float(c [21])  / 100 #賣一量
    sell1_qty = float(c [23])  / 100  #賣二量
    sell2_qty = float(c [25])  / 100 #賣三量
    sell3_qty = float(c [27])  / 100#賣四量
    sell4_qty = float(c [29])  / 100#賣五量
#print(sell0,sell1,sell2,sell3,sell4)
#print('買一價格:',buy0,'買一量:',buy0_qty)
    #input('啟動完成,程式運作中。。。:')
    time = c[32]
    #time0 = c[33]
    #設定提醒條件,函數體
    # 漲幅計算fluctuate = (num - get) /get*100
    def fluctuate(num0, num1):  # 定義函數 num0 買一價 num1 昨收價
        if num0 > 0 and num1 > 0:
            return (num0 - num1) / num0 * 100  # 加入計算目前漲跌幅(買一價-昨收盤價)/買一價

        else:
            return 'error'

    # test = fluctuate(11,10) #函數測試
    # print('上漲',test,'%')  #函數測試
    #正常波動區間提醒
    closing_url0 = float(c[3])   #昨收價
    closing_url1 = float(d[3])   #昨收價
    closing_url2 = float(e[3])   #昨收價
    url0_buy0 = float(c[12])  # 買一
    url1_buy0 = float(d[12])  # 買一
    url2_buy0 = float(e[12])  # 買一

    warning_c = fluctuate(url0_buy0,closing_url0) #設定第一個股票 相對昨收價的漲幅, 保留兩個位小數 機關%
    warning_d = fluctuate(url1_buy0,closing_url1)  # 設定第一個股票 相對昨收價的漲幅, 保留兩個位小數 機關%
    warning_e = fluctuate(url2_buy0,closing_url2)  # 設定第一個股票 相對昨收價的漲幅, 保留兩個位小數 機關%
    warning0_out = ('%.2f' % warning_c,'%','%.2f' % warning_d,'%','%.2f' % warning_e,'%')
    #print(warning0_out)

    #預警設定
        #1.1 相對昨收價的下負兩個點波動 提示正常區間運作中
        #1.2 注意區間
        #1.3 賣白菜區間
    # 1.1 相對昨收價的下負兩個點波動 提示正常區間運作中


    #輸出顯示設定  輸出目前名稱 價格和漲幅
    print('大連聖亞',url0_buy0,'漲跌','%.2f' % warning_c,'%','銅陵有色',url1_buy0,'漲跌','%.2f' % warning_d,'%','京東方A', url2_buy0, '漲跌', '%.2f' % warning_e, '%','更新時間',time)

           

繼續閱讀