[Add] load_bar/load_tick function for SpreadStrategyEngine

This commit is contained in:
vn.py 2019-11-10 16:34:39 +08:00
parent 1cb8233755
commit c5ee08ae82
5 changed files with 587 additions and 120 deletions

View File

@ -65,48 +65,48 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"2019-11-10 16:09:03.822440\t开始加载历史数据\n", "2019-11-10 16:33:53.249984\t开始加载历史数据\n",
"2019-11-10 16:09:07.915724\t历史数据加载完成数据量7200\n", "2019-11-10 16:33:56.769516\t历史数据加载完成数据量7200\n",
"2019-11-10 16:09:07.993766\t策略初始化完成\n", "2019-11-10 16:33:56.816391\t策略初始化完成\n",
"2019-11-10 16:09:07.993766\t开始回放历史数据\n", "2019-11-10 16:33:56.816391\t开始回放历史数据\n",
"2019-11-10 16:09:08.186919\t历史数据回放结束\n", "2019-11-10 16:33:56.957016\t历史数据回放结束\n",
"2019-11-10 16:09:08.186919\t开始计算逐日盯市盈亏\n", "2019-11-10 16:33:56.957016\t开始计算逐日盯市盈亏\n",
"2019-11-10 16:09:08.192772\t逐日盯市盈亏计算完成\n", "2019-11-10 16:33:56.957016\t逐日盯市盈亏计算完成\n",
"2019-11-10 16:09:08.193748\t开始计算策略统计指标\n", "2019-11-10 16:33:56.957016\t开始计算策略统计指标\n",
"2019-11-10 16:09:08.236670\t------------------------------\n", "2019-11-10 16:33:56.990219\t------------------------------\n",
"2019-11-10 16:09:08.236670\t首个交易日\t2019-10-14\n", "2019-11-10 16:33:56.991195\t首个交易日\t2019-10-14\n",
"2019-11-10 16:09:08.236670\t最后交易日\t2019-11-08\n", "2019-11-10 16:33:56.991195\t最后交易日\t2019-11-08\n",
"2019-11-10 16:09:08.236670\t总交易日\t20\n", "2019-11-10 16:33:56.992172\t总交易日\t20\n",
"2019-11-10 16:09:08.236670\t盈利交易日\t12\n", "2019-11-10 16:33:56.992172\t盈利交易日\t12\n",
"2019-11-10 16:09:08.236670\t亏损交易日\t8\n", "2019-11-10 16:33:56.992172\t亏损交易日\t8\n",
"2019-11-10 16:09:08.236670\t起始资金\t1,000,000.00\n", "2019-11-10 16:33:56.993148\t起始资金\t1,000,000.00\n",
"2019-11-10 16:09:08.236670\t结束资金\t1,075,600.00\n", "2019-11-10 16:33:56.993148\t结束资金\t1,075,600.00\n",
"2019-11-10 16:09:08.236670\t总收益率\t7.56%\n", "2019-11-10 16:33:56.994125\t总收益率\t7.56%\n",
"2019-11-10 16:09:08.236670\t年化收益\t90.72%\n", "2019-11-10 16:33:56.994125\t年化收益\t90.72%\n",
"2019-11-10 16:09:08.236670\t最大回撤: \t-24,600.00\n", "2019-11-10 16:33:56.994125\t最大回撤: \t-24,600.00\n",
"2019-11-10 16:09:08.236670\t百分比最大回撤: -2.29%\n", "2019-11-10 16:33:56.995102\t百分比最大回撤: -2.29%\n",
"2019-11-10 16:09:08.236670\t最长回撤天数: \t9\n", "2019-11-10 16:33:56.995102\t最长回撤天数: \t9\n",
"2019-11-10 16:09:08.236670\t总盈亏\t75,600.00\n", "2019-11-10 16:33:56.996078\t总盈亏\t75,600.00\n",
"2019-11-10 16:09:08.236670\t总手续费\t0.00\n", "2019-11-10 16:33:56.996078\t总手续费\t0.00\n",
"2019-11-10 16:09:08.236670\t总滑点\t0.00\n", "2019-11-10 16:33:56.996078\t总滑点\t0.00\n",
"2019-11-10 16:09:08.236670\t总成交金额\t3,603,600.00\n", "2019-11-10 16:33:56.997055\t总成交金额\t3,603,600.00\n",
"2019-11-10 16:09:08.236670\t总成交笔数\t435\n", "2019-11-10 16:33:56.997055\t总成交笔数\t435\n",
"2019-11-10 16:09:08.236670\t日均盈亏\t3,780.00\n", "2019-11-10 16:33:56.997055\t日均盈亏\t3,780.00\n",
"2019-11-10 16:09:08.236670\t日均手续费\t0.00\n", "2019-11-10 16:33:56.998031\t日均手续费\t0.00\n",
"2019-11-10 16:09:08.236670\t日均滑点\t0.00\n", "2019-11-10 16:33:56.999008\t日均滑点\t0.00\n",
"2019-11-10 16:09:08.236670\t日均成交金额\t180,180.00\n", "2019-11-10 16:33:56.999008\t日均成交金额\t180,180.00\n",
"2019-11-10 16:09:08.236670\t日均成交笔数\t21.75\n", "2019-11-10 16:33:56.999008\t日均成交笔数\t21.75\n",
"2019-11-10 16:09:08.236670\t日均收益率\t0.27%\n", "2019-11-10 16:33:56.999008\t日均收益率\t0.27%\n",
"2019-11-10 16:09:08.236670\t收益标准差\t0.81%\n", "2019-11-10 16:33:56.999008\t收益标准差\t0.81%\n",
"2019-11-10 16:09:08.236670\tSharpe Ratio\t5.20\n", "2019-11-10 16:33:56.999008\tSharpe Ratio\t5.20\n",
"2019-11-10 16:09:08.236670\t收益回撤比\t3.29\n" "2019-11-10 16:33:56.999008\t收益回撤比\t3.29\n"
] ]
}, },
{ {
"name": "stderr", "name": "stderr",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"C:\\Github\\vnpy\\vnpy\\app\\spread_trading\\backtesting.py:289: FutureWarning: \n", "C:\\Github\\vnpy\\vnpy\\app\\spread_trading\\backtesting.py:286: FutureWarning: \n",
"The current behaviour of 'Series.argmax' is deprecated, use 'idxmax'\n", "The current behaviour of 'Series.argmax' is deprecated, use 'idxmax'\n",
"instead.\n", "instead.\n",
"The behavior of 'argmax' will be corrected to return the positional\n", "The behavior of 'argmax' will be corrected to return the positional\n",
@ -140,9 +140,451 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 5,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='1', tradeid='1', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='2', tradeid='2', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='09:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='3', tradeid='3', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='09:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='4', tradeid='4', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='10:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='5', tradeid='5', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='6', tradeid='6', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:06:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='7', tradeid='7', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:06:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='8', tradeid='8', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:06:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='9', tradeid='9', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=20, time='10:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='10', tradeid='10', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:29:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='11', tradeid='11', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='12', tradeid='12', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='13', tradeid='13', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='14', tradeid='14', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='15', tradeid='15', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='16', tradeid='16', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='17', tradeid='17', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='18', tradeid='18', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=60, time='10:47:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='19', tradeid='19', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='20', tradeid='20', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='10:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='21', tradeid='21', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='10:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='22', tradeid='22', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='23', tradeid='23', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='24', tradeid='24', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='25', tradeid='25', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=20, time='11:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='26', tradeid='26', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='13:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='27', tradeid='27', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='13:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='28', tradeid='28', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='13:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='29', tradeid='29', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='13:47:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='30', tradeid='30', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='14:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='31', tradeid='31', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='14:09:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='32', tradeid='32', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='14:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='33', tradeid='33', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='14:20:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='34', tradeid='34', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='14:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='35', tradeid='35', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='14:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='36', tradeid='36', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='14:59:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='37', tradeid='37', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='38', tradeid='38', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='39', tradeid='39', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='40', tradeid='40', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='41', tradeid='41', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='42', tradeid='42', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=40, time='09:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='43', tradeid='43', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='09:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='44', tradeid='44', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='10:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='45', tradeid='45', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='10:06:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='46', tradeid='46', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='47', tradeid='47', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='48', tradeid='48', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='10:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='49', tradeid='49', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='10:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='50', tradeid='50', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='10:48:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='51', tradeid='51', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='52', tradeid='52', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='11:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='53', tradeid='53', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='11:11:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='54', tradeid='54', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='55', tradeid='55', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='56', tradeid='56', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='11:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='57', tradeid='57', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='13:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='58', tradeid='58', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='13:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='59', tradeid='59', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='13:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='60', tradeid='60', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='13:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='61', tradeid='61', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='14:14:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='62', tradeid='62', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='14:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='63', tradeid='63', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='14:20:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='64', tradeid='64', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='14:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='65', tradeid='65', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='66', tradeid='66', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='09:45:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='67', tradeid='67', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='09:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='68', tradeid='68', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='69', tradeid='69', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='10:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='70', tradeid='70', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='71', tradeid='71', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='72', tradeid='72', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:44:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='73', tradeid='73', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='11:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='74', tradeid='74', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='11:05:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='75', tradeid='75', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='13:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='76', tradeid='76', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='13:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='77', tradeid='77', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='13:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='78', tradeid='78', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='13:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='79', tradeid='79', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='13:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='80', tradeid='80', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='13:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='81', tradeid='81', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='14:22:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='82', tradeid='82', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='14:34:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='83', tradeid='83', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='14:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='84', tradeid='84', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:48:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='85', tradeid='85', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='14:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='86', tradeid='86', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='09:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='87', tradeid='87', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='10:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='88', tradeid='88', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='10:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='89', tradeid='89', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='10:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='90', tradeid='90', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='10:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='91', tradeid='91', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='11:12:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='92', tradeid='92', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='11:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='93', tradeid='93', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='13:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='94', tradeid='94', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.2, volume=10, time='13:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='95', tradeid='95', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='13:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='96', tradeid='96', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='13:29:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='97', tradeid='97', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='13:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='98', tradeid='98', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='13:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='99', tradeid='99', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.8, volume=10, time='13:59:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='100', tradeid='100', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=6.0, volume=10, time='14:05:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='101', tradeid='101', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='14:14:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='102', tradeid='102', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='14:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='103', tradeid='103', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=7.0, volume=10, time='14:22:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='104', tradeid='104', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=6.6, volume=10, time='14:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='105', tradeid='105', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='14:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='106', tradeid='106', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='09:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='107', tradeid='107', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='09:46:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='108', tradeid='108', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='09:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='109', tradeid='109', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='10:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='110', tradeid='110', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='10:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='111', tradeid='111', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='10:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='112', tradeid='112', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='10:48:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='113', tradeid='113', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='11:11:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='114', tradeid='114', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='11:17:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='115', tradeid='115', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='11:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='116', tradeid='116', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='13:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='117', tradeid='117', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='13:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='118', tradeid='118', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='13:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='119', tradeid='119', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.0, volume=10, time='13:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='120', tradeid='120', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.8, volume=10, time='13:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='121', tradeid='121', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.4, volume=10, time='13:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='122', tradeid='122', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='13:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='123', tradeid='123', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='14:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='124', tradeid='124', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='14:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='125', tradeid='125', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.6, volume=10, time='09:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='126', tradeid='126', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.8, volume=10, time='09:34:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='127', tradeid='127', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='09:46:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='128', tradeid='128', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='09:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='129', tradeid='129', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='10:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='130', tradeid='130', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='10:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='131', tradeid='131', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.4, volume=10, time='10:11:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='132', tradeid='132', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.8, volume=10, time='10:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='133', tradeid='133', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=6.8, volume=10, time='11:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='134', tradeid='134', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.8, volume=10, time='11:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='135', tradeid='135', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.4, volume=10, time='13:10:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='136', tradeid='136', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='13:14:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='137', tradeid='137', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=6.0, volume=10, time='13:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='138', tradeid='138', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.6, volume=10, time='13:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='139', tradeid='139', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='14:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='140', tradeid='140', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='14:10:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='141', tradeid='141', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='14:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='142', tradeid='142', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='14:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='143', tradeid='143', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='14:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='144', tradeid='144', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='14:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='145', tradeid='145', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='14:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='146', tradeid='146', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.6, volume=10, time='14:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='147', tradeid='147', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.4, volume=10, time='14:59:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='148', tradeid='148', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='09:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='149', tradeid='149', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=6.2, volume=10, time='09:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='150', tradeid='150', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='151', tradeid='151', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='09:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='152', tradeid='152', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='09:51:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='153', tradeid='153', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='10:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='154', tradeid='154', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='10:10:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='155', tradeid='155', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='10:39:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='156', tradeid='156', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='10:42:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='157', tradeid='157', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.4, volume=10, time='10:45:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='158', tradeid='158', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='10:46:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='159', tradeid='159', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='11:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='160', tradeid='160', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='11:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='161', tradeid='161', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='13:42:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='162', tradeid='162', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='13:44:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='163', tradeid='163', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='13:47:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='164', tradeid='164', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='13:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='165', tradeid='165', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='14:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='166', tradeid='166', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='14:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='167', tradeid='167', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='14:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='168', tradeid='168', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='14:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='169', tradeid='169', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='10:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='170', tradeid='170', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='10:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='171', tradeid='171', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='11:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='172', tradeid='172', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='11:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='173', tradeid='173', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='11:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='174', tradeid='174', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='11:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='175', tradeid='175', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='13:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='176', tradeid='176', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='13:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='177', tradeid='177', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='13:20:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='178', tradeid='178', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='13:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='179', tradeid='179', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='13:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='180', tradeid='180', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='13:37:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='181', tradeid='181', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='182', tradeid='182', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='13:51:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='183', tradeid='183', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.0, volume=10, time='13:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='184', tradeid='184', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='185', tradeid='185', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='14:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='186', tradeid='186', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='14:06:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='187', tradeid='187', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='14:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='188', tradeid='188', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='14:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='189', tradeid='189', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='09:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='190', tradeid='190', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='191', tradeid='191', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.8, volume=10, time='10:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='192', tradeid='192', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='10:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='193', tradeid='193', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='10:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='194', tradeid='194', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='10:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='195', tradeid='195', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='10:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='196', tradeid='196', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='10:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='197', tradeid='197', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='11:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='198', tradeid='198', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='11:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='199', tradeid='199', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='11:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='200', tradeid='200', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='11:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='201', tradeid='201', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='13:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='202', tradeid='202', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='13:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='203', tradeid='203', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='13:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='204', tradeid='204', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='13:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='205', tradeid='205', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='09:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='206', tradeid='206', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='09:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='207', tradeid='207', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='09:44:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='208', tradeid='208', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='09:47:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='209', tradeid='209', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='210', tradeid='210', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='10:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='211', tradeid='211', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='10:12:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='212', tradeid='212', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='10:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='213', tradeid='213', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='10:22:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='214', tradeid='214', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='10:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='215', tradeid='215', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='10:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='216', tradeid='216', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='217', tradeid='217', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='10:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='218', tradeid='218', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='10:48:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='219', tradeid='219', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='11:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='220', tradeid='220', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='11:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='221', tradeid='221', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='222', tradeid='222', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:12:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='223', tradeid='223', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='13:20:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='224', tradeid='224', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='13:22:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='225', tradeid='225', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='13:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='226', tradeid='226', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='13:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='227', tradeid='227', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='228', tradeid='228', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='229', tradeid='229', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=5.2, volume=10, time='14:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='230', tradeid='230', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='14:09:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='231', tradeid='231', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='232', tradeid='232', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='233', tradeid='233', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=20, time='09:44:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='234', tradeid='234', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='09:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='235', tradeid='235', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='10:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='236', tradeid='236', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='10:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='237', tradeid='237', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='10:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='238', tradeid='238', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='10:39:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='239', tradeid='239', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='10:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='240', tradeid='240', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='10:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='241', tradeid='241', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='10:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='242', tradeid='242', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='11:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='243', tradeid='243', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='11:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='244', tradeid='244', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='13:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='245', tradeid='245', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='13:09:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='246', tradeid='246', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:40:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='247', tradeid='247', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='13:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='248', tradeid='248', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='13:46:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='249', tradeid='249', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='250', tradeid='250', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='13:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='251', tradeid='251', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='13:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='252', tradeid='252', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='14:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='253', tradeid='253', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='14:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='254', tradeid='254', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='09:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='255', tradeid='255', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='09:37:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='256', tradeid='256', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='09:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='257', tradeid='257', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='09:59:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='258', tradeid='258', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='10:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='259', tradeid='259', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='10:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='260', tradeid='260', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='10:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='261', tradeid='261', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='10:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='262', tradeid='262', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='11:11:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='263', tradeid='263', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='11:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='264', tradeid='264', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='11:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='265', tradeid='265', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='11:17:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='266', tradeid='266', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='11:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='267', tradeid='267', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='11:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='268', tradeid='268', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='13:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='269', tradeid='269', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='13:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='270', tradeid='270', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='14:12:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='271', tradeid='271', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='14:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='272', tradeid='272', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='273', tradeid='273', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='14:43:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='274', tradeid='274', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='09:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='275', tradeid='275', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='09:34:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='276', tradeid='276', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='09:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='277', tradeid='277', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='09:51:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='278', tradeid='278', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='10:06:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='279', tradeid='279', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='10:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='280', tradeid='280', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='10:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='281', tradeid='281', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='10:20:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='282', tradeid='282', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='10:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='283', tradeid='283', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='10:42:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='284', tradeid='284', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='10:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='285', tradeid='285', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='11:09:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='286', tradeid='286', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='11:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='287', tradeid='287', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='11:26:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='288', tradeid='288', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='11:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='289', tradeid='289', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.4, volume=10, time='13:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='290', tradeid='290', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='13:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='291', tradeid='291', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='292', tradeid='292', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='13:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='293', tradeid='293', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='13:48:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='294', tradeid='294', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='14:47:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='295', tradeid='295', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='14:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='296', tradeid='296', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='10:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='297', tradeid='297', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='10:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='298', tradeid='298', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='11:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='299', tradeid='299', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='11:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='300', tradeid='300', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='13:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='301', tradeid='301', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='302', tradeid='302', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='303', tradeid='303', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.4, volume=10, time='13:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='304', tradeid='304', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.8, volume=10, time='13:47:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='305', tradeid='305', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='13:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='306', tradeid='306', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='307', tradeid='307', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:34:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='308', tradeid='308', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.6, volume=10, time='14:40:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='309', tradeid='309', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='14:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='310', tradeid='310', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='09:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='311', tradeid='311', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='312', tradeid='312', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='09:40:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='313', tradeid='313', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='09:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='314', tradeid='314', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='10:09:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='315', tradeid='315', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='316', tradeid='316', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='10:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='317', tradeid='317', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='10:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='318', tradeid='318', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='11:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='319', tradeid='319', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.2, volume=10, time='11:17:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='320', tradeid='320', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='11:21:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='321', tradeid='321', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='11:22:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='322', tradeid='322', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=4.0, volume=10, time='11:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='323', tradeid='323', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='11:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='324', tradeid='324', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='13:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='325', tradeid='325', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='13:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='326', tradeid='326', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='13:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='327', tradeid='327', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='13:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='328', tradeid='328', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='14:14:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='329', tradeid='329', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='14:17:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='330', tradeid='330', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='14:34:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='331', tradeid='331', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='14:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='332', tradeid='332', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='14:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='333', tradeid='333', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='14:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='334', tradeid='334', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='09:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='335', tradeid='335', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='09:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='336', tradeid='336', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='09:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='337', tradeid='337', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='09:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='338', tradeid='338', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='10:39:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='339', tradeid='339', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='10:40:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='340', tradeid='340', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='10:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='341', tradeid='341', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='11:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='342', tradeid='342', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='11:10:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='343', tradeid='343', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='11:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='344', tradeid='344', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='11:29:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='345', tradeid='345', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='346', tradeid='346', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='13:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='347', tradeid='347', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=3.2, volume=10, time='13:05:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='348', tradeid='348', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='13:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='349', tradeid='349', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:36:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='350', tradeid='350', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='13:40:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='351', tradeid='351', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='13:41:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='352', tradeid='352', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='13:44:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='353', tradeid='353', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='13:46:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='354', tradeid='354', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.6, volume=10, time='13:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='355', tradeid='355', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='13:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='356', tradeid='356', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:23:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='357', tradeid='357', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=3.0, volume=10, time='14:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='358', tradeid='358', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:39:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='359', tradeid='359', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='14:40:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='360', tradeid='360', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='09:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='361', tradeid='361', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='09:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='362', tradeid='362', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='10:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='363', tradeid='363', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='10:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='364', tradeid='364', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='10:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='365', tradeid='365', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='10:11:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='366', tradeid='366', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='10:16:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='367', tradeid='367', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='10:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='368', tradeid='368', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='369', tradeid='369', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='10:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='370', tradeid='370', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='11:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='371', tradeid='371', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='11:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='372', tradeid='372', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='14:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='373', tradeid='373', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='14:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='374', tradeid='374', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='14:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='375', tradeid='375', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='14:14:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='376', tradeid='376', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='14:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='377', tradeid='377', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='14:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='378', tradeid='378', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='379', tradeid='379', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='380', tradeid='380', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='10:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='381', tradeid='381', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='10:35:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='382', tradeid='382', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='11:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='383', tradeid='383', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='11:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='384', tradeid='384', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='11:15:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='385', tradeid='385', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='11:17:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='386', tradeid='386', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='13:07:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='387', tradeid='387', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='13:09:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='388', tradeid='388', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='13:49:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='389', tradeid='389', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='13:51:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='390', tradeid='390', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='14:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='391', tradeid='391', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='14:29:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='392', tradeid='392', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='14:54:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='393', tradeid='393', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.8, volume=10, time='14:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='394', tradeid='394', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.6, volume=10, time='14:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='395', tradeid='395', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='09:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='396', tradeid='396', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='10:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='397', tradeid='397', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='10:03:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='398', tradeid='398', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='10:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='399', tradeid='399', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='10:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='400', tradeid='400', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.2, volume=10, time='10:20:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='401', tradeid='401', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:27:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='402', tradeid='402', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='10:28:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='403', tradeid='403', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='10:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='404', tradeid='404', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='10:58:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='405', tradeid='405', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='11:08:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='406', tradeid='406', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='11:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='407', tradeid='407', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.4, volume=10, time='11:19:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='408', tradeid='408', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='13:10:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='409', tradeid='409', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.2, volume=10, time='13:13:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='410', tradeid='410', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='14:00:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='411', tradeid='411', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='14:02:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='412', tradeid='412', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='14:24:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='413', tradeid='413', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='14:25:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='414', tradeid='414', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='14:38:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='415', tradeid='415', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='14:44:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='416', tradeid='416', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.6, volume=10, time='14:50:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='417', tradeid='417', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='14:55:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='418', tradeid='418', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='14:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='419', tradeid='419', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='09:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='420', tradeid='420', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='10:17:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='421', tradeid='421', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='10:18:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='422', tradeid='422', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.4, volume=10, time='10:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='423', tradeid='423', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=0.6, volume=10, time='10:32:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='424', tradeid='424', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='10:52:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='425', tradeid='425', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='10:56:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='426', tradeid='426', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='13:01:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='427', tradeid='427', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='13:04:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='428', tradeid='428', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='13:31:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='429', tradeid='429', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=0.8, volume=10, time='13:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='430', tradeid='430', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=1.4, volume=10, time='13:45:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='431', tradeid='431', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.0, volume=10, time='13:46:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='432', tradeid='432', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.2, volume=10, time='14:30:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='433', tradeid='433', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=1.8, volume=10, time='14:33:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='434', tradeid='434', direction=<Direction.LONG: '多'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='14:53:00')\n",
"TradeData(gateway_name='BACKTESTING', symbol='IF-Spread', exchange=<Exchange.LOCAL: 'LOCAL'>, orderid='435', tradeid='435', direction=<Direction.SHORT: '空'>, offset=<Offset.NONE: ''>, price=2.0, volume=10, time='14:54:00')\n"
]
}
],
"source": [ "source": [
"for trade in engine.trades.values():\n", "for trade in engine.trades.values():\n",
" print(trade)" " print(trade)"

View File

@ -628,8 +628,6 @@ class CtaEngine(BaseEngine):
""" """
strategy = self.strategies[strategy_name] strategy = self.strategies[strategy_name]
print(datetime.now(), strategy_name, strategy.vt_symbol)
if strategy.inited: if strategy.inited:
self.write_log(f"{strategy_name}已经完成初始化,禁止重复操作") self.write_log(f"{strategy_name}已经完成初始化,禁止重复操作")
return return

View File

@ -1,7 +1,6 @@
from collections import defaultdict from collections import defaultdict
from datetime import date, datetime from datetime import date, datetime
from typing import Callable, Type, Dict, List from typing import Callable, Type
from functools import lru_cache
import numpy as np import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
@ -10,12 +9,10 @@ from pandas import DataFrame
from vnpy.trader.constant import (Direction, Offset, Exchange, from vnpy.trader.constant import (Direction, Offset, Exchange,
Interval, Status) Interval, Status)
from vnpy.trader.database import database_manager
from vnpy.trader.object import TradeData, BarData, TickData from vnpy.trader.object import TradeData, BarData, TickData
from vnpy.trader.utility import round_to
from .template import SpreadStrategyTemplate, SpreadAlgoTemplate from .template import SpreadStrategyTemplate, SpreadAlgoTemplate
from .base import SpreadData, BacktestingMode from .base import SpreadData, BacktestingMode, load_bar_data, load_tick_data
sns.set_style("whitegrid") sns.set_style("whitegrid")
@ -686,73 +683,3 @@ class DailyResult:
# Net pnl takes account of commission and slippage cost # Net pnl takes account of commission and slippage cost
self.total_pnl = self.trading_pnl + self.holding_pnl self.total_pnl = self.trading_pnl + self.holding_pnl
self.net_pnl = self.total_pnl - self.commission - self.slippage self.net_pnl = self.total_pnl - self.commission - self.slippage
@lru_cache(maxsize=999)
def load_bar_data(
spread: SpreadData,
interval: Interval,
start: datetime,
end: datetime,
pricetick: float
):
""""""
# Load bar data of each spread leg
leg_bars: Dict[str, Dict] = {}
for vt_symbol in spread.legs.keys():
symbol, exchange_str = vt_symbol.split(".")
exchange = Exchange(exchange_str)
bar_data: List[BarData] = database_manager.load_bar_data(
symbol, exchange, interval, start, end
)
bars: Dict[datetime, BarData] = {bar.datetime: bar for bar in bar_data}
leg_bars[vt_symbol] = bars
# Calculate spread bar data
spread_bars: List[BarData] = []
for dt in bars.keys():
spread_price = 0
spread_available = True
for leg in spread.legs.values():
leg_bar = leg_bars[leg.vt_symbol].get(dt, None)
if leg_bar:
price_multiplier = spread.price_multipliers[leg.vt_symbol]
spread_price += price_multiplier * leg_bar.close_price
else:
spread_available = False
if spread_available:
spread_price = round_to(spread_price, pricetick)
spread_bar = BarData(
symbol=spread.name,
exchange=exchange.LOCAL,
datetime=dt,
interval=interval,
open_price=spread_price,
high_price=spread_price,
low_price=spread_price,
close_price=spread_price,
gateway_name=BacktestingEngine.gateway_name,
)
spread_bars.append(spread_bar)
return spread_bars
@lru_cache(maxsize=999)
def load_tick_data(
spread: SpreadData,
start: datetime,
end: datetime
):
""""""
return database_manager.load_tick_data(
spread.name, Exchange.LOCAL, start, end
)

View File

@ -1,10 +1,14 @@
from typing import Dict, List from typing import Dict, List
from datetime import datetime from datetime import datetime
from enum import Enum from enum import Enum
from functools import lru_cache
from vnpy.trader.object import TickData, PositionData, TradeData, ContractData from vnpy.trader.object import (
from vnpy.trader.constant import Direction, Offset, Exchange TickData, PositionData, TradeData, ContractData, BarData
from vnpy.trader.utility import floor_to, ceil_to )
from vnpy.trader.constant import Direction, Offset, Exchange, Interval
from vnpy.trader.utility import floor_to, ceil_to, round_to, extract_vt_symbol
from vnpy.trader.database import database_manager
EVENT_SPREAD_DATA = "eSpreadData" EVENT_SPREAD_DATA = "eSpreadData"
@ -353,3 +357,73 @@ def calculate_inverse_volume(
class BacktestingMode(Enum): class BacktestingMode(Enum):
BAR = 1 BAR = 1
TICK = 2 TICK = 2
@lru_cache(maxsize=999)
def load_bar_data(
spread: SpreadData,
interval: Interval,
start: datetime,
end: datetime,
pricetick: float = 0
):
""""""
# Load bar data of each spread leg
leg_bars: Dict[str, Dict] = {}
for vt_symbol in spread.legs.keys():
symbol, exchange = extract_vt_symbol(vt_symbol)
bar_data: List[BarData] = database_manager.load_bar_data(
symbol, exchange, interval, start, end
)
bars: Dict[datetime, BarData] = {bar.datetime: bar for bar in bar_data}
leg_bars[vt_symbol] = bars
# Calculate spread bar data
spread_bars: List[BarData] = []
for dt in bars.keys():
spread_price = 0
spread_available = True
for leg in spread.legs.values():
leg_bar = leg_bars[leg.vt_symbol].get(dt, None)
if leg_bar:
price_multiplier = spread.price_multipliers[leg.vt_symbol]
spread_price += price_multiplier * leg_bar.close_price
else:
spread_available = False
if spread_available:
if pricetick:
spread_price = round_to(spread_price, pricetick)
spread_bar = BarData(
symbol=spread.name,
exchange=exchange.LOCAL,
datetime=dt,
interval=interval,
open_price=spread_price,
high_price=spread_price,
low_price=spread_price,
close_price=spread_price,
gateway_name="SPREAD",
)
spread_bars.append(spread_bar)
return spread_bars
@lru_cache(maxsize=999)
def load_tick_data(
spread: SpreadData,
start: datetime,
end: datetime
):
""""""
return database_manager.load_tick_data(
spread.name, Exchange.LOCAL, start, end
)

View File

@ -5,6 +5,7 @@ from typing import List, Dict, Set, Callable, Any, Type
from collections import defaultdict from collections import defaultdict
from copy import copy from copy import copy
from pathlib import Path from pathlib import Path
from datetime import datetime, timedelta
from vnpy.event import EventEngine, Event from vnpy.event import EventEngine, Event
from vnpy.trader.engine import BaseEngine, MainEngine from vnpy.trader.engine import BaseEngine, MainEngine
@ -17,14 +18,17 @@ from vnpy.trader.object import (
TickData, ContractData, LogData, TickData, ContractData, LogData,
SubscribeRequest, OrderRequest SubscribeRequest, OrderRequest
) )
from vnpy.trader.constant import Direction, Offset, OrderType from vnpy.trader.constant import (
Direction, Offset, OrderType, Interval
)
from vnpy.trader.converter import OffsetConverter from vnpy.trader.converter import OffsetConverter
from .base import ( from .base import (
LegData, SpreadData, LegData, SpreadData,
EVENT_SPREAD_DATA, EVENT_SPREAD_POS, EVENT_SPREAD_DATA, EVENT_SPREAD_POS,
EVENT_SPREAD_ALGO, EVENT_SPREAD_LOG, EVENT_SPREAD_ALGO, EVENT_SPREAD_LOG,
EVENT_SPREAD_STRATEGY EVENT_SPREAD_STRATEGY,
load_bar_data, load_tick_data
) )
from .template import SpreadAlgoTemplate, SpreadStrategyTemplate from .template import SpreadAlgoTemplate, SpreadStrategyTemplate
from .algo import SpreadTakerAlgo from .algo import SpreadTakerAlgo
@ -1024,3 +1028,25 @@ class SpreadStrategyEngine:
subject = "价差策略引擎" subject = "价差策略引擎"
self.main_engine.send_email(subject, msg) self.main_engine.send_email(subject, msg)
def load_bar(
self, spread: SpreadData, days: int, interval: Interval, callback: Callable
):
""""""
end = datetime.now()
start = end - timedelta(days)
bars = load_bar_data(spread, interval, start, end)
for bar in bars:
callback(bar)
def load_tick(self, spread: SpreadData, days: int, callback: Callable):
""""""
end = datetime.now()
start = end - timedelta(days)
ticks = load_tick_data(spread, start, end)
for tick in ticks:
callback(tick)