Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
quant-wiki
提交
598fe00b
Q
quant-wiki
项目概览
OpenDocCN
/
quant-wiki
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
quant-wiki
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
598fe00b
编写于
7月 04, 2018
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tech metric
上级
2500d221
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
100 addition
and
1 deletion
+100
-1
README.md
README.md
+1
-1
技术/指标/README.md
技术/指标/README.md
+99
-0
未找到文件。
README.md
浏览文件 @
598fe00b
# Quant Wiki 计划
+
技术
分析
篇
+
技术篇
+
指标
+
模型
+
策略
...
...
技术/指标/README.md
0 → 100644
浏览文件 @
598fe00b
# 技术指标
这里是一些常见的技术指标。
这些指标不能单独使用,可以用于组成策略,或者用作模型的特征。
## SMA(简单移动平均)
简单移动平均就是最近 N 天的值之和。一般认为它是一种去噪的手段,去噪之后的值是实际值。
$SMA(t,n) =
\f
rac{x(t) + x(t-1) +
\c
dots + x(t-n+1)}{n}$
```
py
def
sma
(
arr
,
wnd
):
res
=
[]
for
i
in
range
(
0
,
len
(
arr
)
-
wnd
+
1
):
res
.
append
(
arr
[
i
:
i
+
wnd
].
mean
())
return
np
.
asarray
(
res
)
```
## EMA(指数移动平均)
EMA 也是一种移动平均,它会给最近的数值较大的权重。
要注意,EMA 的窗口并不是停止的位置,窗口之外的值也占权重。数组计算 EMA 之后长度是不变的。
$EMA(t,n) =
\a
lpha x(t) + (1-
\a
lpha)x(t-1)$
$
\a
lpha =
\f
rac{2}{n+1}$
$EMA(1, n) = x(1)$
```
py
def
ema
(
arr
,
wnd
):
alpha
=
2
/
(
wnd
+
1
)
res
=
arr
.
copy
().
astype
(
float
)
for
i
in
range
(
1
,
len
(
arr
)):
res
[
i
]
=
alpha
*
res
[
i
]
+
(
1
-
alpha
)
*
res
[
i
-
1
]
return
res
```
## BOLL(布林带)
布林带有两条,上布林带是移动均值加两倍移动标准差,下布林带是移动均值减两倍移动标准差。
$BOLL(t, n) = SMA(t, n)
\p
m 2MSD(t, n)$
```
py
def
msd
(
arr
,
wnd
):
res
=
[]
for
i
in
range
(
0
,
len
(
arr
)
-
wnd
+
1
):
res
.
append
(
arr
[
i
:
i
+
wnd
].
std
())
return
np
.
asarray
(
res
)
def
boll
(
arr
,
wnd
):
return
sma
(
arr
,
wnd
)
+
2
*
msd
(
arr
,
wnd
),
\
sma
(
arr
,
wnd
)
-
2
*
msd
(
arr
,
wnd
)
```
## ROC(变动率)
也叫简单收益率。其实就是当天的值减去 N 天前的值,反映周期性。
$ROC(t, n) =
\f
rac{x(t) - x(t - n)}{x(t - n)}$
```
py
def
roc
(
arr
,
wnd
):
curr
=
arr
[
wnd
:]
prev
=
arr
[:
-
wnd
]
return
(
curr
-
prev
)
/
prev
```
此外,也存在对数收益率的变体。由于对数收益率具有可加性,在一些场合中更加方便。
$
\f
rac{x(t) - x(t-n)}{x(t-n)}
\\
=
\f
rac{x(t)}{x(t-n)} - 1
\\
\s
im
\l
og(
\f
rac{x(t)}{x(t-n)})
\\
=
\l
og(x(t)) -
\l
og(x(t-n))$
```
py
def
log_roc
(
arr
,
wnd
):
return
np
.
log
(
arr
[
wnd
:])
-
np
.
log
(
arr
[:
-
wnd
])
```
## RSI(相对强弱指标)
RSI 是 N 天内的涨幅的比例。
RSI 的值总是在 0 到 100 之间,正常情况下在 30 到 70 之间。
$RSI(t, n) =
\f
rac{max(
\D
elta x(t),0)+
\c
dots+max(
\D
elta x(t-n+2),0)}{|
\D
elta x(t)|+
\c
dots+|
\D
elta x(t-n+2)|}$
$
\D
elta x(t) = x(t) - x(t - 1)$
$RSI(t, n) =
\f
rac{SMA(max(ROC(t, 1), 0), n-1)}{SMA(abs(ROC(t, 1)), n-1)}$
```
py
def
rsi
(
arr
,
wnd
):
roc1
=
roc
(
arr
,
1
)
return
sma
(
np
.
fmax
(
roc1
,
0
),
wnd
-
1
)
/
\
sma
(
np
.
abs
(
roc1
),
wnd
-
1
)
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录