ctp 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 466ecdc06a23ad2ba73eb2578fb48177e29cc856
4
+ data.tar.gz: 3316717828bac736647e4285bcba1fcf017653e3
5
+ SHA512:
6
+ metadata.gz: aea421adf51966f2a989d460890c5677fb000203eb7df56268af7d32f8c03ae46bf40ccb32166eb5722e0132db8f25a7a8c613cbb84c1b063586e65dfc2369e6
7
+ data.tar.gz: a947c06ecae8f6a2953f25ed72037feb88ba6c638d3d03ba3df8882c61e3005292ad95a0615302375bd0a07f65d096771ea787e9f7fb93b76539e421230919a6
@@ -0,0 +1,18 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.o
12
+ *.a
13
+ mkmf.log
14
+
15
+ # rspec failure tracking
16
+ .rspec_status
17
+
18
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.1
5
+ before_install: gem install bundler -v 1.14.3
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at i@qinix.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ctp.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Eric Zhang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,41 @@
1
+ # Ctp
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/ctp`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'ctp'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install ctp
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/Eric Zhang/ctp. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
36
+
37
+
38
+ ## License
39
+
40
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
+
@@ -0,0 +1,14 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ require "rake/extensiontask"
7
+
8
+ task :build => :compile
9
+
10
+ Rake::ExtensionTask.new("ctp") do |ext|
11
+ ext.lib_dir = "lib/ctp"
12
+ end
13
+
14
+ task :default => [:clobber, :compile, :spec]
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "ctp"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ctp/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ctp"
8
+ spec.version = Ctp::VERSION
9
+ spec.authors = ["Eric Zhang"]
10
+ spec.email = ["i@qinix.com"]
11
+
12
+ spec.summary = %q{Ruby support for CTP}
13
+ spec.description = %q{Ruby support for CTP}
14
+ spec.homepage = "https://github.com/qinix/rb-ctp"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+ spec.extensions = ["ext/ctp/extconf.rb"]
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.14"
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "rake-compiler"
28
+ spec.add_development_dependency "rspec", "~> 3.0"
29
+ end
@@ -0,0 +1,7 @@
1
+ version: "2"
2
+
3
+ services:
4
+ ruby:
5
+ image: ruby
6
+ volumes:
7
+ - .:/data
@@ -0,0 +1,162 @@
1
+ /////////////////////////////////////////////////////////////////////////
2
+ ///@system ��һ��������ϵͳ
3
+ ///@company �Ϻ��ڻ���Ϣ�������޹�˾
4
+ ///@file ThostFtdcMdApi.h
5
+ ///@brief �����˿ͻ��˽ӿ�
6
+ ///@history
7
+ ///20060106 �Ժ�� �������ļ�
8
+ /////////////////////////////////////////////////////////////////////////
9
+
10
+ #if !defined(THOST_FTDCMDAPI_H)
11
+ #define THOST_FTDCMDAPI_H
12
+
13
+ #if _MSC_VER > 1000
14
+ #pragma once
15
+ #endif // _MSC_VER > 1000
16
+
17
+ #include "ThostFtdcUserApiStruct.h"
18
+
19
+ #if defined(ISLIB) && defined(WIN32)
20
+ #ifdef LIB_MD_API_EXPORT
21
+ #define MD_API_EXPORT __declspec(dllexport)
22
+ #else
23
+ #define MD_API_EXPORT __declspec(dllimport)
24
+ #endif
25
+ #else
26
+ #define MD_API_EXPORT
27
+ #endif
28
+
29
+ class CThostFtdcMdSpi
30
+ {
31
+ public:
32
+ ///���ͻ����뽻�׺�̨������ͨ������ʱ����δ��¼ǰ�����÷��������á�
33
+ virtual void OnFrontConnected(){};
34
+
35
+ ///���ͻ����뽻�׺�̨ͨ�����ӶϿ�ʱ���÷��������á���������������API���Զ��������ӣ��ͻ��˿ɲ���������
36
+ ///@param nReason ����ԭ��
37
+ /// 0x1001 �����ʧ��
38
+ /// 0x1002 ����дʧ��
39
+ /// 0x2001 ����������ʱ
40
+ /// 0x2002 ��������ʧ��
41
+ /// 0x2003 �յ�������
42
+ virtual void OnFrontDisconnected(int nReason){};
43
+
44
+ ///������ʱ���档����ʱ��δ�յ�����ʱ���÷��������á�
45
+ ///@param nTimeLapse �����ϴν��ձ��ĵ�ʱ��
46
+ virtual void OnHeartBeatWarning(int nTimeLapse){};
47
+
48
+
49
+ ///��¼������Ӧ
50
+ virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
51
+
52
+ ///�dz�������Ӧ
53
+ virtual void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
54
+
55
+ ///����Ӧ��
56
+ virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
57
+
58
+ ///��������Ӧ��
59
+ virtual void OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
60
+
61
+ ///ȡ����������Ӧ��
62
+ virtual void OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
63
+
64
+ ///����ѯ��Ӧ��
65
+ virtual void OnRspSubForQuoteRsp(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
66
+
67
+ ///ȡ������ѯ��Ӧ��
68
+ virtual void OnRspUnSubForQuoteRsp(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
69
+
70
+ ///�������֪ͨ
71
+ virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData) {};
72
+
73
+ ///ѯ��֪ͨ
74
+ virtual void OnRtnForQuoteRsp(CThostFtdcForQuoteRspField *pForQuoteRsp) {};
75
+ };
76
+
77
+ class MD_API_EXPORT CThostFtdcMdApi
78
+ {
79
+ public:
80
+ ///����MdApi
81
+ ///@param pszFlowPath ����������Ϣ�ļ���Ŀ¼��Ĭ��Ϊ��ǰĿ¼
82
+ ///@return ��������UserApi
83
+ ///modify for udp marketdata
84
+ static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false, const bool bIsMulticast=false);
85
+
86
+ ///��ȡAPI�İ汾��Ϣ
87
+ ///@retrun ��ȡ���İ汾��
88
+ static const char *GetApiVersion();
89
+
90
+ ///ɾ���ӿڶ�����
91
+ ///@remark ����ʹ�ñ��ӿڶ���ʱ,���øú���ɾ���ӿڶ���
92
+ virtual void Release() = 0;
93
+
94
+ ///��ʼ��
95
+ ///@remark ��ʼ�����л���,ֻ�е��ú�,�ӿڲſ�ʼ����
96
+ virtual void Init() = 0;
97
+
98
+ ///�ȴ��ӿ��߳̽�������
99
+ ///@return �߳��˳�����
100
+ virtual int Join() = 0;
101
+
102
+ ///��ȡ��ǰ������
103
+ ///@retrun ��ȡ���Ľ�����
104
+ ///@remark ֻ�е�¼�ɹ���,���ܵõ���ȷ�Ľ�����
105
+ virtual const char *GetTradingDay() = 0;
106
+
107
+ ///ע��ǰ�û������ַ
108
+ ///@param pszFrontAddress��ǰ�û������ַ��
109
+ ///@remark �����ַ�ĸ�ʽΪ����protocol://ipaddress:port�����磺��tcp://127.0.0.1:17001����
110
+ ///@remark ��tcp����������Э�飬��127.0.0.1��������������ַ����17001�������������˿ںš�
111
+ virtual void RegisterFront(char *pszFrontAddress) = 0;
112
+
113
+ ///ע�����ַ����������ַ
114
+ ///@param pszNsAddress�����ַ����������ַ��
115
+ ///@remark �����ַ�ĸ�ʽΪ����protocol://ipaddress:port�����磺��tcp://127.0.0.1:12001����
116
+ ///@remark ��tcp����������Э�飬��127.0.0.1��������������ַ����12001�������������˿ںš�
117
+ ///@remark RegisterNameServer������RegisterFront
118
+ virtual void RegisterNameServer(char *pszNsAddress) = 0;
119
+
120
+ ///ע�����ַ������û���Ϣ
121
+ ///@param pFensUserInfo���û���Ϣ��
122
+ virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField * pFensUserInfo) = 0;
123
+
124
+ ///ע��ص��ӿ�
125
+ ///@param pSpi �����Իص��ӿ����ʵ��
126
+ virtual void RegisterSpi(CThostFtdcMdSpi *pSpi) = 0;
127
+
128
+ ///�������顣
129
+ ///@param ppInstrumentID ��ԼID
130
+ ///@param nCount Ҫ����/�˶�����ĺ�Լ����
131
+ ///@remark
132
+ virtual int SubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;
133
+
134
+ ///�˶����顣
135
+ ///@param ppInstrumentID ��ԼID
136
+ ///@param nCount Ҫ����/�˶�����ĺ�Լ����
137
+ ///@remark
138
+ virtual int UnSubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;
139
+
140
+ ///����ѯ�ۡ�
141
+ ///@param ppInstrumentID ��ԼID
142
+ ///@param nCount Ҫ����/�˶�����ĺ�Լ����
143
+ ///@remark
144
+ virtual int SubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;
145
+
146
+ ///�˶�ѯ�ۡ�
147
+ ///@param ppInstrumentID ��ԼID
148
+ ///@param nCount Ҫ����/�˶�����ĺ�Լ����
149
+ ///@remark
150
+ virtual int UnSubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;
151
+
152
+ ///�û���¼����
153
+ virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) = 0;
154
+
155
+
156
+ ///�dz�����
157
+ virtual int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) = 0;
158
+ protected:
159
+ ~CThostFtdcMdApi(){};
160
+ };
161
+
162
+ #endif
@@ -0,0 +1,618 @@
1
+ /////////////////////////////////////////////////////////////////////////
2
+ ///@system ��һ��������ϵͳ
3
+ ///@company �Ϻ��ڻ���Ϣ�������޹�˾
4
+ ///@file ThostFtdcTraderApi.h
5
+ ///@brief �����˿ͻ��˽ӿ�
6
+ ///@history
7
+ ///20060106 �Ժ�� �������ļ�
8
+ /////////////////////////////////////////////////////////////////////////
9
+
10
+ #if !defined(THOST_FTDCTRADERAPI_H)
11
+ #define THOST_FTDCTRADERAPI_H
12
+
13
+ #if _MSC_VER > 1000
14
+ #pragma once
15
+ #endif // _MSC_VER > 1000
16
+
17
+ #include "ThostFtdcUserApiStruct.h"
18
+
19
+ #if defined(ISLIB) && defined(WIN32)
20
+ #ifdef LIB_TRADER_API_EXPORT
21
+ #define TRADER_API_EXPORT __declspec(dllexport)
22
+ #else
23
+ #define TRADER_API_EXPORT __declspec(dllimport)
24
+ #endif
25
+ #else
26
+ #define TRADER_API_EXPORT
27
+ #endif
28
+
29
+ class CThostFtdcTraderSpi
30
+ {
31
+ public:
32
+ ///���ͻ����뽻�׺�̨������ͨ������ʱ����δ��¼ǰ�����÷��������á�
33
+ virtual void OnFrontConnected(){};
34
+
35
+ ///���ͻ����뽻�׺�̨ͨ�����ӶϿ�ʱ���÷��������á���������������API���Զ��������ӣ��ͻ��˿ɲ���������
36
+ ///@param nReason ����ԭ��
37
+ /// 0x1001 �����ʧ��
38
+ /// 0x1002 ����дʧ��
39
+ /// 0x2001 ����������ʱ
40
+ /// 0x2002 ��������ʧ��
41
+ /// 0x2003 �յ�������
42
+ virtual void OnFrontDisconnected(int nReason){};
43
+
44
+ ///������ʱ���档����ʱ��δ�յ�����ʱ���÷��������á�
45
+ ///@param nTimeLapse �����ϴν��ձ��ĵ�ʱ��
46
+ virtual void OnHeartBeatWarning(int nTimeLapse){};
47
+
48
+ ///�ͻ�����֤��Ӧ
49
+ virtual void OnRspAuthenticate(CThostFtdcRspAuthenticateField *pRspAuthenticateField, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
50
+
51
+
52
+ ///��¼������Ӧ
53
+ virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
54
+
55
+ ///�dz�������Ӧ
56
+ virtual void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
57
+
58
+ ///�û��������������Ӧ
59
+ virtual void OnRspUserPasswordUpdate(CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
60
+
61
+ ///�ʽ��˻��������������Ӧ
62
+ virtual void OnRspTradingAccountPasswordUpdate(CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
63
+
64
+ ///����¼��������Ӧ
65
+ virtual void OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
66
+
67
+ ///Ԥ��¼��������Ӧ
68
+ virtual void OnRspParkedOrderInsert(CThostFtdcParkedOrderField *pParkedOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
69
+
70
+ ///Ԥ�񳷵�¼��������Ӧ
71
+ virtual void OnRspParkedOrderAction(CThostFtdcParkedOrderActionField *pParkedOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
72
+
73
+ ///��������������Ӧ
74
+ virtual void OnRspOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
75
+
76
+ ///��ѯ��󱨵�������Ӧ
77
+ virtual void OnRspQueryMaxOrderVolume(CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
78
+
79
+ ///Ͷ���߽�����ȷ����Ӧ
80
+ virtual void OnRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
81
+
82
+ ///ɾ��Ԥ����Ӧ
83
+ virtual void OnRspRemoveParkedOrder(CThostFtdcRemoveParkedOrderField *pRemoveParkedOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
84
+
85
+ ///ɾ��Ԥ�񳷵���Ӧ
86
+ virtual void OnRspRemoveParkedOrderAction(CThostFtdcRemoveParkedOrderActionField *pRemoveParkedOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
87
+
88
+ ///ִ������¼��������Ӧ
89
+ virtual void OnRspExecOrderInsert(CThostFtdcInputExecOrderField *pInputExecOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
90
+
91
+ ///ִ���������������Ӧ
92
+ virtual void OnRspExecOrderAction(CThostFtdcInputExecOrderActionField *pInputExecOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
93
+
94
+ ///ѯ��¼��������Ӧ
95
+ virtual void OnRspForQuoteInsert(CThostFtdcInputForQuoteField *pInputForQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
96
+
97
+ ///����¼��������Ӧ
98
+ virtual void OnRspQuoteInsert(CThostFtdcInputQuoteField *pInputQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
99
+
100
+ ///���۲���������Ӧ
101
+ virtual void OnRspQuoteAction(CThostFtdcInputQuoteActionField *pInputQuoteAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
102
+
103
+ ///�������¼��������Ӧ
104
+ virtual void OnRspCombActionInsert(CThostFtdcInputCombActionField *pInputCombAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
105
+
106
+ ///�����ѯ������Ӧ
107
+ virtual void OnRspQryOrder(CThostFtdcOrderField *pOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
108
+
109
+ ///�����ѯ�ɽ���Ӧ
110
+ virtual void OnRspQryTrade(CThostFtdcTradeField *pTrade, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
111
+
112
+ ///�����ѯͶ���ֲ߳���Ӧ
113
+ virtual void OnRspQryInvestorPosition(CThostFtdcInvestorPositionField *pInvestorPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
114
+
115
+ ///�����ѯ�ʽ��˻���Ӧ
116
+ virtual void OnRspQryTradingAccount(CThostFtdcTradingAccountField *pTradingAccount, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
117
+
118
+ ///�����ѯͶ������Ӧ
119
+ virtual void OnRspQryInvestor(CThostFtdcInvestorField *pInvestor, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
120
+
121
+ ///�����ѯ���ױ�����Ӧ
122
+ virtual void OnRspQryTradingCode(CThostFtdcTradingCodeField *pTradingCode, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
123
+
124
+ ///�����ѯ��Լ��֤������Ӧ
125
+ virtual void OnRspQryInstrumentMarginRate(CThostFtdcInstrumentMarginRateField *pInstrumentMarginRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
126
+
127
+ ///�����ѯ��Լ����������Ӧ
128
+ virtual void OnRspQryInstrumentCommissionRate(CThostFtdcInstrumentCommissionRateField *pInstrumentCommissionRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
129
+
130
+ ///�����ѯ��������Ӧ
131
+ virtual void OnRspQryExchange(CThostFtdcExchangeField *pExchange, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
132
+
133
+ ///�����ѯ��Ʒ��Ӧ
134
+ virtual void OnRspQryProduct(CThostFtdcProductField *pProduct, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
135
+
136
+ ///�����ѯ��Լ��Ӧ
137
+ virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
138
+
139
+ ///�����ѯ������Ӧ
140
+ virtual void OnRspQryDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
141
+
142
+ ///�����ѯͶ���߽�������Ӧ
143
+ virtual void OnRspQrySettlementInfo(CThostFtdcSettlementInfoField *pSettlementInfo, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
144
+
145
+ ///�����ѯת��������Ӧ
146
+ virtual void OnRspQryTransferBank(CThostFtdcTransferBankField *pTransferBank, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
147
+
148
+ ///�����ѯͶ���ֲ߳���ϸ��Ӧ
149
+ virtual void OnRspQryInvestorPositionDetail(CThostFtdcInvestorPositionDetailField *pInvestorPositionDetail, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
150
+
151
+ ///�����ѯ�ͻ�֪ͨ��Ӧ
152
+ virtual void OnRspQryNotice(CThostFtdcNoticeField *pNotice, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
153
+
154
+ ///�����ѯ������Ϣȷ����Ӧ
155
+ virtual void OnRspQrySettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
156
+
157
+ ///�����ѯͶ���ֲ߳���ϸ��Ӧ
158
+ virtual void OnRspQryInvestorPositionCombineDetail(CThostFtdcInvestorPositionCombineDetailField *pInvestorPositionCombineDetail, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
159
+
160
+ ///��ѯ��֤����ϵͳ���͹�˾�ʽ��˻���Կ��Ӧ
161
+ virtual void OnRspQryCFMMCTradingAccountKey(CThostFtdcCFMMCTradingAccountKeyField *pCFMMCTradingAccountKey, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
162
+
163
+ ///�����ѯ�ֵ��۵���Ϣ��Ӧ
164
+ virtual void OnRspQryEWarrantOffset(CThostFtdcEWarrantOffsetField *pEWarrantOffset, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
165
+
166
+ ///�����ѯͶ����Ʒ��/��Ʒ�ֱ�֤����Ӧ
167
+ virtual void OnRspQryInvestorProductGroupMargin(CThostFtdcInvestorProductGroupMarginField *pInvestorProductGroupMargin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
168
+
169
+ ///�����ѯ��������֤������Ӧ
170
+ virtual void OnRspQryExchangeMarginRate(CThostFtdcExchangeMarginRateField *pExchangeMarginRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
171
+
172
+ ///�����ѯ������������֤������Ӧ
173
+ virtual void OnRspQryExchangeMarginRateAdjust(CThostFtdcExchangeMarginRateAdjustField *pExchangeMarginRateAdjust, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
174
+
175
+ ///�����ѯ������Ӧ
176
+ virtual void OnRspQryExchangeRate(CThostFtdcExchangeRateField *pExchangeRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
177
+
178
+ ///�����ѯ������������Ա����Ȩ����Ӧ
179
+ virtual void OnRspQrySecAgentACIDMap(CThostFtdcSecAgentACIDMapField *pSecAgentACIDMap, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
180
+
181
+ ///�����ѯ��Ʒ���ۻ���
182
+ virtual void OnRspQryProductExchRate(CThostFtdcProductExchRateField *pProductExchRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
183
+
184
+ ///�����ѯ��Ȩ���׳ɱ���Ӧ
185
+ virtual void OnRspQryOptionInstrTradeCost(CThostFtdcOptionInstrTradeCostField *pOptionInstrTradeCost, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
186
+
187
+ ///�����ѯ��Ȩ��Լ��������Ӧ
188
+ virtual void OnRspQryOptionInstrCommRate(CThostFtdcOptionInstrCommRateField *pOptionInstrCommRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
189
+
190
+ ///�����ѯִ��������Ӧ
191
+ virtual void OnRspQryExecOrder(CThostFtdcExecOrderField *pExecOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
192
+
193
+ ///�����ѯѯ����Ӧ
194
+ virtual void OnRspQryForQuote(CThostFtdcForQuoteField *pForQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
195
+
196
+ ///�����ѯ������Ӧ
197
+ virtual void OnRspQryQuote(CThostFtdcQuoteField *pQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
198
+
199
+ ///�����ѯ��Ϻ�Լ��ȫϵ����Ӧ
200
+ virtual void OnRspQryCombInstrumentGuard(CThostFtdcCombInstrumentGuardField *pCombInstrumentGuard, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
201
+
202
+ ///�����ѯ���������Ӧ
203
+ virtual void OnRspQryCombAction(CThostFtdcCombActionField *pCombAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
204
+
205
+ ///�����ѯת����ˮ��Ӧ
206
+ virtual void OnRspQryTransferSerial(CThostFtdcTransferSerialField *pTransferSerial, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
207
+
208
+ ///�����ѯ����ǩԼ��ϵ��Ӧ
209
+ virtual void OnRspQryAccountregister(CThostFtdcAccountregisterField *pAccountregister, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
210
+
211
+ ///����Ӧ��
212
+ virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
213
+
214
+ ///����֪ͨ
215
+ virtual void OnRtnOrder(CThostFtdcOrderField *pOrder) {};
216
+
217
+ ///�ɽ�֪ͨ
218
+ virtual void OnRtnTrade(CThostFtdcTradeField *pTrade) {};
219
+
220
+ ///����¼�����ر�
221
+ virtual void OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo) {};
222
+
223
+ ///������������ر�
224
+ virtual void OnErrRtnOrderAction(CThostFtdcOrderActionField *pOrderAction, CThostFtdcRspInfoField *pRspInfo) {};
225
+
226
+ ///��Լ����״̬֪ͨ
227
+ virtual void OnRtnInstrumentStatus(CThostFtdcInstrumentStatusField *pInstrumentStatus) {};
228
+
229
+ ///����֪ͨ
230
+ virtual void OnRtnTradingNotice(CThostFtdcTradingNoticeInfoField *pTradingNoticeInfo) {};
231
+
232
+ ///��ʾ������У�����
233
+ virtual void OnRtnErrorConditionalOrder(CThostFtdcErrorConditionalOrderField *pErrorConditionalOrder) {};
234
+
235
+ ///ִ������֪ͨ
236
+ virtual void OnRtnExecOrder(CThostFtdcExecOrderField *pExecOrder) {};
237
+
238
+ ///ִ������¼�����ر�
239
+ virtual void OnErrRtnExecOrderInsert(CThostFtdcInputExecOrderField *pInputExecOrder, CThostFtdcRspInfoField *pRspInfo) {};
240
+
241
+ ///ִ�������������ر�
242
+ virtual void OnErrRtnExecOrderAction(CThostFtdcExecOrderActionField *pExecOrderAction, CThostFtdcRspInfoField *pRspInfo) {};
243
+
244
+ ///ѯ��¼�����ر�
245
+ virtual void OnErrRtnForQuoteInsert(CThostFtdcInputForQuoteField *pInputForQuote, CThostFtdcRspInfoField *pRspInfo) {};
246
+
247
+ ///����֪ͨ
248
+ virtual void OnRtnQuote(CThostFtdcQuoteField *pQuote) {};
249
+
250
+ ///����¼�����ر�
251
+ virtual void OnErrRtnQuoteInsert(CThostFtdcInputQuoteField *pInputQuote, CThostFtdcRspInfoField *pRspInfo) {};
252
+
253
+ ///���۲�������ر�
254
+ virtual void OnErrRtnQuoteAction(CThostFtdcQuoteActionField *pQuoteAction, CThostFtdcRspInfoField *pRspInfo) {};
255
+
256
+ ///ѯ��֪ͨ
257
+ virtual void OnRtnForQuoteRsp(CThostFtdcForQuoteRspField *pForQuoteRsp) {};
258
+
259
+ ///��֤���������û�����
260
+ virtual void OnRtnCFMMCTradingAccountToken(CThostFtdcCFMMCTradingAccountTokenField *pCFMMCTradingAccountToken) {};
261
+
262
+ ///�������֪ͨ
263
+ virtual void OnRtnCombAction(CThostFtdcCombActionField *pCombAction) {};
264
+
265
+ ///�������¼�����ر�
266
+ virtual void OnErrRtnCombActionInsert(CThostFtdcInputCombActionField *pInputCombAction, CThostFtdcRspInfoField *pRspInfo) {};
267
+
268
+ ///�����ѯǩԼ������Ӧ
269
+ virtual void OnRspQryContractBank(CThostFtdcContractBankField *pContractBank, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
270
+
271
+ ///�����ѯԤ����Ӧ
272
+ virtual void OnRspQryParkedOrder(CThostFtdcParkedOrderField *pParkedOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
273
+
274
+ ///�����ѯԤ�񳷵���Ӧ
275
+ virtual void OnRspQryParkedOrderAction(CThostFtdcParkedOrderActionField *pParkedOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
276
+
277
+ ///�����ѯ����֪ͨ��Ӧ
278
+ virtual void OnRspQryTradingNotice(CThostFtdcTradingNoticeField *pTradingNotice, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
279
+
280
+ ///�����ѯ���͹�˾���ײ�����Ӧ
281
+ virtual void OnRspQryBrokerTradingParams(CThostFtdcBrokerTradingParamsField *pBrokerTradingParams, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
282
+
283
+ ///�����ѯ���͹�˾�����㷨��Ӧ
284
+ virtual void OnRspQryBrokerTradingAlgos(CThostFtdcBrokerTradingAlgosField *pBrokerTradingAlgos, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
285
+
286
+ ///�����ѯ��������û�����
287
+ virtual void OnRspQueryCFMMCTradingAccountToken(CThostFtdcQueryCFMMCTradingAccountTokenField *pQueryCFMMCTradingAccountToken, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
288
+
289
+ ///���з��������ʽ�ת�ڻ�֪ͨ
290
+ virtual void OnRtnFromBankToFutureByBank(CThostFtdcRspTransferField *pRspTransfer) {};
291
+
292
+ ///���з����ڻ��ʽ�ת����֪ͨ
293
+ virtual void OnRtnFromFutureToBankByBank(CThostFtdcRspTransferField *pRspTransfer) {};
294
+
295
+ ///���з����������ת�ڻ�֪ͨ
296
+ virtual void OnRtnRepealFromBankToFutureByBank(CThostFtdcRspRepealField *pRspRepeal) {};
297
+
298
+ ///���з�������ڻ�ת����֪ͨ
299
+ virtual void OnRtnRepealFromFutureToBankByBank(CThostFtdcRspRepealField *pRspRepeal) {};
300
+
301
+ ///�ڻ����������ʽ�ת�ڻ�֪ͨ
302
+ virtual void OnRtnFromBankToFutureByFuture(CThostFtdcRspTransferField *pRspTransfer) {};
303
+
304
+ ///�ڻ������ڻ��ʽ�ת����֪ͨ
305
+ virtual void OnRtnFromFutureToBankByFuture(CThostFtdcRspTransferField *pRspTransfer) {};
306
+
307
+ ///ϵͳ����ʱ�ڻ����ֹ������������ת�ڻ��������д�����Ϻ��̷��ص�֪ͨ
308
+ virtual void OnRtnRepealFromBankToFutureByFutureManual(CThostFtdcRspRepealField *pRspRepeal) {};
309
+
310
+ ///ϵͳ����ʱ�ڻ����ֹ���������ڻ�ת�����������д�����Ϻ��̷��ص�֪ͨ
311
+ virtual void OnRtnRepealFromFutureToBankByFutureManual(CThostFtdcRspRepealField *pRspRepeal) {};
312
+
313
+ ///�ڻ������ѯ�������֪ͨ
314
+ virtual void OnRtnQueryBankBalanceByFuture(CThostFtdcNotifyQueryAccountField *pNotifyQueryAccount) {};
315
+
316
+ ///�ڻ����������ʽ�ת�ڻ�����ر�
317
+ virtual void OnErrRtnBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo) {};
318
+
319
+ ///�ڻ������ڻ��ʽ�ת���д���ر�
320
+ virtual void OnErrRtnFutureToBankByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo) {};
321
+
322
+ ///ϵͳ����ʱ�ڻ����ֹ������������ת�ڻ�����ر�
323
+ virtual void OnErrRtnRepealBankToFutureByFutureManual(CThostFtdcReqRepealField *pReqRepeal, CThostFtdcRspInfoField *pRspInfo) {};
324
+
325
+ ///ϵͳ����ʱ�ڻ����ֹ���������ڻ�ת���д���ر�
326
+ virtual void OnErrRtnRepealFutureToBankByFutureManual(CThostFtdcReqRepealField *pReqRepeal, CThostFtdcRspInfoField *pRspInfo) {};
327
+
328
+ ///�ڻ������ѯ����������ر�
329
+ virtual void OnErrRtnQueryBankBalanceByFuture(CThostFtdcReqQueryAccountField *pReqQueryAccount, CThostFtdcRspInfoField *pRspInfo) {};
330
+
331
+ ///�ڻ������������ת�ڻ��������д�����Ϻ��̷��ص�֪ͨ
332
+ virtual void OnRtnRepealFromBankToFutureByFuture(CThostFtdcRspRepealField *pRspRepeal) {};
333
+
334
+ ///�ڻ���������ڻ�ת�����������д�����Ϻ��̷��ص�֪ͨ
335
+ virtual void OnRtnRepealFromFutureToBankByFuture(CThostFtdcRspRepealField *pRspRepeal) {};
336
+
337
+ ///�ڻ����������ʽ�ת�ڻ�Ӧ��
338
+ virtual void OnRspFromBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
339
+
340
+ ///�ڻ������ڻ��ʽ�ת����Ӧ��
341
+ virtual void OnRspFromFutureToBankByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
342
+
343
+ ///�ڻ������ѯ�������Ӧ��
344
+ virtual void OnRspQueryBankAccountMoneyByFuture(CThostFtdcReqQueryAccountField *pReqQueryAccount, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
345
+
346
+ ///���з������ڿ���֪ͨ
347
+ virtual void OnRtnOpenAccountByBank(CThostFtdcOpenAccountField *pOpenAccount) {};
348
+
349
+ ///���з�����������֪ͨ
350
+ virtual void OnRtnCancelAccountByBank(CThostFtdcCancelAccountField *pCancelAccount) {};
351
+
352
+ ///���з����������˺�֪ͨ
353
+ virtual void OnRtnChangeAccountByBank(CThostFtdcChangeAccountField *pChangeAccount) {};
354
+ };
355
+
356
+ class TRADER_API_EXPORT CThostFtdcTraderApi
357
+ {
358
+ public:
359
+ ///����TraderApi
360
+ ///@param pszFlowPath ����������Ϣ�ļ���Ŀ¼��Ĭ��Ϊ��ǰĿ¼
361
+ ///@return ��������UserApi
362
+ static CThostFtdcTraderApi *CreateFtdcTraderApi(const char *pszFlowPath = "");
363
+
364
+ ///��ȡAPI�İ汾��Ϣ
365
+ ///@retrun ��ȡ���İ汾��
366
+ static const char *GetApiVersion();
367
+
368
+ ///ɾ���ӿڶ�����
369
+ ///@remark ����ʹ�ñ��ӿڶ���ʱ,���øú���ɾ���ӿڶ���
370
+ virtual void Release() = 0;
371
+
372
+ ///��ʼ��
373
+ ///@remark ��ʼ�����л���,ֻ�е��ú�,�ӿڲſ�ʼ����
374
+ virtual void Init() = 0;
375
+
376
+ ///�ȴ��ӿ��߳̽�������
377
+ ///@return �߳��˳�����
378
+ virtual int Join() = 0;
379
+
380
+ ///��ȡ��ǰ������
381
+ ///@retrun ��ȡ���Ľ�����
382
+ ///@remark ֻ�е�¼�ɹ���,���ܵõ���ȷ�Ľ�����
383
+ virtual const char *GetTradingDay() = 0;
384
+
385
+ ///ע��ǰ�û������ַ
386
+ ///@param pszFrontAddress��ǰ�û������ַ��
387
+ ///@remark �����ַ�ĸ�ʽΪ����protocol://ipaddress:port�����磺��tcp://127.0.0.1:17001����
388
+ ///@remark ��tcp����������Э�飬��127.0.0.1��������������ַ����17001�������������˿ںš�
389
+ virtual void RegisterFront(char *pszFrontAddress) = 0;
390
+
391
+ ///ע�����ַ����������ַ
392
+ ///@param pszNsAddress�����ַ����������ַ��
393
+ ///@remark �����ַ�ĸ�ʽΪ����protocol://ipaddress:port�����磺��tcp://127.0.0.1:12001����
394
+ ///@remark ��tcp����������Э�飬��127.0.0.1��������������ַ����12001�������������˿ںš�
395
+ ///@remark RegisterNameServer������RegisterFront
396
+ virtual void RegisterNameServer(char *pszNsAddress) = 0;
397
+
398
+ ///ע�����ַ������û���Ϣ
399
+ ///@param pFensUserInfo���û���Ϣ��
400
+ virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField * pFensUserInfo) = 0;
401
+
402
+ ///ע��ص��ӿ�
403
+ ///@param pSpi �����Իص��ӿ����ʵ��
404
+ virtual void RegisterSpi(CThostFtdcTraderSpi *pSpi) = 0;
405
+
406
+ ///����˽������
407
+ ///@param nResumeType ˽�����ش���ʽ
408
+ /// THOST_TERT_RESTART:�ӱ������տ�ʼ�ش�
409
+ /// THOST_TERT_RESUME:���ϴ��յ�������
410
+ /// THOST_TERT_QUICK:ֻ���͵�¼��˽����������
411
+ ///@remark �÷���Ҫ��Init����ǰ���á����������򲻻��յ�˽���������ݡ�
412
+ virtual void SubscribePrivateTopic(THOST_TE_RESUME_TYPE nResumeType) = 0;
413
+
414
+ ///����������
415
+ ///@param nResumeType �������ش���ʽ
416
+ /// THOST_TERT_RESTART:�ӱ������տ�ʼ�ش�
417
+ /// THOST_TERT_RESUME:���ϴ��յ�������
418
+ /// THOST_TERT_QUICK:ֻ���͵�¼�󹫹���������
419
+ ///@remark �÷���Ҫ��Init����ǰ���á����������򲻻��յ������������ݡ�
420
+ virtual void SubscribePublicTopic(THOST_TE_RESUME_TYPE nResumeType) = 0;
421
+
422
+ ///�ͻ�����֤����
423
+ virtual int ReqAuthenticate(CThostFtdcReqAuthenticateField *pReqAuthenticateField, int nRequestID) = 0;
424
+
425
+ ///�û���¼����
426
+ virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) = 0;
427
+
428
+
429
+ ///�dz�����
430
+ virtual int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) = 0;
431
+
432
+ ///�û������������
433
+ virtual int ReqUserPasswordUpdate(CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID) = 0;
434
+
435
+ ///�ʽ��˻������������
436
+ virtual int ReqTradingAccountPasswordUpdate(CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate, int nRequestID) = 0;
437
+
438
+ ///����¼������
439
+ virtual int ReqOrderInsert(CThostFtdcInputOrderField *pInputOrder, int nRequestID) = 0;
440
+
441
+ ///Ԥ��¼������
442
+ virtual int ReqParkedOrderInsert(CThostFtdcParkedOrderField *pParkedOrder, int nRequestID) = 0;
443
+
444
+ ///Ԥ�񳷵�¼������
445
+ virtual int ReqParkedOrderAction(CThostFtdcParkedOrderActionField *pParkedOrderAction, int nRequestID) = 0;
446
+
447
+ ///������������
448
+ virtual int ReqOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, int nRequestID) = 0;
449
+
450
+ ///��ѯ��󱨵���������
451
+ virtual int ReqQueryMaxOrderVolume(CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, int nRequestID) = 0;
452
+
453
+ ///Ͷ���߽�����ȷ��
454
+ virtual int ReqSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, int nRequestID) = 0;
455
+
456
+ ///����ɾ��Ԥ��
457
+ virtual int ReqRemoveParkedOrder(CThostFtdcRemoveParkedOrderField *pRemoveParkedOrder, int nRequestID) = 0;
458
+
459
+ ///����ɾ��Ԥ�񳷵�
460
+ virtual int ReqRemoveParkedOrderAction(CThostFtdcRemoveParkedOrderActionField *pRemoveParkedOrderAction, int nRequestID) = 0;
461
+
462
+ ///ִ������¼������
463
+ virtual int ReqExecOrderInsert(CThostFtdcInputExecOrderField *pInputExecOrder, int nRequestID) = 0;
464
+
465
+ ///ִ�������������
466
+ virtual int ReqExecOrderAction(CThostFtdcInputExecOrderActionField *pInputExecOrderAction, int nRequestID) = 0;
467
+
468
+ ///ѯ��¼������
469
+ virtual int ReqForQuoteInsert(CThostFtdcInputForQuoteField *pInputForQuote, int nRequestID) = 0;
470
+
471
+ ///����¼������
472
+ virtual int ReqQuoteInsert(CThostFtdcInputQuoteField *pInputQuote, int nRequestID) = 0;
473
+
474
+ ///���۲�������
475
+ virtual int ReqQuoteAction(CThostFtdcInputQuoteActionField *pInputQuoteAction, int nRequestID) = 0;
476
+
477
+ ///�������¼������
478
+ virtual int ReqCombActionInsert(CThostFtdcInputCombActionField *pInputCombAction, int nRequestID) = 0;
479
+
480
+ ///�����ѯ����
481
+ virtual int ReqQryOrder(CThostFtdcQryOrderField *pQryOrder, int nRequestID) = 0;
482
+
483
+ ///�����ѯ�ɽ�
484
+ virtual int ReqQryTrade(CThostFtdcQryTradeField *pQryTrade, int nRequestID) = 0;
485
+
486
+ ///�����ѯͶ���ֲ߳�
487
+ virtual int ReqQryInvestorPosition(CThostFtdcQryInvestorPositionField *pQryInvestorPosition, int nRequestID) = 0;
488
+
489
+ ///�����ѯ�ʽ��˻�
490
+ virtual int ReqQryTradingAccount(CThostFtdcQryTradingAccountField *pQryTradingAccount, int nRequestID) = 0;
491
+
492
+ ///�����ѯͶ����
493
+ virtual int ReqQryInvestor(CThostFtdcQryInvestorField *pQryInvestor, int nRequestID) = 0;
494
+
495
+ ///�����ѯ���ױ���
496
+ virtual int ReqQryTradingCode(CThostFtdcQryTradingCodeField *pQryTradingCode, int nRequestID) = 0;
497
+
498
+ ///�����ѯ��Լ��֤����
499
+ virtual int ReqQryInstrumentMarginRate(CThostFtdcQryInstrumentMarginRateField *pQryInstrumentMarginRate, int nRequestID) = 0;
500
+
501
+ ///�����ѯ��Լ��������
502
+ virtual int ReqQryInstrumentCommissionRate(CThostFtdcQryInstrumentCommissionRateField *pQryInstrumentCommissionRate, int nRequestID) = 0;
503
+
504
+ ///�����ѯ������
505
+ virtual int ReqQryExchange(CThostFtdcQryExchangeField *pQryExchange, int nRequestID) = 0;
506
+
507
+ ///�����ѯ��Ʒ
508
+ virtual int ReqQryProduct(CThostFtdcQryProductField *pQryProduct, int nRequestID) = 0;
509
+
510
+ ///�����ѯ��Լ
511
+ virtual int ReqQryInstrument(CThostFtdcQryInstrumentField *pQryInstrument, int nRequestID) = 0;
512
+
513
+ ///�����ѯ����
514
+ virtual int ReqQryDepthMarketData(CThostFtdcQryDepthMarketDataField *pQryDepthMarketData, int nRequestID) = 0;
515
+
516
+ ///�����ѯͶ���߽�����
517
+ virtual int ReqQrySettlementInfo(CThostFtdcQrySettlementInfoField *pQrySettlementInfo, int nRequestID) = 0;
518
+
519
+ ///�����ѯת������
520
+ virtual int ReqQryTransferBank(CThostFtdcQryTransferBankField *pQryTransferBank, int nRequestID) = 0;
521
+
522
+ ///�����ѯͶ���ֲ߳���ϸ
523
+ virtual int ReqQryInvestorPositionDetail(CThostFtdcQryInvestorPositionDetailField *pQryInvestorPositionDetail, int nRequestID) = 0;
524
+
525
+ ///�����ѯ�ͻ�֪ͨ
526
+ virtual int ReqQryNotice(CThostFtdcQryNoticeField *pQryNotice, int nRequestID) = 0;
527
+
528
+ ///�����ѯ������Ϣȷ��
529
+ virtual int ReqQrySettlementInfoConfirm(CThostFtdcQrySettlementInfoConfirmField *pQrySettlementInfoConfirm, int nRequestID) = 0;
530
+
531
+ ///�����ѯͶ���ֲ߳���ϸ
532
+ virtual int ReqQryInvestorPositionCombineDetail(CThostFtdcQryInvestorPositionCombineDetailField *pQryInvestorPositionCombineDetail, int nRequestID) = 0;
533
+
534
+ ///�����ѯ��֤����ϵͳ���͹�˾�ʽ��˻���Կ
535
+ virtual int ReqQryCFMMCTradingAccountKey(CThostFtdcQryCFMMCTradingAccountKeyField *pQryCFMMCTradingAccountKey, int nRequestID) = 0;
536
+
537
+ ///�����ѯ�ֵ��۵���Ϣ
538
+ virtual int ReqQryEWarrantOffset(CThostFtdcQryEWarrantOffsetField *pQryEWarrantOffset, int nRequestID) = 0;
539
+
540
+ ///�����ѯͶ����Ʒ��/��Ʒ�ֱ�֤��
541
+ virtual int ReqQryInvestorProductGroupMargin(CThostFtdcQryInvestorProductGroupMarginField *pQryInvestorProductGroupMargin, int nRequestID) = 0;
542
+
543
+ ///�����ѯ��������֤����
544
+ virtual int ReqQryExchangeMarginRate(CThostFtdcQryExchangeMarginRateField *pQryExchangeMarginRate, int nRequestID) = 0;
545
+
546
+ ///�����ѯ������������֤����
547
+ virtual int ReqQryExchangeMarginRateAdjust(CThostFtdcQryExchangeMarginRateAdjustField *pQryExchangeMarginRateAdjust, int nRequestID) = 0;
548
+
549
+ ///�����ѯ����
550
+ virtual int ReqQryExchangeRate(CThostFtdcQryExchangeRateField *pQryExchangeRate, int nRequestID) = 0;
551
+
552
+ ///�����ѯ������������Ա����Ȩ��
553
+ virtual int ReqQrySecAgentACIDMap(CThostFtdcQrySecAgentACIDMapField *pQrySecAgentACIDMap, int nRequestID) = 0;
554
+
555
+ ///�����ѯ��Ʒ���ۻ���
556
+ virtual int ReqQryProductExchRate(CThostFtdcQryProductExchRateField *pQryProductExchRate, int nRequestID) = 0;
557
+
558
+ ///�����ѯ��Ȩ���׳ɱ�
559
+ virtual int ReqQryOptionInstrTradeCost(CThostFtdcQryOptionInstrTradeCostField *pQryOptionInstrTradeCost, int nRequestID) = 0;
560
+
561
+ ///�����ѯ��Ȩ��Լ������
562
+ virtual int ReqQryOptionInstrCommRate(CThostFtdcQryOptionInstrCommRateField *pQryOptionInstrCommRate, int nRequestID) = 0;
563
+
564
+ ///�����ѯִ������
565
+ virtual int ReqQryExecOrder(CThostFtdcQryExecOrderField *pQryExecOrder, int nRequestID) = 0;
566
+
567
+ ///�����ѯѯ��
568
+ virtual int ReqQryForQuote(CThostFtdcQryForQuoteField *pQryForQuote, int nRequestID) = 0;
569
+
570
+ ///�����ѯ����
571
+ virtual int ReqQryQuote(CThostFtdcQryQuoteField *pQryQuote, int nRequestID) = 0;
572
+
573
+ ///�����ѯ��Ϻ�Լ��ȫϵ��
574
+ virtual int ReqQryCombInstrumentGuard(CThostFtdcQryCombInstrumentGuardField *pQryCombInstrumentGuard, int nRequestID) = 0;
575
+
576
+ ///�����ѯ�������
577
+ virtual int ReqQryCombAction(CThostFtdcQryCombActionField *pQryCombAction, int nRequestID) = 0;
578
+
579
+ ///�����ѯת����ˮ
580
+ virtual int ReqQryTransferSerial(CThostFtdcQryTransferSerialField *pQryTransferSerial, int nRequestID) = 0;
581
+
582
+ ///�����ѯ����ǩԼ��ϵ
583
+ virtual int ReqQryAccountregister(CThostFtdcQryAccountregisterField *pQryAccountregister, int nRequestID) = 0;
584
+
585
+ ///�����ѯǩԼ����
586
+ virtual int ReqQryContractBank(CThostFtdcQryContractBankField *pQryContractBank, int nRequestID) = 0;
587
+
588
+ ///�����ѯԤ��
589
+ virtual int ReqQryParkedOrder(CThostFtdcQryParkedOrderField *pQryParkedOrder, int nRequestID) = 0;
590
+
591
+ ///�����ѯԤ�񳷵�
592
+ virtual int ReqQryParkedOrderAction(CThostFtdcQryParkedOrderActionField *pQryParkedOrderAction, int nRequestID) = 0;
593
+
594
+ ///�����ѯ����֪ͨ
595
+ virtual int ReqQryTradingNotice(CThostFtdcQryTradingNoticeField *pQryTradingNotice, int nRequestID) = 0;
596
+
597
+ ///�����ѯ���͹�˾���ײ���
598
+ virtual int ReqQryBrokerTradingParams(CThostFtdcQryBrokerTradingParamsField *pQryBrokerTradingParams, int nRequestID) = 0;
599
+
600
+ ///�����ѯ���͹�˾�����㷨
601
+ virtual int ReqQryBrokerTradingAlgos(CThostFtdcQryBrokerTradingAlgosField *pQryBrokerTradingAlgos, int nRequestID) = 0;
602
+
603
+ ///�����ѯ��������û�����
604
+ virtual int ReqQueryCFMMCTradingAccountToken(CThostFtdcQueryCFMMCTradingAccountTokenField *pQueryCFMMCTradingAccountToken, int nRequestID) = 0;
605
+
606
+ ///�ڻ����������ʽ�ת�ڻ�����
607
+ virtual int ReqFromBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, int nRequestID) = 0;
608
+
609
+ ///�ڻ������ڻ��ʽ�ת��������
610
+ virtual int ReqFromFutureToBankByFuture(CThostFtdcReqTransferField *pReqTransfer, int nRequestID) = 0;
611
+
612
+ ///�ڻ������ѯ�����������
613
+ virtual int ReqQueryBankAccountMoneyByFuture(CThostFtdcReqQueryAccountField *pReqQueryAccount, int nRequestID) = 0;
614
+ protected:
615
+ ~CThostFtdcTraderApi(){};
616
+ };
617
+
618
+ #endif