Skip to content

Commit

Permalink
0.8.22 update plates (#65)
Browse files Browse the repository at this point in the history
  • Loading branch information
zengbin93 committed Apr 8, 2022
1 parent ac65dfe commit fc3acbc
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 deletions.
17 changes: 8 additions & 9 deletions czsc/sensors/plates.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
import pandas as pd
from tqdm import tqdm
from typing import Callable
from czsc.utils import WordWriter
from czsc.utils import io
from czsc import envs
from czsc.utils import WordWriter, io
from czsc.data.ts_cache import TsDataCache, Freq
from czsc.sensors.utils import get_index_beta, generate_signals, turn_over_rate, max_draw_down

Expand All @@ -35,8 +35,7 @@ def __init__(self,
dc: TsDataCache,
get_signals: Callable,
get_event: Callable,
ths_index_type='N',
verbose: bool = False):
ths_index_type='N'):
"""
:param results_path: 结果保存路径
Expand All @@ -46,7 +45,6 @@ def __init__(self,
:param get_signals: 信号获取函数
:param get_event: 事件定义函数
:param ths_index_type: 同花顺指数类型 N-板块指数 I-行业指数 S-同花顺特色指数
:param verbose: 是否返回更详细的执行过程
"""
self.name = self.__class__.__name__
self.dc = dc
Expand All @@ -57,7 +55,7 @@ def __init__(self,
self.freqs = [Freq.W.value, Freq.M.value]
self.dc = dc
self.ths_index_type = ths_index_type
self.verbose = verbose
self.verbose = envs.get_verbose()
self.cache = dict()
self.results_path = results_path
os.makedirs(self.results_path, exist_ok=True)
Expand Down Expand Up @@ -181,6 +179,7 @@ def validate(self):
trade_cal = trade_cal[trade_cal.is_open == 1]
trade_dates = trade_cal[(trade_cal['cal_date'] >= self.sdt)
& (trade_cal['cal_date'] <= self.edt)].cal_date.to_list()
n_cols = [x for x in self.ssd.columns if x[0] == 'n' and x[-1] == 'b']

holds = []
dfg_map = {trade_date.strftime("%Y%m%d"): dfg for trade_date, dfg in self.ssd.groupby('trade_date')}
Expand All @@ -190,11 +189,11 @@ def validate(self):
if self.verbose:
print(f"{trade_date} 结果为空")
row = {'trade_date': trade_date, 'number': 0}
row.update({k: 0 for k in ['n1b', 'n2b', 'n3b', 'n5b', 'n10b', 'n20b']})
row.update({k: 0 for k in n_cols})
else:
detail.append(dfg)
row = {'trade_date': trade_date, 'number': len(dfg)}
row.update(dfg[['n1b', 'n2b', 'n3b', 'n5b', 'n10b', 'n20b']].mean().to_dict())
row.update(dfg[n_cols].mean().to_dict())
daily.append(row)
holds.append(self.create_next_positions(dfg))

Expand All @@ -209,7 +208,7 @@ def validate(self):
"组合换手": tor,
"平均数量": df_daily['number'].mean(),
}
p.update(df_daily[['n1b', 'n2b', 'n3b', 'n5b', 'n10b', 'n20b']].mean().to_dict())
p.update(df_daily[n_cols].mean().to_dict())

f = pd.ExcelWriter(os.path.join(self.results_path, "selected.xlsx"))
df_detail.to_excel(f, index=False, sheet_name="强势板块")
Expand Down
6 changes: 2 additions & 4 deletions examples/ts_plates_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,11 @@ def get_signals(cat: CzscAdvancedTrader) -> OrderedDict:


def get_event():
event = Event(name="SMA_V1", operate=Operate.LO, factors=[
event = Event(name="SMA_V2", operate=Operate.LO, factors=[
Factor(name="日超强", signals_all=[
Signal(k1='日线', k2='倒1K', k3='SMA120多空', v1='多头'),
Signal(k1='日线', k2='倒1K', k3='SMA120方向', v1='向上'),

Signal(k1='日线', k2='倒1K', k3='SMA20多空', v1='多头'),
Signal(k1='日线', k2='倒1K', k3='SMA20方向', v1='向上'),
Signal(k1='日线', k2='倒1K', k3='SMA120方向', v1='向上'),
]),
])
return event
Expand Down

0 comments on commit fc3acbc

Please sign in to comment.