Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zengbin93
czsc
提交
30b5935d
C
czsc
项目概览
zengbin93
/
czsc
通知
23
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
czsc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
30b5935d
编写于
8月 04, 2019
作者:
Z
zengbin93
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add start_date
上级
35acbbdd
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
4 deletion
+30
-4
chan/a/utils.py
chan/a/utils.py
+30
-4
未找到文件。
chan/a/utils.py
浏览文件 @
30b5935d
# coding: utf-8
from
datetime
import
datetime
,
timedelta
import
tushare
as
ts
from
..utils
import
ma
,
macd
,
boll
...
...
@@ -17,13 +18,13 @@ def _cal_indicators(kline, indicators):
return
kline
def
get_kline
(
ts_code
,
start_date
,
end_dat
e
,
freq
=
'30min'
,
asset
=
'E'
,
indicators
=
(
"ma"
,
"macd"
)):
def
get_kline
(
ts_code
,
end_date
,
start_date
=
Non
e
,
freq
=
'30min'
,
asset
=
'E'
,
indicators
=
(
"ma"
,
"macd"
)):
"""获取指定级别的前复权K线
:param ts_code: str
股票代码,如 600122.SH
:param freq: str
K线级别,可选值 [1min, 5min, 15min, 30min, D, M, Y]
K线级别,可选值 [1min, 5min, 15min, 30min,
60min,
D, M, Y]
:param start_date: str
日期,如 20190601
:param end_date: str
...
...
@@ -39,9 +40,34 @@ def get_kline(ts_code, start_date, end_date, freq='30min', asset='E', indicators
>>> from chan.a.utils import get_kline
>>> get_kline(ts_code='600122.SH', start_date='20190601', end_date='20190610', freq='30min')
"""
if
start_date
is
None
:
end_date
=
datetime
.
strptime
(
end_date
,
'%Y%m%d'
)
if
freq
==
'1min'
:
start_date
=
end_date
-
timedelta
(
days
=
10
)
elif
freq
==
'5min'
:
start_date
=
end_date
-
timedelta
(
days
=
20
)
elif
freq
==
'30min'
:
start_date
=
end_date
-
timedelta
(
days
=
100
)
elif
freq
==
'60min'
:
start_date
=
end_date
-
timedelta
(
days
=
200
)
elif
freq
==
'D'
:
start_date
=
end_date
-
timedelta
(
weeks
=
100
)
elif
freq
==
'W'
:
start_date
=
end_date
-
timedelta
(
weeks
=
500
)
elif
freq
==
'M'
:
start_date
=
end_date
-
timedelta
(
weeks
=
4
*
500
)
elif
freq
==
'Y'
:
start_date
=
end_date
-
timedelta
(
weeks
=
52
*
30
)
else
:
raise
ValueError
(
"'freq' value error, current value is %s, "
"optional valid values are ['1min', '5min', '30min', "
"'60min', 'D', 'W', 'M', 'Y']"
%
freq
)
start_date
=
start_date
.
date
().
__str__
().
replace
(
"-"
,
""
)
end_date
=
end_date
.
date
().
__str__
().
replace
(
"-"
,
""
)
# https://tushare.pro/document/2?doc_id=109
df
=
ts
.
pro_bar
(
ts_code
=
ts_code
,
freq
=
freq
,
start_date
=
start_date
,
end_date
=
end_date
,
df
=
ts
.
pro_bar
(
ts_code
=
ts_code
,
freq
=
freq
,
start_date
=
start_date
,
end_date
=
end_date
,
adj
=
'qfq'
,
asset
=
asset
)
# 统一 k 线数据格式为 6 列,分别是 ["symbol", "dt", "open", "close", "high", "low", "vr"]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录