Skip to content

Commit 5bab975

Browse files
committed
- change : 更新了 readme 添加了 shutdown 机制的例子
1 parent f50f84b commit 5bab975

File tree

1 file changed

+36
-16
lines changed

1 file changed

+36
-16
lines changed

README.md

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -144,19 +144,33 @@ class Strategy(StrategyTemplate):
144144

145145
```python
146146
# 引入策略模板
147+
import time
148+
import datetime as dt
149+
from dateutil import tz
150+
from easyquant import DefaultLogHandler
147151
from easyquant import StrategyTemplate
148152

149-
# 定义策略类
153+
150154
class Strategy(StrategyTemplate):
151-
name = '测试策略1' # 定义策略名字
152-
155+
name = '测试策略1'
156+
153157
def init(self):
154-
# 进行相关的初始化定义
155-
self.buy_stocks = [] # 假如一个股票一天只想买入一次。定义一个列表用来存储策略买过的股票
156-
157-
# 策略函数,收到行情推送后会自动调用
158+
# 通过下面的方式来获取时间戳
159+
now_dt = self.clock_engine.now_dt
160+
now = self.clock_engine.now
161+
now = time.time()
162+
163+
# 注册时钟事件
164+
clock_type = "盘尾"
165+
moment = dt.time(14, 56, 30, tzinfo=tz.tzlocal())
166+
self.clock_engine.register_moment(clock_type, moment)
167+
168+
# 注册时钟间隔事件, 不在交易阶段也会触发, clock_type == minute_interval
169+
minute_interval = 1.5
170+
self.clock_engine.register_interval(minute_interval, trading=False)
171+
158172
def strategy(self, event):
159-
""":param event event.data 为所有股票行情的字典,结构如下
173+
""":param event event.data 为所有股票的信息,结构如下
160174
{'162411':
161175
{'ask1': '0.493',
162176
'ask1_volume': '75500',
@@ -189,18 +203,15 @@ class Strategy(StrategyTemplate):
189203
'turnover': '420004912',
190204
'volume': '206390073.351'}}
191205
"""
192-
# 使用 self.user 来操作账户,用法见 easytrader 用法
206+
# 使用 self.user 来操作账户,用法同 easytrader 用法
193207
# 使用 self.log.info('message') 来打印你所需要的 log
208+
print('demo1 的 log 使用自定义 log 的方式记录在 demo1.log')
194209
self.log.info('\n\n策略1触发')
195210
self.log.info('行情数据: 万科价格: %s' % event.data['000002'])
196211
self.log.info('检查持仓')
197212
self.log.info(self.user.balance)
198-
# 在未买入的情况下买入万科
199-
if '000002' not in self.buy_stocks:
200-
# self.user.buy('000002')
201-
self.buy_stocks.append('000002')
213+
self.log.info('\n')
202214

203-
# 时钟引擎,用于推送开市、收市以及其他定时事件
204215
def clock(self, event):
205216
"""在交易时间会定时推送 clock 事件
206217
:param event: event.data.clock_event 为 [0.5, 1, 3, 5, 15, 30, 60] 单位为分钟, ['open', 'close'] 为开市、收市
@@ -212,11 +223,20 @@ class Strategy(StrategyTemplate):
212223
elif event.data.clock_event == 'close':
213224
# 收市了
214225
self.log.info('close')
215-
# 收盘时清空已买股票列表 self.buy_stocks
216-
self.buy_stocks.clear()
217226
elif event.data.clock_event == 5:
218227
# 5 分钟的 clock
219228
self.log.info("5分钟")
229+
230+
def log_handler(self):
231+
"""自定义 log 记录方式"""
232+
return DefaultLogHandler(self.name, log_type='stdout', filepath='demo1.log')
233+
234+
def shutdown(self):
235+
"""
236+
关闭进程前的调用
237+
:return:
238+
"""
239+
self.log.info("假装在关闭前保存了策略数据")
220240
```
221241

222242
#### 加载指定策略

0 commit comments

Comments
 (0)