-
Notifications
You must be signed in to change notification settings - Fork 14
/
RearchPlan.txt
216 lines (164 loc) · 8.54 KB
/
RearchPlan.txt
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
研究计划&进展
[2015.06.07]
上一期任务完成情况:
1)完成了报单,FAK报单实现,能够正确报单,但是成交反馈并没有处理。
2)实现了买卖点短期来回波动的过滤。
下一期任务制定:
1)复盘k线图,验证之前的(均线交叉策略)买卖点结果,判断正确率
2)尝试加权平均线交叉策略
[2015.06.14]
上一期任务完成情况:
1)复盘k线完成,成交价符合实盘行情,但是买卖点计算不对,过于频繁,且滞后性强
1. 一般MA线交叉策略,买卖点非常频繁
2. 均价MA线交叉策略,买卖点相对前一种少,但是不能过滤掉频繁波动。
下一期任务制定:
1)重构均线交叉策略,实现MACrossStratgy基类,然后实现EMA, SMA, WMA, DMA等均线子类
[2015-07-23]
遇到错误 "输入报单错误"
线索一: 输入报单参数相互矛盾
1) 市价单:
价格条件类型 THOST_FTDC_OPT_AnyPrice
有效期类型 IOCTHOST_FTDC_TC_IOC
价格 : 不需要
2) 限价单
价格条件类型 THOST_FTDC_OPT_LimitPrice
有效期类型 IOCTHOST_FTDC_TC_GFD
价格 : 需要
[2015-8-6]
初级 MultiCharts
中级 OpenQuant amibroker smartquant 可以用c++或者c#开发插件
[2015-9-1]
问题:
需要同时去查询account 和 position(仓位),但是这两个请求的回调函数很久才返回。
目前是在OnRtnTrade()中去调用 这两个查询请求,但是对于已经存在的交易,OnRtnTrade仍然会被调用到
[2015-9-2]
解决思路: 可能是由于当前没有任何持仓,所以查询持仓返回空指针。等下次有持仓再试一试
[2015-9-9]
有持仓以后,仍然查询持仓返回空指针。目前我查询合约持仓传入的instrument 为 rb1601.
下一步: 传入""试试,看是否会有正确的回报
另外一个思路,不去调用查询position的函数,而是在每次启动时根据OnRtnTrade的回报来累计计算仓位
[2015-9-10]
传入“”作为合约,不再返回空指针,但是指针所指向的内容是错误的。
遇到问题,OnRtnTrade()不会被回调,查出原因是由于changelist(2015年9月2日)引起的。把带中文注释的api 头文件替换了之前去掉中文注释的头文件。
因为encoding的问题,暂时没有很好的解决。所以暂时先替换会之前的无中文注释的头文件。
[2016-1-6]
include "boost/asio.hpp"报错,error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?
解决: 在include <winodws.h> 前 include <boost/asio.hpp>
[2016-1-31]
问题: mdspi中的 OnFrontConnected的回调一直不被调用了。
通过调试别人的代码发现,没有调用mdApi->Init()
[2016-2-3]
connection refused.
用android的模拟器只能连接10.0.2.2这个地址,于是把server的地址改成这个
[2016-2-5]
Critical Bug: android登陆成功进入Account页面,然后后退,然后再次登陆,服务器crash在ctp的dll中。
Critical Bug: 两次socket通信中,session通过map缓存起来,但是却发现每次通信都建立了新的session。
[2016-2-8]
在另外电脑搭建开发环境时,发现boost链接出现
1>socket_server.obj : error LNK2019: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ),该符号在函数 "public: __cdecl boost::system::error_code::error_code(void)" (??0error_code@system@boost@@QEAA@XZ) 中被引用
这个是由于boost默认编译32bit,需要编译64bit
[2016-02-18]
to use dlopen(..), we should link dl with target.
[2016-02-24]
出现crash, thread移动语义出错
thread& _Move_thread(thread& _Other)
{ // move from _Other
if (joinable())
_XSTD terminate();
_Thr = _Other._Thr;
_Thr_set_null(_Other._Thr);
return (*this);
}
_Thrd_t _Thr;
};
[2016-02-25]
BUG: 调用ReqQryOrder以后,OnRspQryOrder回调函数始终不进入。
Solution: 原因simnow的ctp dll 6.3.6版本有问题,替换为6.3.5版本以后,问题消失。
同时,
-"MdFront":"tcp://218.202.237.33:10012",
-"TradeFront":"tcp://218.202.237.33:10002",
+"MdFront":"tcp://180.168.146.187:10010",
+"TradeFront":"tcp://180.168.146.187:10000",
[2016-03-18]
Problem-1
===============
在用gdb调试程序的时候出现这样一种错误:
Program received signal SIGTRAP, Trace/breakpoint trap.
在网上查到解决方案了,在这mark一下,以后有时间好好研究。
[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
找到解决问题的办法了
在kernel mode改写了watchpoint的值以后,cpu把eflags的TF位置1了,照理说gdb应该清0这一位,但由于未知原因,gdb没清0该位,
(gdb) info registers
eax 0x1 1
ecx 0xbfa4fc93 -1079706477
edx 0x1 1
ebx 0x0 0
esp 0xbfa4fc64 0xbfa4fc64
ebp 0xbfa4fc98 0xbfa4fc98
esi 0x92dca0 9624736
edi 0x0 0
eip 0x978402 0x978402 <__kernel_vsyscall+2>
eflags 0x200346 [ PF ZF TF IF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb)
只需手动清楚该位即可:
(gdb) set $ps&=~(1<<8) 【on x86-based machines $ps is an alias for the eflags register,TF is the 9th bit of eflags】
(gdb) info registers
eax 0x1 1
ecx 0xbf90f353 -1081019565
edx 0x1 1
ebx 0x0 0
esp 0xbf90f324 0xbf90f324
ebp 0xbf90f358 0xbf90f358
esi 0x92dca0 9624736
edi 0x0 0
eip 0xe66402 0xe66402 <__kernel_vsyscall+2>
eflags 0x200246 [ PF ZF IF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb)
再continue,gdb就不会不停收到SIGTRAP了
===============
Problem-2
===============
avoiding gdb signal noise.
Posted by peeterjoot on July 7, 2010
A quick note for future reference (recorded elsewhere and subsequently lost).
Suppose your program handles a signal that gdb intercepts by default, like the following example
(gdb) c
Continuing.
Program received signal SIGUSR1, User defined signal 1.
[Switching to Thread 47133440862528 (LWP 4833)]
0x00002ade149d6baa in semtimedop () from /lib64/libc.so.6
(gdb) c
You can hit ‘c’ to continue at this point, but if it happens repeatedly in various threads (like when one thread is calling pthread_kill() to force each other thread in turn to dump its stack and stuff) this repeated ‘c’ing can be a bit of a pain.
For the same SIGUSR1 example above, you can query the gdb handler rules like so:
(gdb) info signal SIGUSR1
Signal Stop Print Pass to program Description
SIGUSR1 Yes Yes Yes User defined signal 1
And if deemed to not be of interest, where you just want your program to continue without prompting or spamming, something like the following does the trick:
(gdb) handle SIGUSR1 noprint nostop
Signal Stop Print Pass to program Description
SIGUSR1 No No Yes User defined signal 1
[2016-07-27]
关于仓位实时计算。以下是当前思路:
目前通过PPMgr类来对仓位进行管理。tradespi只通过以下四个回调进行仓位更新:
1) OnRspQryTradingAccount //获取账户总体资金情况,仅初始化时回调一次
2) OnRspQryInvestorPosition //获取账户仓位情况,仅初始化时回调一次
3) OnRtnOrder // 如果当前交易日有报单,那么在初始化之前,会回调。主要用于更新冻结的保证金和手续费
4) OnRtnTrade // 如果当前交易日有成交,那么在初始化之前,会回调。这时不对仓位进行更新。需等到OnRspQryInvestorPosition全部回调 & 即仓位初始化完成后。如果再有新的成交产生,这时候需要对仓位进行更新。
[2016-08-01]
关于冻结保证金,如果同时对一个合约,
买/卖方向同时挂一手单,那么冻结保证金为单面的保证金
买/卖方向同时挂一手单,那么冻结手续费为单面的手续费(没有经过验证)
[2016-08-10]
测试点:当有昨仓存在的情况下,如果当前交易日,平掉昨仓后。在仓位管理类中,昨仓数目应该为0