-
Notifications
You must be signed in to change notification settings - Fork 5
/
setOrder.py
103 lines (84 loc) · 2.82 KB
/
setOrder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# -*- coding: utf-8 -*-
import os
import sys
import time
import signal
import zmq
from api.qlua import RPC_pb2
from api.qlua import getItem_pb2
from api.qlua import qlua_structures_pb2
from api.qlua import sendTransaction_pb2
sys.path.insert(0, './api')
ctx = zmq.Context.instance()
client = ctx.socket(zmq.REQ)
client.connect('tcp://127.0.0.1:5560')
# trade_accounts - можно получить номер счета
# orders - можно получить свои ордера
def fetchItem():
message = getItem_pb2.Request()
message.table_name = 'orders'
message.index = 1
request = RPC_pb2.Request()
request.type = RPC_pb2.GET_ITEM
request.args = message.SerializeToString()
return request.SerializeToString()
def parseItem(message):
""" Парсит ответ по данным """
response = RPC_pb2.Response()
response.ParseFromString(message)
# print 'res ', response
messageResult = getItem_pb2.Result()
messageResult.ParseFromString(response.result)
# print 'messageResult ', messageResult.table_row
for key in sorted(messageResult.table_row, reverse=True):
print "%s: %s" % (key, messageResult.table_row[key])
def getItem():
request = fetchItem()
client.send(request)
message = client.recv()
parseItem(message)
# trans_params = set_value (trans_params, "ACTION", "KILL_ORDER")
# trans_params = set_value (trans_params, "ORDER_KEY", "2619254129")
# 'CLASSCODE': 'QJSIM',
# 'ACTION': 'NEW_ORDER',
# 'ACCOUNT': 'NL0011100043',
# 'OPERATION': 'S',
# 'SECCODE': 'SBER',
# 'PRICE': '210.76',
# 'QUANTITY': '1',
# 'TRANS_ID': '1',
# 'TYPE': 'L'
def fetchTransaction():
""" Отправляет запрос на открытие источника тиковых котировок """
order = dict({
'CLASSCODE': 'QJSIM',
'ACTION': 'KILL_ORDER',
'ACCOUNT': 'NL0011100043',
'OPERATION': 'S',
'SECCODE': 'SBER',
'PRICE': '210.76',
'QUANTITY': '1',
'TRANS_ID': '1',
'TYPE': 'L',
'ORDER_KEY': '4132996527'
})
message = sendTransaction_pb2.Request(transaction=order)
request = RPC_pb2.Request()
request.type = RPC_pb2.SEND_TRANSACTION
request.args = message.SerializeToString()
return request.SerializeToString()
def parseTransaction(message):
""" Парсит ответ по транзакции """
response = RPC_pb2.Response()
response.ParseFromString(message)
messageResult = sendTransaction_pb2.Result()
messageResult.ParseFromString(response.result)
print 'messageResult ', messageResult.result
def sendTransaction():
""" Отправляет и парсит ответ по заявке """
request = fetchTransaction()
client.send(request)
message = client.recv()
parseTransaction(message)
# sendTransaction()
getItem()