python金融量化分析學習

2022-07-31 07:21:13 字數 2971 閱讀 8847

#雙**分析 針對茅台**

#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...