feat: 首次提交,包含多因子状态机量化策略及 TG 机器人监听服务
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
import requests
|
||||
import pandas as pd
|
||||
|
||||
CN_CODE_TYPE = {
|
||||
"600":'sh',
|
||||
"601":'sh',
|
||||
"603":'sh',
|
||||
"605":'sh',
|
||||
"000":'sz',
|
||||
"300":'sz',
|
||||
"688":'sh',
|
||||
"002":'sz',
|
||||
"50":"sh",
|
||||
"51":"sh",
|
||||
"52":"sh",
|
||||
"16":"sz",
|
||||
"15":"sz",
|
||||
"18":"sz"
|
||||
}
|
||||
|
||||
|
||||
|
||||
def get_history_k(code, start_date='19700101', end_date=None):
|
||||
|
||||
if '.' in code:
|
||||
code = code.split('.')[0]
|
||||
|
||||
stock_code = ''
|
||||
|
||||
if code[0:2] in CN_CODE_TYPE:
|
||||
stock_code = code + '.' + CN_CODE_TYPE[code[0:2]]
|
||||
elif code[0:3] in CN_CODE_TYPE:
|
||||
stock_code = code + '.' + CN_CODE_TYPE[code[0:3]]
|
||||
print(stock_code)
|
||||
if stock_code != '':
|
||||
|
||||
url = "https://api.zhituapi.com/hs/history/%s/d/f?token=6E0E86BC-15AD-4275-8A95-B02D168D63C1&st=%s"%(stock_code, start_date)
|
||||
|
||||
if end_date is not None:
|
||||
url += "&end_date=%s"%(end_date)
|
||||
|
||||
response = requests.get(url)
|
||||
|
||||
data = response.json()
|
||||
print(data)
|
||||
df = pd.DataFrame(data)
|
||||
|
||||
df['t'] = df['t'].apply(pd.to_datetime)
|
||||
df.rename({'t': 'date', 'o': 'open', 'h': 'high', 'l': 'low', 'c': 'close', 'v': 'volume', 'a': 'amount'},
|
||||
axis='columns', inplace=True)
|
||||
df = df[['date', 'open', 'high', 'low', 'close', 'volume', 'amount']].set_index('date')
|
||||
|
||||
else:
|
||||
df = pd.DataFrame()
|
||||
|
||||
|
||||
return df
|
||||
|
||||
|
||||
def get_5min_k(code, start_date='19700101', end_date=None):
|
||||
stock_code = ''
|
||||
|
||||
if code[0:2] in CN_CODE_TYPE:
|
||||
stock_code = code + '.' + CN_CODE_TYPE[code[0:2]]
|
||||
elif code[0:3] in CN_CODE_TYPE:
|
||||
stock_code = code + '.' + CN_CODE_TYPE[code[0:3]]
|
||||
|
||||
if stock_code != '':
|
||||
|
||||
url = "https://api.zhituapi.com/hs/history/%s/5/n?token=6E0E86BC-15AD-4275-8A95-B02D168D63C1&st=%s"%(stock_code, start_date)
|
||||
|
||||
if end_date is not None:
|
||||
url += "&end_date=%s"%(end_date)
|
||||
|
||||
response = requests.get(url)
|
||||
|
||||
data = response.json()
|
||||
|
||||
df = pd.DataFrame(data)
|
||||
df['t'] = df['t'].apply(pd.to_datetime)
|
||||
df.rename({'t': 'date', 'o': 'open', 'h': 'high', 'l': 'low', 'c': 'close', 'v': 'volume', 'a': 'amount'},
|
||||
axis='columns', inplace=True)
|
||||
df = df[['date','close', 'volume']].set_index('date')
|
||||
|
||||
else:
|
||||
df = pd.DataFrame()
|
||||
|
||||
|
||||
return df
|
||||
Reference in New Issue
Block a user