⑴ 想要通過python實時抓取同花順股票價格,如何做到
你可以使用Python中的一些庫來實現實時抓取股票價格,比如`requests`來獲取網頁內容,`BeautifulSoup`來解析HTML,以及`websocket-client`來與同花順軟體的 WebSocket 介面通信。同樣,你也可以通過一些網站的 API 來實時獲取股票價格數據。
一個基本的示例代碼,用於使用 WebSocket 獲取同花順軟體的股票價格數據:
```python
import websocket
import json
def on_message(ws, message):
data = json.loads(message)
if 'data' in data and data['subtype'] == 'push':
for item in data['data']:
if 'market' in item and item['market'] == 'SH':
print(f"股票代碼:{item['code']}, 當前價格:{item['now']}")
# 在這里你可以對數據進行進一步處理或者保存到資料庫中
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
ws.send('{"event":"addChannel","channel":"ths_fast_hq_ydy"}')
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://data.gtimg.cn/conn", on_message = on_message, on_error = on_error, on_close = on_close)
ws.on_open = on_open
ws.run_forever()
```
這個例子中,使用了 `websocket` 庫來連接同花順軟體的 WebSocket 介面,並在收到消息時解析數據並輸出股票代碼和當前價格。你可以根據需要對數據進行進一步處理,比如保存到資料庫中。
另外,有些網站提供了 API 介面來獲取實時股票價格數據,你也可以嘗試使用這些 API 介面來獲取數據。
⑵ Python實現股利貼現模型DDM的計算(股利折現)
股利貼現模型(Dividend Discount Model,DDM)是評估公司(股票)價值的基本方法,由威廉姆斯和戈登在1938年提出。該模型認為,股票的價值等於預期未來股利現值的和。
### 零增長模型
在零增長模型中,假設公司未來年度的每股股利保持不變。公式為:
股票理論價格 = 期望股利 / 預期報酬率
這里,股利理論價格(P)等於年化每股紅利(D1)除以預期報酬率(R)。
在Python中計算此模型,需要輸入最新收盤價(P0),成本等參數。
### 穩定增長模型
穩定增長模型假設公司未來年度的每股股利以穩定增長。公式為:
股票理論價格 = [期望股利 * (1 + 報酬增長率)] / (預期報酬率 - 報酬增長率)
在Python中計算時,除了輸入最新收盤價(P0),還需考慮預期報酬率(R)和增長率(g)。
### 階段增長模型
階段增長模型考慮公司未來年度的每股股利分階段增長。模型分為超常增長階段、過渡增長階段和穩定增長階段。
計算此模型時,需要輸入各階段的增長率、年限以及當前每股紅利等參數。Python代碼能幫助完成這些復雜計算。
每種模型都有其應用場景,選擇適合的模型能更准確地評估股票價值。掌握股利貼現模型,能為投資決策提供有力依據。
⑶ 如何用python代碼判斷一段范圍內股票最高點
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
登錄
python+聚寬 統計A股市場個股在某時間段的最高價、最低價及其時間 原創
2019-10-12 09:20:50
開拖拉機的大寶
碼齡4年
關注
使用工具pycharm + 聚寬數據源,統計A股市場個股在某時間段的最高價、最低價及其時間,並列印excel表格輸出
from jqdatasdk import *
import pandas as pd
import logging
import sys
logger = logging.getLogger("logger")
logger.setLevel(logging.INFO)
# 聚寬數據賬戶名和密碼設置
auth('username','password')
#獲取A股列表,包括代號,名稱,上市退市時間等。
security = get_all_securities(types=[], date=None)
pd2 = get_all_securities(['stock'])
# 獲取股票代號
stocks = list(get_all_securities(['stock']).index)
# 獲取股票名稱
stocknames = pd2['display_name']
start_date = '2015-01-01'
end_date = '2018-12-31'
def get_stocks_high_low(start_date,end_date):
# 新建表,表頭列
# 為:"idx","stockcode","stockname","maxvalue","maxtime","lowvalue","lowtime"
result = pd.DataFrame(columns=["idx", "stockcode", "stockname", "maxvalue", "maxtime", "lowvalue", "lowtime"])
for i in range(0,stocks.__len__()-1):
pd01 = get_price(stocks[i], start_date, end_date, frequency='daily',
fields=None, skip_paused=False,fq='pre', count=None)
result=result.append(pd.DataFrame({'idx':[i],'stockcode':[stocks[i]],'stockname':
[stocknames[i]],'maxvalue':[pd01['high'].max()],'maxtime':
[pd01['high'].idxmax()],'lowvalue': [pd01['low'].min()], 'lowtime':
[pd01['low'].idxmin()]}),ignore_index=True)
result.to_csv("stock_max_min.csv",encoding = 'utf-8', index = True)
logger.warning("執行完畢!
⑷ 使用 Python 獲取股票歷史資金流向數據(大單、超大單、主力流入等)
市場主導力量在股市中尤為重要,理解主力交易數據與股價變動之間的關系對於投資者至關重要。為了深入研究這一領域,本文將展示如何利用Python技術,通過爬蟲手段獲取A股市場的歷史資金流向數據(包括大單、小單、超大單、主力流入等信息)。這些數據將被保存為表格文件,為後續的分析提供便利。
在開始之前,請確保您的計算機已安裝Python 3環境。若尚未安裝,可參考相應教程進行安裝。此外,您需要安裝兩個庫:pandas和requests。通過命令行(或終端工具)執行如下代碼以安裝:
輸入命令並按Enter鍵執行,直至出現「successfully」提示。
以下代碼展示了獲取單只股票(股票代碼:600519)的歷史大單交易數據,並將其保存為CSV文件(文件名與股票代碼相同):
執行示例代碼後,輸出相關文字信息,生成的文件名在代碼執行目錄中,並展示文件截圖。
接下來的示例代碼演示了如何同時獲取兩只股票(代碼分別為600519和300750)的歷史大單交易數據,同樣以各自股票代碼命名CSV文件,並在代碼運行目錄生成文件。
總結,本文闡述了使用Python獲取單只及多隻股票的歷史資金流向數據,並保存為CSV文件的方法。感謝您閱讀本文,如果您對更多金融數據獲取感興趣,請關注我的金融數據獲取專欄,以獲取更多相關技巧。
⑸ Python 實現股票數據的實時抓取
編寫Python腳本實時抓取股票數據,滿足個人對實時漲跌信息的需求,無需依賴現有股票軟體。
首先,獲取滬深兩市所有上市股票數據。利用Scrapy框架,實現數據爬取並保存至TTJJ.json文件,工程清單包括新建Scrapy工程、設置user-agent文件以防止被伺服器封鎖。
爬蟲核心代碼在TTJJr中,整合找到的UserAgentMiddle代碼,改進登陸方式。同時,items模塊定義數據保存格式,pipeline實現數據處理,保存至json文件,配置細節見settings.py。
獲取實時交易數據,通過訪問新浪股票介面hq.sinajs.cn/list=(輸入股票代碼)獲取更新信息,僅在開盤至收盤期間有效,其他時間顯示為前一日收盤價。簡化邏輯,篩選出漲幅最高的10隻股票,代碼如下。
運行結果展示獲取的數據,包含股票代碼與當前漲幅,顯示每行均為漲幅最高的10隻股票。使用結果如圖所示,反映了實時抓取的股票實時數據信息。
通過以上步驟,實現Python腳本自動抓取股票實時數據,滿足個人需求,記錄了一段利用編程技術獲取實時股市信息的經歷。
⑹ python 設計一個名為Stock的類來表示一個公司的股票
class Stock():
def __init__(self):
self.__no = ""
self.__name = ""
self.previousClosingPrice = 0
self.currentPrice = 0
def creatStock(self,stockInfo):
self.__no = stockInfo[0]
self.__name = stockInfo[1]
self.previousClosingPrice = stockInfo[2]
self.currentPrice = stockInfo[3]
def getStockName(self):
return(self.__name)
def getStockNo(self):
return(self.__no)
def setPreviousClosingPrice(self,price):
self.previousClosingPrice = price
def getPreviousClosingPrice(self):
return(self.previousClosingPrice)
def setCurrentPrice(self,price):
self.currentPrice = price
def getCurrentPrice(self):
return(self.currentPrice)
def getChangePercent(self):
return((self.currentPrice - self.previousClosingPrice)/self.currentPrice)
stock = Stock()
stock.creatStock(["601318","中國平安",63.21,64.39])
print(stock.getStockNo())
print(stock.getStockName())
print(stock.getCurrentPrice())
print(stock.getPreviousClosingPrice())