Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
R
robo-dividend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wenwen.tang
robo-dividend
Commits
59b8888b
Commit
59b8888b
authored
Jan 12, 2023
by
jichao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整信号规则逻辑
parent
4e6eca43
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
17 deletions
+17
-17
config.yml
config.yml
+2
-2
ruler.py
rebalance/ruler.py
+15
-15
No files found.
config.yml
View file @
59b8888b
...
...
@@ -157,7 +157,7 @@ rebalance: # 再平衡模块
fed-threshold
:
-0.75
# fed判断阀值
right-side
:
# 市场右侧相关
rtn-days
:
5
# 计算spx回报率滚动天数,交易日
min-threshold
:
-0.0
5
# spx回报率跌破阀值
min-threshold
:
-0.0
3
# spx回报率跌破阀值
coef
:
0.95
# 计算cvar的系数
cvar-min-volume
:
30
# 计算cvar至少需要多少交易日数据
high-low-buy
:
# 高低买入相关
...
...
@@ -214,7 +214,7 @@ reports: # 报告模块相关
backtest
:
# 回测导出曹策略
exist-build
:
on
# 如果报告文件存在,是否重新构建文件
save-path
:
${EXPORT_PATH:excels}
# 导出报告文件存放路径,如果以./或者../开头,则会以执行python文件为根目录,如果以/开头,则为系统绝对路径,否则,以项目目录为根目录
file-name
:
${EXPORT_FILENAME:
241
11}
file-name
:
${EXPORT_FILENAME:
132
11}
include-report
:
# 需要导出的报告类型列表,下面的顺序,也代表了excel中sheet的顺序
# - funds-report # 基金资料
# - navs-report # 净值报告
...
...
rebalance/ruler.py
View file @
59b8888b
...
...
@@ -56,24 +56,24 @@ class LevelRebalanceRuler(RebalanceRuler):
last_signal
=
rrs
.
get_last_one
(
max_date
=
day
,
risk
=
risk
)
start
=
next_workday
(
last_signal
[
'date'
])
signals
=
{}
while
start
<=
day
:
# 检查风控信号
signals
=
{
x
.
signal_type
:
x
.
get_signal
(
start
,
risk
)
for
x
in
risk_signals
if
x
.
signal_type
.
level
<=
SignalType
(
last_re
[
'type'
])
.
level
}
signals
=
{
x
[
0
]:
x
[
1
]
for
x
in
signals
.
items
()
if
x
[
1
]
is
not
None
}
# 上次实际调仓类型为危机信号,本次危机信号不调仓
if
signals
and
SignalType
(
last_re
[
'type'
])
in
[
SignalType
.
CRISIS_ONE
,
SignalType
.
CRISIS_TWO
]:
signals
=
{
x
[
0
]:
x
[
1
]
for
x
in
signals
.
items
()
if
x
[
0
]
not
in
[
SignalType
.
CRISIS_ONE
,
SignalType
.
CRISIS_TWO
]}
# 检查买入信号,只有当天需要检查
if
not
signals
and
start
==
day
and
self
.
without_disable_period
(
day
,
risk
):
signals
=
{
x
.
signal_type
:
x
.
get_signal
(
start
,
risk
)
for
x
in
buy_signals
}
signals
=
{
x
[
0
]:
x
[
1
]
for
x
in
signals
.
items
()
if
x
[
1
]
is
not
None
}
if
signals
:
if
SignalType
(
last_signal
[
'type'
])
is
SignalType
.
NONE
:
rrs
.
delete_by_id
(
last_signal
[
'id'
])
return
signals
[
sorted
(
signals
.
keys
(),
key
=
lambda
x
:
x
.
level
)[
0
]]
today_signals
=
{
x
.
signal_type
:
x
.
get_signal
(
start
,
risk
)
for
x
in
risk_signals
if
x
.
signal_type
.
level
<=
SignalType
(
last_re
[
'type'
])
.
level
}
today_signals
=
{
x
[
0
]:
x
[
1
]
for
x
in
today_signals
.
items
()
if
x
[
1
]
is
not
None
}
signals
=
{
**
signals
,
**
today_signals
}
start
=
next_workday
(
start
)
# 上次实际调仓类型为危机信号,本次危机信号不调仓
if
signals
and
SignalType
(
last_re
[
'type'
])
in
[
SignalType
.
CRISIS_ONE
,
SignalType
.
CRISIS_TWO
]:
signals
=
{
x
[
0
]:
x
[
1
]
for
x
in
signals
.
items
()
if
x
[
0
]
not
in
[
SignalType
.
CRISIS_ONE
,
SignalType
.
CRISIS_TWO
]}
# 检查买入信号,只有当天需要检查
if
not
signals
and
self
.
without_disable_period
(
day
,
risk
):
signals
=
{
x
.
signal_type
:
x
.
get_signal
(
start
,
risk
)
for
x
in
buy_signals
}
signals
=
{
x
[
0
]:
x
[
1
]
for
x
in
signals
.
items
()
if
x
[
1
]
is
not
None
}
if
signals
:
if
SignalType
(
last_signal
[
'type'
])
is
SignalType
.
NONE
:
rrs
.
delete_by_id
(
last_signal
[
'id'
])
return
signals
[
sorted
(
signals
.
keys
(),
key
=
lambda
x
:
x
.
level
)[
0
]]
if
SignalType
(
last_signal
[
'type'
])
is
SignalType
.
NONE
:
rrs
.
update
(
last_signal
[
'id'
],
{
'date'
:
day
})
else
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment