Skip to content

Commit

Permalink
0.9.29 update
Browse files Browse the repository at this point in the history
  • Loading branch information
zengbin93 committed Sep 11, 2023
1 parent 0646b80 commit 204377d
Showing 1 changed file with 63 additions and 4 deletions.
67 changes: 63 additions & 4 deletions examples/30分钟笔非多即空.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def create_long_short_V230908(symbol, **kwargs):
使用的信号函数:
https://czsc.readthedocs.io/en/latest/api/czsc.signals.cxt_bi_status_V230101.htm
https://czsc.readthedocs.io/en/latest/api/czsc.signals.cxt_bi_status_V230101.html
"""
opens = [
{
Expand Down Expand Up @@ -66,6 +66,62 @@ def create_long_short_V230908(symbol, **kwargs):
return pos


def create_long_short_V230909(symbol, **kwargs):
"""笔非多即空策略
使用的信号函数:
https://czsc.readthedocs.io/en/latest/api/czsc.signals.cxt_bi_status_V230101.html
"""
base_freq = kwargs.get('base_freq', '30分钟')

opens = [
{
"operate": "开多",
"signals_all": [],
"signals_any": [],
"signals_not": [],
"factors": [
{
"signals_all": [
f"{base_freq}_D1_表里关系V230101_向上_任意_任意_0"
],
"signals_any": [],
"signals_not": [
f"{base_freq}_D1_涨跌停V230331_涨停_任意_任意_0"
]
}
]
},

{
"operate": "开空",
"signals_all": [],
"signals_any": [],
"signals_not": [],
"factors": [
{
"signals_all": [
f"{base_freq}_D1_表里关系V230101_向下_任意_任意_0"
],
"signals_any": [],
"signals_not": [
f"{base_freq}_D1_涨跌停V230331_跌停_任意_任意_0"
]
}
]
}
]

exits = []

pos = Position(name=f"{base_freq}笔非多即空", symbol=symbol,
opens=[Event.load(x) for x in opens],
exits=[Event.load(x) for x in exits],
interval=3600 * 4, timeout=16 * 30, stop_loss=500)
return pos



class Strategy(czsc.CzscStrategyBase):
def __init__(self, **kwargs):
Expand All @@ -75,13 +131,16 @@ def __init__(self, **kwargs):
@property
def positions(self):
pos_list = [
create_long_short_V230908(self.symbol),
# create_long_short_V230908(self.symbol),
create_long_short_V230909(self.symbol, base_freq='30分钟'),
create_long_short_V230909(self.symbol, base_freq='60分钟'),
create_long_short_V230909(self.symbol, base_freq='日线'),
]
return pos_list


if __name__ == '__main__':
results_path = Path(r'D:\策略研究\30分钟笔非多即空')
results_path = Path(r'D:\策略研究\笔非多即空')
logger.add(results_path / "czsc.log", rotation="1 week", encoding="utf-8")
results_path.mkdir(exist_ok=True, parents=True)

Expand All @@ -95,7 +154,7 @@ def positions(self):

# replay 查看策略的编写是否正确,执行过程是否符合预期
bars = research.get_raw_bars(symbol, freq=tactic.base_freq, sdt='20150101', edt='20220101')
trader = tactic.replay(bars, sdt='20200101', res_path=results_path / "replay", refresh=True)
trader = tactic.replay(bars, sdt='20210101', res_path=results_path / "replay", refresh=True)

# 当策略执行过程符合预期后,将持仓策略保存到本地 json 文件中
tactic.save_positions(results_path / "positions")

0 comments on commit 204377d

Please sign in to comment.