Skip to content

Commit 84a81b9

Browse files
committed
Logging inside SDK
1 parent 5a4b99b commit 84a81b9

File tree

4 files changed

+35
-21
lines changed

4 files changed

+35
-21
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#### 步骤
1818
* 将 shipane_sdk/client.py 上传至聚宽“投资研究”根目录,并重命名为 shipane_sdk.py。
19-
* 将 shipane_sdk/joinquant_executor.py 中的 class JoinQuantExecutor 定义追加到 shpane_sdk.py 中。
19+
* 将 shipane_sdk/joinquant_executor.py 追加到 shpane_sdk.py 中。
2020
* 用法请参考 examples/simply_joinquant_strategy.py。
2121

2222
### 二. 抓取方式

examples/simply_joinquant_strategy.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,8 @@ def process_initialize(context):
2020
def handle_data(context, data):
2121
# 保存 order 对象
2222
current_order = order('000001.XSHE', 100)
23-
log.info('JointQuant executed:\n%s', str(current_order))
24-
2523
# 实盘易依据聚宽的 order 对象下单
26-
response = g.__executor.execute(current_order)
27-
if response is not None:
28-
log.info('ShiPanE response:\nstatus_code: %d\ntext: %s', response.status_code, response.text)
29-
else:
30-
log.error('ShiPanE did not response')
24+
g.__executor.execute(current_order)
3125

3226
current_order = order(g.security, -100)
3327
g.__executor.execute(current_order)

shipane_sdk/joinquant_executor.py

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
# -*- coding: utf-8 -*-
22

3-
from .client import Client
3+
try:
4+
from .client import Client
5+
except:
6+
pass
7+
8+
try:
9+
from kuanke.user_space_api import *
10+
except:
11+
pass
412

513

6-
#
7-
# 聚宽整合请从这里开始拷贝
8-
#
914
class JoinQuantExecutor(object):
1015
def __init__(self, **kwargs):
16+
if 'log' in globals():
17+
self._log = log
18+
else:
19+
import logging
20+
self._log = logging.getLogger()
1121
self._client = Client(**kwargs)
12-
self.order_id_map = dict()
22+
self._order_id_map = dict()
1323

1424
@property
1525
def client(self):
@@ -21,6 +31,7 @@ def client(self):
2131

2232
def execute(self, order):
2333
if order is None:
34+
self._log.info('[实盘易] 委托为空,忽略下单请求')
2435
return
2536

2637
try:
@@ -29,25 +40,31 @@ def execute(self, order):
2940
else:
3041
response = self._client.sell(order.security, order.price, order.amount)
3142

43+
if response is not None:
44+
self._log.info('[实盘易] 响应如下:\nstatus_code: %d\ntext: %s', response.status_code, response.text)
45+
else:
46+
self._log.error('[实盘易] 未响应')
47+
3248
if response is None:
3349
return None
3450

3551
if response.status_code == 200:
36-
self.order_id_map[order.order_id] = response.json()['id'];
52+
self._order_id_map[order.order_id] = response.json()['id'];
3753

3854
return response
39-
except:
40-
pass
55+
except Exception, e:
56+
self._log.error("[实盘易] 下单异常:" + str(e))
4157

4258
def cancel(self, order):
4359
if order is None:
60+
self._log.info('[实盘易] 委托为空,忽略撤单请求')
4461
return
4562

4663
try:
4764
order_id = order if isinstance(order, int) else order.order_id
48-
if order_id in self.order_id_map:
49-
return self._client.cancel(self.order_id_map[order_id])
65+
if order_id in self._order_id_map:
66+
return self._client.cancel(self._order_id_map[order_id])
5067
else:
51-
pass
52-
except:
53-
pass
68+
self._log.warn('[实盘易] 未找到对应的委托编号')
69+
except Exception, e:
70+
self._log.error("[实盘易] 撤单异常:" + str(e))

tests/test_joinquant_executor.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
import collections
44
import inspect
5+
import logging
56
import unittest
67

78
import shipane_sdk
89

910

1011
class JoinQuantExecutorTest(unittest.TestCase):
1112
def setUp(self):
13+
logging.basicConfig()
14+
1215
self.Order = collections.namedtuple('Order', ['is_buy', 'security', 'price', 'amount'])
1316
self.executor = shipane_sdk.JoinQuantExecutor(host='192.168.1.102')
1417

0 commit comments

Comments
 (0)