In [1]:
import QUANTAXIS as QA

import threading
import pandas as pd

import time


QUANTAXIS>> start QUANTAXIS
QUANTAXIS>> Welcome to QUANTAXIS, the Version is 1.1.0
QUANTAXIS>>  
 ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` 
  ``########`````##````````##``````````##`````````####````````##```##########````````#``````##``````###```##`````######`` 
  `##``````## ```##````````##`````````####````````##`##```````##```````##```````````###``````##````##`````##```##`````##` 
  ##````````##```##````````##````````##`##````````##``##``````##```````##``````````####```````#```##``````##```##``````## 
  ##````````##```##````````##```````##```##```````##```##`````##```````##`````````##`##```````##`##```````##````##``````` 
  ##````````##```##````````##``````##`````##``````##````##````##```````##````````##``###```````###````````##`````##`````` 
  ##````````##```##````````##``````##``````##`````##`````##```##```````##```````##````##```````###````````##``````###```` 
  ##````````##```##````````##`````##````````##````##``````##``##```````##``````##``````##`````##`##```````##````````##``` 
  ##````````##```##````````##````#############````##```````##`##```````##`````###########`````##``##``````##`````````##`` 
  ###```````##```##````````##```##```````````##```##```````##`##```````##````##`````````##```##```##``````##```##`````##` 
  `##``````###````##``````###``##`````````````##``##````````####```````##```##``````````##``###````##`````##````##`````## 
  ``#########``````########```##``````````````###`##``````````##```````##``##````````````##`##``````##````##`````###``### 
  ````````#####`````````````````````````````````````````````````````````````````````````````````````````````````````##``  
  ``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` 
  ``````````````````````````Copyright``yutiansut``2018``````QUANTITATIVE FINANCIAL FRAMEWORK````````````````````````````` 
  ``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` 
 ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` 
 ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` 
 

In [2]:
# utf-8
import QUANTAXIS as QA

market = QA.QA_Market(if_start_orderthreading=True)
portfolio= QA.QA_Portfolio()
# 创建两个account
# 这里是创建一个资产组合,然后在组合里面创建两个account  你可以想象成股票里面的两个策略账户
# 然后返回的是这个账户的id
a_1 = portfolio.new_account()
a_1.reset_assets(100000000)
a_1.frequence = QA.FREQUENCE.ONE_MIN
market.start()
market._sync_orders()
market.connect(QA.BROKER_TYPE.BACKETEST)
market.login(QA.BROKER_TYPE.BACKETEST, a_1.account_cookie, a_1)

market.order_handler.monitor
print(threading.enumerate())


sub
subscribe
[<_MainThread(MainThread, started 21604)>, <Thread(Thread-4, started daemon 19260)>, <Heartbeat(Thread-5, started daemon 12700)>, <HistorySavingThread(IPythonHistorySavingThread, started 20440)>, <ParentPollerWindows(Thread-3, started daemon 23924)>, <Thread(pymongo_server_monitor_thread, started daemon 23488)>, <Thread(pymongo_kill_cursors_thread, started daemon 4404)>, <Thread(pymongo_kill_cursors_thread, started daemon 23068)>,  <QA_ENGINE with ['ORDER', 'backtest'] kernels ident 18360>, <QA_ThreadORDER  id=2436982472152 ident 11468>, <QA_Threadbacktest  id=2437091804832 ident 2224>]

In [3]:
for code in ['000001', '000002', '000004', '600010', '000007','600000']:
    market.insert_order(a_1.account_cookie,code=code,
                            price=0,
                            amount=1000,
                            time='2018-08-14 14:58:00',
                            towards=QA.ORDER_DIRECTION.BUY,
                            order_model=QA.ORDER_MODEL.MARKET,
                            amount_model=QA.AMOUNT_MODEL.BY_AMOUNT,
                            market_type=QA.MARKET_TYPE.STOCK_CN,
                            frequence=QA.FREQUENCE.ONE_MIN,
                            broker_name=QA.BROKER_TYPE.BACKETEST,
    )
while True:
    if len(market.order_handler.order_queue.untrade)==0:
        break


QUANTAXIS>> MARKET WARING: SOMEING WRONG WITH ORDER 
 
QUANTAXIS>> code 000001 date 2018-08-14 14:58:00 price 0 order_model MARKET amount_model by_amount
QUANTAXIS>> MARKET WARING: SOMEING WRONG WITH ORDER 
 
QUANTAXIS>> code 000004 date 2018-08-14 14:58:00 price 0 order_model MARKET amount_model by_amount

In [4]:
market.settle_order()

In [5]:
market.trade_engine.join()


['Acc_HgDIe1qk', '2018-08-14 14:58:00', '2018-08-14 14:58:00', '000002', None, 1, 22.33, 22.33, 'trade_success', 1000, 1000, 22335.5825, 0, 'Order_LYjbzuBt', 'Trade_92iCzWUE']
on_insert_order
< QA_Order realorder_id Order_LYjbzuBt datetime:2018-08-14 14:58:00 code:000002 amount:1000 price:22.33 towards:1 btype:stock_cn order_id:Order_LYjbzuBt account:Acc_HgDIe1qk status:queued >
queued
['Acc_HgDIe1qk', '2018-08-14 14:58:00', '2018-08-14 14:58:00', '600010', None, 1, 1.63, 1.63, 'trade_success', 1000, 1000, 1635.0, 0, 'Order_FLyq7JBN', 'Trade_USTZ08F1']
on_insert_order
< QA_Order realorder_id Order_FLyq7JBN datetime:2018-08-14 14:58:00 code:600010 amount:1000 price:1.63 towards:1 btype:stock_cn order_id:Order_FLyq7JBN account:Acc_HgDIe1qk status:queued >
queued
['Acc_HgDIe1qk', '2018-08-14 14:58:00', '2018-08-14 14:58:00', '000007', None, 1, 0.0, 13.23, 'trade_price_limit', 1000, 0, 5, 0, 'Order_OIuxT70K', 'Trade_jn5GlHwK']
on_insert_order
< QA_Order realorder_id Order_OIuxT70K datetime:2018-08-14 14:58:00 code:000007 amount:1000 price:13.23 towards:1 btype:stock_cn order_id:Order_OIuxT70K account:Acc_HgDIe1qk status:queued >
queued
['Acc_HgDIe1qk', '2018-08-14 14:58:00', '2018-08-14 14:58:00', '600000', None, 1, 10.07, 10.065000000000001, 'trade_success', 1000, 1000, 10070.000000000002, 0, 'Order_JkyYMKu3', 'Trade_JNOqDLPG']
on_insert_order
< QA_Order realorder_id Order_JkyYMKu3 datetime:2018-08-14 14:58:00 code:600000 amount:1000 price:10.065000000000001 towards:1 btype:stock_cn order_id:Order_JkyYMKu3 account:Acc_HgDIe1qk status:queued >
queued
SETTLE ORDERHANDLER
11468
receive deal
11468
receive deal
11468
11468
receive deal
True
[]
settled

In [7]:
a_1.history_table


Out[7]:
datetime code price amount cash order_id realorder_id trade_id account_cookie commission tax
0 2018-08-14 14:58:00 000002 22.33 1000 9.997763e+07 Order_LYjbzuBt Order_LYjbzuBt Trade_lQ7NMwHu Acc_HgDIe1qk 5.5825 33.495
1 2018-08-14 14:58:00 600010 1.63 1000 9.997600e+07 Order_FLyq7JBN Order_FLyq7JBN Trade_7MW4lamQ Acc_HgDIe1qk 0.4075 2.445
2 2018-08-14 14:58:00 600000 10.07 1000 9.996591e+07 Order_JkyYMKu3 Order_JkyYMKu3 Trade_ZzMWFyil Acc_HgDIe1qk 2.5175 15.105

In [8]:
market.order_handler.if_start_orderquery


Out[8]:
True

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]: