高频做市策略的开发需要做回测吗？如果做，如何实施？
价格匹配就成交是个办法，但是是一个很粗糙的办法。 假设你是在做国外市场，有tick data的情况下，你可以做一些更复杂的假设和回测。 首先，你要对你的延迟(tick 2 trade)有个估计，也就是订单到达时间，这个可以是个常数，也可以是个变量。于是你就可以估计你的限价订单在到达交易所的时候，在队列里的位置了。 其次，少不了你的订单管理了，你想报，想撤，想让订单停留一段时间撤等等等。这时候你就基于队列的变化和市场成交状况来模拟是否成交，是否仍然在队列里。然后你可以假设从此刻开始，所有的成交都应该排在你前面，所有的撤销都应该在你的后面(push you up in the queue)。 最重要的是，在后台的逻辑里，你要想清楚了，你加入了限价单的队列，在你查询其是否成交的时候，"未成交"的信息发给你的时候，其实可能已经成交了。所以你要在后台做一个数据结构来储存订单的状况，一个Loop下来，根据的推送Limit order book 和逐笔成交的信息，在每一个循环里面更新你的订单的状况。然后推送给你“结果”。 这里的时间戳管理是个问题，但是应该还不是很难。 以上，你就基本造出来一个简单的，虚假的，交易所，which is a 大轮子。 上面的东西还是很粗糙的，其中之一是延迟是个变量，比如在Eurex 交易所内部延迟是个关于订单处理数量的线性函数，如下图所示（很幸运这是个线性函数）: 最可怕的是，你的假设是你的策略对于市场行为是没有影响的，而实际上不是的，当你参与市场的时候，别人会根据你的行为进行调整他们的策略，所以就看命吧。 我现在的办法是用matlab做了个简单的模拟撮合，这已经让我的matlab跑的非常非常慢了，我已经不打算再去加入新的成交逻辑，慢的要死，还没办法向量化。。。 我们公司里面是IT开发了一个平台， 实盘和回测代码写成一样就可以进行回测。这是一个非常非常大的轮子。。。我劝你还是闲着没事少跳坑为好，好好活着挺好的。 关于中国市场，500毫秒内部的事情是个黑箱。所以你基本靠猜来模拟成交，至于你的猜是瞎猜还是神操作，得看你的造化了。
与各位大神看法有小异。我本人负责开发期权做市商系统算起来两三年了，期权实际交易做了大半年，我们没有回测过。当然仿真还是做过多次的。仿真中会发现一些问题，实盘的时候会发现另外一些问题。期权交易我们两三个月不会亏损一天也算是常态，这个估计可以说明不回测其实也能过得去吧？附注一下：我们算是使用的做市商策略，但我们并不是官方的做市商。 确实有很多时候被动报单和主动吃单对交易结果的影响很大。有关是否要回测我这么看：把交易分为预测和执行两个层面；第一个层面先关注预测做得对不对，这一点可以通过历史数据回测，不一定是那种对价吃单的方法做回测，看看预测收益率与实际收益率之间的相关性也算一种回测；第二个层面关注一下如何优化执行让你的收益曲线更好看一点，这个层面可以做一些理论研究（实际上我们就有很漂亮的理论模型），但更快捷的是拿一些猜想的方法在实际交易中做实验。一般要是第一个层面做的不错，第二个层面的实验不会让你遭受什么大损失，反而还常常有意外惊喜。 我们自己开发做市商系统的时候，我很大一部分假设标的是随机游动的，即使标的和随机游动略有不同的地方，这些知识我也是早就知道的，不需要我再做回测去论证，所以我基本上直接省掉了第一个层面的东西，先建模编程，再经过仿真就实盘了。而执行层面的优化一直到现在都还在做。 将来我们一定还会继续研究这两个层面的知识。假设成交概率模型虽然是个方法，但费劲，效率和效果也不一定会很好，交易过程中你知道你做的是哪个层面的事情就马马虎虎能对付了。