Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zengbin93
czsc
提交
e987ddfc
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,发现更多精彩内容 >>
提交
e987ddfc
编写于
8月 12, 2019
作者:
Z
zengbin93
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add macd view
上级
ba658312
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
121 addition
and
13 deletion
+121
-13
chan/web/vis_kline.py
chan/web/vis_kline.py
+121
-13
未找到文件。
chan/web/vis_kline.py
浏览文件 @
e987ddfc
...
...
@@ -40,11 +40,10 @@ def kline_viewer(ts_code, freq, end_date, asset='E', show=True):
for
col
in
[
'open'
,
'close'
,
'high'
,
'low'
]:
kline_raw
[
col
]
=
kline_raw
[
col
].
apply
(
round
,
args
=
(
2
,))
# kline_chan = find_xd(find_bi(preprocess(kline_raw)))
kline_chan
=
find_bi
(
find_fx
(
preprocess
(
kline_raw
)))
kline_chan
=
kline_chan
[[
'dt'
,
'fx_mark'
,
'fx'
,
'bi_mark'
,
'bi'
]]
kline_chan
=
find_xd
(
find_bi
(
find_fx
(
preprocess
(
kline_raw
))))
kline_chan
=
kline_chan
[[
'dt'
,
'fx'
,
'fx_mark'
,
'bi'
,
'bi_mark'
,
'xd'
,
'xd_mark'
]]
kline_raw
=
kline_raw
.
merge
(
kline_chan
,
how
=
'left'
,
on
=
'dt'
)
# kline_raw = kline_raw.merge(kline_chan, how='right', on='dt')
start_dt
=
kline_raw
.
iloc
[
0
][
"dt"
]
end_dt
=
kline_raw
.
iloc
[
-
1
][
"dt"
]
...
...
@@ -73,7 +72,7 @@ def kline_viewer(ts_code, freq, end_date, asset='E', show=True):
),
),
legend_opts
=
opts
.
LegendOpts
(
is_show
=
True
,
pos_top
=
10
,
pos_left
=
"center"
is_show
=
True
,
pos_top
=
5
,
pos_left
=
"center"
),
datazoom_opts
=
[
opts
.
DataZoomOpts
(
...
...
@@ -87,7 +86,7 @@ def kline_viewer(ts_code, freq, end_date, asset='E', show=True):
is_show
=
True
,
xaxis_index
=
[
0
,
1
],
type_
=
"slider"
,
pos_top
=
"
9
0%"
,
pos_top
=
"
6
0%"
,
range_start
=
0
,
range_end
=
100
,
),
...
...
@@ -163,10 +162,37 @@ def kline_viewer(ts_code, freq, end_date, asset='E', show=True):
linestyle_opts
=
opts
.
LineStyleOpts
(
width
=
2
,
opacity
=
0.5
),
label_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
)
.
add_yaxis
(
series_name
=
"MA120"
,
y_axis
=
kline_raw
.
ma120
.
values
.
tolist
(),
is_smooth
=
True
,
is_symbol_show
=
False
,
is_hover_animation
=
False
,
linestyle_opts
=
opts
.
LineStyleOpts
(
width
=
2
,
opacity
=
0.5
),
label_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
)
.
add_yaxis
(
series_name
=
"MA250"
,
y_axis
=
kline_raw
.
ma250
.
values
.
tolist
(),
is_smooth
=
True
,
is_symbol_show
=
False
,
is_hover_animation
=
False
,
linestyle_opts
=
opts
.
LineStyleOpts
(
width
=
2
,
opacity
=
0.5
),
label_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
)
.
set_global_opts
(
xaxis_opts
=
opts
.
AxisOpts
(
type_
=
"category"
))
)
chan
=
(
chan_fx
=
(
Scatter
(
init_opts
=
opts
.
InitOpts
(
theme
=
ThemeType
.
WHITE
))
.
add_xaxis
(
xaxis_data
=
x_data
)
.
add_yaxis
(
"分型标记"
,
kline_raw
.
fx
.
values
.
tolist
())
.
set_global_opts
(
visualmap_opts
=
opts
.
VisualMapOpts
(
type_
=
"size"
,
max_
=
150
,
min_
=
20
),
)
)
chan_bi
=
(
Scatter
(
init_opts
=
opts
.
InitOpts
(
theme
=
ThemeType
.
WHITE
))
.
add_xaxis
(
xaxis_data
=
x_data
)
.
add_yaxis
(
"笔标记"
,
kline_raw
.
bi
.
values
.
tolist
())
...
...
@@ -175,6 +201,86 @@ def kline_viewer(ts_code, freq, end_date, asset='E', show=True):
)
)
chan_xd
=
(
Scatter
(
init_opts
=
opts
.
InitOpts
(
theme
=
ThemeType
.
WHITE
))
.
add_xaxis
(
xaxis_data
=
x_data
)
.
add_yaxis
(
"线段标记"
,
kline_raw
.
xd
.
values
.
tolist
())
.
set_global_opts
(
visualmap_opts
=
opts
.
VisualMapOpts
(
type_
=
"size"
,
max_
=
150
,
min_
=
20
),
)
)
# Kline And Line
kline
=
kline
.
overlap
(
line
)
kline
=
kline
.
overlap
(
chan_fx
)
kline
=
kline
.
overlap
(
chan_bi
)
kline
=
kline
.
overlap
(
chan_xd
)
# ==========================================================
macd_line
=
(
Line
(
init_opts
=
opts
.
InitOpts
(
theme
=
ThemeType
.
WHITE
))
.
add_xaxis
(
xaxis_data
=
x_data
)
.
add_yaxis
(
series_name
=
"DEA"
,
y_axis
=
kline_raw
[
'dea'
].
values
.
tolist
(),
is_smooth
=
True
,
is_symbol_show
=
False
,
is_hover_animation
=
False
,
linestyle_opts
=
opts
.
LineStyleOpts
(
width
=
2
,
opacity
=
0.5
),
label_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
)
.
add_yaxis
(
series_name
=
"DIFF"
,
y_axis
=
kline_raw
[
'diff'
].
values
.
tolist
(),
is_smooth
=
True
,
is_symbol_show
=
False
,
is_hover_animation
=
False
,
linestyle_opts
=
opts
.
LineStyleOpts
(
width
=
2
,
opacity
=
0.5
),
label_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
)
.
set_global_opts
(
xaxis_opts
=
opts
.
AxisOpts
(
type_
=
"category"
))
)
macd_bar
=
(
Bar
(
init_opts
=
opts
.
InitOpts
(
theme
=
ThemeType
.
LIGHT
))
.
add_xaxis
(
xaxis_data
=
x_data
)
.
add_yaxis
(
series_name
=
"Volume"
,
yaxis_data
=
kline_raw
.
macd
.
values
.
tolist
(),
xaxis_index
=
1
,
yaxis_index
=
1
,
label_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
)
.
set_global_opts
(
xaxis_opts
=
opts
.
AxisOpts
(
type_
=
"category"
,
is_scale
=
True
,
grid_index
=
1
,
boundary_gap
=
False
,
axisline_opts
=
opts
.
AxisLineOpts
(
is_on_zero
=
False
),
axistick_opts
=
opts
.
AxisTickOpts
(
is_show
=
False
),
splitline_opts
=
opts
.
SplitLineOpts
(
is_show
=
False
),
axislabel_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
split_number
=
20
,
min_
=
"dataMin"
,
max_
=
"dataMax"
,
),
yaxis_opts
=
opts
.
AxisOpts
(
grid_index
=
1
,
is_scale
=
True
,
split_number
=
2
,
axislabel_opts
=
opts
.
LabelOpts
(
is_show
=
False
),
axisline_opts
=
opts
.
AxisLineOpts
(
is_show
=
False
),
axistick_opts
=
opts
.
AxisTickOpts
(
is_show
=
False
),
splitline_opts
=
opts
.
SplitLineOpts
(
is_show
=
False
),
),
legend_opts
=
opts
.
LegendOpts
(
is_show
=
False
),
)
)
macd
=
macd_line
.
overlap
(
macd_bar
)
# ==========================================================
bar
=
(
Bar
(
init_opts
=
opts
.
InitOpts
(
theme
=
ThemeType
.
LIGHT
))
.
add_xaxis
(
xaxis_data
=
x_data
)
...
...
@@ -212,16 +318,18 @@ def kline_viewer(ts_code, freq, end_date, asset='E', show=True):
)
)
# Kline And Line
kline
=
kline
.
overlap
(
line
)
kline
=
kline
.
overlap
(
chan
)
# Grid Overlap + Bar
grid_chart
=
Grid
(
opts
.
InitOpts
(
width
=
"1
4
00px"
,
height
=
"800px"
,
theme
=
ThemeType
.
WHITE
))
grid_chart
=
Grid
(
opts
.
InitOpts
(
width
=
"1
5
00px"
,
height
=
"800px"
,
theme
=
ThemeType
.
WHITE
))
grid_chart
.
add
(
kline
,
grid_opts
=
opts
.
GridOpts
(
pos_left
=
"8%"
,
pos_right
=
"8%"
,
height
=
"60%"
pos_left
=
"8%"
,
pos_right
=
"8%"
,
height
=
"50%"
),
)
grid_chart
.
add
(
macd
,
grid_opts
=
opts
.
GridOpts
(
pos_left
=
"8%"
,
pos_right
=
"8%"
,
pos_top
=
"60%"
,
height
=
"16%"
),
)
grid_chart
.
add
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录