目錄標題
- 內容
- 說明
- 解題
- 量化金融的含義
- 量化交易策略
- 點擊直接資料領取
內容
1·解釋量化金融的含義,調研并給出至少 5種量化交易的策略或方法
2.完成Tushare Pro 的安裝、注冊,獲取自己的 Token,查閱網站內的接口講解和示例;
3通過Python 編程完成以下數據的統計:
(1)使用stock_basic 接口獲取當前所有正常上市交易的股票列表,保存到“股票列表命名的excel文件中;
(2)分別調用平安銀行、萬科至少5年歷史數據,并保存到 pingan、wanke 命名的excel 文件中,查閱為開盤價 High-最高價,Close-收盤價,Low-最低價Volume-成交量,Code-股票代碼
(3)將日期設為行索引,用收盤價作為當天價格,分別繪制平安銀行、萬科股價走勢圖;
(4)將DataFrame格式的二維股票數據表格轉換為Numpy格式的二維數組
(5)在一張畫布中繪制兩個子圖
(6)在第一個子圖中,通過 candlestick_ochl0)函數分別繪制平安銀行、萬科的K線圖,設置圖片標題為“K線圖”,分別為橫軸及縱軸添加標簽
(7)在上一步K線圖里,添加均線圖,補上5日均線和10日均線圖
(8)在第二個子圖中,繪制成交量柱狀圖
說明
這是一位粉絲的作業,雖然現在現在java使用的多。為了避免對python知識的遺忘,我來做做看。
解題
現根據這個手冊安裝注冊 https://tushare.pro/document/1?doc_id=38
ps:這個不同的結果有賬戶積分限制
量化金融的含義
量化金融是應用數學、統計學和計算機科學方法來解決金融問題的學科。它涉及到構建數學模型來分析市場行為、評估風險、定價證券、制定投資策略等。量化分析師通常使用歷史數據和復雜的算法來預測市場趨勢和價值。
量化交易策略
動量交易:基于歷史價格和/或成交量的趨勢來買賣證券。
配對交易:找到兩個歷史上價格走勢相關的股票,當它們的價格偏離時買入一個賣出另一個,等待它們回歸正常關系。
算法交易:使用算法和數學模型來執行大量訂單,優化交易成本。
統計套利:識別并利用市場價格不一致的機會。
因子投資:基于預先確定的風險因素(如價值、規模、動量)來選擇股票。
import tushare as ts
import pandas as pd# 設置Tushare token,您需要替換為您自己的token
token = 'YOUR_TUSHARE_TOKEN'
ts.set_token(token)
pro = ts.pro_api()# 獲取股票列表
df_stock_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
df_stock_list.to_excel('股票列表.xlsx', index=False)
獲取平安銀行和萬科的歷史數據并保存
start_date = '20170101' # 設置開始日期
end_date = '20221231' # 設置結束日期# 獲取平安銀行的數據
df_pingan = pro.daily(ts_code='000001.SZ', start_date=start_date, end_date=end_date)
df_pingan.to_excel('pingan.xlsx', index=False)# 獲取萬科的數據
df_wanke = pro.daily(ts_code='000002.SZ', start_date=start_date, end_date=end_date)
df_wanke.to_excel('wanke.xlsx', index=False)
繪制股價走勢圖
import matplotlib.pyplot as plt
import matplotlib.dates as mdates# 為了繪圖,將日期轉換為datetime對象
df_pingan['trade_date'] = pd.to_datetime(df_pingan['trade_date'])
df_wanke['trade_date'] = pd.to_datetime(df_wanke['trade_date'])plt.figure(figsize=(10, 6))
plt.subplot(2, 1, 1)
plt.plot(df_pingan['trade_date'], df_pingan['close'], label='平安銀行')
plt.title('平安銀行股價走勢')
plt.xlabel('日期')
plt.ylabel('收盤價')
plt.legend()plt.subplot(2, 1, 2)
plt.plot(df_wanke['trade_date'], df_wanke['close'], label='萬科')
plt.title('萬科股價走勢')
plt.xlabel('日期')
plt.ylabel('收盤價')
plt.legend()plt.tight_layout()
plt.show()
DataFrame轉換為Numpy數組
import numpy as np# 轉換為Numpy數組
pingan_array = df_pingan.to_numpy()
wanke_array = df_wanke.to_numpy()
由于繪制K線圖。以下是一個簡化
import mplfinance as mpf# 設置日期為索引
df_pingan.set_index('trade_date', inplace=True)
df_wanke.set_index('trade_date', inplace=True)# 繪制平安銀行的K線圖
mpf.plot(df_pingan, type='candle', mav=(5, 10), volume=True, title='平安銀行K線圖', style='charles')# 繪制萬科的K線圖(在新窗口)
mpf.plot(df_wanke, type='candle', mav=(5, 10), volume=True, title='萬科K線圖', style='charles')
點擊直接資料領取
如果你在學習python或者Java哪怕是C遇到問題都可以來給我留言,因為在學習初期新手總會走很多彎路,這個時候如果沒有有個人來幫一把的話很容易就放棄了。身邊很多這樣的例子許多人學著學著就轉了專業換了方向,不僅是自身問題還是沒有正確的學習。所以作為一個過來人我希望有問題給我留言,說不上是幫助就是順手敲幾行字的事情。
這里有python,Java學習資料還有有有趣好玩的編程項目,更有難尋的各種資源。反正看看也不虧。