#雙**分析 針對茅台**
#1、使用tushare包獲取歷史**資料
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
df = ts.get_k_data("600519",start="1999-01-01")
df.to_csv("600519.csv")
df = pd.read_csv("600519.csv",index_col= "date",parse_dates=["date"])[['open','close','high','low']]
df#2、使用pandas包計算該**歷史的5日**和30日**
df['ma5'] = np.nan
df['ma30'] = np.nan
#5日**方法一
for i in range(4,len(df)):
df.loc[df.index[i],"ma5"] = df['close'][i-4:i+1].mean()
df#5日**方法二
df['ma5'] = df['open'].rolling(5).mean()
df#30日**方法一
for i in range(29,len(df)):
df.loc[df.index[i],"ma30"] = df['close'][i-29:i+1].mean() #30日**
df#30日**方法二
df['ma30'] = df['open'].rolling(30).mean()
df#3、使用matplotlib包視覺化歷史資料的**價和兩條**
df = df[:100] #前100條資料
df[['close','ma5','ma30']].plot()
plt.show()
#4、分析輸出所有金叉日期和死叉日期
#方法一
df = df.dropna()
df = df['2010-01-01':]
golden_cross =
death_cross =
for i in range(1,len(df)):
if df['ma5'][i] >= df['ma30'][i] and df['ma5'][i-1] < df['ma30'][i-1]:
if df['ma5'][i] <= df['ma30'][i] and df['ma5'][i-1] > df['ma30'][i-1]:
#方法二
df = df.dropna()
df = df['2010-01-01':]
golden_cross =
death_cross =
sr1 = df['ma5'] < df['ma30']
sr2 = df['ma5'] >= df['ma30']
death_cross = df[sr1 & sr2.shift(1)].index #死叉
death_cross
golden_cross = df[~(sr1 | sr2.shift(1))].index #金叉
#假如從2023年1月1日開始,初始資金為十萬,金叉盡量**,死叉全部賣出,則到今天為止,**收益如何?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
df = ts.get_k_data("600519",start="1999-01-01")
df.to_csv("600519.csv")
df = pd.read_csv("600519.csv",index_col= "date",parse_dates=["date"])[['open','close','high','low']]
df['ma5'] = np.nan
df['ma30'] = np.nan
df['ma5'] = df['open'].rolling(5).mean()
df['ma30'] = df['open'].rolling(30).mean()
df = df.dropna()
df = df['2010-01-01':]
golden_cross =
death_cross =
sr1 = df['ma5'] < df['ma30']
sr2 = df['ma5'] >= df['ma30']
death_cross = df[sr1 & sr2.shift(1)].index
golden_cross = df[~(sr1 | sr2.shift(1))].index
first_money = 100000
money = first_money
hold = 0 #持有多少股
sr1 = pd.series(1,index=golden_cross)
sr2 = pd.series(0,index=death_cross)
for i in range(0,len(sr)):
p = df['open'][sr.index[i]]
if sr.iloc[i] == 1:
#金叉buy = (money // (100*p))
hold += buy*100
money -= buy*100*p
else:
money += hold * p
hold = 0
p = df['open'][-1]
now_money = hold * p + money
print(now_money - first_money)
#結果為930470.2999999999
金融量化分析
是股份公司發給出資人的一種憑證,的持有者就是股份公司的股東。上市 ipo 企業通過 交易所公開向社會增發 以募集資金 的作用 的分類 按上市地區分類 市場的構成 影響股價的因素 買賣 a股 交易日 周一到周五 非法定節假日和交易所休市日 漲停 跌停限制 購買方式 市價單 限價單 金叉 短期 上穿長期...
資料分析 金融量化分析
1.什麼是資料分析?資料的獲取 清洗 轉換 建模 2.分類與回歸 分類是有監督的,有標籤 應用 信用卡申請人風險評估,公司業務增長量 房價 原理 分類 將資料對映到預先定義的群或者類,演算法要求基於資料屬性值來定義類別,把具有某些特徵的資料項對映到給定的某個類別上 回歸 用屬性的歷史資料 未來趨勢,...
量化分析入門
量化分析是乙個充滿魔力的詞彙。前段時間淘了兩本書,簡單研究一下。乙個是雅虎平台的資料。from pandas datareader import data as dt 獲取中國平安的日線 資料 start date 2020 01 01 end date 2020 03 20 zgpa dt.dat...