-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathpublicstruct.h
222 lines (181 loc) · 4.07 KB
/
publicstruct.h
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
#ifndef PUBLICSTRUCT_H
#define PUBLICSTRUCT_H
#include <QString>
#include <QDateTime>
#include "ctpApi/ThostFtdcUserApiStruct.h"
//记录账户的基本信息:用户ID,交易账号,账号密码,经纪商代码,前置机地址
struct AccountID
{
public:
AccountID& operator=(const AccountID&) = delete;
public:
QString apiName;
QString investorID;
QString password;
QString brokerID;
QString frontAddress;
int connectionStatus;
};
// 用户帐号资金账户信息
struct AccountInfo
{
// vnpy帐号相关
QString id;
QString vtId;
QString gatewayName;
// vnpy数值相关
double preBalance;
double balance;
double available;
double commission; //手续费
double margin; //当前保证金总额
double close_profit;
double position_profit;
};
//合约信息:id、名字、交易所编号、最后交割日、保证金率、合约乘数、保证金率、手续费、最小变动单位、现在是否可以交易
struct InstrumentInfo
{
public:
//为了放在set集合中,重载 < 运算符
bool operator < (const InstrumentInfo &instr) { return id < instr.id; }
public:
QString id;
QString name;
QString exchangeId;
QDate deadline;
double marginRate;
int multiplier;
double openCommission;
double closeCommission;
double closeTodayCommission;
double minimumUnit;
bool tradable;
bool has_subsribed{ false };
};
// 委托单信息
struct OrderInfo
{
// 代码编号相关
QString symbol;
QString vtSymbol;
QString exchange;
QString orderID;
QString vtOrderID;
// 报单相关
QChar direction; //'0'买 '1'卖
QChar offset;
double price;
int totalVolume;
int tradeVolume;
QChar status;
QString orderTime;
QString cancelTime;
int frontID;
int sessionID;
QString gatewayName;
};
// 成交信息
struct TradeInfo
{
// 代码编号相关
QString symbol;
QString vtSymbol;
QString exchange;
QString tradeID;
QString vtTradeID;
QString orderID;
QString vtOrderID;
// 成交相关
QChar direction;
QChar offset;
double price;
int volume;
QString tradeTime;
QString gatewayName;
};
// 持仓信息
struct PositionInfo
{
// 考虑到现阶段大部分CTP中的ExchangeID字段返回的都是空值, vtSymbol直接使用symbol
QString symbol;
QString vtSymbol;
QString directName;
QChar direction{ 0 };
int position{ 0 };
int frozen{ 0 };
double price{ 0 };
QString vtPositionName;
int ydPosition{ 0 };
QString gatewayName;
};
// Tick报价
struct QuoteInfo
{
QString symbol;
QString vtSymbol;
int volume;
int openInterest;
double openPrice;
double highPrice;
double lowPrice;
double lastPrice;
double bidPrice1;
int bidVolume1;
double askPrice1;
int askVolume1;
double upperLimit;
double lowerLimit;
double preClosePrice;
double changePercent;//涨幅
QString time;
QString tradingDay;
QString gatewayName;
};
// 记录登录帐号信息
struct user_trade_info
{
TThostFtdcBrokerIDType brokerid;
TThostFtdcUserIDType userid;
TThostFtdcPasswordType password;
// 交易日
TThostFtdcDateType trading_day;
//请求编号
int requestID{ 0 };
//本地的最大报单引用
int maxOrderRef{ 0 };
// 会话标记
int front_id{ 0 };
int session_id{ 0 };
user_trade_info()
{
memset(trading_day, 0x00, sizeof(trading_day));
}
};
//下单命令请求
struct orderCommonRequest
{
char instrument[31];
double price;
int volume;
char direction;
char offset;
orderCommonRequest()
{
memset(this, 0x00, sizeof(orderCommonRequest));
}
};
//取消命令请求
struct cancelCommonRequest
{
char instrument[31];
char exchange[9];
// CTP, LTS相关
char order_ref[13];
int session_id;
int front_id;
cancelCommonRequest()
{
memset(this, 0x00, sizeof(cancelCommonRequest));
}
};
#endif // PUBLICSTRUCT_H