Skip to content

Commit 61e176c

Browse files
authored
Merge pull request #1794 from yutiansut/master
refactor
2 parents 7d42fcb + 5e5a907 commit 61e176c

File tree

5 files changed

+63
-23
lines changed

5 files changed

+63
-23
lines changed

QUANTAXIS/QAStrategy/qactabase.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import QUANTAXIS as QA
2020
from QUANTAXIS.QAStrategy.util import QA_data_futuremin_resample
2121
from QUANTAXIS.QIFI.QifiAccount import ORDER_DIRECTION, QIFI_Account
22+
from QUANTAXIS.QAMarket.market_preset import MARKET_PRESET
2223
from QUANTAXIS.QAEngine.QAThreadEngine import QA_Thread
2324
from QUANTAXIS.QAUtil.QAParameter import MARKET_TYPE, RUNNING_ENVIRONMENT
2425

@@ -62,7 +63,7 @@ def __init__(self, code='rb2005', frequence='1min', strategy_id='QA_STRATEGY', r
6263

6364
self.running_time = ''
6465

65-
self.market_preset = QA.QAARP.MARKET_PRESET()
66+
self.market_preset = MARKET_PRESET()
6667
self._market_data = []
6768
self.risk_check_gap = risk_check_gap
6869
self.latest_price = {}
@@ -231,14 +232,14 @@ def x1(self, item):
231232

232233
def debug_t0(self):
233234
self.running_mode = 'backtest'
234-
self.database = pymongo.MongoClient(mongo_ip).QUANTAXIS
235-
user = QA_User(username=self.username, password=self.password)
236-
port = user.new_portfolio(self.portfolio)
237-
self.acc = port.new_accountpro(
238-
account_cookie=self.strategy_id, init_cash=self.init_cash, init_hold={
239-
self.code: 100000},
240-
market_type=self.market_type, running_environment=RUNNING_ENVIRONMENT.TZERO)
241-
self.positions = self.acc.get_position(self.code)
235+
# self.database = pymongo.MongoClient(mongo_ip).QUANTAXIS
236+
# user = QA_User(username=self.username, password=self.password)
237+
# port = user.new_portfolio(self.portfolio)
238+
# self.acc = port.new_accountpro(
239+
# account_cookie=self.strategy_id, init_cash=self.init_cash, init_hold={
240+
# self.code: 100000},
241+
# market_type=self.market_type, running_environment=RUNNING_ENVIRONMENT.TZERO)
242+
# self.positions = self.acc.get_position(self.code)
242243
data = QA.QA_quotation(self.code.upper(), self.start, self.end, source=QA.DATASOURCE.MONGO,
243244
frequence=self.frequence, market=self.market_type, output=QA.OUTPUT_FORMAT.DATASTRUCT)
244245

QUANTAXIS/QAStrategy/qamultibase.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
from QUANTAXIS.QAUtil.QAParameter import MARKET_TYPE, RUNNING_ENVIRONMENT, ORDER_DIRECTION
1919
from QAPUBSUB.consumer import subscriber_topic, subscriber_routing
2020
from QAPUBSUB.producer import publisher_routing
21-
from QUANTAXIS.QAStrategy.qactabase import QAStrategyCTABase
21+
from QUANTAXIS.QAStrategy.qactabase import QAStrategyCtaBase
2222
from QUANTAXIS.QIFI.QifiAccount import QIFI_Account
2323

2424

25-
class QAStrategyStockBase(QAStrategyCTABase):
25+
class QAStrategyStockBase(QAStrategyCtaBase):
2626

2727
def __init__(self, code=['000001'], frequence='1min', strategy_id='QA_STRATEGY', risk_check_gap=1, portfolio='default',
2828
start='2019-01-01', end='2019-10-21', send_wx=False, market_type='stock_cn',
@@ -141,16 +141,16 @@ def run(self):
141141

142142
def debug(self):
143143
self.running_mode = 'backtest'
144-
self.database = pymongo.MongoClient(mongo_ip).QUANTAXIS
145-
user = QA_User(username="admin", password='admin')
146-
port = user.new_portfolio(self.portfolio)
147-
self.acc = port.new_accountpro(
148-
account_cookie=self.strategy_id, init_cash=self.init_cash, market_type=self.market_type, frequence= self.frequence)
149-
#self.positions = self.acc.get_position(self.code)
144+
# self.database = pymongo.MongoClient(mongo_ip).QUANTAXIS
145+
# user = QA_User(username="admin", password='admin')
146+
# port = user.new_portfolio(self.portfolio)
147+
# self.acc = port.new_accountpro(
148+
# account_cookie=self.strategy_id, init_cash=self.init_cash, market_type=self.market_type, frequence= self.frequence)
149+
# #self.positions = self.acc.get_position(self.code)
150150

151-
print(self.acc)
151+
# print(self.acc)
152152

153-
print(self.acc.market_type)
153+
# print(self.acc.market_type)
154154
data = QA.QA_quotation(self.code, self.start, self.end, source=QA.DATASOURCE.MONGO,
155155
frequence=self.frequence, market=self.market_type, output=QA.OUTPUT_FORMAT.DATASTRUCT)
156156

QUANTAXIS/QAWebServer/qifiserver.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from QUANTAXIS.QIFI.QifiManager import QA_QIFIMANAGER, QA_QIFISMANAGER
66
class QAQIFI_Handler(QABaseHandler):
77
#manager = QA_QIFIMANAGER(mongo_ip)
8-
manager = QA_QIFISMANAGER(mongo_ip)
8+
manager = QA_QIFISMANAGER(mongo_ip,model='BACKTEST')
99

1010
def get(self):
1111
action = self.get_argument('action', 'acchistory')
@@ -99,7 +99,44 @@ def get(self):
9999

100100
class QAQIFIS_Handler(QABaseHandler):
101101
#manager = QA_QIFIMANAGER(mongo_ip)
102-
manager = QA_QIFISMANAGER(mongo_ip)
102+
manager = QA_QIFISMANAGER(mongo_ip,model='BACKTEST')
103+
104+
def get(self):
105+
action = self.get_argument('action', 'acchistory')
106+
107+
if action == 'accountlist':
108+
res = self.manager.get_allaccountname()
109+
self.write({'res': res})
110+
elif action == 'portfoliolist':
111+
res = self.manager.get_allportfolio()
112+
self.write({'res': res})
113+
elif action == 'accountinportfolio':
114+
portfolio = self.get_argument('portfolio', 't12')
115+
res = self.manager.get_portfolio_panel(portfolio)
116+
117+
self.write({'res': QA_util_to_json_from_pandas(res)})
118+
119+
def post(self):
120+
action = self.get_argument('action', 'change_name')
121+
if action == 'drop_account':
122+
123+
account_cookie = self.get_argument('account_cookie')
124+
res = self.manager.drop_account(account_cookie)
125+
self.write({
126+
'res': res,
127+
'status': 200
128+
})
129+
elif action == 'drop_many':
130+
account_cookies = self.get_argument('account_cookies')
131+
res = self.manager.drop_many(account_cookies)
132+
self.write({
133+
'res': res,
134+
'status': 200
135+
})
136+
137+
class QAQIFIS_REALTIME_Handler(QABaseHandler):
138+
#manager = QA_QIFIMANAGER(mongo_ip)
139+
manager = QA_QIFISMANAGER(mongo_ip,model='REALTIME')
103140

104141
def get(self):
105142
action = self.get_argument('action', 'acchistory')

QUANTAXIS/QAWebServer/server.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
from QUANTAXIS.QAWebServer.schedulehandler import (QAScheduleQuery,
3636
QASchedulerHandler,
3737
init_scheduler)
38-
from QUANTAXIS.QAWebServer.qifiserver import QAQIFI_Handler, QAQIFIS_Handler
38+
from QUANTAXIS.QAWebServer.qifiserver import QAQIFI_Handler, QAQIFIS_Handler, QAQIFIS_REALTIME_Handler
3939
from tornado.options import (define, options, parse_command_line,
4040
parse_config_file)
4141
from tornado.web import Application, RequestHandler, authenticated
@@ -71,6 +71,7 @@ def get(self):
7171
(r"/scheduler/query", QAScheduleQuery),
7272
(r"/qifi", QAQIFI_Handler),
7373
(r"/qifis", QAQIFIS_Handler),
74+
(r"/qifirealtime", QAQIFIS_REALTIME_Handler),
7475
(r"/user", QAUserhander)
7576

7677
]

QUANTAXIS/QIFI/QifiManager.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,10 @@ def query_re(self, text) -> list:
171171

172172
def get_portfolio_panel(self, portfolio) -> pd.DataFrame:
173173
r = self.get_portfolio_account(portfolio)
174+
174175
rp = [self.database.find_one({'account_cookie': i}, {
175176
"accounts": 1, 'trading_day': 1, '_id': 0}) for i in r]
176-
return pd.DataFrame([mergex(i['accounts'], {'trading_day': i['trading_day']}) for i in rp])
177+
return pd.DataFrame([mergex(i['accounts'], {'trading_day': i['trading_day']}) for i in rp]).query('user_id in {}'.format(r))
177178

178179
def get_allaccountname(self) -> list:
179180
return list(set([i['account_cookie'] for i in self.database.find({}, {'account_cookie': 1, '_id': 0})]))

0 commit comments

Comments
 (0)