Files
NewQuant/main.ipynb

3942 lines
964 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"id": "initial_id",
"metadata": {
"ExecuteTime": {
"end_time": "2025-06-26T14:14:16.325887Z",
"start_time": "2025-06-26T14:14:15.311071Z"
},
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n",
"初始化数据管理器...\n",
"数据加载成功: /mnt/d/PyProject/NewQuant/data/data/KQ_m@SHFE_rb/KQ_m@SHFE_rb_min60.csv\n",
"数据范围从 2022-12-30 14:00:00 到 2025-06-20 21:00:00\n",
"总计 4131 条记录。\n",
"\n",
"初始化回测引擎...\n",
"模拟器初始化:初始资金=100000.00, 滑点率=0.0, 佣金率=0.0001\n",
"策略 (INITIAL_PLACEHOLDER_SYMBOL): 策略初始化: symbol=INITIAL_PLACEHOLDER_SYMBOL, trade_volume=1, max_position=10, 止损点=10, 止盈点=10\n",
"\n",
"--- 回测引擎初始化完成 ---\n",
" 策略: SimpleLimitBuyStrategy\n",
" 初始资金: 100000.00\n",
" 换月模式: 启用\n",
"\n",
"开始运行回测...\n",
"\n",
"--- 回测开始 ---\n",
"SimpleLimitBuyStrategy 策略初始化回调被调用。\n",
"开始将 DataFrame 转换为 Bar 对象流...\n",
"[2025-01-02 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-02 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-02 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-02 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-02 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-02 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-02 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-02 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-02 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-03 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-03 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-03 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-03 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-03 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"[2025-01-03 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-03 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-03 11:00:00'), open=3267.0, high=3274.0, low=3265.0, close=3269.0, volume=125555, open_oi=1631873, close_oi=1652481, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-02 13:00:00'), open=3318.0, high=3321.0, low=3306.0, close=3312.0, volume=247181, open_oi=1581980, close_oi=1550787, symbol='SHFE.rb2505')\n",
"[2025-01-03 13:00:00] 策略 (SHFE.rb2505): [2025-01-03 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250103130000_0 @ 3290.50\n",
"[2025-01-03 13:00:00] 策略 (SHFE.rb2505): [2025-01-03 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250103130000_1 @ 3250.00\n",
"[2025-01-03 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250103130000_0': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250103130000_0', price_type='LIMIT', limit_price=3291, submitted_time=Timestamp('2025-01-03 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250103130000_1': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250103130000_1', price_type='LIMIT', limit_price=3250, submitted_time=Timestamp('2025-01-03 13:00:00'), offset='OPEN')}\n",
"[2025-01-03 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-03 13:00:00'), open=3268.0, high=3272.0, low=3260.0, close=3266.0, volume=131605, open_oi=1652481, close_oi=1678023, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-02 14:00:00'), open=3312.0, high=3313.0, low=3300.0, close=3306.0, volume=265226, open_oi=1550787, close_oi=1551112, symbol='SHFE.rb2505')\n",
"[2025-01-03 14:00:00] 策略 (SHFE.rb2505): [2025-01-03 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250103140000_2 @ 3287.60\n",
"[2025-01-03 14:00:00] 策略 (SHFE.rb2505): [2025-01-03 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250103140000_3 @ 3242.00\n",
"[2025-01-03 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250103140000_2': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250103140000_2', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-01-03 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250103140000_3': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250103140000_3', price_type='LIMIT', limit_price=3242, submitted_time=Timestamp('2025-01-03 14:00:00'), offset='OPEN')}\n",
"[2025-01-03 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-03 14:00:00'), open=3266.0, high=3281.0, low=3263.0, close=3272.0, volume=261991, open_oi=1678023, close_oi=1675464, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-02 21:00:00'), open=3305.0, high=3309.0, low=3289.0, close=3289.0, volume=297346, open_oi=1551112, close_oi=1572153, symbol='SHFE.rb2505')\n",
"[2025-01-03 21:00:00] 策略 (SHFE.rb2505): [2025-01-03 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250103210000_4 @ 3298.00\n",
"[2025-01-03 21:00:00] 策略 (SHFE.rb2505): [2025-01-03 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250103210000_5 @ 3229.00\n",
"[2025-01-03 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250103210000_4': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250103210000_4', price_type='LIMIT', limit_price=3298, submitted_time=Timestamp('2025-01-03 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250103210000_5': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250103210000_5', price_type='LIMIT', limit_price=3229, submitted_time=Timestamp('2025-01-03 21:00:00'), offset='OPEN')}\n",
"[2025-01-03 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-03 21:00:00'), open=3265.0, high=3273.0, low=3252.0, close=3270.0, volume=431697, open_oi=1675464, close_oi=1707894, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-02 22:00:00'), open=3289.0, high=3294.0, low=3286.0, close=3290.0, volume=151092, open_oi=1572153, close_oi=1566132, symbol='SHFE.rb2505')\n",
"[2025-01-03 22:00:00] 策略 (SHFE.rb2505): [2025-01-03 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250103220000_6 @ 3290.10\n",
"[2025-01-03 22:00:00] 策略 (SHFE.rb2505): [2025-01-03 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250103220000_7 @ 3228.00\n",
"[2025-01-03 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-03 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250103220000_6': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250103220000_6', price_type='LIMIT', limit_price=3291, submitted_time=Timestamp('2025-01-03 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250103220000_7': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250103220000_7', price_type='LIMIT', limit_price=3228, submitted_time=Timestamp('2025-01-03 22:00:00'), offset='OPEN')}\n",
"[2025-01-06 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-03 22:00:00'), open=3270.0, high=3287.0, low=3270.0, close=3279.0, volume=278423, open_oi=1707894, close_oi=1675778, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 09:00:00'), open=3293.0, high=3297.0, low=3275.0, close=3281.0, volume=355157, open_oi=1566132, close_oi=1604105, symbol='SHFE.rb2505')\n",
"[2025-01-06 09:00:00] 策略 (SHFE.rb2505): [2025-01-06 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106090000_8 @ 3311.90\n",
"[2025-01-06 09:00:00] 策略 (SHFE.rb2505): [2025-01-06 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106090000_9 @ 3243.00\n",
"[2025-01-06 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106090000_8': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106090000_8', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-01-06 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106090000_9': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106090000_9', price_type='LIMIT', limit_price=3243, submitted_time=Timestamp('2025-01-06 09:00:00'), offset='OPEN')}\n",
"[2025-01-06 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 09:00:00'), open=3277.0, high=3285.0, low=3264.0, close=3265.0, volume=282968, open_oi=1675778, close_oi=1692878, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 10:00:00'), open=3281.0, high=3291.0, low=3266.0, close=3267.0, volume=237257, open_oi=1604105, close_oi=1631873, symbol='SHFE.rb2505')\n",
"[2025-01-06 10:00:00] 策略 (SHFE.rb2505): [2025-01-06 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106100000_10 @ 3305.50\n",
"[2025-01-06 10:00:00] 策略 (SHFE.rb2505): [2025-01-06 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106100000_11 @ 3223.00\n",
"[2025-01-06 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106100000_10': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106100000_10', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-01-06 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106100000_11': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106100000_11', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-01-06 10:00:00'), offset='OPEN')}\n",
"[2025-01-06 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 10:00:00'), open=3265.0, high=3277.0, low=3262.0, close=3268.0, volume=147945, open_oi=1692878, close_oi=1699826, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 11:00:00'), open=3267.0, high=3274.0, low=3265.0, close=3269.0, volume=125555, open_oi=1631873, close_oi=1652481, symbol='SHFE.rb2505')\n",
"[2025-01-06 11:00:00] 策略 (SHFE.rb2505): [2025-01-06 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106110000_12 @ 3286.30\n",
"[2025-01-06 11:00:00] 策略 (SHFE.rb2505): [2025-01-06 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106110000_13 @ 3238.00\n",
"[2025-01-06 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106110000_12': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106110000_12', price_type='LIMIT', limit_price=3287, submitted_time=Timestamp('2025-01-06 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106110000_13': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106110000_13', price_type='LIMIT', limit_price=3238, submitted_time=Timestamp('2025-01-06 11:00:00'), offset='OPEN')}\n",
"[2025-01-06 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 11:00:00'), open=3268.0, high=3270.0, low=3258.0, close=3260.0, volume=118439, open_oi=1699826, close_oi=1719706, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 13:00:00'), open=3268.0, high=3272.0, low=3260.0, close=3266.0, volume=131605, open_oi=1652481, close_oi=1678023, symbol='SHFE.rb2505')\n",
"[2025-01-06 13:00:00] 策略 (SHFE.rb2505): [2025-01-06 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106130000_14 @ 3277.40\n",
"[2025-01-06 13:00:00] 策略 (SHFE.rb2505): [2025-01-06 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106130000_15 @ 3233.00\n",
"[2025-01-06 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106130000_14': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106130000_14', price_type='LIMIT', limit_price=3278, submitted_time=Timestamp('2025-01-06 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106130000_15': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106130000_15', price_type='LIMIT', limit_price=3233, submitted_time=Timestamp('2025-01-06 13:00:00'), offset='OPEN')}\n",
"[2025-01-06 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 13:00:00'), open=3257.0, high=3261.0, low=3253.0, close=3261.0, volume=132971, open_oi=1719706, close_oi=1732881, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 14:00:00'), open=3266.0, high=3281.0, low=3263.0, close=3272.0, volume=261991, open_oi=1678023, close_oi=1675464, symbol='SHFE.rb2505')\n",
"[2025-01-06 14:00:00] 策略 (SHFE.rb2505): [2025-01-06 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106140000_16 @ 3286.60\n",
"[2025-01-06 14:00:00] 策略 (SHFE.rb2505): [2025-01-06 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106140000_17 @ 3245.00\n",
"[2025-01-06 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106140000_16': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106140000_16', price_type='LIMIT', limit_price=3287, submitted_time=Timestamp('2025-01-06 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106140000_17': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106140000_17', price_type='LIMIT', limit_price=3245, submitted_time=Timestamp('2025-01-06 14:00:00'), offset='OPEN')}\n",
"[2025-01-06 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 14:00:00'), open=3261.0, high=3264.0, low=3251.0, close=3252.0, volume=222232, open_oi=1732881, close_oi=1746201, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 21:00:00'), open=3265.0, high=3273.0, low=3252.0, close=3270.0, volume=431697, open_oi=1675464, close_oi=1707894, symbol='SHFE.rb2505')\n",
"[2025-01-06 21:00:00] 策略 (SHFE.rb2505): [2025-01-06 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106210000_18 @ 3300.70\n",
"[2025-01-06 21:00:00] 策略 (SHFE.rb2505): [2025-01-06 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106210000_19 @ 3243.00\n",
"[2025-01-06 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106210000_18': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106210000_18', price_type='LIMIT', limit_price=3301, submitted_time=Timestamp('2025-01-06 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106210000_19': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106210000_19', price_type='LIMIT', limit_price=3243, submitted_time=Timestamp('2025-01-06 21:00:00'), offset='OPEN')}\n",
"[2025-01-06 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 21:00:00'), open=3269.0, high=3278.0, low=3261.0, close=3266.0, volume=216338, open_oi=1746201, close_oi=1724382, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-03 22:00:00'), open=3270.0, high=3287.0, low=3270.0, close=3279.0, volume=278423, open_oi=1707894, close_oi=1675778, symbol='SHFE.rb2505')\n",
"[2025-01-06 22:00:00] 策略 (SHFE.rb2505): [2025-01-06 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250106220000_20 @ 3294.90\n",
"[2025-01-06 22:00:00] 策略 (SHFE.rb2505): [2025-01-06 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250106220000_21 @ 3232.00\n",
"[2025-01-06 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-06 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250106220000_20': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250106220000_20', price_type='LIMIT', limit_price=3295, submitted_time=Timestamp('2025-01-06 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250106220000_21': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250106220000_21', price_type='LIMIT', limit_price=3232, submitted_time=Timestamp('2025-01-06 22:00:00'), offset='OPEN')}\n",
"[2025-01-07 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-06 22:00:00'), open=3266.0, high=3266.0, low=3254.0, close=3260.0, volume=148374, open_oi=1724382, close_oi=1721803, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-06 09:00:00'), open=3277.0, high=3285.0, low=3264.0, close=3265.0, volume=282968, open_oi=1675778, close_oi=1692878, symbol='SHFE.rb2505')\n",
"[2025-01-07 09:00:00] 策略 (SHFE.rb2505): [2025-01-07 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250107090000_22 @ 3289.20\n",
"[2025-01-07 09:00:00] 策略 (SHFE.rb2505): [2025-01-07 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250107090000_23 @ 3234.00\n",
"[2025-01-07 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250107090000_22': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250107090000_22', price_type='LIMIT', limit_price=3290, submitted_time=Timestamp('2025-01-07 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250107090000_23': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250107090000_23', price_type='LIMIT', limit_price=3234, submitted_time=Timestamp('2025-01-07 09:00:00'), offset='OPEN')}\n",
"[2025-01-07 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-07 09:00:00'), open=3258.0, high=3259.0, low=3241.0, close=3245.0, volume=263520, open_oi=1721803, close_oi=1756181, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-06 10:00:00'), open=3265.0, high=3277.0, low=3262.0, close=3268.0, volume=147945, open_oi=1692878, close_oi=1699826, symbol='SHFE.rb2505')\n",
"[2025-01-07 10:00:00] 策略 (SHFE.rb2505): [2025-01-07 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250107100000_24 @ 3272.00\n",
"[2025-01-07 10:00:00] 策略 (SHFE.rb2505): [2025-01-07 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250107100000_25 @ 3209.00\n",
"[2025-01-07 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250107100000_24': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250107100000_24', price_type='LIMIT', limit_price=3272, submitted_time=Timestamp('2025-01-07 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250107100000_25': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250107100000_25', price_type='LIMIT', limit_price=3209, submitted_time=Timestamp('2025-01-07 10:00:00'), offset='OPEN')}\n",
"[2025-01-07 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-07 10:00:00'), open=3245.0, high=3249.0, low=3232.0, close=3235.0, volume=198087, open_oi=1756181, close_oi=1790403, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-06 11:00:00'), open=3268.0, high=3270.0, low=3258.0, close=3260.0, volume=118439, open_oi=1699826, close_oi=1719706, symbol='SHFE.rb2505')\n",
"[2025-01-07 11:00:00] 策略 (SHFE.rb2505): [2025-01-07 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250107110000_26 @ 3257.90\n",
"[2025-01-07 11:00:00] 策略 (SHFE.rb2505): [2025-01-07 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250107110000_27 @ 3201.00\n",
"[2025-01-07 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250107110000_26': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250107110000_26', price_type='LIMIT', limit_price=3258, submitted_time=Timestamp('2025-01-07 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250107110000_27': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250107110000_27', price_type='LIMIT', limit_price=3201, submitted_time=Timestamp('2025-01-07 11:00:00'), offset='OPEN')}\n",
"[2025-01-07 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-07 11:00:00'), open=3235.0, high=3241.0, low=3233.0, close=3239.0, volume=77113, open_oi=1790403, close_oi=1792787, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-06 13:00:00'), open=3257.0, high=3261.0, low=3253.0, close=3261.0, volume=132971, open_oi=1719706, close_oi=1732881, symbol='SHFE.rb2505')\n",
"[2025-01-07 13:00:00] 策略 (SHFE.rb2505): [2025-01-07 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250107130000_28 @ 3252.60\n",
"[2025-01-07 13:00:00] 策略 (SHFE.rb2505): [2025-01-07 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250107130000_29 @ 3223.00\n",
"[2025-01-07 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250107130000_29': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250107130000_29', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-01-07 13:00:00'), offset='OPEN')}\n",
"[2025-01-07 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-07 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-07 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-07 21:00:00] 策略 (SHFE.rb2505): [2025-01-07 21:00:00] 止盈信号 - PnL per unit: 12.60, 目标: 10.00\n",
"[2025-01-07 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-07 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-07 21:00:00'), open=3240.0, high=3249.0, low=3238.0, close=3247.0, volume=143821, open_oi=1772105, close_oi=1777308, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-06 22:00:00'), open=3266.0, high=3266.0, low=3254.0, close=3260.0, volume=148374, open_oi=1724382, close_oi=1721803, symbol='SHFE.rb2505')\n",
"[2025-01-07 22:00:00] 策略 (SHFE.rb2505): [2025-01-07 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250107220000_31 @ 3266.90\n",
"[2025-01-07 22:00:00] 策略 (SHFE.rb2505): [2025-01-07 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250107220000_32 @ 3225.00\n",
"[2025-01-07 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-07 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250107220000_31': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250107220000_31', price_type='LIMIT', limit_price=3267, submitted_time=Timestamp('2025-01-07 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250107220000_32': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250107220000_32', price_type='LIMIT', limit_price=3225, submitted_time=Timestamp('2025-01-07 22:00:00'), offset='OPEN')}\n",
"[2025-01-08 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-07 22:00:00'), open=3247.0, high=3250.0, low=3242.0, close=3244.0, volume=87506, open_oi=1777308, close_oi=1766966, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-07 09:00:00'), open=3258.0, high=3259.0, low=3241.0, close=3245.0, volume=263520, open_oi=1721803, close_oi=1756181, symbol='SHFE.rb2505')\n",
"[2025-01-08 09:00:00] 策略 (SHFE.rb2505): [2025-01-08 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250108090000_33 @ 3269.60\n",
"[2025-01-08 09:00:00] 策略 (SHFE.rb2505): [2025-01-08 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250108090000_34 @ 3228.00\n",
"[2025-01-08 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250108090000_33': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250108090000_33', price_type='LIMIT', limit_price=3270, submitted_time=Timestamp('2025-01-08 09:00:00'), offset='OPEN')}\n",
"[2025-01-08 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-01-08 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-08 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-01-08 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-08 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-01-08 13:00:00] 策略 (SHFE.rb2505): [2025-01-08 13:00:00] 止损信号 - PnL per unit: -16.00, 目标: -10.00\n",
"[2025-01-08 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-08 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-08 13:00:00'), open=3212.0, high=3229.0, low=3212.0, close=3224.0, volume=143169, open_oi=1820287, close_oi=1817212, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-07 14:00:00'), open=3244.0, high=3246.0, low=3235.0, close=3239.0, volume=220150, open_oi=1767875, close_oi=1772105, symbol='SHFE.rb2505')\n",
"[2025-01-08 14:00:00] 策略 (SHFE.rb2505): [2025-01-08 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250108140000_36 @ 3245.70\n",
"[2025-01-08 14:00:00] 策略 (SHFE.rb2505): [2025-01-08 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250108140000_37 @ 3190.00\n",
"[2025-01-08 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250108140000_36': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250108140000_36', price_type='LIMIT', limit_price=3246, submitted_time=Timestamp('2025-01-08 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250108140000_37': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250108140000_37', price_type='LIMIT', limit_price=3190, submitted_time=Timestamp('2025-01-08 14:00:00'), offset='OPEN')}\n",
"[2025-01-08 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-08 14:00:00'), open=3224.0, high=3230.0, low=3204.0, close=3211.0, volume=360931, open_oi=1817212, close_oi=1842567, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-07 21:00:00'), open=3240.0, high=3249.0, low=3238.0, close=3247.0, volume=143821, open_oi=1772105, close_oi=1777308, symbol='SHFE.rb2505')\n",
"[2025-01-08 21:00:00] 策略 (SHFE.rb2505): [2025-01-08 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250108210000_38 @ 3232.20\n",
"[2025-01-08 21:00:00] 策略 (SHFE.rb2505): [2025-01-08 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250108210000_39 @ 3154.00\n",
"[2025-01-08 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250108210000_38': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250108210000_38', price_type='LIMIT', limit_price=3233, submitted_time=Timestamp('2025-01-08 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250108210000_39': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250108210000_39', price_type='LIMIT', limit_price=3154, submitted_time=Timestamp('2025-01-08 21:00:00'), offset='OPEN')}\n",
"[2025-01-08 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-08 21:00:00'), open=3206.0, high=3213.0, low=3196.0, close=3204.0, volume=284167, open_oi=1842567, close_oi=1843284, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-07 22:00:00'), open=3247.0, high=3250.0, low=3242.0, close=3244.0, volume=87506, open_oi=1777308, close_oi=1766966, symbol='SHFE.rb2505')\n",
"[2025-01-08 22:00:00] 策略 (SHFE.rb2505): [2025-01-08 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250108220000_40 @ 3222.10\n",
"[2025-01-08 22:00:00] 策略 (SHFE.rb2505): [2025-01-08 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250108220000_41 @ 3170.00\n",
"[2025-01-08 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-08 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250108220000_40': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250108220000_40', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-01-08 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250108220000_41': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250108220000_41', price_type='LIMIT', limit_price=3170, submitted_time=Timestamp('2025-01-08 22:00:00'), offset='OPEN')}\n",
"[2025-01-09 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-08 22:00:00'), open=3204.0, high=3212.0, low=3203.0, close=3206.0, volume=142665, open_oi=1843284, close_oi=1841517, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-08 09:00:00'), open=3244.0, high=3246.0, low=3226.0, close=3229.0, volume=238991, open_oi=1766966, close_oi=1777274, symbol='SHFE.rb2505')\n",
"[2025-01-09 09:00:00] 策略 (SHFE.rb2505): [2025-01-09 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250109090000_42 @ 3235.50\n",
"[2025-01-09 09:00:00] 策略 (SHFE.rb2505): [2025-01-09 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250109090000_43 @ 3189.00\n",
"[2025-01-09 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250109090000_42': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250109090000_42', price_type='LIMIT', limit_price=3236, submitted_time=Timestamp('2025-01-09 09:00:00'), offset='OPEN')}\n",
"[2025-01-09 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-01-09 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-09 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-01-09 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-09 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-01-09 13:00:00] 策略 (SHFE.rb2505): [2025-01-09 13:00:00] 止盈信号 - PnL per unit: 10.00, 目标: 10.00\n",
"[2025-01-09 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-09 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-09 13:00:00'), open=3199.0, high=3200.0, low=3194.0, close=3196.0, volume=75399, open_oi=1858270, close_oi=1860014, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-08 14:00:00'), open=3224.0, high=3230.0, low=3204.0, close=3211.0, volume=360931, open_oi=1817212, close_oi=1842567, symbol='SHFE.rb2505')\n",
"[2025-01-09 14:00:00] 策略 (SHFE.rb2505): [2025-01-09 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250109140000_45 @ 3230.20\n",
"[2025-01-09 14:00:00] 策略 (SHFE.rb2505): [2025-01-09 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250109140000_46 @ 3184.00\n",
"[2025-01-09 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250109140000_45': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250109140000_45', price_type='LIMIT', limit_price=3231, submitted_time=Timestamp('2025-01-09 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250109140000_46': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250109140000_46', price_type='LIMIT', limit_price=3184, submitted_time=Timestamp('2025-01-09 14:00:00'), offset='OPEN')}\n",
"[2025-01-09 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-09 14:00:00'), open=3196.0, high=3218.0, low=3191.0, close=3205.0, volume=385204, open_oi=1860014, close_oi=1842442, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-08 21:00:00'), open=3206.0, high=3213.0, low=3196.0, close=3204.0, volume=284167, open_oi=1842567, close_oi=1843284, symbol='SHFE.rb2505')\n",
"[2025-01-09 21:00:00] 策略 (SHFE.rb2505): [2025-01-09 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250109210000_47 @ 3241.90\n",
"[2025-01-09 21:00:00] 策略 (SHFE.rb2505): [2025-01-09 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250109210000_48 @ 3154.00\n",
"[2025-01-09 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250109210000_47': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250109210000_47', price_type='LIMIT', limit_price=3242, submitted_time=Timestamp('2025-01-09 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250109210000_48': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250109210000_48', price_type='LIMIT', limit_price=3154, submitted_time=Timestamp('2025-01-09 21:00:00'), offset='OPEN')}\n",
"[2025-01-09 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-09 21:00:00'), open=3208.0, high=3208.0, low=3190.0, close=3190.0, volume=258853, open_oi=1842442, close_oi=1877232, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-08 22:00:00'), open=3204.0, high=3212.0, low=3203.0, close=3206.0, volume=142665, open_oi=1843284, close_oi=1841517, symbol='SHFE.rb2505')\n",
"[2025-01-09 22:00:00] 策略 (SHFE.rb2505): [2025-01-09 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250109220000_49 @ 3209.80\n",
"[2025-01-09 22:00:00] 策略 (SHFE.rb2505): [2025-01-09 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250109220000_50 @ 3154.00\n",
"[2025-01-09 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-09 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250109220000_49': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250109220000_49', price_type='LIMIT', limit_price=3210, submitted_time=Timestamp('2025-01-09 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250109220000_50': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250109220000_50', price_type='LIMIT', limit_price=3154, submitted_time=Timestamp('2025-01-09 22:00:00'), offset='OPEN')}\n",
"[2025-01-10 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-09 22:00:00'), open=3190.0, high=3200.0, low=3189.0, close=3196.0, volume=137547, open_oi=1877232, close_oi=1882308, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 09:00:00'), open=3207.0, high=3208.0, low=3184.0, close=3186.0, volume=283558, open_oi=1841517, close_oi=1856878, symbol='SHFE.rb2505')\n",
"[2025-01-10 09:00:00] 策略 (SHFE.rb2505): [2025-01-10 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110090000_51 @ 3232.30\n",
"[2025-01-10 09:00:00] 策略 (SHFE.rb2505): [2025-01-10 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110090000_52 @ 3176.00\n",
"[2025-01-10 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110090000_51': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250110090000_51', price_type='LIMIT', limit_price=3233, submitted_time=Timestamp('2025-01-10 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250110090000_52': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110090000_52', price_type='LIMIT', limit_price=3176, submitted_time=Timestamp('2025-01-10 09:00:00'), offset='OPEN')}\n",
"[2025-01-10 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-10 09:00:00'), open=3198.0, high=3216.0, low=3197.0, close=3210.0, volume=274302, open_oi=1882308, close_oi=1866152, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 10:00:00'), open=3186.0, high=3201.0, low=3184.0, close=3195.0, volume=191163, open_oi=1856878, close_oi=1862918, symbol='SHFE.rb2505')\n",
"[2025-01-10 10:00:00] 策略 (SHFE.rb2505): [2025-01-10 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110100000_53 @ 3239.90\n",
"[2025-01-10 10:00:00] 策略 (SHFE.rb2505): [2025-01-10 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110100000_54 @ 3172.00\n",
"[2025-01-10 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110100000_53': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250110100000_53', price_type='LIMIT', limit_price=3240, submitted_time=Timestamp('2025-01-10 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250110100000_54': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110100000_54', price_type='LIMIT', limit_price=3172, submitted_time=Timestamp('2025-01-10 10:00:00'), offset='OPEN')}\n",
"[2025-01-10 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-10 10:00:00'), open=3210.0, high=3212.0, low=3203.0, close=3207.0, volume=115707, open_oi=1866152, close_oi=1857834, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 11:00:00'), open=3195.0, high=3206.0, low=3194.0, close=3197.0, volume=141377, open_oi=1862918, close_oi=1858270, symbol='SHFE.rb2505')\n",
"[2025-01-10 11:00:00] 策略 (SHFE.rb2505): [2025-01-10 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110110000_55 @ 3225.90\n",
"[2025-01-10 11:00:00] 策略 (SHFE.rb2505): [2025-01-10 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110110000_56 @ 3189.00\n",
"[2025-01-10 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110110000_55': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250110110000_55', price_type='LIMIT', limit_price=3226, submitted_time=Timestamp('2025-01-10 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250110110000_56': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110110000_56', price_type='LIMIT', limit_price=3189, submitted_time=Timestamp('2025-01-10 11:00:00'), offset='OPEN')}\n",
"[2025-01-10 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-10 11:00:00'), open=3207.0, high=3211.0, low=3203.0, close=3205.0, volume=60613, open_oi=1857834, close_oi=1853856, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 13:00:00'), open=3199.0, high=3200.0, low=3194.0, close=3196.0, volume=75399, open_oi=1858270, close_oi=1860014, symbol='SHFE.rb2505')\n",
"[2025-01-10 13:00:00] 策略 (SHFE.rb2505): [2025-01-10 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110130000_57 @ 3215.20\n",
"[2025-01-10 13:00:00] 策略 (SHFE.rb2505): [2025-01-10 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110130000_58 @ 3188.00\n",
"[2025-01-10 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110130000_57': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250110130000_57', price_type='LIMIT', limit_price=3216, submitted_time=Timestamp('2025-01-10 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250110130000_58': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110130000_58', price_type='LIMIT', limit_price=3188, submitted_time=Timestamp('2025-01-10 13:00:00'), offset='OPEN')}\n",
"[2025-01-10 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-10 13:00:00'), open=3204.0, high=3210.0, low=3200.0, close=3208.0, volume=104061, open_oi=1853856, close_oi=1851669, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 14:00:00'), open=3196.0, high=3218.0, low=3191.0, close=3205.0, volume=385204, open_oi=1860014, close_oi=1842442, symbol='SHFE.rb2505')\n",
"[2025-01-10 14:00:00] 策略 (SHFE.rb2505): [2025-01-10 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110140000_59 @ 3245.40\n",
"[2025-01-10 14:00:00] 策略 (SHFE.rb2505): [2025-01-10 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110140000_60 @ 3188.00\n",
"[2025-01-10 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110140000_59': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250110140000_59', price_type='LIMIT', limit_price=3246, submitted_time=Timestamp('2025-01-10 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250110140000_60': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110140000_60', price_type='LIMIT', limit_price=3188, submitted_time=Timestamp('2025-01-10 14:00:00'), offset='OPEN')}\n",
"[2025-01-10 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-10 14:00:00'), open=3208.0, high=3212.0, low=3202.0, close=3202.0, volume=156409, open_oi=1851669, close_oi=1839478, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 21:00:00'), open=3208.0, high=3208.0, low=3190.0, close=3190.0, volume=258853, open_oi=1842442, close_oi=1877232, symbol='SHFE.rb2505')\n",
"[2025-01-10 21:00:00] 策略 (SHFE.rb2505): [2025-01-10 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110210000_61 @ 3241.60\n",
"[2025-01-10 21:00:00] 策略 (SHFE.rb2505): [2025-01-10 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110210000_62 @ 3195.00\n",
"[2025-01-10 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110210000_61': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250110210000_61', price_type='LIMIT', limit_price=3242, submitted_time=Timestamp('2025-01-10 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250110210000_62': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110210000_62', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-01-10 21:00:00'), offset='OPEN')}\n",
"[2025-01-10 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-10 21:00:00'), open=3215.0, high=3228.0, low=3208.0, close=3218.0, volume=310294, open_oi=1839478, close_oi=1849124, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-09 22:00:00'), open=3190.0, high=3200.0, low=3189.0, close=3196.0, volume=137547, open_oi=1877232, close_oi=1882308, symbol='SHFE.rb2505')\n",
"[2025-01-10 22:00:00] 策略 (SHFE.rb2505): [2025-01-10 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250110220000_63 @ 3241.20\n",
"[2025-01-10 22:00:00] 策略 (SHFE.rb2505): [2025-01-10 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250110220000_64 @ 3178.00\n",
"[2025-01-10 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-10 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250110220000_64': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250110220000_64', price_type='LIMIT', limit_price=3178, submitted_time=Timestamp('2025-01-10 22:00:00'), offset='OPEN')}\n",
"[2025-01-13 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-13 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-13 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-13 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-13 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-13 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-13 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-13 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-13 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-14 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-14 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-14 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-14 10:00:00] 策略 (SHFE.rb2505): [2025-01-14 10:00:00] 止损信号 - PnL per unit: -24.80, 目标: -10.00\n",
"[2025-01-14 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-14 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-14 10:00:00'), open=3266.0, high=3269.0, low=3263.0, close=3269.0, volume=130334, open_oi=1762619, close_oi=1763376, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-13 11:00:00'), open=3249.0, high=3252.0, low=3241.0, close=3243.0, volume=78943, open_oi=1784641, close_oi=1777151, symbol='SHFE.rb2505')\n",
"[2025-01-14 11:00:00] 策略 (SHFE.rb2505): [2025-01-14 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250114110000_66 @ 3285.20\n",
"[2025-01-14 11:00:00] 策略 (SHFE.rb2505): [2025-01-14 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250114110000_67 @ 3257.00\n",
"[2025-01-14 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250114110000_66': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250114110000_66', price_type='LIMIT', limit_price=3286, submitted_time=Timestamp('2025-01-14 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250114110000_67': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250114110000_67', price_type='LIMIT', limit_price=3257, submitted_time=Timestamp('2025-01-14 11:00:00'), offset='OPEN')}\n",
"[2025-01-14 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-14 11:00:00'), open=3269.0, high=3277.0, low=3266.0, close=3269.0, volume=167092, open_oi=1763376, close_oi=1763612, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-13 13:00:00'), open=3244.0, high=3248.0, low=3241.0, close=3247.0, volume=69179, open_oi=1777151, close_oi=1774069, symbol='SHFE.rb2505')\n",
"[2025-01-14 13:00:00] 策略 (SHFE.rb2505): [2025-01-14 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250114130000_68 @ 3283.90\n",
"[2025-01-14 13:00:00] 策略 (SHFE.rb2505): [2025-01-14 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250114130000_69 @ 3248.00\n",
"[2025-01-14 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250114130000_69': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250114130000_69', price_type='LIMIT', limit_price=3248, submitted_time=Timestamp('2025-01-14 13:00:00'), offset='OPEN')}\n",
"[2025-01-14 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-14 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-14 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-14 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-14 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-14 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-14 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-15 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-15 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-15 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-15 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-15 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-15 11:00:00] 策略 (SHFE.rb2505): [2025-01-15 11:00:00] 止损信号 - PnL per unit: -14.10, 目标: -10.00\n",
"[2025-01-15 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-15 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-15 11:00:00'), open=3298.0, high=3303.0, low=3292.0, close=3293.0, volume=161988, open_oi=1751398, close_oi=1749135, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-14 13:00:00'), open=3270.0, high=3290.0, low=3269.0, close=3288.0, volume=239378, open_oi=1763612, close_oi=1773296, symbol='SHFE.rb2505')\n",
"[2025-01-15 13:00:00] 策略 (SHFE.rb2505): [2025-01-15 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250115130000_71 @ 3322.70\n",
"[2025-01-15 13:00:00] 策略 (SHFE.rb2505): [2025-01-15 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250115130000_72 @ 3270.00\n",
"[2025-01-15 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250115130000_71': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250115130000_71', price_type='LIMIT', limit_price=3323, submitted_time=Timestamp('2025-01-15 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250115130000_72': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250115130000_72', price_type='LIMIT', limit_price=3270, submitted_time=Timestamp('2025-01-15 13:00:00'), offset='OPEN')}\n",
"[2025-01-15 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-15 13:00:00'), open=3292.0, high=3295.0, low=3285.0, close=3292.0, volume=124894, open_oi=1749135, close_oi=1737085, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-14 14:00:00'), open=3288.0, high=3293.0, low=3281.0, close=3283.0, volume=267089, open_oi=1773296, close_oi=1742948, symbol='SHFE.rb2505')\n",
"[2025-01-15 14:00:00] 策略 (SHFE.rb2505): [2025-01-15 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250115140000_73 @ 3311.40\n",
"[2025-01-15 14:00:00] 策略 (SHFE.rb2505): [2025-01-15 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250115140000_74 @ 3272.00\n",
"[2025-01-15 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250115140000_73': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250115140000_73', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-01-15 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250115140000_74': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250115140000_74', price_type='LIMIT', limit_price=3272, submitted_time=Timestamp('2025-01-15 14:00:00'), offset='OPEN')}\n",
"[2025-01-15 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-15 14:00:00'), open=3292.0, high=3296.0, low=3286.0, close=3290.0, volume=142553, open_oi=1737085, close_oi=1717577, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-14 21:00:00'), open=3286.0, high=3286.0, low=3276.0, close=3281.0, volume=191962, open_oi=1742948, close_oi=1740997, symbol='SHFE.rb2505')\n",
"[2025-01-15 21:00:00] 策略 (SHFE.rb2505): [2025-01-15 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250115210000_75 @ 3303.00\n",
"[2025-01-15 21:00:00] 策略 (SHFE.rb2505): [2025-01-15 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250115210000_76 @ 3266.00\n",
"[2025-01-15 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250115210000_76': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250115210000_76', price_type='LIMIT', limit_price=3266, submitted_time=Timestamp('2025-01-15 21:00:00'), offset='OPEN')}\n",
"[2025-01-15 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-15 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-15 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-16 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-16 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-16 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-16 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-16 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-16 21:00:00] 策略 (SHFE.rb2505): [2025-01-16 21:00:00] 止损信号 - PnL per unit: -28.00, 目标: -10.00\n",
"[2025-01-16 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-16 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-16 21:00:00'), open=3331.0, high=3333.0, low=3323.0, close=3326.0, volume=187887, open_oi=1755226, close_oi=1757004, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-15 22:00:00'), open=3307.0, high=3313.0, low=3301.0, close=3305.0, volume=172157, open_oi=1734835, close_oi=1726680, symbol='SHFE.rb2505')\n",
"[2025-01-16 22:00:00] 策略 (SHFE.rb2505): [2025-01-16 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250116220000_78 @ 3345.40\n",
"[2025-01-16 22:00:00] 策略 (SHFE.rb2505): [2025-01-16 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250116220000_79 @ 3306.00\n",
"[2025-01-16 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-16 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250116220000_78': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250116220000_78', price_type='LIMIT', limit_price=3346, submitted_time=Timestamp('2025-01-16 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250116220000_79': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250116220000_79', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-01-16 22:00:00'), offset='OPEN')}\n",
"[2025-01-17 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-16 22:00:00'), open=3326.0, high=3329.0, low=3323.0, close=3325.0, volume=95934, open_oi=1757004, close_oi=1741249, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-16 09:00:00'), open=3306.0, high=3310.0, low=3300.0, close=3302.0, volume=177855, open_oi=1726680, close_oi=1725890, symbol='SHFE.rb2505')\n",
"[2025-01-17 09:00:00] 策略 (SHFE.rb2505): [2025-01-17 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250117090000_80 @ 3339.00\n",
"[2025-01-17 09:00:00] 策略 (SHFE.rb2505): [2025-01-17 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250117090000_81 @ 3312.00\n",
"[2025-01-17 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250117090000_80': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250117090000_80', price_type='LIMIT', limit_price=3339, submitted_time=Timestamp('2025-01-17 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250117090000_81': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250117090000_81', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-01-17 09:00:00'), offset='OPEN')}\n",
"[2025-01-17 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-17 09:00:00'), open=3324.0, high=3339.0, low=3316.0, close=3333.0, volume=280360, open_oi=1741249, close_oi=1736717, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-16 10:00:00'), open=3302.0, high=3302.0, low=3295.0, close=3298.0, volume=142315, open_oi=1725890, close_oi=1717518, symbol='SHFE.rb2505')\n",
"[2025-01-17 10:00:00] 策略 (SHFE.rb2505): [2025-01-17 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250117100000_82 @ 3352.90\n",
"[2025-01-17 10:00:00] 策略 (SHFE.rb2505): [2025-01-17 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250117100000_83 @ 3287.00\n",
"[2025-01-17 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250117100000_82': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250117100000_82', price_type='LIMIT', limit_price=3353, submitted_time=Timestamp('2025-01-17 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250117100000_83': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250117100000_83', price_type='LIMIT', limit_price=3287, submitted_time=Timestamp('2025-01-17 10:00:00'), offset='OPEN')}\n",
"[2025-01-17 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-17 10:00:00'), open=3333.0, high=3342.0, low=3330.0, close=3341.0, volume=135060, open_oi=1736717, close_oi=1741053, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-16 11:00:00'), open=3298.0, high=3308.0, low=3298.0, close=3301.0, volume=87018, open_oi=1717518, close_oi=1711768, symbol='SHFE.rb2505')\n",
"[2025-01-17 11:00:00] 策略 (SHFE.rb2505): [2025-01-17 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250117110000_84 @ 3359.00\n",
"[2025-01-17 11:00:00] 策略 (SHFE.rb2505): [2025-01-17 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250117110000_85 @ 3317.00\n",
"[2025-01-17 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250117110000_85': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250117110000_85', price_type='LIMIT', limit_price=3317, submitted_time=Timestamp('2025-01-17 11:00:00'), offset='OPEN')}\n",
"[2025-01-17 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-17 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-17 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-17 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-17 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-17 21:00:00] 策略 (SHFE.rb2505): [2025-01-17 21:00:00] 止损信号 - PnL per unit: -13.00, 目标: -10.00\n",
"[2025-01-17 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-17 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-17 21:00:00'), open=3372.0, high=3375.0, low=3363.0, close=3364.0, volume=263459, open_oi=1809583, close_oi=1824805, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-16 22:00:00'), open=3326.0, high=3329.0, low=3323.0, close=3325.0, volume=95934, open_oi=1757004, close_oi=1741249, symbol='SHFE.rb2505')\n",
"[2025-01-17 22:00:00] 策略 (SHFE.rb2505): [2025-01-17 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250117220000_87 @ 3377.20\n",
"[2025-01-17 22:00:00] 策略 (SHFE.rb2505): [2025-01-17 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250117220000_88 @ 3340.00\n",
"[2025-01-17 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-17 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250117220000_88': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250117220000_88', price_type='LIMIT', limit_price=3340, submitted_time=Timestamp('2025-01-17 22:00:00'), offset='OPEN')}\n",
"[2025-01-20 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-20 09:00:00] 策略 (SHFE.rb2505): [2025-01-20 09:00:00] 止损信号 - PnL per unit: -13.80, 目标: -10.00\n",
"[2025-01-20 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-20 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-20 09:00:00'), open=3391.0, high=3391.0, low=3357.0, close=3361.0, volume=479247, open_oi=1817549, close_oi=1799712, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-17 10:00:00'), open=3333.0, high=3342.0, low=3330.0, close=3341.0, volume=135060, open_oi=1736717, close_oi=1741053, symbol='SHFE.rb2505')\n",
"[2025-01-20 10:00:00] 策略 (SHFE.rb2505): [2025-01-20 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250120100000_90 @ 3392.40\n",
"[2025-01-20 10:00:00] 策略 (SHFE.rb2505): [2025-01-20 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250120100000_91 @ 3293.00\n",
"[2025-01-20 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250120100000_90': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250120100000_90', price_type='LIMIT', limit_price=3393, submitted_time=Timestamp('2025-01-20 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250120100000_91': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250120100000_91', price_type='LIMIT', limit_price=3293, submitted_time=Timestamp('2025-01-20 10:00:00'), offset='OPEN')}\n",
"[2025-01-20 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-20 10:00:00'), open=3361.0, high=3362.0, low=3347.0, close=3350.0, volume=231084, open_oi=1799712, close_oi=1788926, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-17 11:00:00'), open=3341.0, high=3360.0, low=3340.0, close=3358.0, volume=335558, open_oi=1741053, close_oi=1801070, symbol='SHFE.rb2505')\n",
"[2025-01-20 11:00:00] 策略 (SHFE.rb2505): [2025-01-20 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250120110000_92 @ 3381.50\n",
"[2025-01-20 11:00:00] 策略 (SHFE.rb2505): [2025-01-20 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250120110000_93 @ 3320.00\n",
"[2025-01-20 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250120110000_92': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250120110000_92', price_type='LIMIT', limit_price=3382, submitted_time=Timestamp('2025-01-20 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250120110000_93': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250120110000_93', price_type='LIMIT', limit_price=3320, submitted_time=Timestamp('2025-01-20 11:00:00'), offset='OPEN')}\n",
"[2025-01-20 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-20 11:00:00'), open=3350.0, high=3353.0, low=3340.0, close=3353.0, volume=143798, open_oi=1788926, close_oi=1781321, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-17 13:00:00'), open=3360.0, high=3368.0, low=3356.0, close=3359.0, volume=232898, open_oi=1801070, close_oi=1808477, symbol='SHFE.rb2505')\n",
"[2025-01-20 13:00:00] 策略 (SHFE.rb2505): [2025-01-20 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250120130000_94 @ 3373.90\n",
"[2025-01-20 13:00:00] 策略 (SHFE.rb2505): [2025-01-20 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250120130000_95 @ 3327.00\n",
"[2025-01-20 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250120130000_94': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250120130000_94', price_type='LIMIT', limit_price=3374, submitted_time=Timestamp('2025-01-20 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250120130000_95': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250120130000_95', price_type='LIMIT', limit_price=3327, submitted_time=Timestamp('2025-01-20 13:00:00'), offset='OPEN')}\n",
"[2025-01-20 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-20 13:00:00'), open=3353.0, high=3359.0, low=3350.0, close=3358.0, volume=104659, open_oi=1781321, close_oi=1779106, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-17 14:00:00'), open=3359.0, high=3378.0, low=3358.0, close=3372.0, volume=321049, open_oi=1808477, close_oi=1809583, symbol='SHFE.rb2505')\n",
"[2025-01-20 14:00:00] 策略 (SHFE.rb2505): [2025-01-20 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250120140000_96 @ 3386.50\n",
"[2025-01-20 14:00:00] 策略 (SHFE.rb2505): [2025-01-20 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250120140000_97 @ 3340.00\n",
"[2025-01-20 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250120140000_96': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250120140000_96', price_type='LIMIT', limit_price=3387, submitted_time=Timestamp('2025-01-20 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250120140000_97': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250120140000_97', price_type='LIMIT', limit_price=3340, submitted_time=Timestamp('2025-01-20 14:00:00'), offset='OPEN')}\n",
"[2025-01-20 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-20 14:00:00'), open=3358.0, high=3359.0, low=3348.0, close=3354.0, volume=170918, open_oi=1779106, close_oi=1761893, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-17 21:00:00'), open=3372.0, high=3375.0, low=3363.0, close=3364.0, volume=263459, open_oi=1809583, close_oi=1824805, symbol='SHFE.rb2505')\n",
"[2025-01-20 21:00:00] 策略 (SHFE.rb2505): [2025-01-20 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250120210000_98 @ 3374.90\n",
"[2025-01-20 21:00:00] 策略 (SHFE.rb2505): [2025-01-20 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250120210000_99 @ 3333.00\n",
"[2025-01-20 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250120210000_99': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250120210000_99', price_type='LIMIT', limit_price=3333, submitted_time=Timestamp('2025-01-20 21:00:00'), offset='OPEN')}\n",
"[2025-01-20 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-20 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-20 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-21 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-21 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-21 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-21 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-21 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-21 11:00:00] 策略 (SHFE.rb2505): [2025-01-21 11:00:00] 止盈信号 - PnL per unit: 17.90, 目标: 10.00\n",
"[2025-01-21 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-21 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-21 11:00:00'), open=3357.0, high=3365.0, low=3355.0, close=3361.0, volume=88870, open_oi=1761001, close_oi=1760872, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-20 13:00:00'), open=3353.0, high=3359.0, low=3350.0, close=3358.0, volume=104659, open_oi=1781321, close_oi=1779106, symbol='SHFE.rb2505')\n",
"[2025-01-21 13:00:00] 策略 (SHFE.rb2505): [2025-01-21 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250121130000_101 @ 3373.80\n",
"[2025-01-21 13:00:00] 策略 (SHFE.rb2505): [2025-01-21 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250121130000_102 @ 3338.00\n",
"[2025-01-21 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250121130000_101': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250121130000_101', price_type='LIMIT', limit_price=3374, submitted_time=Timestamp('2025-01-21 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250121130000_102': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250121130000_102', price_type='LIMIT', limit_price=3338, submitted_time=Timestamp('2025-01-21 13:00:00'), offset='OPEN')}\n",
"[2025-01-21 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-21 13:00:00'), open=3358.0, high=3365.0, low=3355.0, close=3361.0, volume=84551, open_oi=1760872, close_oi=1764062, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-20 14:00:00'), open=3358.0, high=3359.0, low=3348.0, close=3354.0, volume=170918, open_oi=1779106, close_oi=1761893, symbol='SHFE.rb2505')\n",
"[2025-01-21 14:00:00] 策略 (SHFE.rb2505): [2025-01-21 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250121140000_103 @ 3379.20\n",
"[2025-01-21 14:00:00] 策略 (SHFE.rb2505): [2025-01-21 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250121140000_104 @ 3341.00\n",
"[2025-01-21 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250121140000_103': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250121140000_103', price_type='LIMIT', limit_price=3380, submitted_time=Timestamp('2025-01-21 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250121140000_104': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250121140000_104', price_type='LIMIT', limit_price=3341, submitted_time=Timestamp('2025-01-21 14:00:00'), offset='OPEN')}\n",
"[2025-01-21 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-21 14:00:00'), open=3361.0, high=3365.0, low=3350.0, close=3354.0, volume=173845, open_oi=1764062, close_oi=1749180, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-20 21:00:00'), open=3355.0, high=3385.0, low=3353.0, close=3374.0, volume=377234, open_oi=1761893, close_oi=1779814, symbol='SHFE.rb2505')\n",
"[2025-01-21 21:00:00] 策略 (SHFE.rb2505): [2025-01-21 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250121210000_105 @ 3396.90\n",
"[2025-01-21 21:00:00] 策略 (SHFE.rb2505): [2025-01-21 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250121210000_106 @ 3321.00\n",
"[2025-01-21 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250121210000_105': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250121210000_105', price_type='LIMIT', limit_price=3397, submitted_time=Timestamp('2025-01-21 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250121210000_106': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250121210000_106', price_type='LIMIT', limit_price=3321, submitted_time=Timestamp('2025-01-21 21:00:00'), offset='OPEN')}\n",
"[2025-01-21 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-21 21:00:00'), open=3351.0, high=3354.0, low=3325.0, close=3331.0, volume=419025, open_oi=1749180, close_oi=1731901, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-20 22:00:00'), open=3374.0, high=3375.0, low=3359.0, close=3364.0, volume=201817, open_oi=1779814, close_oi=1755066, symbol='SHFE.rb2505')\n",
"[2025-01-21 22:00:00] 策略 (SHFE.rb2505): [2025-01-21 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250121220000_107 @ 3364.70\n",
"[2025-01-21 22:00:00] 策略 (SHFE.rb2505): [2025-01-21 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250121220000_108 @ 3273.00\n",
"[2025-01-21 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-21 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250121220000_107': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250121220000_107', price_type='LIMIT', limit_price=3365, submitted_time=Timestamp('2025-01-21 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250121220000_108': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250121220000_108', price_type='LIMIT', limit_price=3273, submitted_time=Timestamp('2025-01-21 22:00:00'), offset='OPEN')}\n",
"[2025-01-22 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-21 22:00:00'), open=3331.0, high=3333.0, low=3320.0, close=3323.0, volume=180718, open_oi=1731901, close_oi=1720151, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 09:00:00'), open=3365.0, high=3378.0, low=3358.0, close=3367.0, volume=225566, open_oi=1755066, close_oi=1759838, symbol='SHFE.rb2505')\n",
"[2025-01-22 09:00:00] 策略 (SHFE.rb2505): [2025-01-22 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122090000_109 @ 3353.50\n",
"[2025-01-22 09:00:00] 策略 (SHFE.rb2505): [2025-01-22 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122090000_110 @ 3297.00\n",
"[2025-01-22 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122090000_109': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122090000_109', price_type='LIMIT', limit_price=3354, submitted_time=Timestamp('2025-01-22 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122090000_110': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122090000_110', price_type='LIMIT', limit_price=3297, submitted_time=Timestamp('2025-01-22 09:00:00'), offset='OPEN')}\n",
"[2025-01-22 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 09:00:00'), open=3323.0, high=3332.0, low=3323.0, close=3329.0, volume=162982, open_oi=1720151, close_oi=1721588, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 10:00:00'), open=3367.0, high=3372.0, low=3344.0, close=3357.0, volume=259413, open_oi=1759838, close_oi=1761001, symbol='SHFE.rb2505')\n",
"[2025-01-22 10:00:00] 策略 (SHFE.rb2505): [2025-01-22 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122100000_111 @ 3367.10\n",
"[2025-01-22 10:00:00] 策略 (SHFE.rb2505): [2025-01-22 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122100000_112 @ 3311.00\n",
"[2025-01-22 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122100000_111': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122100000_111', price_type='LIMIT', limit_price=3368, submitted_time=Timestamp('2025-01-22 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122100000_112': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122100000_112', price_type='LIMIT', limit_price=3311, submitted_time=Timestamp('2025-01-22 10:00:00'), offset='OPEN')}\n",
"[2025-01-22 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 10:00:00'), open=3329.0, high=3336.0, low=3325.0, close=3331.0, volume=102073, open_oi=1721588, close_oi=1716220, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 11:00:00'), open=3357.0, high=3365.0, low=3355.0, close=3361.0, volume=88870, open_oi=1761001, close_oi=1760872, symbol='SHFE.rb2505')\n",
"[2025-01-22 11:00:00] 策略 (SHFE.rb2505): [2025-01-22 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122110000_113 @ 3348.50\n",
"[2025-01-22 11:00:00] 策略 (SHFE.rb2505): [2025-01-22 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122110000_114 @ 3309.00\n",
"[2025-01-22 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122110000_113': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122110000_113', price_type='LIMIT', limit_price=3349, submitted_time=Timestamp('2025-01-22 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122110000_114': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122110000_114', price_type='LIMIT', limit_price=3309, submitted_time=Timestamp('2025-01-22 11:00:00'), offset='OPEN')}\n",
"[2025-01-22 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 11:00:00'), open=3331.0, high=3338.0, low=3330.0, close=3330.0, volume=71857, open_oi=1716220, close_oi=1713172, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 13:00:00'), open=3358.0, high=3365.0, low=3355.0, close=3361.0, volume=84551, open_oi=1760872, close_oi=1764062, symbol='SHFE.rb2505')\n",
"[2025-01-22 13:00:00] 策略 (SHFE.rb2505): [2025-01-22 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122130000_115 @ 3344.00\n",
"[2025-01-22 13:00:00] 策略 (SHFE.rb2505): [2025-01-22 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122130000_116 @ 3312.00\n",
"[2025-01-22 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122130000_115': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122130000_115', price_type='LIMIT', limit_price=3344, submitted_time=Timestamp('2025-01-22 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122130000_116': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122130000_116', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-01-22 13:00:00'), offset='OPEN')}\n",
"[2025-01-22 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 13:00:00'), open=3328.0, high=3339.0, low=3325.0, close=3339.0, volume=85572, open_oi=1713172, close_oi=1709467, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 14:00:00'), open=3361.0, high=3365.0, low=3350.0, close=3354.0, volume=173845, open_oi=1764062, close_oi=1749180, symbol='SHFE.rb2505')\n",
"[2025-01-22 14:00:00] 策略 (SHFE.rb2505): [2025-01-22 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122140000_117 @ 3364.00\n",
"[2025-01-22 14:00:00] 策略 (SHFE.rb2505): [2025-01-22 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122140000_118 @ 3311.00\n",
"[2025-01-22 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122140000_117': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122140000_117', price_type='LIMIT', limit_price=3364, submitted_time=Timestamp('2025-01-22 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122140000_118': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122140000_118', price_type='LIMIT', limit_price=3311, submitted_time=Timestamp('2025-01-22 14:00:00'), offset='OPEN')}\n",
"[2025-01-22 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 14:00:00'), open=3339.0, high=3350.0, low=3330.0, close=3337.0, volume=204877, open_oi=1709467, close_oi=1693073, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 21:00:00'), open=3351.0, high=3354.0, low=3325.0, close=3331.0, volume=419025, open_oi=1749180, close_oi=1731901, symbol='SHFE.rb2505')\n",
"[2025-01-22 21:00:00] 策略 (SHFE.rb2505): [2025-01-22 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122210000_119 @ 3389.80\n",
"[2025-01-22 21:00:00] 策略 (SHFE.rb2505): [2025-01-22 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122210000_120 @ 3305.00\n",
"[2025-01-22 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122210000_119': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122210000_119', price_type='LIMIT', limit_price=3390, submitted_time=Timestamp('2025-01-22 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122210000_120': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122210000_120', price_type='LIMIT', limit_price=3305, submitted_time=Timestamp('2025-01-22 21:00:00'), offset='OPEN')}\n",
"[2025-01-22 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 21:00:00'), open=3345.0, high=3369.0, low=3340.0, close=3365.0, volume=383156, open_oi=1693073, close_oi=1709170, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-21 22:00:00'), open=3331.0, high=3333.0, low=3320.0, close=3323.0, volume=180718, open_oi=1731901, close_oi=1720151, symbol='SHFE.rb2505')\n",
"[2025-01-22 22:00:00] 策略 (SHFE.rb2505): [2025-01-22 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250122220000_121 @ 3395.10\n",
"[2025-01-22 22:00:00] 策略 (SHFE.rb2505): [2025-01-22 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250122220000_122 @ 3307.00\n",
"[2025-01-22 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-22 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250122220000_121': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250122220000_121', price_type='LIMIT', limit_price=3396, submitted_time=Timestamp('2025-01-22 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250122220000_122': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250122220000_122', price_type='LIMIT', limit_price=3307, submitted_time=Timestamp('2025-01-22 22:00:00'), offset='OPEN')}\n",
"[2025-01-23 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-22 22:00:00'), open=3365.0, high=3370.0, low=3359.0, close=3362.0, volume=176128, open_oi=1709170, close_oi=1718245, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 09:00:00'), open=3323.0, high=3332.0, low=3323.0, close=3329.0, volume=162982, open_oi=1720151, close_oi=1721588, symbol='SHFE.rb2505')\n",
"[2025-01-23 09:00:00] 策略 (SHFE.rb2505): [2025-01-23 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123090000_123 @ 3377.30\n",
"[2025-01-23 09:00:00] 策略 (SHFE.rb2505): [2025-01-23 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123090000_124 @ 3339.00\n",
"[2025-01-23 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123090000_123': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123090000_123', price_type='LIMIT', limit_price=3378, submitted_time=Timestamp('2025-01-23 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123090000_124': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123090000_124', price_type='LIMIT', limit_price=3339, submitted_time=Timestamp('2025-01-23 09:00:00'), offset='OPEN')}\n",
"[2025-01-23 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 09:00:00'), open=3361.0, high=3375.0, low=3355.0, close=3357.0, volume=221500, open_oi=1718245, close_oi=1716124, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 10:00:00'), open=3329.0, high=3336.0, low=3325.0, close=3331.0, volume=102073, open_oi=1721588, close_oi=1716220, symbol='SHFE.rb2505')\n",
"[2025-01-23 10:00:00] 策略 (SHFE.rb2505): [2025-01-23 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123100000_125 @ 3380.20\n",
"[2025-01-23 10:00:00] 策略 (SHFE.rb2505): [2025-01-23 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123100000_126 @ 3317.00\n",
"[2025-01-23 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123100000_125': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123100000_125', price_type='LIMIT', limit_price=3381, submitted_time=Timestamp('2025-01-23 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123100000_126': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123100000_126', price_type='LIMIT', limit_price=3317, submitted_time=Timestamp('2025-01-23 10:00:00'), offset='OPEN')}\n",
"[2025-01-23 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 10:00:00'), open=3357.0, high=3358.0, low=3337.0, close=3343.0, volume=267784, open_oi=1716124, close_oi=1716310, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 11:00:00'), open=3331.0, high=3338.0, low=3330.0, close=3330.0, volume=71857, open_oi=1716220, close_oi=1713172, symbol='SHFE.rb2505')\n",
"[2025-01-23 11:00:00] 策略 (SHFE.rb2505): [2025-01-23 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123110000_127 @ 3363.10\n",
"[2025-01-23 11:00:00] 策略 (SHFE.rb2505): [2025-01-23 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123110000_128 @ 3301.00\n",
"[2025-01-23 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123110000_127': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123110000_127', price_type='LIMIT', limit_price=3364, submitted_time=Timestamp('2025-01-23 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123110000_128': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123110000_128', price_type='LIMIT', limit_price=3301, submitted_time=Timestamp('2025-01-23 11:00:00'), offset='OPEN')}\n",
"[2025-01-23 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 11:00:00'), open=3343.0, high=3354.0, low=3341.0, close=3353.0, volume=70238, open_oi=1716310, close_oi=1714998, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 13:00:00'), open=3328.0, high=3339.0, low=3325.0, close=3339.0, volume=85572, open_oi=1713172, close_oi=1709467, symbol='SHFE.rb2505')\n",
"[2025-01-23 13:00:00] 策略 (SHFE.rb2505): [2025-01-23 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123130000_129 @ 3375.30\n",
"[2025-01-23 13:00:00] 策略 (SHFE.rb2505): [2025-01-23 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123130000_130 @ 3326.00\n",
"[2025-01-23 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123130000_129': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123130000_129', price_type='LIMIT', limit_price=3376, submitted_time=Timestamp('2025-01-23 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123130000_130': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123130000_130', price_type='LIMIT', limit_price=3326, submitted_time=Timestamp('2025-01-23 13:00:00'), offset='OPEN')}\n",
"[2025-01-23 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 13:00:00'), open=3352.0, high=3354.0, low=3347.0, close=3348.0, volume=57846, open_oi=1714998, close_oi=1718364, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 14:00:00'), open=3339.0, high=3350.0, low=3330.0, close=3337.0, volume=204877, open_oi=1709467, close_oi=1693073, symbol='SHFE.rb2505')\n",
"[2025-01-23 14:00:00] 策略 (SHFE.rb2505): [2025-01-23 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123140000_131 @ 3375.50\n",
"[2025-01-23 14:00:00] 策略 (SHFE.rb2505): [2025-01-23 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123140000_132 @ 3334.00\n",
"[2025-01-23 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123140000_131': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123140000_131', price_type='LIMIT', limit_price=3376, submitted_time=Timestamp('2025-01-23 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123140000_132': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123140000_132', price_type='LIMIT', limit_price=3334, submitted_time=Timestamp('2025-01-23 14:00:00'), offset='OPEN')}\n",
"[2025-01-23 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 14:00:00'), open=3348.0, high=3355.0, low=3342.0, close=3352.0, volume=160187, open_oi=1718364, close_oi=1704493, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 21:00:00'), open=3345.0, high=3369.0, low=3340.0, close=3365.0, volume=383156, open_oi=1693073, close_oi=1709170, symbol='SHFE.rb2505')\n",
"[2025-01-23 21:00:00] 策略 (SHFE.rb2505): [2025-01-23 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123210000_133 @ 3387.30\n",
"[2025-01-23 21:00:00] 策略 (SHFE.rb2505): [2025-01-23 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123210000_134 @ 3320.00\n",
"[2025-01-23 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123210000_133': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123210000_133', price_type='LIMIT', limit_price=3388, submitted_time=Timestamp('2025-01-23 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123210000_134': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123210000_134', price_type='LIMIT', limit_price=3320, submitted_time=Timestamp('2025-01-23 21:00:00'), offset='OPEN')}\n",
"[2025-01-23 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 21:00:00'), open=3346.0, high=3355.0, low=3340.0, close=3349.0, volume=216195, open_oi=1704493, close_oi=1696175, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-22 22:00:00'), open=3365.0, high=3370.0, low=3359.0, close=3362.0, volume=176128, open_oi=1709170, close_oi=1718245, symbol='SHFE.rb2505')\n",
"[2025-01-23 22:00:00] 策略 (SHFE.rb2505): [2025-01-23 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250123220000_135 @ 3369.70\n",
"[2025-01-23 22:00:00] 策略 (SHFE.rb2505): [2025-01-23 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250123220000_136 @ 3319.00\n",
"[2025-01-23 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-23 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250123220000_135': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250123220000_135', price_type='LIMIT', limit_price=3370, submitted_time=Timestamp('2025-01-23 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250123220000_136': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250123220000_136', price_type='LIMIT', limit_price=3319, submitted_time=Timestamp('2025-01-23 22:00:00'), offset='OPEN')}\n",
"[2025-01-24 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-23 22:00:00'), open=3349.0, high=3350.0, low=3335.0, close=3340.0, volume=140539, open_oi=1696175, close_oi=1682656, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-23 09:00:00'), open=3361.0, high=3375.0, low=3355.0, close=3357.0, volume=221500, open_oi=1718245, close_oi=1716124, symbol='SHFE.rb2505')\n",
"[2025-01-24 09:00:00] 策略 (SHFE.rb2505): [2025-01-24 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250124090000_137 @ 3372.50\n",
"[2025-01-24 09:00:00] 策略 (SHFE.rb2505): [2025-01-24 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250124090000_138 @ 3311.00\n",
"[2025-01-24 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250124090000_137': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250124090000_137', price_type='LIMIT', limit_price=3373, submitted_time=Timestamp('2025-01-24 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250124090000_138': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250124090000_138', price_type='LIMIT', limit_price=3311, submitted_time=Timestamp('2025-01-24 09:00:00'), offset='OPEN')}\n",
"[2025-01-24 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-24 09:00:00'), open=3341.0, high=3346.0, low=3335.0, close=3344.0, volume=126627, open_oi=1682656, close_oi=1676283, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-23 10:00:00'), open=3357.0, high=3358.0, low=3337.0, close=3343.0, volume=267784, open_oi=1716124, close_oi=1716310, symbol='SHFE.rb2505')\n",
"[2025-01-24 10:00:00] 策略 (SHFE.rb2505): [2025-01-24 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250124100000_139 @ 3374.70\n",
"[2025-01-24 10:00:00] 策略 (SHFE.rb2505): [2025-01-24 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250124100000_140 @ 3322.00\n",
"[2025-01-24 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250124100000_139': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250124100000_139', price_type='LIMIT', limit_price=3375, submitted_time=Timestamp('2025-01-24 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250124100000_140': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250124100000_140', price_type='LIMIT', limit_price=3322, submitted_time=Timestamp('2025-01-24 10:00:00'), offset='OPEN')}\n",
"[2025-01-24 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-24 10:00:00'), open=3344.0, high=3350.0, low=3338.0, close=3339.0, volume=96947, open_oi=1676283, close_oi=1665607, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-23 11:00:00'), open=3343.0, high=3354.0, low=3341.0, close=3353.0, volume=70238, open_oi=1716310, close_oi=1714998, symbol='SHFE.rb2505')\n",
"[2025-01-24 11:00:00] 策略 (SHFE.rb2505): [2025-01-24 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250124110000_141 @ 3360.60\n",
"[2025-01-24 11:00:00] 策略 (SHFE.rb2505): [2025-01-24 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250124110000_142 @ 3315.00\n",
"[2025-01-24 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250124110000_141': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250124110000_141', price_type='LIMIT', limit_price=3361, submitted_time=Timestamp('2025-01-24 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250124110000_142': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250124110000_142', price_type='LIMIT', limit_price=3315, submitted_time=Timestamp('2025-01-24 11:00:00'), offset='OPEN')}\n",
"[2025-01-24 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-24 11:00:00'), open=3339.0, high=3340.0, low=3329.0, close=3331.0, volume=127453, open_oi=1665607, close_oi=1659236, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-23 13:00:00'), open=3352.0, high=3354.0, low=3347.0, close=3348.0, volume=57846, open_oi=1714998, close_oi=1718364, symbol='SHFE.rb2505')\n",
"[2025-01-24 13:00:00] 策略 (SHFE.rb2505): [2025-01-24 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250124130000_143 @ 3352.90\n",
"[2025-01-24 13:00:00] 策略 (SHFE.rb2505): [2025-01-24 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250124130000_144 @ 3317.00\n",
"[2025-01-24 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250124130000_143': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250124130000_143', price_type='LIMIT', limit_price=3353, submitted_time=Timestamp('2025-01-24 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250124130000_144': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250124130000_144', price_type='LIMIT', limit_price=3317, submitted_time=Timestamp('2025-01-24 13:00:00'), offset='OPEN')}\n",
"[2025-01-24 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-24 13:00:00'), open=3339.0, high=3348.0, low=3336.0, close=3346.0, volume=99875, open_oi=1659236, close_oi=1657313, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-23 14:00:00'), open=3348.0, high=3355.0, low=3342.0, close=3352.0, volume=160187, open_oi=1718364, close_oi=1704493, symbol='SHFE.rb2505')\n",
"[2025-01-24 14:00:00] 策略 (SHFE.rb2505): [2025-01-24 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250124140000_145 @ 3367.60\n",
"[2025-01-24 14:00:00] 策略 (SHFE.rb2505): [2025-01-24 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250124140000_146 @ 3322.00\n",
"[2025-01-24 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250124140000_146': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250124140000_146', price_type='LIMIT', limit_price=3322, submitted_time=Timestamp('2025-01-24 14:00:00'), offset='OPEN')}\n",
"[2025-01-24 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-24 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-24 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-24 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-24 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-27 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-27 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-27 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-27 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-01-27 10:00:00] 策略 (SHFE.rb2505): [2025-01-27 10:00:00] 止损信号 - PnL per unit: -10.40, 目标: -10.00\n",
"[2025-01-27 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-27 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-01-27 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-27 10:00:00'), open=3378.0, high=3383.0, low=3371.0, close=3372.0, volume=65086, open_oi=1680559, close_oi=1672691, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-24 11:00:00'), open=3339.0, high=3340.0, low=3329.0, close=3331.0, volume=127453, open_oi=1665607, close_oi=1659236, symbol='SHFE.rb2505')\n",
"[2025-01-27 11:00:00] 策略 (SHFE.rb2505): [2025-01-27 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250127110000_148 @ 3391.20\n",
"[2025-01-27 11:00:00] 策略 (SHFE.rb2505): [2025-01-27 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250127110000_149 @ 3348.00\n",
"[2025-01-27 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-27 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250127110000_148': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250127110000_148', price_type='LIMIT', limit_price=3392, submitted_time=Timestamp('2025-01-27 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250127110000_149': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250127110000_149', price_type='LIMIT', limit_price=3348, submitted_time=Timestamp('2025-01-27 11:00:00'), offset='OPEN')}\n",
"[2025-01-27 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-27 11:00:00'), open=3372.0, high=3378.0, low=3371.0, close=3373.0, volume=47714, open_oi=1672691, close_oi=1670080, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-24 13:00:00'), open=3339.0, high=3348.0, low=3336.0, close=3346.0, volume=99875, open_oi=1659236, close_oi=1657313, symbol='SHFE.rb2505')\n",
"[2025-01-27 13:00:00] 策略 (SHFE.rb2505): [2025-01-27 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250127130000_150 @ 3389.90\n",
"[2025-01-27 13:00:00] 策略 (SHFE.rb2505): [2025-01-27 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250127130000_151 @ 3358.00\n",
"[2025-01-27 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-27 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250127130000_150': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250127130000_150', price_type='LIMIT', limit_price=3390, submitted_time=Timestamp('2025-01-27 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250127130000_151': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250127130000_151', price_type='LIMIT', limit_price=3358, submitted_time=Timestamp('2025-01-27 13:00:00'), offset='OPEN')}\n",
"[2025-01-27 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-27 13:00:00'), open=3372.0, high=3373.0, low=3361.0, close=3367.0, volume=73406, open_oi=1670080, close_oi=1660793, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-24 14:00:00'), open=3346.0, high=3383.0, low=3344.0, close=3377.0, volume=504837, open_oi=1657313, close_oi=1683783, symbol='SHFE.rb2505')\n",
"[2025-01-27 14:00:00] 策略 (SHFE.rb2505): [2025-01-27 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250127140000_152 @ 3419.80\n",
"[2025-01-27 14:00:00] 策略 (SHFE.rb2505): [2025-01-27 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250127140000_153 @ 3343.00\n",
"[2025-01-27 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-01-27 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250127140000_152': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250127140000_152', price_type='LIMIT', limit_price=3420, submitted_time=Timestamp('2025-01-27 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250127140000_153': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250127140000_153', price_type='LIMIT', limit_price=3343, submitted_time=Timestamp('2025-01-27 14:00:00'), offset='OPEN')}\n",
"[2025-02-05 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-01-27 14:00:00'), open=3367.0, high=3382.0, low=3365.0, close=3382.0, volume=130992, open_oi=1660793, close_oi=1627909, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-24 21:00:00'), open=3371.0, high=3373.0, low=3353.0, close=3364.0, volume=215321, open_oi=1683783, close_oi=1676345, symbol='SHFE.rb2505')\n",
"[2025-02-05 09:00:00] 策略 (SHFE.rb2505): [2025-02-05 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250205090000_154 @ 3422.50\n",
"[2025-02-05 09:00:00] 策略 (SHFE.rb2505): [2025-02-05 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250205090000_155 @ 3356.00\n",
"[2025-02-05 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250205090000_154': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250205090000_154', price_type='LIMIT', limit_price=3423, submitted_time=Timestamp('2025-02-05 09:00:00'), offset='OPEN')}\n",
"[2025-02-05 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-05 10:00:00] 策略 (SHFE.rb2505): [2025-02-05 10:00:00] 止损信号 - PnL per unit: -30.00, 目标: -10.00\n",
"[2025-02-05 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-05 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-05 10:00:00'), open=3326.0, high=3331.0, low=3311.0, close=3319.0, volume=254108, open_oi=1706195, close_oi=1712411, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-27 09:00:00'), open=3371.0, high=3388.0, low=3369.0, close=3378.0, volume=208662, open_oi=1674017, close_oi=1680559, symbol='SHFE.rb2505')\n",
"[2025-02-05 11:00:00] 策略 (SHFE.rb2505): [2025-02-05 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250205110000_157 @ 3351.80\n",
"[2025-02-05 11:00:00] 策略 (SHFE.rb2505): [2025-02-05 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250205110000_158 @ 3279.00\n",
"[2025-02-05 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250205110000_157': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250205110000_157', price_type='LIMIT', limit_price=3352, submitted_time=Timestamp('2025-02-05 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250205110000_158': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250205110000_158', price_type='LIMIT', limit_price=3279, submitted_time=Timestamp('2025-02-05 11:00:00'), offset='OPEN')}\n",
"[2025-02-05 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-05 11:00:00'), open=3319.0, high=3331.0, low=3316.0, close=3329.0, volume=86604, open_oi=1712411, close_oi=1703265, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-27 10:00:00'), open=3378.0, high=3383.0, low=3371.0, close=3372.0, volume=65086, open_oi=1680559, close_oi=1672691, symbol='SHFE.rb2505')\n",
"[2025-02-05 13:00:00] 策略 (SHFE.rb2505): [2025-02-05 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250205130000_159 @ 3347.90\n",
"[2025-02-05 13:00:00] 策略 (SHFE.rb2505): [2025-02-05 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250205130000_160 @ 3296.00\n",
"[2025-02-05 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250205130000_159': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250205130000_159', price_type='LIMIT', limit_price=3348, submitted_time=Timestamp('2025-02-05 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250205130000_160': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250205130000_160', price_type='LIMIT', limit_price=3296, submitted_time=Timestamp('2025-02-05 13:00:00'), offset='OPEN')}\n",
"[2025-02-05 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-05 13:00:00'), open=3326.0, high=3329.0, low=3313.0, close=3313.0, volume=74602, open_oi=1703265, close_oi=1708431, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-27 11:00:00'), open=3372.0, high=3378.0, low=3371.0, close=3373.0, volume=47714, open_oi=1672691, close_oi=1670080, symbol='SHFE.rb2505')\n",
"[2025-02-05 14:00:00] 策略 (SHFE.rb2505): [2025-02-05 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250205140000_161 @ 3329.40\n",
"[2025-02-05 14:00:00] 策略 (SHFE.rb2505): [2025-02-05 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250205140000_162 @ 3281.00\n",
"[2025-02-05 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250205140000_161': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250205140000_161', price_type='LIMIT', limit_price=3330, submitted_time=Timestamp('2025-02-05 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250205140000_162': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250205140000_162', price_type='LIMIT', limit_price=3281, submitted_time=Timestamp('2025-02-05 14:00:00'), offset='OPEN')}\n",
"[2025-02-05 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-05 14:00:00'), open=3313.0, high=3322.0, low=3307.0, close=3320.0, volume=182757, open_oi=1708431, close_oi=1711847, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-27 13:00:00'), open=3372.0, high=3373.0, low=3361.0, close=3367.0, volume=73406, open_oi=1670080, close_oi=1660793, symbol='SHFE.rb2505')\n",
"[2025-02-05 21:00:00] 策略 (SHFE.rb2505): [2025-02-05 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250205210000_163 @ 3343.90\n",
"[2025-02-05 21:00:00] 策略 (SHFE.rb2505): [2025-02-05 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250205210000_164 @ 3292.00\n",
"[2025-02-05 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250205210000_163': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250205210000_163', price_type='LIMIT', limit_price=3344, submitted_time=Timestamp('2025-02-05 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250205210000_164': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250205210000_164', price_type='LIMIT', limit_price=3292, submitted_time=Timestamp('2025-02-05 21:00:00'), offset='OPEN')}\n",
"[2025-02-05 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-05 21:00:00'), open=3322.0, high=3340.0, low=3320.0, close=3326.0, volume=250520, open_oi=1711847, close_oi=1718982, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-01-27 14:00:00'), open=3367.0, high=3382.0, low=3365.0, close=3382.0, volume=130992, open_oi=1660793, close_oi=1627909, symbol='SHFE.rb2505')\n",
"[2025-02-05 22:00:00] 策略 (SHFE.rb2505): [2025-02-05 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250205220000_165 @ 3356.40\n",
"[2025-02-05 22:00:00] 策略 (SHFE.rb2505): [2025-02-05 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250205220000_166 @ 3286.00\n",
"[2025-02-05 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-05 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250205220000_165': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250205220000_165', price_type='LIMIT', limit_price=3357, submitted_time=Timestamp('2025-02-05 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250205220000_166': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250205220000_166', price_type='LIMIT', limit_price=3286, submitted_time=Timestamp('2025-02-05 22:00:00'), offset='OPEN')}\n",
"[2025-02-06 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-05 22:00:00'), open=3326.0, high=3335.0, low=3324.0, close=3330.0, volume=106146, open_oi=1718982, close_oi=1710996, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 09:00:00'), open=3390.0, high=3398.0, low=3325.0, close=3326.0, volume=570959, open_oi=1627909, close_oi=1706195, symbol='SHFE.rb2505')\n",
"[2025-02-06 09:00:00] 策略 (SHFE.rb2505): [2025-02-06 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206090000_167 @ 3424.10\n",
"[2025-02-06 09:00:00] 策略 (SHFE.rb2505): [2025-02-06 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206090000_168 @ 3309.00\n",
"[2025-02-06 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206090000_167': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206090000_167', price_type='LIMIT', limit_price=3425, submitted_time=Timestamp('2025-02-06 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206090000_168': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206090000_168', price_type='LIMIT', limit_price=3309, submitted_time=Timestamp('2025-02-06 09:00:00'), offset='OPEN')}\n",
"[2025-02-06 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 09:00:00'), open=3331.0, high=3333.0, low=3317.0, close=3329.0, volume=176185, open_oi=1710996, close_oi=1738894, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 10:00:00'), open=3326.0, high=3331.0, low=3311.0, close=3319.0, volume=254108, open_oi=1706195, close_oi=1712411, symbol='SHFE.rb2505')\n",
"[2025-02-06 10:00:00] 策略 (SHFE.rb2505): [2025-02-06 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206100000_169 @ 3361.00\n",
"[2025-02-06 10:00:00] 策略 (SHFE.rb2505): [2025-02-06 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206100000_170 @ 3297.00\n",
"[2025-02-06 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206100000_169': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206100000_169', price_type='LIMIT', limit_price=3361, submitted_time=Timestamp('2025-02-06 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206100000_170': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206100000_170', price_type='LIMIT', limit_price=3297, submitted_time=Timestamp('2025-02-06 10:00:00'), offset='OPEN')}\n",
"[2025-02-06 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 10:00:00'), open=3329.0, high=3353.0, low=3324.0, close=3349.0, volume=258679, open_oi=1738894, close_oi=1741536, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 11:00:00'), open=3319.0, high=3331.0, low=3316.0, close=3329.0, volume=86604, open_oi=1712411, close_oi=1703265, symbol='SHFE.rb2505')\n",
"[2025-02-06 11:00:00] 策略 (SHFE.rb2505): [2025-02-06 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206110000_171 @ 3381.50\n",
"[2025-02-06 11:00:00] 策略 (SHFE.rb2505): [2025-02-06 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206110000_172 @ 3291.00\n",
"[2025-02-06 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206110000_171': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206110000_171', price_type='LIMIT', limit_price=3382, submitted_time=Timestamp('2025-02-06 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206110000_172': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206110000_172', price_type='LIMIT', limit_price=3291, submitted_time=Timestamp('2025-02-06 11:00:00'), offset='OPEN')}\n",
"[2025-02-06 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 11:00:00'), open=3349.0, high=3352.0, low=3341.0, close=3341.0, volume=88862, open_oi=1741536, close_oi=1738436, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 13:00:00'), open=3326.0, high=3329.0, low=3313.0, close=3313.0, volume=74602, open_oi=1703265, close_oi=1708431, symbol='SHFE.rb2505')\n",
"[2025-02-06 13:00:00] 策略 (SHFE.rb2505): [2025-02-06 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206130000_173 @ 3367.70\n",
"[2025-02-06 13:00:00] 策略 (SHFE.rb2505): [2025-02-06 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206130000_174 @ 3321.00\n",
"[2025-02-06 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206130000_173': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206130000_173', price_type='LIMIT', limit_price=3368, submitted_time=Timestamp('2025-02-06 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206130000_174': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206130000_174', price_type='LIMIT', limit_price=3321, submitted_time=Timestamp('2025-02-06 13:00:00'), offset='OPEN')}\n",
"[2025-02-06 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 13:00:00'), open=3343.0, high=3349.0, low=3340.0, close=3349.0, volume=67943, open_oi=1738436, close_oi=1748958, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 14:00:00'), open=3313.0, high=3322.0, low=3307.0, close=3320.0, volume=182757, open_oi=1708431, close_oi=1711847, symbol='SHFE.rb2505')\n",
"[2025-02-06 14:00:00] 策略 (SHFE.rb2505): [2025-02-06 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206140000_175 @ 3371.50\n",
"[2025-02-06 14:00:00] 策略 (SHFE.rb2505): [2025-02-06 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206140000_176 @ 3331.00\n",
"[2025-02-06 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206140000_175': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206140000_175', price_type='LIMIT', limit_price=3372, submitted_time=Timestamp('2025-02-06 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206140000_176': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206140000_176', price_type='LIMIT', limit_price=3331, submitted_time=Timestamp('2025-02-06 14:00:00'), offset='OPEN')}\n",
"[2025-02-06 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 14:00:00'), open=3349.0, high=3362.0, low=3347.0, close=3357.0, volume=249857, open_oi=1748958, close_oi=1773454, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 21:00:00'), open=3322.0, high=3340.0, low=3320.0, close=3326.0, volume=250520, open_oi=1711847, close_oi=1718982, symbol='SHFE.rb2505')\n",
"[2025-02-06 21:00:00] 策略 (SHFE.rb2505): [2025-02-06 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206210000_177 @ 3386.50\n",
"[2025-02-06 21:00:00] 策略 (SHFE.rb2505): [2025-02-06 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206210000_178 @ 3325.00\n",
"[2025-02-06 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206210000_177': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206210000_177', price_type='LIMIT', limit_price=3387, submitted_time=Timestamp('2025-02-06 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206210000_178': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206210000_178', price_type='LIMIT', limit_price=3325, submitted_time=Timestamp('2025-02-06 21:00:00'), offset='OPEN')}\n",
"[2025-02-06 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 21:00:00'), open=3355.0, high=3371.0, low=3353.0, close=3369.0, volume=220891, open_oi=1773454, close_oi=1803287, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-05 22:00:00'), open=3326.0, high=3335.0, low=3324.0, close=3330.0, volume=106146, open_oi=1718982, close_oi=1710996, symbol='SHFE.rb2505')\n",
"[2025-02-06 22:00:00] 策略 (SHFE.rb2505): [2025-02-06 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250206220000_179 @ 3391.20\n",
"[2025-02-06 22:00:00] 策略 (SHFE.rb2505): [2025-02-06 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250206220000_180 @ 3333.00\n",
"[2025-02-06 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-06 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250206220000_179': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250206220000_179', price_type='LIMIT', limit_price=3392, submitted_time=Timestamp('2025-02-06 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250206220000_180': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250206220000_180', price_type='LIMIT', limit_price=3333, submitted_time=Timestamp('2025-02-06 22:00:00'), offset='OPEN')}\n",
"[2025-02-07 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-06 22:00:00'), open=3369.0, high=3370.0, low=3356.0, close=3357.0, volume=101380, open_oi=1803287, close_oi=1791233, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 09:00:00'), open=3331.0, high=3333.0, low=3317.0, close=3329.0, volume=176185, open_oi=1710996, close_oi=1738894, symbol='SHFE.rb2505')\n",
"[2025-02-07 09:00:00] 策略 (SHFE.rb2505): [2025-02-07 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207090000_181 @ 3382.20\n",
"[2025-02-07 09:00:00] 策略 (SHFE.rb2505): [2025-02-07 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207090000_182 @ 3328.00\n",
"[2025-02-07 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207090000_181': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207090000_181', price_type='LIMIT', limit_price=3383, submitted_time=Timestamp('2025-02-07 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207090000_182': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207090000_182', price_type='LIMIT', limit_price=3328, submitted_time=Timestamp('2025-02-07 09:00:00'), offset='OPEN')}\n",
"[2025-02-07 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 09:00:00'), open=3356.0, high=3356.0, low=3345.0, close=3352.0, volume=181604, open_oi=1791233, close_oi=1795435, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 10:00:00'), open=3329.0, high=3353.0, low=3324.0, close=3349.0, volume=258679, open_oi=1738894, close_oi=1741536, symbol='SHFE.rb2505')\n",
"[2025-02-07 10:00:00] 策略 (SHFE.rb2505): [2025-02-07 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207100000_183 @ 3392.30\n",
"[2025-02-07 10:00:00] 策略 (SHFE.rb2505): [2025-02-07 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207100000_184 @ 3330.00\n",
"[2025-02-07 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207100000_183': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207100000_183', price_type='LIMIT', limit_price=3393, submitted_time=Timestamp('2025-02-07 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207100000_184': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207100000_184', price_type='LIMIT', limit_price=3330, submitted_time=Timestamp('2025-02-07 10:00:00'), offset='OPEN')}\n",
"[2025-02-07 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 10:00:00'), open=3352.0, high=3375.0, low=3351.0, close=3367.0, volume=238717, open_oi=1795435, close_oi=1814794, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 11:00:00'), open=3349.0, high=3352.0, low=3341.0, close=3341.0, volume=88862, open_oi=1741536, close_oi=1738436, symbol='SHFE.rb2505')\n",
"[2025-02-07 11:00:00] 策略 (SHFE.rb2505): [2025-02-07 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207110000_185 @ 3392.20\n",
"[2025-02-07 11:00:00] 策略 (SHFE.rb2505): [2025-02-07 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207110000_186 @ 3319.00\n",
"[2025-02-07 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207110000_185': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207110000_185', price_type='LIMIT', limit_price=3393, submitted_time=Timestamp('2025-02-07 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207110000_186': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207110000_186', price_type='LIMIT', limit_price=3319, submitted_time=Timestamp('2025-02-07 11:00:00'), offset='OPEN')}\n",
"[2025-02-07 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 11:00:00'), open=3367.0, high=3375.0, low=3367.0, close=3369.0, volume=113086, open_oi=1814794, close_oi=1827758, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 13:00:00'), open=3343.0, high=3349.0, low=3340.0, close=3349.0, volume=67943, open_oi=1738436, close_oi=1748958, symbol='SHFE.rb2505')\n",
"[2025-02-07 13:00:00] 策略 (SHFE.rb2505): [2025-02-07 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207130000_187 @ 3384.80\n",
"[2025-02-07 13:00:00] 策略 (SHFE.rb2505): [2025-02-07 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207130000_188 @ 3354.00\n",
"[2025-02-07 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207130000_187': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207130000_187', price_type='LIMIT', limit_price=3385, submitted_time=Timestamp('2025-02-07 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207130000_188': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207130000_188', price_type='LIMIT', limit_price=3354, submitted_time=Timestamp('2025-02-07 13:00:00'), offset='OPEN')}\n",
"[2025-02-07 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 13:00:00'), open=3370.0, high=3377.0, low=3357.0, close=3358.0, volume=175980, open_oi=1827758, close_oi=1828872, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 14:00:00'), open=3349.0, high=3362.0, low=3347.0, close=3357.0, volume=249857, open_oi=1748958, close_oi=1773454, symbol='SHFE.rb2505')\n",
"[2025-02-07 14:00:00] 策略 (SHFE.rb2505): [2025-02-07 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207140000_189 @ 3386.00\n",
"[2025-02-07 14:00:00] 策略 (SHFE.rb2505): [2025-02-07 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207140000_190 @ 3318.00\n",
"[2025-02-07 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207140000_189': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207140000_189', price_type='LIMIT', limit_price=3386, submitted_time=Timestamp('2025-02-07 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207140000_190': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207140000_190', price_type='LIMIT', limit_price=3318, submitted_time=Timestamp('2025-02-07 14:00:00'), offset='OPEN')}\n",
"[2025-02-07 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 14:00:00'), open=3358.0, high=3360.0, low=3347.0, close=3352.0, volume=222434, open_oi=1828872, close_oi=1828012, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 21:00:00'), open=3355.0, high=3371.0, low=3353.0, close=3369.0, volume=220891, open_oi=1773454, close_oi=1803287, symbol='SHFE.rb2505')\n",
"[2025-02-07 21:00:00] 策略 (SHFE.rb2505): [2025-02-07 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207210000_191 @ 3381.10\n",
"[2025-02-07 21:00:00] 策略 (SHFE.rb2505): [2025-02-07 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207210000_192 @ 3327.00\n",
"[2025-02-07 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207210000_191': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207210000_191', price_type='LIMIT', limit_price=3382, submitted_time=Timestamp('2025-02-07 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207210000_192': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207210000_192', price_type='LIMIT', limit_price=3327, submitted_time=Timestamp('2025-02-07 21:00:00'), offset='OPEN')}\n",
"[2025-02-07 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 21:00:00'), open=3353.0, high=3374.0, low=3351.0, close=3368.0, volume=253256, open_oi=1828012, close_oi=1861650, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-06 22:00:00'), open=3369.0, high=3370.0, low=3356.0, close=3357.0, volume=101380, open_oi=1803287, close_oi=1791233, symbol='SHFE.rb2505')\n",
"[2025-02-07 22:00:00] 策略 (SHFE.rb2505): [2025-02-07 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250207220000_193 @ 3396.30\n",
"[2025-02-07 22:00:00] 策略 (SHFE.rb2505): [2025-02-07 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250207220000_194 @ 3322.00\n",
"[2025-02-07 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-07 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250207220000_193': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250207220000_193', price_type='LIMIT', limit_price=3397, submitted_time=Timestamp('2025-02-07 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250207220000_194': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250207220000_194', price_type='LIMIT', limit_price=3322, submitted_time=Timestamp('2025-02-07 22:00:00'), offset='OPEN')}\n",
"[2025-02-10 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-07 22:00:00'), open=3368.0, high=3372.0, low=3365.0, close=3366.0, volume=95645, open_oi=1861650, close_oi=1848313, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-07 09:00:00'), open=3356.0, high=3356.0, low=3345.0, close=3352.0, volume=181604, open_oi=1791233, close_oi=1795435, symbol='SHFE.rb2505')\n",
"[2025-02-10 09:00:00] 策略 (SHFE.rb2505): [2025-02-10 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250210090000_195 @ 3376.70\n",
"[2025-02-10 09:00:00] 策略 (SHFE.rb2505): [2025-02-10 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250210090000_196 @ 3346.00\n",
"[2025-02-10 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250210090000_195': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250210090000_195', price_type='LIMIT', limit_price=3377, submitted_time=Timestamp('2025-02-10 09:00:00'), offset='OPEN')}\n",
"[2025-02-10 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-10 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-10 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-10 11:00:00] 策略 (SHFE.rb2505): [2025-02-10 11:00:00] 止损信号 - PnL per unit: -27.00, 目标: -10.00\n",
"[2025-02-10 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-10 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-10 11:00:00'), open=3319.0, high=3326.0, low=3313.0, close=3318.0, volume=153024, open_oi=1874748, close_oi=1882858, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-07 13:00:00'), open=3370.0, high=3377.0, low=3357.0, close=3358.0, volume=175980, open_oi=1827758, close_oi=1828872, symbol='SHFE.rb2505')\n",
"[2025-02-10 13:00:00] 策略 (SHFE.rb2505): [2025-02-10 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250210130000_198 @ 3350.50\n",
"[2025-02-10 13:00:00] 策略 (SHFE.rb2505): [2025-02-10 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250210130000_199 @ 3294.00\n",
"[2025-02-10 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250210130000_198': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250210130000_198', price_type='LIMIT', limit_price=3351, submitted_time=Timestamp('2025-02-10 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250210130000_199': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250210130000_199', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-02-10 13:00:00'), offset='OPEN')}\n",
"[2025-02-10 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-10 13:00:00'), open=3320.0, high=3323.0, low=3314.0, close=3316.0, volume=97230, open_oi=1882858, close_oi=1897168, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-07 14:00:00'), open=3358.0, high=3360.0, low=3347.0, close=3352.0, volume=222434, open_oi=1828872, close_oi=1828012, symbol='SHFE.rb2505')\n",
"[2025-02-10 14:00:00] 策略 (SHFE.rb2505): [2025-02-10 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250210140000_200 @ 3336.10\n",
"[2025-02-10 14:00:00] 策略 (SHFE.rb2505): [2025-02-10 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250210140000_201 @ 3298.00\n",
"[2025-02-10 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250210140000_200': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250210140000_200', price_type='LIMIT', limit_price=3337, submitted_time=Timestamp('2025-02-10 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250210140000_201': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250210140000_201', price_type='LIMIT', limit_price=3298, submitted_time=Timestamp('2025-02-10 14:00:00'), offset='OPEN')}\n",
"[2025-02-10 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-10 14:00:00'), open=3316.0, high=3337.0, low=3312.0, close=3331.0, volume=280367, open_oi=1897168, close_oi=1856963, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-07 21:00:00'), open=3353.0, high=3374.0, low=3351.0, close=3368.0, volume=253256, open_oi=1828012, close_oi=1861650, symbol='SHFE.rb2505')\n",
"[2025-02-10 21:00:00] 策略 (SHFE.rb2505): [2025-02-10 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250210210000_202 @ 3378.10\n",
"[2025-02-10 21:00:00] 策略 (SHFE.rb2505): [2025-02-10 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250210210000_203 @ 3288.00\n",
"[2025-02-10 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250210210000_202': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250210210000_202', price_type='LIMIT', limit_price=3379, submitted_time=Timestamp('2025-02-10 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250210210000_203': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250210210000_203', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-02-10 21:00:00'), offset='OPEN')}\n",
"[2025-02-10 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-10 21:00:00'), open=3338.0, high=3339.0, low=3322.0, close=3327.0, volume=289779, open_oi=1856963, close_oi=1843396, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-07 22:00:00'), open=3368.0, high=3372.0, low=3365.0, close=3366.0, volume=95645, open_oi=1861650, close_oi=1848313, symbol='SHFE.rb2505')\n",
"[2025-02-10 22:00:00] 策略 (SHFE.rb2505): [2025-02-10 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250210220000_204 @ 3343.90\n",
"[2025-02-10 22:00:00] 策略 (SHFE.rb2505): [2025-02-10 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250210220000_205 @ 3293.00\n",
"[2025-02-10 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-10 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250210220000_204': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250210220000_204', price_type='LIMIT', limit_price=3344, submitted_time=Timestamp('2025-02-10 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250210220000_205': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250210220000_205', price_type='LIMIT', limit_price=3293, submitted_time=Timestamp('2025-02-10 22:00:00'), offset='OPEN')}\n",
"[2025-02-11 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-10 22:00:00'), open=3327.0, high=3328.0, low=3324.0, close=3326.0, volume=66936, open_oi=1843396, close_oi=1836546, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-10 09:00:00'), open=3360.0, high=3370.0, low=3338.0, close=3344.0, volume=494274, open_oi=1848313, close_oi=1863261, symbol='SHFE.rb2505')\n",
"[2025-02-11 09:00:00] 策略 (SHFE.rb2505): [2025-02-11 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250211090000_206 @ 3363.40\n",
"[2025-02-11 09:00:00] 策略 (SHFE.rb2505): [2025-02-11 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250211090000_207 @ 3315.00\n",
"[2025-02-11 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250211090000_206': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250211090000_206', price_type='LIMIT', limit_price=3364, submitted_time=Timestamp('2025-02-11 09:00:00'), offset='OPEN')}\n",
"[2025-02-11 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-11 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-11 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-11 11:00:00] 策略 (SHFE.rb2505): [2025-02-11 11:00:00] 止损信号 - PnL per unit: -30.00, 目标: -10.00\n",
"[2025-02-11 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-11 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-11 11:00:00'), open=3285.0, high=3291.0, low=3280.0, close=3290.0, volume=197743, open_oi=1893535, close_oi=1915770, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-10 13:00:00'), open=3320.0, high=3323.0, low=3314.0, close=3316.0, volume=97230, open_oi=1882858, close_oi=1897168, symbol='SHFE.rb2505')\n",
"[2025-02-11 13:00:00] 策略 (SHFE.rb2505): [2025-02-11 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250211130000_209 @ 3307.30\n",
"[2025-02-11 13:00:00] 策略 (SHFE.rb2505): [2025-02-11 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250211130000_210 @ 3269.00\n",
"[2025-02-11 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250211130000_209': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250211130000_209', price_type='LIMIT', limit_price=3308, submitted_time=Timestamp('2025-02-11 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250211130000_210': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250211130000_210', price_type='LIMIT', limit_price=3269, submitted_time=Timestamp('2025-02-11 13:00:00'), offset='OPEN')}\n",
"[2025-02-11 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-11 13:00:00'), open=3291.0, high=3293.0, low=3281.0, close=3284.0, volume=109798, open_oi=1915770, close_oi=1939899, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-10 14:00:00'), open=3316.0, high=3337.0, low=3312.0, close=3331.0, volume=280367, open_oi=1897168, close_oi=1856963, symbol='SHFE.rb2505')\n",
"[2025-02-11 14:00:00] 策略 (SHFE.rb2505): [2025-02-11 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250211140000_211 @ 3320.00\n",
"[2025-02-11 14:00:00] 策略 (SHFE.rb2505): [2025-02-11 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250211140000_212 @ 3260.00\n",
"[2025-02-11 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250211140000_211': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250211140000_211', price_type='LIMIT', limit_price=3320, submitted_time=Timestamp('2025-02-11 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250211140000_212': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250211140000_212', price_type='LIMIT', limit_price=3260, submitted_time=Timestamp('2025-02-11 14:00:00'), offset='OPEN')}\n",
"[2025-02-11 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-11 14:00:00'), open=3284.0, high=3284.0, low=3269.0, close=3275.0, volume=295364, open_oi=1939899, close_oi=1947395, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-10 21:00:00'), open=3338.0, high=3339.0, low=3322.0, close=3327.0, volume=289779, open_oi=1856963, close_oi=1843396, symbol='SHFE.rb2505')\n",
"[2025-02-11 21:00:00] 策略 (SHFE.rb2505): [2025-02-11 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250211210000_213 @ 3302.90\n",
"[2025-02-11 21:00:00] 策略 (SHFE.rb2505): [2025-02-11 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250211210000_214 @ 3245.00\n",
"[2025-02-11 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250211210000_213': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250211210000_213', price_type='LIMIT', limit_price=3303, submitted_time=Timestamp('2025-02-11 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250211210000_214': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250211210000_214', price_type='LIMIT', limit_price=3245, submitted_time=Timestamp('2025-02-11 21:00:00'), offset='OPEN')}\n",
"[2025-02-11 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-11 21:00:00'), open=3275.0, high=3279.0, low=3266.0, close=3271.0, volume=237262, open_oi=1947395, close_oi=1940467, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-10 22:00:00'), open=3327.0, high=3328.0, low=3324.0, close=3326.0, volume=66936, open_oi=1843396, close_oi=1836546, symbol='SHFE.rb2505')\n",
"[2025-02-11 22:00:00] 策略 (SHFE.rb2505): [2025-02-11 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250211220000_215 @ 3282.30\n",
"[2025-02-11 22:00:00] 策略 (SHFE.rb2505): [2025-02-11 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250211220000_216 @ 3245.00\n",
"[2025-02-11 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-11 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250211220000_215': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250211220000_215', price_type='LIMIT', limit_price=3283, submitted_time=Timestamp('2025-02-11 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250211220000_216': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250211220000_216', price_type='LIMIT', limit_price=3245, submitted_time=Timestamp('2025-02-11 22:00:00'), offset='OPEN')}\n",
"[2025-02-12 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-11 22:00:00'), open=3271.0, high=3277.0, low=3270.0, close=3276.0, volume=102571, open_oi=1940467, close_oi=1933177, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-11 09:00:00'), open=3323.0, high=3324.0, low=3308.0, close=3322.0, volume=338083, open_oi=1836546, close_oi=1853881, symbol='SHFE.rb2505')\n",
"[2025-02-12 09:00:00] 策略 (SHFE.rb2505): [2025-02-12 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250212090000_217 @ 3299.70\n",
"[2025-02-12 09:00:00] 策略 (SHFE.rb2505): [2025-02-12 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250212090000_218 @ 3263.00\n",
"[2025-02-12 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250212090000_217': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250212090000_217', price_type='LIMIT', limit_price=3300, submitted_time=Timestamp('2025-02-12 09:00:00'), offset='OPEN')}\n",
"[2025-02-12 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-12 10:00:00] 策略 (SHFE.rb2505): [2025-02-12 10:00:00] 止盈信号 - PnL per unit: 24.00, 目标: 10.00\n",
"[2025-02-12 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-12 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-12 10:00:00'), open=3287.0, high=3297.0, low=3283.0, close=3289.0, volume=249123, open_oi=1936765, close_oi=1916297, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-11 11:00:00'), open=3285.0, high=3291.0, low=3280.0, close=3290.0, volume=197743, open_oi=1893535, close_oi=1915770, symbol='SHFE.rb2505')\n",
"[2025-02-12 11:00:00] 策略 (SHFE.rb2505): [2025-02-12 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250212110000_220 @ 3309.20\n",
"[2025-02-12 11:00:00] 策略 (SHFE.rb2505): [2025-02-12 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250212110000_221 @ 3261.00\n",
"[2025-02-12 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250212110000_220': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250212110000_220', price_type='LIMIT', limit_price=3310, submitted_time=Timestamp('2025-02-12 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250212110000_221': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250212110000_221', price_type='LIMIT', limit_price=3261, submitted_time=Timestamp('2025-02-12 11:00:00'), offset='OPEN')}\n",
"[2025-02-12 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-12 11:00:00'), open=3289.0, high=3293.0, low=3280.0, close=3281.0, volume=80428, open_oi=1916297, close_oi=1909464, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-11 13:00:00'), open=3291.0, high=3293.0, low=3281.0, close=3284.0, volume=109798, open_oi=1915770, close_oi=1939899, symbol='SHFE.rb2505')\n",
"[2025-02-12 13:00:00] 策略 (SHFE.rb2505): [2025-02-12 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250212130000_222 @ 3303.90\n",
"[2025-02-12 13:00:00] 策略 (SHFE.rb2505): [2025-02-12 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250212130000_223 @ 3257.00\n",
"[2025-02-12 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250212130000_222': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250212130000_222', price_type='LIMIT', limit_price=3304, submitted_time=Timestamp('2025-02-12 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250212130000_223': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250212130000_223', price_type='LIMIT', limit_price=3257, submitted_time=Timestamp('2025-02-12 13:00:00'), offset='OPEN')}\n",
"[2025-02-12 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-12 13:00:00'), open=3283.0, high=3290.0, low=3282.0, close=3289.0, volume=71608, open_oi=1909464, close_oi=1905743, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-11 14:00:00'), open=3284.0, high=3284.0, low=3269.0, close=3275.0, volume=295364, open_oi=1939899, close_oi=1947395, symbol='SHFE.rb2505')\n",
"[2025-02-12 14:00:00] 策略 (SHFE.rb2505): [2025-02-12 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250212140000_224 @ 3311.00\n",
"[2025-02-12 14:00:00] 策略 (SHFE.rb2505): [2025-02-12 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250212140000_225 @ 3273.00\n",
"[2025-02-12 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250212140000_224': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250212140000_224', price_type='LIMIT', limit_price=3311, submitted_time=Timestamp('2025-02-12 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250212140000_225': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250212140000_225', price_type='LIMIT', limit_price=3273, submitted_time=Timestamp('2025-02-12 14:00:00'), offset='OPEN')}\n",
"[2025-02-12 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-12 14:00:00'), open=3289.0, high=3296.0, low=3284.0, close=3292.0, volume=192385, open_oi=1905743, close_oi=1895628, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-11 21:00:00'), open=3275.0, high=3279.0, low=3266.0, close=3271.0, volume=237262, open_oi=1947395, close_oi=1940467, symbol='SHFE.rb2505')\n",
"[2025-02-12 21:00:00] 策略 (SHFE.rb2505): [2025-02-12 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250212210000_226 @ 3313.60\n",
"[2025-02-12 21:00:00] 策略 (SHFE.rb2505): [2025-02-12 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250212210000_227 @ 3268.00\n",
"[2025-02-12 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250212210000_226': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250212210000_226', price_type='LIMIT', limit_price=3314, submitted_time=Timestamp('2025-02-12 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250212210000_227': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250212210000_227', price_type='LIMIT', limit_price=3268, submitted_time=Timestamp('2025-02-12 21:00:00'), offset='OPEN')}\n",
"[2025-02-12 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-12 21:00:00'), open=3292.0, high=3299.0, low=3286.0, close=3287.0, volume=174678, open_oi=1895628, close_oi=1897550, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-11 22:00:00'), open=3271.0, high=3277.0, low=3270.0, close=3276.0, volume=102571, open_oi=1940467, close_oi=1933177, symbol='SHFE.rb2505')\n",
"[2025-02-12 22:00:00] 策略 (SHFE.rb2505): [2025-02-12 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250212220000_228 @ 3301.90\n",
"[2025-02-12 22:00:00] 策略 (SHFE.rb2505): [2025-02-12 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250212220000_229 @ 3261.00\n",
"[2025-02-12 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-12 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250212220000_228': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250212220000_228', price_type='LIMIT', limit_price=3302, submitted_time=Timestamp('2025-02-12 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250212220000_229': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250212220000_229', price_type='LIMIT', limit_price=3261, submitted_time=Timestamp('2025-02-12 22:00:00'), offset='OPEN')}\n",
"[2025-02-13 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-12 22:00:00'), open=3287.0, high=3293.0, low=3283.0, close=3286.0, volume=109525, open_oi=1897550, close_oi=1890238, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 09:00:00'), open=3277.0, high=3288.0, low=3261.0, close=3287.0, volume=340973, open_oi=1933177, close_oi=1936765, symbol='SHFE.rb2505')\n",
"[2025-02-13 09:00:00] 策略 (SHFE.rb2505): [2025-02-13 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213090000_230 @ 3327.40\n",
"[2025-02-13 09:00:00] 策略 (SHFE.rb2505): [2025-02-13 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213090000_231 @ 3270.00\n",
"[2025-02-13 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213090000_230': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213090000_230', price_type='LIMIT', limit_price=3328, submitted_time=Timestamp('2025-02-13 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213090000_231': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213090000_231', price_type='LIMIT', limit_price=3270, submitted_time=Timestamp('2025-02-13 09:00:00'), offset='OPEN')}\n",
"[2025-02-13 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 09:00:00'), open=3290.0, high=3295.0, low=3272.0, close=3276.0, volume=247305, open_oi=1890238, close_oi=1901474, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 10:00:00'), open=3287.0, high=3297.0, low=3283.0, close=3289.0, volume=249123, open_oi=1936765, close_oi=1916297, symbol='SHFE.rb2505')\n",
"[2025-02-13 10:00:00] 策略 (SHFE.rb2505): [2025-02-13 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213100000_232 @ 3304.30\n",
"[2025-02-13 10:00:00] 策略 (SHFE.rb2505): [2025-02-13 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213100000_233 @ 3230.00\n",
"[2025-02-13 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213100000_232': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213100000_232', price_type='LIMIT', limit_price=3305, submitted_time=Timestamp('2025-02-13 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213100000_233': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213100000_233', price_type='LIMIT', limit_price=3230, submitted_time=Timestamp('2025-02-13 10:00:00'), offset='OPEN')}\n",
"[2025-02-13 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 10:00:00'), open=3276.0, high=3285.0, low=3266.0, close=3282.0, volume=196388, open_oi=1901474, close_oi=1907191, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 11:00:00'), open=3289.0, high=3293.0, low=3280.0, close=3281.0, volume=80428, open_oi=1916297, close_oi=1909464, symbol='SHFE.rb2505')\n",
"[2025-02-13 11:00:00] 策略 (SHFE.rb2505): [2025-02-13 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213110000_234 @ 3307.10\n",
"[2025-02-13 11:00:00] 策略 (SHFE.rb2505): [2025-02-13 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213110000_235 @ 3244.00\n",
"[2025-02-13 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213110000_234': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213110000_234', price_type='LIMIT', limit_price=3308, submitted_time=Timestamp('2025-02-13 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213110000_235': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213110000_235', price_type='LIMIT', limit_price=3244, submitted_time=Timestamp('2025-02-13 11:00:00'), offset='OPEN')}\n",
"[2025-02-13 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 11:00:00'), open=3282.0, high=3288.0, low=3274.0, close=3278.0, volume=114473, open_oi=1907191, close_oi=1899045, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 13:00:00'), open=3283.0, high=3290.0, low=3282.0, close=3289.0, volume=71608, open_oi=1909464, close_oi=1905743, symbol='SHFE.rb2505')\n",
"[2025-02-13 13:00:00] 策略 (SHFE.rb2505): [2025-02-13 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213130000_236 @ 3294.60\n",
"[2025-02-13 13:00:00] 策略 (SHFE.rb2505): [2025-02-13 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213130000_237 @ 3250.00\n",
"[2025-02-13 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213130000_236': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213130000_236', price_type='LIMIT', limit_price=3295, submitted_time=Timestamp('2025-02-13 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213130000_237': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213130000_237', price_type='LIMIT', limit_price=3250, submitted_time=Timestamp('2025-02-13 13:00:00'), offset='OPEN')}\n",
"[2025-02-13 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 13:00:00'), open=3278.0, high=3284.0, low=3270.0, close=3272.0, volume=116477, open_oi=1899045, close_oi=1901038, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 14:00:00'), open=3289.0, high=3296.0, low=3284.0, close=3292.0, volume=192385, open_oi=1905743, close_oi=1895628, symbol='SHFE.rb2505')\n",
"[2025-02-13 14:00:00] 策略 (SHFE.rb2505): [2025-02-13 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213140000_238 @ 3293.40\n",
"[2025-02-13 14:00:00] 策略 (SHFE.rb2505): [2025-02-13 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213140000_239 @ 3244.00\n",
"[2025-02-13 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213140000_238': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213140000_238', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-02-13 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213140000_239': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213140000_239', price_type='LIMIT', limit_price=3244, submitted_time=Timestamp('2025-02-13 14:00:00'), offset='OPEN')}\n",
"[2025-02-13 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 14:00:00'), open=3272.0, high=3277.0, low=3255.0, close=3265.0, volume=339011, open_oi=1901038, close_oi=1889839, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 21:00:00'), open=3292.0, high=3299.0, low=3286.0, close=3287.0, volume=174678, open_oi=1895628, close_oi=1897550, symbol='SHFE.rb2505')\n",
"[2025-02-13 21:00:00] 策略 (SHFE.rb2505): [2025-02-13 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213210000_240 @ 3287.60\n",
"[2025-02-13 21:00:00] 策略 (SHFE.rb2505): [2025-02-13 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213210000_241 @ 3217.00\n",
"[2025-02-13 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213210000_240': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213210000_240', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-02-13 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213210000_241': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213210000_241', price_type='LIMIT', limit_price=3217, submitted_time=Timestamp('2025-02-13 21:00:00'), offset='OPEN')}\n",
"[2025-02-13 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 21:00:00'), open=3261.0, high=3268.0, low=3256.0, close=3257.0, volume=189701, open_oi=1889839, close_oi=1897117, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-12 22:00:00'), open=3287.0, high=3293.0, low=3283.0, close=3286.0, volume=109525, open_oi=1897550, close_oi=1890238, symbol='SHFE.rb2505')\n",
"[2025-02-13 22:00:00] 策略 (SHFE.rb2505): [2025-02-13 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250213220000_242 @ 3275.00\n",
"[2025-02-13 22:00:00] 策略 (SHFE.rb2505): [2025-02-13 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250213220000_243 @ 3233.00\n",
"[2025-02-13 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-13 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250213220000_242': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250213220000_242', price_type='LIMIT', limit_price=3275, submitted_time=Timestamp('2025-02-13 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250213220000_243': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250213220000_243', price_type='LIMIT', limit_price=3233, submitted_time=Timestamp('2025-02-13 22:00:00'), offset='OPEN')}\n",
"[2025-02-14 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-13 22:00:00'), open=3257.0, high=3260.0, low=3252.0, close=3258.0, volume=110530, open_oi=1897117, close_oi=1895967, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 09:00:00'), open=3290.0, high=3295.0, low=3272.0, close=3276.0, volume=247305, open_oi=1890238, close_oi=1901474, symbol='SHFE.rb2505')\n",
"[2025-02-14 09:00:00] 策略 (SHFE.rb2505): [2025-02-14 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214090000_244 @ 3292.60\n",
"[2025-02-14 09:00:00] 策略 (SHFE.rb2505): [2025-02-14 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214090000_245 @ 3245.00\n",
"[2025-02-14 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214090000_244': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214090000_244', price_type='LIMIT', limit_price=3293, submitted_time=Timestamp('2025-02-14 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214090000_245': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214090000_245', price_type='LIMIT', limit_price=3245, submitted_time=Timestamp('2025-02-14 09:00:00'), offset='OPEN')}\n",
"[2025-02-14 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 09:00:00'), open=3261.0, high=3284.0, low=3261.0, close=3283.0, volume=265168, open_oi=1895967, close_oi=1893971, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 10:00:00'), open=3276.0, high=3285.0, low=3266.0, close=3282.0, volume=196388, open_oi=1901474, close_oi=1907191, symbol='SHFE.rb2505')\n",
"[2025-02-14 10:00:00] 策略 (SHFE.rb2505): [2025-02-14 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214100000_246 @ 3317.30\n",
"[2025-02-14 10:00:00] 策略 (SHFE.rb2505): [2025-02-14 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214100000_247 @ 3237.00\n",
"[2025-02-14 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214100000_246': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214100000_246', price_type='LIMIT', limit_price=3318, submitted_time=Timestamp('2025-02-14 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214100000_247': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214100000_247', price_type='LIMIT', limit_price=3237, submitted_time=Timestamp('2025-02-14 10:00:00'), offset='OPEN')}\n",
"[2025-02-14 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 10:00:00'), open=3283.0, high=3285.0, low=3276.0, close=3279.0, volume=107527, open_oi=1893971, close_oi=1893561, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 11:00:00'), open=3282.0, high=3288.0, low=3274.0, close=3278.0, volume=114473, open_oi=1907191, close_oi=1899045, symbol='SHFE.rb2505')\n",
"[2025-02-14 11:00:00] 策略 (SHFE.rb2505): [2025-02-14 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214110000_248 @ 3300.30\n",
"[2025-02-14 11:00:00] 策略 (SHFE.rb2505): [2025-02-14 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214110000_249 @ 3261.00\n",
"[2025-02-14 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214110000_248': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214110000_248', price_type='LIMIT', limit_price=3301, submitted_time=Timestamp('2025-02-14 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214110000_249': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214110000_249', price_type='LIMIT', limit_price=3261, submitted_time=Timestamp('2025-02-14 11:00:00'), offset='OPEN')}\n",
"[2025-02-14 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 11:00:00'), open=3279.0, high=3288.0, low=3277.0, close=3277.0, volume=87796, open_oi=1893561, close_oi=1883180, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 13:00:00'), open=3278.0, high=3284.0, low=3270.0, close=3272.0, volume=116477, open_oi=1899045, close_oi=1901038, symbol='SHFE.rb2505')\n",
"[2025-02-14 13:00:00] 策略 (SHFE.rb2505): [2025-02-14 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214130000_250 @ 3300.30\n",
"[2025-02-14 13:00:00] 策略 (SHFE.rb2505): [2025-02-14 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214130000_251 @ 3256.00\n",
"[2025-02-14 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214130000_250': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214130000_250', price_type='LIMIT', limit_price=3301, submitted_time=Timestamp('2025-02-14 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214130000_251': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214130000_251', price_type='LIMIT', limit_price=3256, submitted_time=Timestamp('2025-02-14 13:00:00'), offset='OPEN')}\n",
"[2025-02-14 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 13:00:00'), open=3278.0, high=3280.0, low=3270.0, close=3274.0, volume=95313, open_oi=1883180, close_oi=1888282, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 14:00:00'), open=3272.0, high=3277.0, low=3255.0, close=3265.0, volume=339011, open_oi=1901038, close_oi=1889839, symbol='SHFE.rb2505')\n",
"[2025-02-14 14:00:00] 策略 (SHFE.rb2505): [2025-02-14 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214140000_252 @ 3305.40\n",
"[2025-02-14 14:00:00] 策略 (SHFE.rb2505): [2025-02-14 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214140000_253 @ 3254.00\n",
"[2025-02-14 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214140000_252': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214140000_252', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-02-14 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214140000_253': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214140000_253', price_type='LIMIT', limit_price=3254, submitted_time=Timestamp('2025-02-14 14:00:00'), offset='OPEN')}\n",
"[2025-02-14 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 14:00:00'), open=3274.0, high=3277.0, low=3255.0, close=3262.0, volume=268870, open_oi=1888282, close_oi=1885541, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 21:00:00'), open=3261.0, high=3268.0, low=3256.0, close=3257.0, volume=189701, open_oi=1889839, close_oi=1897117, symbol='SHFE.rb2505')\n",
"[2025-02-14 21:00:00] 策略 (SHFE.rb2505): [2025-02-14 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214210000_254 @ 3285.40\n",
"[2025-02-14 21:00:00] 策略 (SHFE.rb2505): [2025-02-14 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214210000_255 @ 3216.00\n",
"[2025-02-14 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214210000_254': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214210000_254', price_type='LIMIT', limit_price=3286, submitted_time=Timestamp('2025-02-14 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214210000_255': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214210000_255', price_type='LIMIT', limit_price=3216, submitted_time=Timestamp('2025-02-14 21:00:00'), offset='OPEN')}\n",
"[2025-02-14 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 21:00:00'), open=3260.0, high=3263.0, low=3247.0, close=3257.0, volume=285757, open_oi=1885541, close_oi=1920501, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-13 22:00:00'), open=3257.0, high=3260.0, low=3252.0, close=3258.0, volume=110530, open_oi=1897117, close_oi=1895967, symbol='SHFE.rb2505')\n",
"[2025-02-14 22:00:00] 策略 (SHFE.rb2505): [2025-02-14 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250214220000_256 @ 3274.60\n",
"[2025-02-14 22:00:00] 策略 (SHFE.rb2505): [2025-02-14 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250214220000_257 @ 3225.00\n",
"[2025-02-14 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-14 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250214220000_256': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250214220000_256', price_type='LIMIT', limit_price=3275, submitted_time=Timestamp('2025-02-14 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250214220000_257': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250214220000_257', price_type='LIMIT', limit_price=3225, submitted_time=Timestamp('2025-02-14 22:00:00'), offset='OPEN')}\n",
"[2025-02-17 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-14 22:00:00'), open=3257.0, high=3267.0, low=3253.0, close=3258.0, volume=127046, open_oi=1920501, close_oi=1903988, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 09:00:00'), open=3261.0, high=3284.0, low=3261.0, close=3283.0, volume=265168, open_oi=1895967, close_oi=1893971, symbol='SHFE.rb2505')\n",
"[2025-02-17 09:00:00] 策略 (SHFE.rb2505): [2025-02-17 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217090000_258 @ 3290.60\n",
"[2025-02-17 09:00:00] 策略 (SHFE.rb2505): [2025-02-17 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217090000_259 @ 3228.00\n",
"[2025-02-17 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217090000_258': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217090000_258', price_type='LIMIT', limit_price=3291, submitted_time=Timestamp('2025-02-17 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217090000_259': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217090000_259', price_type='LIMIT', limit_price=3228, submitted_time=Timestamp('2025-02-17 09:00:00'), offset='OPEN')}\n",
"[2025-02-17 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 09:00:00'), open=3256.0, high=3276.0, low=3253.0, close=3269.0, volume=287974, open_oi=1903988, close_oi=1910630, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 10:00:00'), open=3283.0, high=3285.0, low=3276.0, close=3279.0, volume=107527, open_oi=1893971, close_oi=1893561, symbol='SHFE.rb2505')\n",
"[2025-02-17 10:00:00] 策略 (SHFE.rb2505): [2025-02-17 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217100000_260 @ 3291.30\n",
"[2025-02-17 10:00:00] 策略 (SHFE.rb2505): [2025-02-17 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217100000_261 @ 3223.00\n",
"[2025-02-17 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217100000_260': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217100000_260', price_type='LIMIT', limit_price=3292, submitted_time=Timestamp('2025-02-17 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217100000_261': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217100000_261', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-02-17 10:00:00'), offset='OPEN')}\n",
"[2025-02-17 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 10:00:00'), open=3269.0, high=3274.0, low=3265.0, close=3270.0, volume=103192, open_oi=1910630, close_oi=1920394, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 11:00:00'), open=3279.0, high=3288.0, low=3277.0, close=3277.0, volume=87796, open_oi=1893561, close_oi=1883180, symbol='SHFE.rb2505')\n",
"[2025-02-17 11:00:00] 策略 (SHFE.rb2505): [2025-02-17 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217110000_262 @ 3287.70\n",
"[2025-02-17 11:00:00] 策略 (SHFE.rb2505): [2025-02-17 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217110000_263 @ 3252.00\n",
"[2025-02-17 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217110000_262': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217110000_262', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-02-17 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217110000_263': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217110000_263', price_type='LIMIT', limit_price=3252, submitted_time=Timestamp('2025-02-17 11:00:00'), offset='OPEN')}\n",
"[2025-02-17 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 11:00:00'), open=3270.0, high=3279.0, low=3264.0, close=3274.0, volume=101836, open_oi=1920394, close_oi=1915706, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 13:00:00'), open=3278.0, high=3280.0, low=3270.0, close=3274.0, volume=95313, open_oi=1883180, close_oi=1888282, symbol='SHFE.rb2505')\n",
"[2025-02-17 13:00:00] 策略 (SHFE.rb2505): [2025-02-17 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217130000_264 @ 3293.50\n",
"[2025-02-17 13:00:00] 策略 (SHFE.rb2505): [2025-02-17 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217130000_265 @ 3244.00\n",
"[2025-02-17 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217130000_264': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217130000_264', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-02-17 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217130000_265': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217130000_265', price_type='LIMIT', limit_price=3244, submitted_time=Timestamp('2025-02-17 13:00:00'), offset='OPEN')}\n",
"[2025-02-17 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 13:00:00'), open=3274.0, high=3274.0, low=3263.0, close=3274.0, volume=84477, open_oi=1915706, close_oi=1922974, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 14:00:00'), open=3274.0, high=3277.0, low=3255.0, close=3262.0, volume=268870, open_oi=1888282, close_oi=1885541, symbol='SHFE.rb2505')\n",
"[2025-02-17 14:00:00] 策略 (SHFE.rb2505): [2025-02-17 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217140000_266 @ 3305.90\n",
"[2025-02-17 14:00:00] 策略 (SHFE.rb2505): [2025-02-17 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217140000_267 @ 3252.00\n",
"[2025-02-17 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217140000_266': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217140000_266', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-02-17 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217140000_267': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217140000_267', price_type='LIMIT', limit_price=3252, submitted_time=Timestamp('2025-02-17 14:00:00'), offset='OPEN')}\n",
"[2025-02-17 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 14:00:00'), open=3274.0, high=3301.0, low=3274.0, close=3290.0, volume=409942, open_oi=1922974, close_oi=1902224, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 21:00:00'), open=3260.0, high=3263.0, low=3247.0, close=3257.0, volume=285757, open_oi=1885541, close_oi=1920501, symbol='SHFE.rb2505')\n",
"[2025-02-17 21:00:00] 策略 (SHFE.rb2505): [2025-02-17 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217210000_268 @ 3320.70\n",
"[2025-02-17 21:00:00] 策略 (SHFE.rb2505): [2025-02-17 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217210000_269 @ 3234.00\n",
"[2025-02-17 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217210000_268': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217210000_268', price_type='LIMIT', limit_price=3321, submitted_time=Timestamp('2025-02-17 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217210000_269': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217210000_269', price_type='LIMIT', limit_price=3234, submitted_time=Timestamp('2025-02-17 21:00:00'), offset='OPEN')}\n",
"[2025-02-17 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 21:00:00'), open=3288.0, high=3298.0, low=3283.0, close=3293.0, volume=205751, open_oi=1902224, close_oi=1904298, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-14 22:00:00'), open=3257.0, high=3267.0, low=3253.0, close=3258.0, volume=127046, open_oi=1920501, close_oi=1903988, symbol='SHFE.rb2505')\n",
"[2025-02-17 22:00:00] 策略 (SHFE.rb2505): [2025-02-17 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250217220000_270 @ 3317.30\n",
"[2025-02-17 22:00:00] 策略 (SHFE.rb2505): [2025-02-17 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250217220000_271 @ 3263.00\n",
"[2025-02-17 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-17 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250217220000_270': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250217220000_270', price_type='LIMIT', limit_price=3318, submitted_time=Timestamp('2025-02-17 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250217220000_271': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250217220000_271', price_type='LIMIT', limit_price=3263, submitted_time=Timestamp('2025-02-17 22:00:00'), offset='OPEN')}\n",
"[2025-02-18 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-17 22:00:00'), open=3293.0, high=3296.0, low=3285.0, close=3286.0, volume=92963, open_oi=1904298, close_oi=1892768, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 09:00:00'), open=3256.0, high=3276.0, low=3253.0, close=3269.0, volume=287974, open_oi=1903988, close_oi=1910630, symbol='SHFE.rb2505')\n",
"[2025-02-18 09:00:00] 策略 (SHFE.rb2505): [2025-02-18 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218090000_272 @ 3319.10\n",
"[2025-02-18 09:00:00] 策略 (SHFE.rb2505): [2025-02-18 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218090000_273 @ 3264.00\n",
"[2025-02-18 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218090000_272': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218090000_272', price_type='LIMIT', limit_price=3320, submitted_time=Timestamp('2025-02-18 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218090000_273': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218090000_273', price_type='LIMIT', limit_price=3264, submitted_time=Timestamp('2025-02-18 09:00:00'), offset='OPEN')}\n",
"[2025-02-18 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 09:00:00'), open=3286.0, high=3286.0, low=3276.0, close=3281.0, volume=175845, open_oi=1892768, close_oi=1887013, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 10:00:00'), open=3269.0, high=3274.0, low=3265.0, close=3270.0, volume=103192, open_oi=1910630, close_oi=1920394, symbol='SHFE.rb2505')\n",
"[2025-02-18 10:00:00] 策略 (SHFE.rb2505): [2025-02-18 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218100000_274 @ 3296.80\n",
"[2025-02-18 10:00:00] 策略 (SHFE.rb2505): [2025-02-18 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218100000_275 @ 3261.00\n",
"[2025-02-18 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218100000_274': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218100000_274', price_type='LIMIT', limit_price=3297, submitted_time=Timestamp('2025-02-18 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218100000_275': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218100000_275', price_type='LIMIT', limit_price=3261, submitted_time=Timestamp('2025-02-18 10:00:00'), offset='OPEN')}\n",
"[2025-02-18 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 10:00:00'), open=3281.0, high=3292.0, low=3280.0, close=3288.0, volume=101960, open_oi=1887013, close_oi=1891537, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 11:00:00'), open=3270.0, high=3279.0, low=3264.0, close=3274.0, volume=101836, open_oi=1920394, close_oi=1915706, symbol='SHFE.rb2505')\n",
"[2025-02-18 11:00:00] 策略 (SHFE.rb2505): [2025-02-18 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218110000_276 @ 3312.00\n",
"[2025-02-18 11:00:00] 策略 (SHFE.rb2505): [2025-02-18 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218110000_277 @ 3264.00\n",
"[2025-02-18 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218110000_276': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218110000_276', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-02-18 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218110000_277': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218110000_277', price_type='LIMIT', limit_price=3264, submitted_time=Timestamp('2025-02-18 11:00:00'), offset='OPEN')}\n",
"[2025-02-18 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 11:00:00'), open=3288.0, high=3305.0, low=3288.0, close=3303.0, volume=171143, open_oi=1891537, close_oi=1891893, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 13:00:00'), open=3274.0, high=3274.0, low=3263.0, close=3274.0, volume=84477, open_oi=1915706, close_oi=1922974, symbol='SHFE.rb2505')\n",
"[2025-02-18 13:00:00] 策略 (SHFE.rb2505): [2025-02-18 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218130000_278 @ 3324.70\n",
"[2025-02-18 13:00:00] 策略 (SHFE.rb2505): [2025-02-18 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218130000_279 @ 3269.00\n",
"[2025-02-18 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218130000_278': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218130000_278', price_type='LIMIT', limit_price=3325, submitted_time=Timestamp('2025-02-18 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218130000_279': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218130000_279', price_type='LIMIT', limit_price=3269, submitted_time=Timestamp('2025-02-18 13:00:00'), offset='OPEN')}\n",
"[2025-02-18 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 13:00:00'), open=3303.0, high=3320.0, low=3302.0, close=3314.0, volume=338034, open_oi=1891893, close_oi=1903103, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 14:00:00'), open=3274.0, high=3301.0, low=3274.0, close=3290.0, volume=409942, open_oi=1922974, close_oi=1902224, symbol='SHFE.rb2505')\n",
"[2025-02-18 14:00:00] 策略 (SHFE.rb2505): [2025-02-18 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218140000_280 @ 3355.40\n",
"[2025-02-18 14:00:00] 策略 (SHFE.rb2505): [2025-02-18 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218140000_281 @ 3278.00\n",
"[2025-02-18 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218140000_280': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218140000_280', price_type='LIMIT', limit_price=3356, submitted_time=Timestamp('2025-02-18 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218140000_281': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218140000_281', price_type='LIMIT', limit_price=3278, submitted_time=Timestamp('2025-02-18 14:00:00'), offset='OPEN')}\n",
"[2025-02-18 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 14:00:00'), open=3314.0, high=3317.0, low=3306.0, close=3313.0, volume=230593, open_oi=1903103, close_oi=1880432, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 21:00:00'), open=3288.0, high=3298.0, low=3283.0, close=3293.0, volume=205751, open_oi=1902224, close_oi=1904298, symbol='SHFE.rb2505')\n",
"[2025-02-18 21:00:00] 策略 (SHFE.rb2505): [2025-02-18 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218210000_282 @ 3338.50\n",
"[2025-02-18 21:00:00] 策略 (SHFE.rb2505): [2025-02-18 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218210000_283 @ 3293.00\n",
"[2025-02-18 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218210000_282': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218210000_282', price_type='LIMIT', limit_price=3339, submitted_time=Timestamp('2025-02-18 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218210000_283': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218210000_283', price_type='LIMIT', limit_price=3293, submitted_time=Timestamp('2025-02-18 21:00:00'), offset='OPEN')}\n",
"[2025-02-18 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 21:00:00'), open=3315.0, high=3320.0, low=3309.0, close=3310.0, volume=163747, open_oi=1880432, close_oi=1879648, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-17 22:00:00'), open=3293.0, high=3296.0, low=3285.0, close=3286.0, volume=92963, open_oi=1904298, close_oi=1892768, symbol='SHFE.rb2505')\n",
"[2025-02-18 22:00:00] 策略 (SHFE.rb2505): [2025-02-18 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250218220000_284 @ 3328.70\n",
"[2025-02-18 22:00:00] 策略 (SHFE.rb2505): [2025-02-18 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250218220000_285 @ 3288.00\n",
"[2025-02-18 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-18 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250218220000_284': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250218220000_284', price_type='LIMIT', limit_price=3329, submitted_time=Timestamp('2025-02-18 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250218220000_285': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250218220000_285', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-02-18 22:00:00'), offset='OPEN')}\n",
"[2025-02-19 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-18 22:00:00'), open=3310.0, high=3315.0, low=3308.0, close=3312.0, volume=76924, open_oi=1879648, close_oi=1870795, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 09:00:00'), open=3286.0, high=3286.0, low=3276.0, close=3281.0, volume=175845, open_oi=1892768, close_oi=1887013, symbol='SHFE.rb2505')\n",
"[2025-02-19 09:00:00] 策略 (SHFE.rb2505): [2025-02-19 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219090000_286 @ 3329.50\n",
"[2025-02-19 09:00:00] 策略 (SHFE.rb2505): [2025-02-19 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219090000_287 @ 3300.00\n",
"[2025-02-19 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219090000_286': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219090000_286', price_type='LIMIT', limit_price=3330, submitted_time=Timestamp('2025-02-19 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219090000_287': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219090000_287', price_type='LIMIT', limit_price=3300, submitted_time=Timestamp('2025-02-19 09:00:00'), offset='OPEN')}\n",
"[2025-02-19 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 09:00:00'), open=3314.0, high=3329.0, low=3309.0, close=3326.0, volume=242294, open_oi=1870795, close_oi=1879641, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 10:00:00'), open=3281.0, high=3292.0, low=3280.0, close=3288.0, volume=101960, open_oi=1887013, close_oi=1891537, symbol='SHFE.rb2505')\n",
"[2025-02-19 10:00:00] 策略 (SHFE.rb2505): [2025-02-19 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219100000_288 @ 3350.40\n",
"[2025-02-19 10:00:00] 策略 (SHFE.rb2505): [2025-02-19 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219100000_289 @ 3286.00\n",
"[2025-02-19 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219100000_288': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219100000_288', price_type='LIMIT', limit_price=3351, submitted_time=Timestamp('2025-02-19 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219100000_289': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219100000_289', price_type='LIMIT', limit_price=3286, submitted_time=Timestamp('2025-02-19 10:00:00'), offset='OPEN')}\n",
"[2025-02-19 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 10:00:00'), open=3326.0, high=3328.0, low=3317.0, close=3324.0, volume=126364, open_oi=1879641, close_oi=1871559, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 11:00:00'), open=3288.0, high=3305.0, low=3288.0, close=3303.0, volume=171143, open_oi=1891537, close_oi=1891893, symbol='SHFE.rb2505')\n",
"[2025-02-19 11:00:00] 策略 (SHFE.rb2505): [2025-02-19 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219110000_290 @ 3349.90\n",
"[2025-02-19 11:00:00] 策略 (SHFE.rb2505): [2025-02-19 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219110000_291 @ 3302.00\n",
"[2025-02-19 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219110000_290': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219110000_290', price_type='LIMIT', limit_price=3350, submitted_time=Timestamp('2025-02-19 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219110000_291': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219110000_291', price_type='LIMIT', limit_price=3302, submitted_time=Timestamp('2025-02-19 11:00:00'), offset='OPEN')}\n",
"[2025-02-19 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 11:00:00'), open=3324.0, high=3327.0, low=3320.0, close=3320.0, volume=56099, open_oi=1871559, close_oi=1873178, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 13:00:00'), open=3303.0, high=3320.0, low=3302.0, close=3314.0, volume=338034, open_oi=1891893, close_oi=1903103, symbol='SHFE.rb2505')\n",
"[2025-02-19 13:00:00] 策略 (SHFE.rb2505): [2025-02-19 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219130000_292 @ 3345.10\n",
"[2025-02-19 13:00:00] 策略 (SHFE.rb2505): [2025-02-19 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219130000_293 @ 3306.00\n",
"[2025-02-19 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219130000_292': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219130000_292', price_type='LIMIT', limit_price=3346, submitted_time=Timestamp('2025-02-19 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219130000_293': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219130000_293', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-02-19 13:00:00'), offset='OPEN')}\n",
"[2025-02-19 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 13:00:00'), open=3320.0, high=3322.0, low=3311.0, close=3312.0, volume=102203, open_oi=1873178, close_oi=1870635, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 14:00:00'), open=3314.0, high=3317.0, low=3306.0, close=3313.0, volume=230593, open_oi=1903103, close_oi=1880432, symbol='SHFE.rb2505')\n",
"[2025-02-19 14:00:00] 策略 (SHFE.rb2505): [2025-02-19 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219140000_294 @ 3330.70\n",
"[2025-02-19 14:00:00] 策略 (SHFE.rb2505): [2025-02-19 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219140000_295 @ 3290.00\n",
"[2025-02-19 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219140000_294': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219140000_294', price_type='LIMIT', limit_price=3331, submitted_time=Timestamp('2025-02-19 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219140000_295': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219140000_295', price_type='LIMIT', limit_price=3290, submitted_time=Timestamp('2025-02-19 14:00:00'), offset='OPEN')}\n",
"[2025-02-19 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 14:00:00'), open=3312.0, high=3324.0, low=3312.0, close=3315.0, volume=143373, open_oi=1870635, close_oi=1860033, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 21:00:00'), open=3315.0, high=3320.0, low=3309.0, close=3310.0, volume=163747, open_oi=1880432, close_oi=1879648, symbol='SHFE.rb2505')\n",
"[2025-02-19 21:00:00] 策略 (SHFE.rb2505): [2025-02-19 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219210000_296 @ 3331.20\n",
"[2025-02-19 21:00:00] 策略 (SHFE.rb2505): [2025-02-19 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219210000_297 @ 3288.00\n",
"[2025-02-19 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219210000_296': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219210000_296', price_type='LIMIT', limit_price=3332, submitted_time=Timestamp('2025-02-19 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219210000_297': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219210000_297', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-02-19 21:00:00'), offset='OPEN')}\n",
"[2025-02-19 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 21:00:00'), open=3312.0, high=3326.0, low=3310.0, close=3325.0, volume=169765, open_oi=1860033, close_oi=1872209, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-18 22:00:00'), open=3310.0, high=3315.0, low=3308.0, close=3312.0, volume=76924, open_oi=1879648, close_oi=1870795, symbol='SHFE.rb2505')\n",
"[2025-02-19 22:00:00] 策略 (SHFE.rb2505): [2025-02-19 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250219220000_298 @ 3341.40\n",
"[2025-02-19 22:00:00] 策略 (SHFE.rb2505): [2025-02-19 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250219220000_299 @ 3293.00\n",
"[2025-02-19 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-19 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250219220000_298': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250219220000_298', price_type='LIMIT', limit_price=3342, submitted_time=Timestamp('2025-02-19 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250219220000_299': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250219220000_299', price_type='LIMIT', limit_price=3293, submitted_time=Timestamp('2025-02-19 22:00:00'), offset='OPEN')}\n",
"[2025-02-20 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-19 22:00:00'), open=3325.0, high=3326.0, low=3320.0, close=3323.0, volume=81306, open_oi=1872209, close_oi=1856219, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-19 09:00:00'), open=3314.0, high=3329.0, low=3309.0, close=3326.0, volume=242294, open_oi=1870795, close_oi=1879641, symbol='SHFE.rb2505')\n",
"[2025-02-20 09:00:00] 策略 (SHFE.rb2505): [2025-02-20 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250220090000_300 @ 3351.00\n",
"[2025-02-20 09:00:00] 策略 (SHFE.rb2505): [2025-02-20 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250220090000_301 @ 3312.00\n",
"[2025-02-20 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250220090000_300': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250220090000_300', price_type='LIMIT', limit_price=3351, submitted_time=Timestamp('2025-02-20 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250220090000_301': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250220090000_301', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-02-20 09:00:00'), offset='OPEN')}\n",
"[2025-02-20 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-20 09:00:00'), open=3324.0, high=3326.0, low=3312.0, close=3317.0, volume=192681, open_oi=1856219, close_oi=1858042, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-19 10:00:00'), open=3326.0, high=3328.0, low=3317.0, close=3324.0, volume=126364, open_oi=1879641, close_oi=1871559, symbol='SHFE.rb2505')\n",
"[2025-02-20 10:00:00] 策略 (SHFE.rb2505): [2025-02-20 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250220100000_302 @ 3337.20\n",
"[2025-02-20 10:00:00] 策略 (SHFE.rb2505): [2025-02-20 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250220100000_303 @ 3289.00\n",
"[2025-02-20 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250220100000_302': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250220100000_302', price_type='LIMIT', limit_price=3338, submitted_time=Timestamp('2025-02-20 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250220100000_303': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250220100000_303', price_type='LIMIT', limit_price=3289, submitted_time=Timestamp('2025-02-20 10:00:00'), offset='OPEN')}\n",
"[2025-02-20 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-20 10:00:00'), open=3317.0, high=3319.0, low=3305.0, close=3309.0, volume=178727, open_oi=1858042, close_oi=1864954, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-19 11:00:00'), open=3324.0, high=3327.0, low=3320.0, close=3320.0, volume=56099, open_oi=1871559, close_oi=1873178, symbol='SHFE.rb2505')\n",
"[2025-02-20 11:00:00] 策略 (SHFE.rb2505): [2025-02-20 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250220110000_304 @ 3324.40\n",
"[2025-02-20 11:00:00] 策略 (SHFE.rb2505): [2025-02-20 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250220110000_305 @ 3281.00\n",
"[2025-02-20 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250220110000_304': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250220110000_304', price_type='LIMIT', limit_price=3325, submitted_time=Timestamp('2025-02-20 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250220110000_305': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250220110000_305', price_type='LIMIT', limit_price=3281, submitted_time=Timestamp('2025-02-20 11:00:00'), offset='OPEN')}\n",
"[2025-02-20 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-20 11:00:00'), open=3309.0, high=3321.0, low=3306.0, close=3319.0, volume=124597, open_oi=1864954, close_oi=1865384, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-19 13:00:00'), open=3320.0, high=3322.0, low=3311.0, close=3312.0, volume=102203, open_oi=1873178, close_oi=1870635, symbol='SHFE.rb2505')\n",
"[2025-02-20 13:00:00] 策略 (SHFE.rb2505): [2025-02-20 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250220130000_306 @ 3341.70\n",
"[2025-02-20 13:00:00] 策略 (SHFE.rb2505): [2025-02-20 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250220130000_307 @ 3291.00\n",
"[2025-02-20 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250220130000_307': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250220130000_307', price_type='LIMIT', limit_price=3291, submitted_time=Timestamp('2025-02-20 13:00:00'), offset='OPEN')}\n",
"[2025-02-20 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-02-20 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-20 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-02-20 21:00:00] 策略 (SHFE.rb2505): [2025-02-20 21:00:00] 止损信号 - PnL per unit: -15.30, 目标: -10.00\n",
"[2025-02-20 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-20 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-20 21:00:00'), open=3357.0, high=3373.0, low=3356.0, close=3369.0, volume=323562, open_oi=1924251, close_oi=1934983, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-19 22:00:00'), open=3325.0, high=3326.0, low=3320.0, close=3323.0, volume=81306, open_oi=1872209, close_oi=1856219, symbol='SHFE.rb2505')\n",
"[2025-02-20 22:00:00] 策略 (SHFE.rb2505): [2025-02-20 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250220220000_309 @ 3384.70\n",
"[2025-02-20 22:00:00] 策略 (SHFE.rb2505): [2025-02-20 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250220220000_310 @ 3335.00\n",
"[2025-02-20 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-20 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250220220000_309': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250220220000_309', price_type='LIMIT', limit_price=3385, submitted_time=Timestamp('2025-02-20 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250220220000_310': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250220220000_310', price_type='LIMIT', limit_price=3335, submitted_time=Timestamp('2025-02-20 22:00:00'), offset='OPEN')}\n",
"[2025-02-21 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-20 22:00:00'), open=3369.0, high=3377.0, low=3368.0, close=3370.0, volume=180339, open_oi=1934983, close_oi=1947777, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 09:00:00'), open=3324.0, high=3326.0, low=3312.0, close=3317.0, volume=192681, open_oi=1856219, close_oi=1858042, symbol='SHFE.rb2505')\n",
"[2025-02-21 09:00:00] 策略 (SHFE.rb2505): [2025-02-21 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221090000_311 @ 3390.30\n",
"[2025-02-21 09:00:00] 策略 (SHFE.rb2505): [2025-02-21 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221090000_312 @ 3351.00\n",
"[2025-02-21 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221090000_311': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221090000_311', price_type='LIMIT', limit_price=3391, submitted_time=Timestamp('2025-02-21 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221090000_312': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221090000_312', price_type='LIMIT', limit_price=3351, submitted_time=Timestamp('2025-02-21 09:00:00'), offset='OPEN')}\n",
"[2025-02-21 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 09:00:00'), open=3369.0, high=3376.0, low=3365.0, close=3368.0, volume=209640, open_oi=1947777, close_oi=1956811, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 10:00:00'), open=3317.0, high=3319.0, low=3305.0, close=3309.0, volume=178727, open_oi=1858042, close_oi=1864954, symbol='SHFE.rb2505')\n",
"[2025-02-21 10:00:00] 策略 (SHFE.rb2505): [2025-02-21 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221100000_313 @ 3390.30\n",
"[2025-02-21 10:00:00] 策略 (SHFE.rb2505): [2025-02-21 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221100000_314 @ 3346.00\n",
"[2025-02-21 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221100000_313': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221100000_313', price_type='LIMIT', limit_price=3391, submitted_time=Timestamp('2025-02-21 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221100000_314': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221100000_314', price_type='LIMIT', limit_price=3346, submitted_time=Timestamp('2025-02-21 10:00:00'), offset='OPEN')}\n",
"[2025-02-21 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 10:00:00'), open=3368.0, high=3371.0, low=3362.0, close=3369.0, volume=106015, open_oi=1956811, close_oi=1953818, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 11:00:00'), open=3309.0, high=3321.0, low=3306.0, close=3319.0, volume=124597, open_oi=1864954, close_oi=1865384, symbol='SHFE.rb2505')\n",
"[2025-02-21 11:00:00] 策略 (SHFE.rb2505): [2025-02-21 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221110000_315 @ 3391.50\n",
"[2025-02-21 11:00:00] 策略 (SHFE.rb2505): [2025-02-21 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221110000_316 @ 3351.00\n",
"[2025-02-21 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221110000_315': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221110000_315', price_type='LIMIT', limit_price=3392, submitted_time=Timestamp('2025-02-21 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221110000_316': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221110000_316', price_type='LIMIT', limit_price=3351, submitted_time=Timestamp('2025-02-21 11:00:00'), offset='OPEN')}\n",
"[2025-02-21 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 11:00:00'), open=3369.0, high=3373.0, low=3362.0, close=3366.0, volume=107435, open_oi=1953818, close_oi=1948320, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 13:00:00'), open=3321.0, high=3344.0, low=3321.0, close=3344.0, volume=313369, open_oi=1865384, close_oi=1875775, symbol='SHFE.rb2505')\n",
"[2025-02-21 13:00:00] 策略 (SHFE.rb2505): [2025-02-21 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221130000_317 @ 3399.10\n",
"[2025-02-21 13:00:00] 策略 (SHFE.rb2505): [2025-02-21 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221130000_318 @ 3344.00\n",
"[2025-02-21 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221130000_317': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221130000_317', price_type='LIMIT', limit_price=3400, submitted_time=Timestamp('2025-02-21 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221130000_318': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221130000_318', price_type='LIMIT', limit_price=3344, submitted_time=Timestamp('2025-02-21 13:00:00'), offset='OPEN')}\n",
"[2025-02-21 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 13:00:00'), open=3366.0, high=3367.0, low=3357.0, close=3361.0, volume=130959, open_oi=1948320, close_oi=1947752, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 14:00:00'), open=3344.0, high=3364.0, low=3341.0, close=3358.0, volume=512102, open_oi=1875775, close_oi=1924251, symbol='SHFE.rb2505')\n",
"[2025-02-21 14:00:00] 策略 (SHFE.rb2505): [2025-02-21 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221140000_319 @ 3393.60\n",
"[2025-02-21 14:00:00] 策略 (SHFE.rb2505): [2025-02-21 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221140000_320 @ 3341.00\n",
"[2025-02-21 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221140000_319': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221140000_319', price_type='LIMIT', limit_price=3394, submitted_time=Timestamp('2025-02-21 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221140000_320': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221140000_320', price_type='LIMIT', limit_price=3341, submitted_time=Timestamp('2025-02-21 14:00:00'), offset='OPEN')}\n",
"[2025-02-21 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 14:00:00'), open=3361.0, high=3364.0, low=3356.0, close=3361.0, volume=179783, open_oi=1947752, close_oi=1937279, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 21:00:00'), open=3357.0, high=3373.0, low=3356.0, close=3369.0, volume=323562, open_oi=1924251, close_oi=1934983, symbol='SHFE.rb2505')\n",
"[2025-02-21 21:00:00] 策略 (SHFE.rb2505): [2025-02-21 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221210000_321 @ 3367.40\n",
"[2025-02-21 21:00:00] 策略 (SHFE.rb2505): [2025-02-21 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221210000_322 @ 3327.00\n",
"[2025-02-21 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221210000_321': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221210000_321', price_type='LIMIT', limit_price=3368, submitted_time=Timestamp('2025-02-21 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221210000_322': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221210000_322', price_type='LIMIT', limit_price=3327, submitted_time=Timestamp('2025-02-21 21:00:00'), offset='OPEN')}\n",
"[2025-02-21 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 21:00:00'), open=3343.0, high=3355.0, low=3337.0, close=3348.0, volume=357294, open_oi=1937279, close_oi=1951098, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-20 22:00:00'), open=3369.0, high=3377.0, low=3368.0, close=3370.0, volume=180339, open_oi=1934983, close_oi=1947777, symbol='SHFE.rb2505')\n",
"[2025-02-21 22:00:00] 策略 (SHFE.rb2505): [2025-02-21 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250221220000_323 @ 3367.80\n",
"[2025-02-21 22:00:00] 策略 (SHFE.rb2505): [2025-02-21 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250221220000_324 @ 3312.00\n",
"[2025-02-21 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-21 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250221220000_323': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250221220000_323', price_type='LIMIT', limit_price=3368, submitted_time=Timestamp('2025-02-21 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250221220000_324': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250221220000_324', price_type='LIMIT', limit_price=3312, submitted_time=Timestamp('2025-02-21 22:00:00'), offset='OPEN')}\n",
"[2025-02-24 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-21 22:00:00'), open=3348.0, high=3348.0, low=3335.0, close=3339.0, volume=189871, open_oi=1951098, close_oi=1929771, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 09:00:00'), open=3369.0, high=3376.0, low=3365.0, close=3368.0, volume=209640, open_oi=1947777, close_oi=1956811, symbol='SHFE.rb2505')\n",
"[2025-02-24 09:00:00] 策略 (SHFE.rb2505): [2025-02-24 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224090000_325 @ 3354.70\n",
"[2025-02-24 09:00:00] 策略 (SHFE.rb2505): [2025-02-24 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224090000_326 @ 3309.00\n",
"[2025-02-24 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224090000_325': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224090000_325', price_type='LIMIT', limit_price=3355, submitted_time=Timestamp('2025-02-24 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224090000_326': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224090000_326', price_type='LIMIT', limit_price=3309, submitted_time=Timestamp('2025-02-24 09:00:00'), offset='OPEN')}\n",
"[2025-02-24 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 09:00:00'), open=3335.0, high=3345.0, low=3321.0, close=3337.0, volume=375188, open_oi=1929771, close_oi=1903249, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 10:00:00'), open=3368.0, high=3371.0, low=3362.0, close=3369.0, volume=106015, open_oi=1956811, close_oi=1953818, symbol='SHFE.rb2505')\n",
"[2025-02-24 10:00:00] 策略 (SHFE.rb2505): [2025-02-24 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224100000_327 @ 3359.80\n",
"[2025-02-24 10:00:00] 策略 (SHFE.rb2505): [2025-02-24 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224100000_328 @ 3289.00\n",
"[2025-02-24 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224100000_327': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224100000_327', price_type='LIMIT', limit_price=3360, submitted_time=Timestamp('2025-02-24 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224100000_328': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224100000_328', price_type='LIMIT', limit_price=3289, submitted_time=Timestamp('2025-02-24 10:00:00'), offset='OPEN')}\n",
"[2025-02-24 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 10:00:00'), open=3337.0, high=3344.0, low=3330.0, close=3337.0, volume=122216, open_oi=1903249, close_oi=1899418, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 11:00:00'), open=3369.0, high=3373.0, low=3362.0, close=3366.0, volume=107435, open_oi=1953818, close_oi=1948320, symbol='SHFE.rb2505')\n",
"[2025-02-24 11:00:00] 策略 (SHFE.rb2505): [2025-02-24 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224110000_329 @ 3357.20\n",
"[2025-02-24 11:00:00] 策略 (SHFE.rb2505): [2025-02-24 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224110000_330 @ 3309.00\n",
"[2025-02-24 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224110000_329': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224110000_329', price_type='LIMIT', limit_price=3358, submitted_time=Timestamp('2025-02-24 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224110000_330': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224110000_330', price_type='LIMIT', limit_price=3309, submitted_time=Timestamp('2025-02-24 11:00:00'), offset='OPEN')}\n",
"[2025-02-24 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 11:00:00'), open=3337.0, high=3339.0, low=3329.0, close=3334.0, volume=99637, open_oi=1899418, close_oi=1894290, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 13:00:00'), open=3366.0, high=3367.0, low=3357.0, close=3361.0, volume=130959, open_oi=1948320, close_oi=1947752, symbol='SHFE.rb2505')\n",
"[2025-02-24 13:00:00] 策略 (SHFE.rb2505): [2025-02-24 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224130000_331 @ 3352.00\n",
"[2025-02-24 13:00:00] 策略 (SHFE.rb2505): [2025-02-24 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224130000_332 @ 3315.00\n",
"[2025-02-24 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224130000_331': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224130000_331', price_type='LIMIT', limit_price=3352, submitted_time=Timestamp('2025-02-24 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224130000_332': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224130000_332', price_type='LIMIT', limit_price=3315, submitted_time=Timestamp('2025-02-24 13:00:00'), offset='OPEN')}\n",
"[2025-02-24 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 13:00:00'), open=3335.0, high=3336.0, low=3327.0, close=3333.0, volume=76408, open_oi=1894290, close_oi=1897903, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 14:00:00'), open=3361.0, high=3364.0, low=3356.0, close=3361.0, volume=179783, open_oi=1947752, close_oi=1937279, symbol='SHFE.rb2505')\n",
"[2025-02-24 14:00:00] 策略 (SHFE.rb2505): [2025-02-24 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224140000_333 @ 3347.10\n",
"[2025-02-24 14:00:00] 策略 (SHFE.rb2505): [2025-02-24 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224140000_334 @ 3315.00\n",
"[2025-02-24 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224140000_333': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224140000_333', price_type='LIMIT', limit_price=3348, submitted_time=Timestamp('2025-02-24 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224140000_334': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224140000_334', price_type='LIMIT', limit_price=3315, submitted_time=Timestamp('2025-02-24 14:00:00'), offset='OPEN')}\n",
"[2025-02-24 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 14:00:00'), open=3333.0, high=3341.0, low=3328.0, close=3340.0, volume=150355, open_oi=1897903, close_oi=1892131, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 21:00:00'), open=3343.0, high=3355.0, low=3337.0, close=3348.0, volume=357294, open_oi=1937279, close_oi=1951098, symbol='SHFE.rb2505')\n",
"[2025-02-24 21:00:00] 策略 (SHFE.rb2505): [2025-02-24 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224210000_335 @ 3368.10\n",
"[2025-02-24 21:00:00] 策略 (SHFE.rb2505): [2025-02-24 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224210000_336 @ 3314.00\n",
"[2025-02-24 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224210000_335': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224210000_335', price_type='LIMIT', limit_price=3369, submitted_time=Timestamp('2025-02-24 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224210000_336': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224210000_336', price_type='LIMIT', limit_price=3314, submitted_time=Timestamp('2025-02-24 21:00:00'), offset='OPEN')}\n",
"[2025-02-24 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 21:00:00'), open=3340.0, high=3343.0, low=3318.0, close=3321.0, volume=305289, open_oi=1892131, close_oi=1912479, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-21 22:00:00'), open=3348.0, high=3348.0, low=3335.0, close=3339.0, volume=189871, open_oi=1951098, close_oi=1929771, symbol='SHFE.rb2505')\n",
"[2025-02-24 22:00:00] 策略 (SHFE.rb2505): [2025-02-24 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250224220000_337 @ 3349.10\n",
"[2025-02-24 22:00:00] 策略 (SHFE.rb2505): [2025-02-24 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250224220000_338 @ 3271.00\n",
"[2025-02-24 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-24 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250224220000_337': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250224220000_337', price_type='LIMIT', limit_price=3350, submitted_time=Timestamp('2025-02-24 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250224220000_338': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250224220000_338', price_type='LIMIT', limit_price=3271, submitted_time=Timestamp('2025-02-24 22:00:00'), offset='OPEN')}\n",
"[2025-02-25 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-24 22:00:00'), open=3321.0, high=3324.0, low=3312.0, close=3313.0, volume=171796, open_oi=1912479, close_oi=1903529, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-24 09:00:00'), open=3335.0, high=3345.0, low=3321.0, close=3337.0, volume=375188, open_oi=1929771, close_oi=1903249, symbol='SHFE.rb2505')\n",
"[2025-02-25 09:00:00] 策略 (SHFE.rb2505): [2025-02-25 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250225090000_339 @ 3346.80\n",
"[2025-02-25 09:00:00] 策略 (SHFE.rb2505): [2025-02-25 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250225090000_340 @ 3288.00\n",
"[2025-02-25 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250225090000_339': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250225090000_339', price_type='LIMIT', limit_price=3347, submitted_time=Timestamp('2025-02-25 09:00:00'), offset='OPEN')}\n",
"[2025-02-25 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-25 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-25 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-25 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-25 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-25 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-25 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-25 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-25 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-02-25 21:00:00] 策略 (SHFE.rb2505): [2025-02-25 21:00:00] 止损信号 - PnL per unit: -16.00, 目标: -10.00\n",
"[2025-02-25 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-25 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-25 21:00:00'), open=3272.0, high=3280.0, low=3270.0, close=3280.0, volume=235190, open_oi=1927913, close_oi=1925499, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-24 22:00:00'), open=3321.0, high=3324.0, low=3312.0, close=3313.0, volume=171796, open_oi=1912479, close_oi=1903529, symbol='SHFE.rb2505')\n",
"[2025-02-25 22:00:00] 策略 (SHFE.rb2505): [2025-02-25 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250225220000_342 @ 3299.40\n",
"[2025-02-25 22:00:00] 策略 (SHFE.rb2505): [2025-02-25 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250225220000_343 @ 3260.00\n",
"[2025-02-25 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-25 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250225220000_342': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250225220000_342', price_type='LIMIT', limit_price=3300, submitted_time=Timestamp('2025-02-25 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250225220000_343': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250225220000_343', price_type='LIMIT', limit_price=3260, submitted_time=Timestamp('2025-02-25 22:00:00'), offset='OPEN')}\n",
"[2025-02-26 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-25 22:00:00'), open=3280.0, high=3285.0, low=3275.0, close=3279.0, volume=137396, open_oi=1925499, close_oi=1915545, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-25 09:00:00'), open=3312.0, high=3314.0, low=3286.0, close=3291.0, volume=479022, open_oi=1903529, close_oi=1915870, symbol='SHFE.rb2505')\n",
"[2025-02-26 09:00:00] 策略 (SHFE.rb2505): [2025-02-26 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250226090000_344 @ 3315.60\n",
"[2025-02-26 09:00:00] 策略 (SHFE.rb2505): [2025-02-26 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250226090000_345 @ 3257.00\n",
"[2025-02-26 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250226090000_344': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250226090000_344', price_type='LIMIT', limit_price=3316, submitted_time=Timestamp('2025-02-26 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250226090000_345': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250226090000_345', price_type='LIMIT', limit_price=3257, submitted_time=Timestamp('2025-02-26 09:00:00'), offset='OPEN')}\n",
"[2025-02-26 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-26 09:00:00'), open=3277.0, high=3288.0, low=3272.0, close=3280.0, volume=222107, open_oi=1915545, close_oi=1928314, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-25 10:00:00'), open=3291.0, high=3301.0, low=3285.0, close=3294.0, volume=213404, open_oi=1915870, close_oi=1921523, symbol='SHFE.rb2505')\n",
"[2025-02-26 10:00:00] 策略 (SHFE.rb2505): [2025-02-26 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250226100000_346 @ 3307.20\n",
"[2025-02-26 10:00:00] 策略 (SHFE.rb2505): [2025-02-26 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250226100000_347 @ 3248.00\n",
"[2025-02-26 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250226100000_347': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250226100000_347', price_type='LIMIT', limit_price=3248, submitted_time=Timestamp('2025-02-26 10:00:00'), offset='OPEN')}\n",
"[2025-02-26 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-02-26 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-26 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-02-26 13:00:00] 策略 (SHFE.rb2505): [2025-02-26 13:00:00] 止损信号 - PnL per unit: -21.80, 目标: -10.00\n",
"[2025-02-26 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-02-26 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-26 13:00:00'), open=3329.0, high=3346.0, low=3328.0, close=3341.0, volume=432460, open_oi=1907879, close_oi=1941249, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-25 14:00:00'), open=3282.0, high=3285.0, low=3268.0, close=3273.0, volume=399428, open_oi=1934787, close_oi=1927913, symbol='SHFE.rb2505')\n",
"[2025-02-26 14:00:00] 策略 (SHFE.rb2505): [2025-02-26 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250226140000_349 @ 3370.40\n",
"[2025-02-26 14:00:00] 策略 (SHFE.rb2505): [2025-02-26 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250226140000_350 @ 3305.00\n",
"[2025-02-26 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250226140000_349': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250226140000_349', price_type='LIMIT', limit_price=3371, submitted_time=Timestamp('2025-02-26 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250226140000_350': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250226140000_350', price_type='LIMIT', limit_price=3305, submitted_time=Timestamp('2025-02-26 14:00:00'), offset='OPEN')}\n",
"[2025-02-26 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-26 14:00:00'), open=3341.0, high=3343.0, low=3334.0, close=3339.0, volume=357214, open_oi=1941249, close_oi=1936010, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-25 21:00:00'), open=3272.0, high=3280.0, low=3270.0, close=3280.0, volume=235190, open_oi=1927913, close_oi=1925499, symbol='SHFE.rb2505')\n",
"[2025-02-26 21:00:00] 策略 (SHFE.rb2505): [2025-02-26 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250226210000_351 @ 3358.50\n",
"[2025-02-26 21:00:00] 策略 (SHFE.rb2505): [2025-02-26 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250226210000_352 @ 3324.00\n",
"[2025-02-26 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250226210000_351': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250226210000_351', price_type='LIMIT', limit_price=3359, submitted_time=Timestamp('2025-02-26 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250226210000_352': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250226210000_352', price_type='LIMIT', limit_price=3324, submitted_time=Timestamp('2025-02-26 21:00:00'), offset='OPEN')}\n",
"[2025-02-26 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-26 21:00:00'), open=3342.0, high=3352.0, low=3337.0, close=3340.0, volume=393901, open_oi=1936010, close_oi=1955142, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-25 22:00:00'), open=3280.0, high=3285.0, low=3275.0, close=3279.0, volume=137396, open_oi=1925499, close_oi=1915545, symbol='SHFE.rb2505')\n",
"[2025-02-26 22:00:00] 策略 (SHFE.rb2505): [2025-02-26 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250226220000_353 @ 3359.50\n",
"[2025-02-26 22:00:00] 策略 (SHFE.rb2505): [2025-02-26 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250226220000_354 @ 3310.00\n",
"[2025-02-26 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-26 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250226220000_353': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250226220000_353', price_type='LIMIT', limit_price=3360, submitted_time=Timestamp('2025-02-26 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250226220000_354': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250226220000_354', price_type='LIMIT', limit_price=3310, submitted_time=Timestamp('2025-02-26 22:00:00'), offset='OPEN')}\n",
"[2025-02-27 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-26 22:00:00'), open=3340.0, high=3346.0, low=3335.0, close=3344.0, volume=181374, open_oi=1955142, close_oi=1946288, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 09:00:00'), open=3277.0, high=3288.0, low=3272.0, close=3280.0, volume=222107, open_oi=1915545, close_oi=1928314, symbol='SHFE.rb2505')\n",
"[2025-02-27 09:00:00] 策略 (SHFE.rb2505): [2025-02-27 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227090000_355 @ 3368.70\n",
"[2025-02-27 09:00:00] 策略 (SHFE.rb2505): [2025-02-27 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227090000_356 @ 3322.00\n",
"[2025-02-27 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227090000_355': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227090000_355', price_type='LIMIT', limit_price=3369, submitted_time=Timestamp('2025-02-27 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227090000_356': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227090000_356', price_type='LIMIT', limit_price=3322, submitted_time=Timestamp('2025-02-27 09:00:00'), offset='OPEN')}\n",
"[2025-02-27 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 09:00:00'), open=3344.0, high=3346.0, low=3327.0, close=3332.0, volume=287021, open_oi=1946288, close_oi=1949355, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 10:00:00'), open=3280.0, high=3316.0, low=3269.0, close=3315.0, volume=515295, open_oi=1928314, close_oi=1931878, symbol='SHFE.rb2505')\n",
"[2025-02-27 10:00:00] 策略 (SHFE.rb2505): [2025-02-27 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227100000_357 @ 3397.90\n",
"[2025-02-27 10:00:00] 策略 (SHFE.rb2505): [2025-02-27 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227100000_358 @ 3294.00\n",
"[2025-02-27 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227100000_357': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227100000_357', price_type='LIMIT', limit_price=3398, submitted_time=Timestamp('2025-02-27 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227100000_358': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227100000_358', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-02-27 10:00:00'), offset='OPEN')}\n",
"[2025-02-27 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 10:00:00'), open=3332.0, high=3333.0, low=3310.0, close=3317.0, volume=366789, open_oi=1949355, close_oi=1934376, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 11:00:00'), open=3315.0, high=3342.0, low=3313.0, close=3326.0, volume=766712, open_oi=1931878, close_oi=1907879, symbol='SHFE.rb2505')\n",
"[2025-02-27 11:00:00] 策略 (SHFE.rb2505): [2025-02-27 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227110000_359 @ 3363.30\n",
"[2025-02-27 11:00:00] 策略 (SHFE.rb2505): [2025-02-27 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227110000_360 @ 3271.00\n",
"[2025-02-27 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227110000_359': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227110000_359', price_type='LIMIT', limit_price=3364, submitted_time=Timestamp('2025-02-27 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227110000_360': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227110000_360', price_type='LIMIT', limit_price=3271, submitted_time=Timestamp('2025-02-27 11:00:00'), offset='OPEN')}\n",
"[2025-02-27 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 11:00:00'), open=3317.0, high=3317.0, low=3295.0, close=3312.0, volume=402078, open_oi=1934376, close_oi=1901730, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 13:00:00'), open=3329.0, high=3346.0, low=3328.0, close=3341.0, volume=432460, open_oi=1907879, close_oi=1941249, symbol='SHFE.rb2505')\n",
"[2025-02-27 13:00:00] 策略 (SHFE.rb2505): [2025-02-27 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227130000_361 @ 3343.60\n",
"[2025-02-27 13:00:00] 策略 (SHFE.rb2505): [2025-02-27 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227130000_362 @ 3267.00\n",
"[2025-02-27 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227130000_361': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227130000_361', price_type='LIMIT', limit_price=3344, submitted_time=Timestamp('2025-02-27 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227130000_362': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227130000_362', price_type='LIMIT', limit_price=3267, submitted_time=Timestamp('2025-02-27 13:00:00'), offset='OPEN')}\n",
"[2025-02-27 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 13:00:00'), open=3311.0, high=3325.0, low=3299.0, close=3323.0, volume=298611, open_oi=1901730, close_oi=1922047, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 14:00:00'), open=3341.0, high=3343.0, low=3334.0, close=3339.0, volume=357214, open_oi=1941249, close_oi=1936010, symbol='SHFE.rb2505')\n",
"[2025-02-27 14:00:00] 策略 (SHFE.rb2505): [2025-02-27 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227140000_363 @ 3346.80\n",
"[2025-02-27 14:00:00] 策略 (SHFE.rb2505): [2025-02-27 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227140000_364 @ 3271.00\n",
"[2025-02-27 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227140000_363': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227140000_363', price_type='LIMIT', limit_price=3347, submitted_time=Timestamp('2025-02-27 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227140000_364': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227140000_364', price_type='LIMIT', limit_price=3271, submitted_time=Timestamp('2025-02-27 14:00:00'), offset='OPEN')}\n",
"[2025-02-27 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 14:00:00'), open=3323.0, high=3339.0, low=3318.0, close=3329.0, volume=414475, open_oi=1922047, close_oi=1908752, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 21:00:00'), open=3342.0, high=3352.0, low=3337.0, close=3340.0, volume=393901, open_oi=1936010, close_oi=1955142, symbol='SHFE.rb2505')\n",
"[2025-02-27 21:00:00] 策略 (SHFE.rb2505): [2025-02-27 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227210000_365 @ 3359.50\n",
"[2025-02-27 21:00:00] 策略 (SHFE.rb2505): [2025-02-27 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227210000_366 @ 3289.00\n",
"[2025-02-27 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227210000_365': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227210000_365', price_type='LIMIT', limit_price=3360, submitted_time=Timestamp('2025-02-27 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227210000_366': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227210000_366', price_type='LIMIT', limit_price=3289, submitted_time=Timestamp('2025-02-27 21:00:00'), offset='OPEN')}\n",
"[2025-02-27 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 21:00:00'), open=3331.0, high=3337.0, low=3326.0, close=3328.0, volume=271794, open_oi=1908752, close_oi=1925883, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-26 22:00:00'), open=3340.0, high=3346.0, low=3335.0, close=3344.0, volume=181374, open_oi=1955142, close_oi=1946288, symbol='SHFE.rb2505')\n",
"[2025-02-27 22:00:00] 策略 (SHFE.rb2505): [2025-02-27 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250227220000_367 @ 3346.70\n",
"[2025-02-27 22:00:00] 策略 (SHFE.rb2505): [2025-02-27 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250227220000_368 @ 3306.00\n",
"[2025-02-27 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-27 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250227220000_367': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250227220000_367', price_type='LIMIT', limit_price=3347, submitted_time=Timestamp('2025-02-27 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250227220000_368': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250227220000_368', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-02-27 22:00:00'), offset='OPEN')}\n",
"[2025-02-28 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-27 22:00:00'), open=3328.0, high=3330.0, low=3317.0, close=3322.0, volume=180490, open_oi=1925883, close_oi=1897480, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 09:00:00'), open=3344.0, high=3346.0, low=3327.0, close=3332.0, volume=287021, open_oi=1946288, close_oi=1949355, symbol='SHFE.rb2505')\n",
"[2025-02-28 09:00:00] 策略 (SHFE.rb2505): [2025-02-28 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228090000_369 @ 3347.30\n",
"[2025-02-28 09:00:00] 策略 (SHFE.rb2505): [2025-02-28 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228090000_370 @ 3292.00\n",
"[2025-02-28 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228090000_369': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228090000_369', price_type='LIMIT', limit_price=3348, submitted_time=Timestamp('2025-02-28 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228090000_370': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228090000_370', price_type='LIMIT', limit_price=3292, submitted_time=Timestamp('2025-02-28 09:00:00'), offset='OPEN')}\n",
"[2025-02-28 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 09:00:00'), open=3318.0, high=3322.0, low=3308.0, close=3308.0, volume=244138, open_oi=1897480, close_oi=1898120, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 10:00:00'), open=3332.0, high=3333.0, low=3310.0, close=3317.0, volume=366789, open_oi=1949355, close_oi=1934376, symbol='SHFE.rb2505')\n",
"[2025-02-28 10:00:00] 策略 (SHFE.rb2505): [2025-02-28 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228100000_371 @ 3342.60\n",
"[2025-02-28 10:00:00] 策略 (SHFE.rb2505): [2025-02-28 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228100000_372 @ 3280.00\n",
"[2025-02-28 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228100000_371': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228100000_371', price_type='LIMIT', limit_price=3343, submitted_time=Timestamp('2025-02-28 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228100000_372': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228100000_372', price_type='LIMIT', limit_price=3280, submitted_time=Timestamp('2025-02-28 10:00:00'), offset='OPEN')}\n",
"[2025-02-28 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 10:00:00'), open=3308.0, high=3316.0, low=3306.0, close=3308.0, volume=140112, open_oi=1898120, close_oi=1905526, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 11:00:00'), open=3317.0, high=3317.0, low=3295.0, close=3312.0, volume=402078, open_oi=1934376, close_oi=1901730, symbol='SHFE.rb2505')\n",
"[2025-02-28 11:00:00] 策略 (SHFE.rb2505): [2025-02-28 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228110000_373 @ 3339.40\n",
"[2025-02-28 11:00:00] 策略 (SHFE.rb2505): [2025-02-28 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228110000_374 @ 3288.00\n",
"[2025-02-28 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228110000_373': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228110000_373', price_type='LIMIT', limit_price=3340, submitted_time=Timestamp('2025-02-28 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228110000_374': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228110000_374', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-02-28 11:00:00'), offset='OPEN')}\n",
"[2025-02-28 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 11:00:00'), open=3308.0, high=3314.0, low=3304.0, close=3308.0, volume=141753, open_oi=1905526, close_oi=1912426, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 13:00:00'), open=3311.0, high=3325.0, low=3299.0, close=3323.0, volume=298611, open_oi=1901730, close_oi=1922047, symbol='SHFE.rb2505')\n",
"[2025-02-28 13:00:00] 策略 (SHFE.rb2505): [2025-02-28 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228130000_375 @ 3341.20\n",
"[2025-02-28 13:00:00] 策略 (SHFE.rb2505): [2025-02-28 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228130000_376 @ 3285.00\n",
"[2025-02-28 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228130000_375': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228130000_375', price_type='LIMIT', limit_price=3342, submitted_time=Timestamp('2025-02-28 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228130000_376': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228130000_376', price_type='LIMIT', limit_price=3285, submitted_time=Timestamp('2025-02-28 13:00:00'), offset='OPEN')}\n",
"[2025-02-28 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 13:00:00'), open=3305.0, high=3327.0, low=3301.0, close=3323.0, volume=297811, open_oi=1912426, close_oi=1918972, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 14:00:00'), open=3323.0, high=3339.0, low=3318.0, close=3329.0, volume=414475, open_oi=1922047, close_oi=1908752, symbol='SHFE.rb2505')\n",
"[2025-02-28 14:00:00] 策略 (SHFE.rb2505): [2025-02-28 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228140000_377 @ 3361.20\n",
"[2025-02-28 14:00:00] 策略 (SHFE.rb2505): [2025-02-28 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228140000_378 @ 3271.00\n",
"[2025-02-28 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228140000_377': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228140000_377', price_type='LIMIT', limit_price=3362, submitted_time=Timestamp('2025-02-28 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228140000_378': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228140000_378', price_type='LIMIT', limit_price=3271, submitted_time=Timestamp('2025-02-28 14:00:00'), offset='OPEN')}\n",
"[2025-02-28 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 14:00:00'), open=3323.0, high=3328.0, low=3307.0, close=3328.0, volume=312595, open_oi=1918972, close_oi=1891741, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 21:00:00'), open=3331.0, high=3337.0, low=3326.0, close=3328.0, volume=271794, open_oi=1908752, close_oi=1925883, symbol='SHFE.rb2505')\n",
"[2025-02-28 21:00:00] 策略 (SHFE.rb2505): [2025-02-28 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228210000_379 @ 3343.70\n",
"[2025-02-28 21:00:00] 策略 (SHFE.rb2505): [2025-02-28 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228210000_380 @ 3278.00\n",
"[2025-02-28 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228210000_379': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228210000_379', price_type='LIMIT', limit_price=3344, submitted_time=Timestamp('2025-02-28 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228210000_380': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228210000_380', price_type='LIMIT', limit_price=3278, submitted_time=Timestamp('2025-02-28 21:00:00'), offset='OPEN')}\n",
"[2025-02-28 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 21:00:00'), open=3320.0, high=3334.0, low=3316.0, close=3317.0, volume=336973, open_oi=1891741, close_oi=1875077, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-27 22:00:00'), open=3328.0, high=3330.0, low=3317.0, close=3322.0, volume=180490, open_oi=1925883, close_oi=1897480, symbol='SHFE.rb2505')\n",
"[2025-02-28 22:00:00] 策略 (SHFE.rb2505): [2025-02-28 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250228220000_381 @ 3341.60\n",
"[2025-02-28 22:00:00] 策略 (SHFE.rb2505): [2025-02-28 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250228220000_382 @ 3281.00\n",
"[2025-02-28 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-02-28 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250228220000_381': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250228220000_381', price_type='LIMIT', limit_price=3342, submitted_time=Timestamp('2025-02-28 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250228220000_382': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250228220000_382', price_type='LIMIT', limit_price=3281, submitted_time=Timestamp('2025-02-28 22:00:00'), offset='OPEN')}\n",
"[2025-03-03 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-02-28 22:00:00'), open=3317.0, high=3325.0, low=3312.0, close=3318.0, volume=189297, open_oi=1875077, close_oi=1859611, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 09:00:00'), open=3318.0, high=3322.0, low=3308.0, close=3308.0, volume=244138, open_oi=1897480, close_oi=1898120, symbol='SHFE.rb2505')\n",
"[2025-03-03 09:00:00] 策略 (SHFE.rb2505): [2025-03-03 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303090000_383 @ 3341.30\n",
"[2025-03-03 09:00:00] 策略 (SHFE.rb2505): [2025-03-03 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303090000_384 @ 3292.00\n",
"[2025-03-03 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303090000_383': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303090000_383', price_type='LIMIT', limit_price=3342, submitted_time=Timestamp('2025-03-03 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303090000_384': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303090000_384', price_type='LIMIT', limit_price=3292, submitted_time=Timestamp('2025-03-03 09:00:00'), offset='OPEN')}\n",
"[2025-03-03 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 09:00:00'), open=3318.0, high=3338.0, low=3315.0, close=3333.0, volume=376470, open_oi=1859611, close_oi=1853883, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 10:00:00'), open=3308.0, high=3316.0, low=3306.0, close=3308.0, volume=140112, open_oi=1898120, close_oi=1905526, symbol='SHFE.rb2505')\n",
"[2025-03-03 10:00:00] 策略 (SHFE.rb2505): [2025-03-03 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303100000_385 @ 3356.50\n",
"[2025-03-03 10:00:00] 策略 (SHFE.rb2505): [2025-03-03 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303100000_386 @ 3287.00\n",
"[2025-03-03 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303100000_385': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303100000_385', price_type='LIMIT', limit_price=3357, submitted_time=Timestamp('2025-03-03 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303100000_386': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303100000_386', price_type='LIMIT', limit_price=3287, submitted_time=Timestamp('2025-03-03 10:00:00'), offset='OPEN')}\n",
"[2025-03-03 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 10:00:00'), open=3333.0, high=3340.0, low=3324.0, close=3326.0, volume=186346, open_oi=1853883, close_oi=1848892, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 11:00:00'), open=3308.0, high=3314.0, low=3304.0, close=3308.0, volume=141753, open_oi=1905526, close_oi=1912426, symbol='SHFE.rb2505')\n",
"[2025-03-03 11:00:00] 策略 (SHFE.rb2505): [2025-03-03 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303110000_387 @ 3346.00\n",
"[2025-03-03 11:00:00] 策略 (SHFE.rb2505): [2025-03-03 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303110000_388 @ 3294.00\n",
"[2025-03-03 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303110000_387': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303110000_387', price_type='LIMIT', limit_price=3346, submitted_time=Timestamp('2025-03-03 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303110000_388': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303110000_388', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-03-03 11:00:00'), offset='OPEN')}\n",
"[2025-03-03 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 11:00:00'), open=3326.0, high=3328.0, low=3315.0, close=3322.0, volume=180493, open_oi=1848892, close_oi=1857592, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 13:00:00'), open=3305.0, high=3327.0, low=3301.0, close=3323.0, volume=297811, open_oi=1912426, close_oi=1918972, symbol='SHFE.rb2505')\n",
"[2025-03-03 13:00:00] 策略 (SHFE.rb2505): [2025-03-03 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303130000_389 @ 3364.70\n",
"[2025-03-03 13:00:00] 策略 (SHFE.rb2505): [2025-03-03 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303130000_390 @ 3301.00\n",
"[2025-03-03 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303130000_389': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303130000_389', price_type='LIMIT', limit_price=3365, submitted_time=Timestamp('2025-03-03 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303130000_390': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303130000_390', price_type='LIMIT', limit_price=3301, submitted_time=Timestamp('2025-03-03 13:00:00'), offset='OPEN')}\n",
"[2025-03-03 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 13:00:00'), open=3327.0, high=3336.0, low=3310.0, close=3315.0, volume=279375, open_oi=1857592, close_oi=1892772, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 14:00:00'), open=3323.0, high=3328.0, low=3307.0, close=3328.0, volume=312595, open_oi=1918972, close_oi=1891741, symbol='SHFE.rb2505')\n",
"[2025-03-03 14:00:00] 策略 (SHFE.rb2505): [2025-03-03 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303140000_391 @ 3353.20\n",
"[2025-03-03 14:00:00] 策略 (SHFE.rb2505): [2025-03-03 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303140000_392 @ 3263.00\n",
"[2025-03-03 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303140000_391': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303140000_391', price_type='LIMIT', limit_price=3354, submitted_time=Timestamp('2025-03-03 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303140000_392': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303140000_392', price_type='LIMIT', limit_price=3263, submitted_time=Timestamp('2025-03-03 14:00:00'), offset='OPEN')}\n",
"[2025-03-03 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 14:00:00'), open=3315.0, high=3317.0, low=3292.0, close=3296.0, volume=489506, open_oi=1892772, close_oi=1904595, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 21:00:00'), open=3320.0, high=3334.0, low=3316.0, close=3317.0, volume=336973, open_oi=1891741, close_oi=1875077, symbol='SHFE.rb2505')\n",
"[2025-03-03 21:00:00] 策略 (SHFE.rb2505): [2025-03-03 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303210000_393 @ 3330.10\n",
"[2025-03-03 21:00:00] 策略 (SHFE.rb2505): [2025-03-03 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303210000_394 @ 3246.00\n",
"[2025-03-03 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303210000_393': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303210000_393', price_type='LIMIT', limit_price=3331, submitted_time=Timestamp('2025-03-03 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303210000_394': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303210000_394', price_type='LIMIT', limit_price=3246, submitted_time=Timestamp('2025-03-03 21:00:00'), offset='OPEN')}\n",
"[2025-03-03 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 21:00:00'), open=3296.0, high=3309.0, low=3296.0, close=3307.0, volume=250119, open_oi=1904595, close_oi=1899796, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-02-28 22:00:00'), open=3317.0, high=3325.0, low=3312.0, close=3318.0, volume=189297, open_oi=1875077, close_oi=1859611, symbol='SHFE.rb2505')\n",
"[2025-03-03 22:00:00] 策略 (SHFE.rb2505): [2025-03-03 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250303220000_395 @ 3329.10\n",
"[2025-03-03 22:00:00] 策略 (SHFE.rb2505): [2025-03-03 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250303220000_396 @ 3281.00\n",
"[2025-03-03 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-03 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250303220000_395': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250303220000_395', price_type='LIMIT', limit_price=3330, submitted_time=Timestamp('2025-03-03 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250303220000_396': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250303220000_396', price_type='LIMIT', limit_price=3281, submitted_time=Timestamp('2025-03-03 22:00:00'), offset='OPEN')}\n",
"[2025-03-04 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-03 22:00:00'), open=3307.0, high=3309.0, low=3298.0, close=3301.0, volume=114814, open_oi=1899796, close_oi=1897529, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-03 09:00:00'), open=3318.0, high=3338.0, low=3315.0, close=3333.0, volume=376470, open_oi=1859611, close_oi=1853883, symbol='SHFE.rb2505')\n",
"[2025-03-04 09:00:00] 策略 (SHFE.rb2505): [2025-03-04 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250304090000_397 @ 3333.10\n",
"[2025-03-04 09:00:00] 策略 (SHFE.rb2505): [2025-03-04 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250304090000_398 @ 3278.00\n",
"[2025-03-04 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250304090000_397': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250304090000_397', price_type='LIMIT', limit_price=3334, submitted_time=Timestamp('2025-03-04 09:00:00'), offset='OPEN')}\n",
"[2025-03-04 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-04 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-04 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-04 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-04 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-04 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-04 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-04 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-04 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-04 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-04 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-04 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-04 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-05 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-05 09:00:00] 策略 (SHFE.rb2505): [2025-03-05 09:00:00] 止损信号 - PnL per unit: -10.00, 目标: -10.00\n",
"[2025-03-05 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-05 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 09:00:00'), open=3268.0, high=3275.0, low=3253.0, close=3254.0, volume=394447, open_oi=1975079, close_oi=2040148, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-04 10:00:00'), open=3270.0, high=3281.0, low=3263.0, close=3273.0, volume=202518, open_oi=1972294, close_oi=1988082, symbol='SHFE.rb2505')\n",
"[2025-03-05 10:00:00] 策略 (SHFE.rb2505): [2025-03-05 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250305100000_400 @ 3286.60\n",
"[2025-03-05 10:00:00] 策略 (SHFE.rb2505): [2025-03-05 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250305100000_401 @ 3210.00\n",
"[2025-03-05 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250305100000_400': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250305100000_400', price_type='LIMIT', limit_price=3287, submitted_time=Timestamp('2025-03-05 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250305100000_401': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250305100000_401', price_type='LIMIT', limit_price=3210, submitted_time=Timestamp('2025-03-05 10:00:00'), offset='OPEN')}\n",
"[2025-03-05 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 10:00:00'), open=3254.0, high=3282.0, low=3252.0, close=3258.0, volume=402582, open_oi=2040148, close_oi=2034932, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-04 11:00:00'), open=3273.0, high=3285.0, low=3271.0, close=3272.0, volume=130904, open_oi=1988082, close_oi=1989168, symbol='SHFE.rb2505')\n",
"[2025-03-05 11:00:00] 策略 (SHFE.rb2505): [2025-03-05 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250305110000_402 @ 3289.80\n",
"[2025-03-05 11:00:00] 策略 (SHFE.rb2505): [2025-03-05 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250305110000_403 @ 3198.00\n",
"[2025-03-05 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250305110000_402': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250305110000_402', price_type='LIMIT', limit_price=3290, submitted_time=Timestamp('2025-03-05 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250305110000_403': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250305110000_403', price_type='LIMIT', limit_price=3198, submitted_time=Timestamp('2025-03-05 11:00:00'), offset='OPEN')}\n",
"[2025-03-05 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 11:00:00'), open=3258.0, high=3272.0, low=3255.0, close=3271.0, volume=166928, open_oi=2034932, close_oi=2035071, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-04 13:00:00'), open=3272.0, high=3282.0, low=3271.0, close=3280.0, volume=119546, open_oi=1989168, close_oi=1989388, symbol='SHFE.rb2505')\n",
"[2025-03-05 13:00:00] 策略 (SHFE.rb2505): [2025-03-05 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250305130000_404 @ 3293.70\n",
"[2025-03-05 13:00:00] 策略 (SHFE.rb2505): [2025-03-05 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250305130000_405 @ 3238.00\n",
"[2025-03-05 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250305130000_404': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250305130000_404', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-03-05 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250305130000_405': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250305130000_405', price_type='LIMIT', limit_price=3238, submitted_time=Timestamp('2025-03-05 13:00:00'), offset='OPEN')}\n",
"[2025-03-05 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 13:00:00'), open=3272.0, high=3274.0, low=3261.0, close=3269.0, volume=105022, open_oi=2035071, close_oi=2039344, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-04 14:00:00'), open=3280.0, high=3291.0, low=3276.0, close=3282.0, volume=281174, open_oi=1989388, close_oi=1966385, symbol='SHFE.rb2505')\n",
"[2025-03-05 14:00:00] 策略 (SHFE.rb2505): [2025-03-05 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250305140000_406 @ 3293.50\n",
"[2025-03-05 14:00:00] 策略 (SHFE.rb2505): [2025-03-05 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250305140000_407 @ 3243.00\n",
"[2025-03-05 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250305140000_406': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250305140000_406', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-03-05 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250305140000_407': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250305140000_407', price_type='LIMIT', limit_price=3243, submitted_time=Timestamp('2025-03-05 14:00:00'), offset='OPEN')}\n",
"[2025-03-05 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 14:00:00'), open=3269.0, high=3275.0, low=3257.0, close=3259.0, volume=285864, open_oi=2039344, close_oi=2047118, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-04 21:00:00'), open=3279.0, high=3288.0, low=3272.0, close=3279.0, volume=276782, open_oi=1966385, close_oi=1982649, symbol='SHFE.rb2505')\n",
"[2025-03-05 21:00:00] 策略 (SHFE.rb2505): [2025-03-05 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250305210000_408 @ 3288.20\n",
"[2025-03-05 21:00:00] 策略 (SHFE.rb2505): [2025-03-05 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250305210000_409 @ 3224.00\n",
"[2025-03-05 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250305210000_408': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250305210000_408', price_type='LIMIT', limit_price=3289, submitted_time=Timestamp('2025-03-05 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250305210000_409': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250305210000_409', price_type='LIMIT', limit_price=3224, submitted_time=Timestamp('2025-03-05 21:00:00'), offset='OPEN')}\n",
"[2025-03-05 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 21:00:00'), open=3260.0, high=3267.0, low=3254.0, close=3261.0, volume=250069, open_oi=2047118, close_oi=2054929, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-04 22:00:00'), open=3279.0, high=3284.0, low=3267.0, close=3269.0, volume=157385, open_oi=1982649, close_oi=1975079, symbol='SHFE.rb2505')\n",
"[2025-03-05 22:00:00] 策略 (SHFE.rb2505): [2025-03-05 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250305220000_410 @ 3287.90\n",
"[2025-03-05 22:00:00] 策略 (SHFE.rb2505): [2025-03-05 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250305220000_411 @ 3235.00\n",
"[2025-03-05 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-05 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250305220000_410': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250305220000_410', price_type='LIMIT', limit_price=3288, submitted_time=Timestamp('2025-03-05 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250305220000_411': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250305220000_411', price_type='LIMIT', limit_price=3235, submitted_time=Timestamp('2025-03-05 22:00:00'), offset='OPEN')}\n",
"[2025-03-06 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-05 22:00:00'), open=3261.0, high=3265.0, low=3258.0, close=3262.0, volume=103712, open_oi=2054929, close_oi=2045926, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 09:00:00'), open=3268.0, high=3275.0, low=3253.0, close=3254.0, volume=394447, open_oi=1975079, close_oi=2040148, symbol='SHFE.rb2505')\n",
"[2025-03-06 09:00:00] 策略 (SHFE.rb2505): [2025-03-06 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306090000_412 @ 3293.90\n",
"[2025-03-06 09:00:00] 策略 (SHFE.rb2505): [2025-03-06 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306090000_413 @ 3250.00\n",
"[2025-03-06 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306090000_412': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306090000_412', price_type='LIMIT', limit_price=3294, submitted_time=Timestamp('2025-03-06 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306090000_413': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306090000_413', price_type='LIMIT', limit_price=3250, submitted_time=Timestamp('2025-03-06 09:00:00'), offset='OPEN')}\n",
"[2025-03-06 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 09:00:00'), open=3264.0, high=3288.0, low=3264.0, close=3287.0, volume=391663, open_oi=2045926, close_oi=2039127, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 10:00:00'), open=3254.0, high=3282.0, low=3252.0, close=3258.0, volume=402582, open_oi=2040148, close_oi=2034932, symbol='SHFE.rb2505')\n",
"[2025-03-06 10:00:00] 策略 (SHFE.rb2505): [2025-03-06 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306100000_414 @ 3335.00\n",
"[2025-03-06 10:00:00] 策略 (SHFE.rb2505): [2025-03-06 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306100000_415 @ 3239.00\n",
"[2025-03-06 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306100000_414': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306100000_414', price_type='LIMIT', limit_price=3335, submitted_time=Timestamp('2025-03-06 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306100000_415': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306100000_415', price_type='LIMIT', limit_price=3239, submitted_time=Timestamp('2025-03-06 10:00:00'), offset='OPEN')}\n",
"[2025-03-06 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 10:00:00'), open=3287.0, high=3289.0, low=3271.0, close=3276.0, volume=193931, open_oi=2039127, close_oi=2033965, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 11:00:00'), open=3258.0, high=3272.0, low=3255.0, close=3271.0, volume=166928, open_oi=2034932, close_oi=2035071, symbol='SHFE.rb2505')\n",
"[2025-03-06 11:00:00] 策略 (SHFE.rb2505): [2025-03-06 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306110000_416 @ 3305.40\n",
"[2025-03-06 11:00:00] 策略 (SHFE.rb2505): [2025-03-06 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306110000_417 @ 3240.00\n",
"[2025-03-06 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306110000_416': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306110000_416', price_type='LIMIT', limit_price=3306, submitted_time=Timestamp('2025-03-06 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306110000_417': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306110000_417', price_type='LIMIT', limit_price=3240, submitted_time=Timestamp('2025-03-06 11:00:00'), offset='OPEN')}\n",
"[2025-03-06 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 11:00:00'), open=3276.0, high=3288.0, low=3274.0, close=3286.0, volume=138447, open_oi=2033965, close_oi=2045488, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 13:00:00'), open=3272.0, high=3274.0, low=3261.0, close=3269.0, volume=105022, open_oi=2035071, close_oi=2039344, symbol='SHFE.rb2505')\n",
"[2025-03-06 13:00:00] 策略 (SHFE.rb2505): [2025-03-06 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306130000_418 @ 3309.60\n",
"[2025-03-06 13:00:00] 策略 (SHFE.rb2505): [2025-03-06 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306130000_419 @ 3259.00\n",
"[2025-03-06 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306130000_418': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306130000_418', price_type='LIMIT', limit_price=3310, submitted_time=Timestamp('2025-03-06 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306130000_419': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306130000_419', price_type='LIMIT', limit_price=3259, submitted_time=Timestamp('2025-03-06 13:00:00'), offset='OPEN')}\n",
"[2025-03-06 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 13:00:00'), open=3287.0, high=3299.0, low=3260.0, close=3263.0, volume=492257, open_oi=2045488, close_oi=2056544, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 14:00:00'), open=3269.0, high=3275.0, low=3257.0, close=3259.0, volume=285864, open_oi=2039344, close_oi=2047118, symbol='SHFE.rb2505')\n",
"[2025-03-06 14:00:00] 策略 (SHFE.rb2505): [2025-03-06 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306140000_420 @ 3304.10\n",
"[2025-03-06 14:00:00] 策略 (SHFE.rb2505): [2025-03-06 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306140000_421 @ 3185.00\n",
"[2025-03-06 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306140000_420': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306140000_420', price_type='LIMIT', limit_price=3305, submitted_time=Timestamp('2025-03-06 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306140000_421': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306140000_421', price_type='LIMIT', limit_price=3185, submitted_time=Timestamp('2025-03-06 14:00:00'), offset='OPEN')}\n",
"[2025-03-06 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 14:00:00'), open=3263.0, high=3287.0, low=3261.0, close=3282.0, volume=421206, open_oi=2056544, close_oi=2039890, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 21:00:00'), open=3260.0, high=3267.0, low=3254.0, close=3261.0, volume=250069, open_oi=2047118, close_oi=2054929, symbol='SHFE.rb2505')\n",
"[2025-03-06 21:00:00] 策略 (SHFE.rb2505): [2025-03-06 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306210000_422 @ 3308.60\n",
"[2025-03-06 21:00:00] 策略 (SHFE.rb2505): [2025-03-06 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306210000_423 @ 3228.00\n",
"[2025-03-06 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306210000_422': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306210000_422', price_type='LIMIT', limit_price=3309, submitted_time=Timestamp('2025-03-06 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306210000_423': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306210000_423', price_type='LIMIT', limit_price=3228, submitted_time=Timestamp('2025-03-06 21:00:00'), offset='OPEN')}\n",
"[2025-03-06 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 21:00:00'), open=3280.0, high=3285.0, low=3270.0, close=3271.0, volume=239150, open_oi=2039890, close_oi=2062072, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-05 22:00:00'), open=3261.0, high=3265.0, low=3258.0, close=3262.0, volume=103712, open_oi=2054929, close_oi=2045926, symbol='SHFE.rb2505')\n",
"[2025-03-06 22:00:00] 策略 (SHFE.rb2505): [2025-03-06 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250306220000_424 @ 3286.90\n",
"[2025-03-06 22:00:00] 策略 (SHFE.rb2505): [2025-03-06 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250306220000_425 @ 3241.00\n",
"[2025-03-06 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-06 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250306220000_424': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250306220000_424', price_type='LIMIT', limit_price=3287, submitted_time=Timestamp('2025-03-06 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250306220000_425': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250306220000_425', price_type='LIMIT', limit_price=3241, submitted_time=Timestamp('2025-03-06 22:00:00'), offset='OPEN')}\n",
"[2025-03-07 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-06 22:00:00'), open=3271.0, high=3283.0, low=3270.0, close=3275.0, volume=190479, open_oi=2062072, close_oi=2047876, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-06 09:00:00'), open=3264.0, high=3288.0, low=3264.0, close=3287.0, volume=391663, open_oi=2045926, close_oi=2039127, symbol='SHFE.rb2505')\n",
"[2025-03-07 09:00:00] 策略 (SHFE.rb2505): [2025-03-07 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250307090000_426 @ 3310.30\n",
"[2025-03-07 09:00:00] 策略 (SHFE.rb2505): [2025-03-07 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250307090000_427 @ 3249.00\n",
"[2025-03-07 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250307090000_426': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250307090000_426', price_type='LIMIT', limit_price=3311, submitted_time=Timestamp('2025-03-07 09:00:00'), offset='OPEN')}\n",
"[2025-03-07 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-07 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-07 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-07 11:00:00] 策略 (SHFE.rb2505): [2025-03-07 11:00:00] 止盈信号 - PnL per unit: 21.00, 目标: 10.00\n",
"[2025-03-07 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-07 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-07 11:00:00'), open=3270.0, high=3276.0, low=3268.0, close=3270.0, volume=104109, open_oi=2087348, close_oi=2080006, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-06 13:00:00'), open=3287.0, high=3299.0, low=3260.0, close=3263.0, volume=492257, open_oi=2045488, close_oi=2056544, symbol='SHFE.rb2505')\n",
"[2025-03-07 13:00:00] 策略 (SHFE.rb2505): [2025-03-07 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250307130000_429 @ 3321.80\n",
"[2025-03-07 13:00:00] 策略 (SHFE.rb2505): [2025-03-07 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250307130000_430 @ 3255.00\n",
"[2025-03-07 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250307130000_429': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250307130000_429', price_type='LIMIT', limit_price=3322, submitted_time=Timestamp('2025-03-07 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250307130000_430': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250307130000_430', price_type='LIMIT', limit_price=3255, submitted_time=Timestamp('2025-03-07 13:00:00'), offset='OPEN')}\n",
"[2025-03-07 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-07 13:00:00'), open=3271.0, high=3272.0, low=3262.0, close=3267.0, volume=97421, open_oi=2080006, close_oi=2076516, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-06 14:00:00'), open=3263.0, high=3287.0, low=3261.0, close=3282.0, volume=421206, open_oi=2056544, close_oi=2039890, symbol='SHFE.rb2505')\n",
"[2025-03-07 14:00:00] 策略 (SHFE.rb2505): [2025-03-07 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250307140000_431 @ 3303.20\n",
"[2025-03-07 14:00:00] 策略 (SHFE.rb2505): [2025-03-07 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250307140000_432 @ 3247.00\n",
"[2025-03-07 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250307140000_431': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250307140000_431', price_type='LIMIT', limit_price=3304, submitted_time=Timestamp('2025-03-07 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250307140000_432': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250307140000_432', price_type='LIMIT', limit_price=3247, submitted_time=Timestamp('2025-03-07 14:00:00'), offset='OPEN')}\n",
"[2025-03-07 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-07 14:00:00'), open=3267.0, high=3268.0, low=3251.0, close=3252.0, volume=386395, open_oi=2076516, close_oi=2118487, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-06 21:00:00'), open=3280.0, high=3285.0, low=3270.0, close=3271.0, volume=239150, open_oi=2039890, close_oi=2062072, symbol='SHFE.rb2505')\n",
"[2025-03-07 21:00:00] 策略 (SHFE.rb2505): [2025-03-07 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250307210000_433 @ 3268.50\n",
"[2025-03-07 21:00:00] 策略 (SHFE.rb2505): [2025-03-07 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250307210000_434 @ 3208.00\n",
"[2025-03-07 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250307210000_433': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250307210000_433', price_type='LIMIT', limit_price=3269, submitted_time=Timestamp('2025-03-07 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250307210000_434': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250307210000_434', price_type='LIMIT', limit_price=3208, submitted_time=Timestamp('2025-03-07 21:00:00'), offset='OPEN')}\n",
"[2025-03-07 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-07 21:00:00'), open=3242.0, high=3249.0, low=3228.0, close=3237.0, volume=500647, open_oi=2118487, close_oi=2167858, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-06 22:00:00'), open=3271.0, high=3283.0, low=3270.0, close=3275.0, volume=190479, open_oi=2062072, close_oi=2047876, symbol='SHFE.rb2505')\n",
"[2025-03-07 22:00:00] 策略 (SHFE.rb2505): [2025-03-07 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250307220000_435 @ 3263.10\n",
"[2025-03-07 22:00:00] 策略 (SHFE.rb2505): [2025-03-07 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250307220000_436 @ 3195.00\n",
"[2025-03-07 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-07 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250307220000_435': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250307220000_435', price_type='LIMIT', limit_price=3264, submitted_time=Timestamp('2025-03-07 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250307220000_436': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250307220000_436', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-03-07 22:00:00'), offset='OPEN')}\n",
"[2025-03-10 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-07 22:00:00'), open=3237.0, high=3248.0, low=3237.0, close=3247.0, volume=183174, open_oi=2167858, close_oi=2142395, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 09:00:00'), open=3275.0, high=3276.0, low=3245.0, close=3258.0, volume=649089, open_oi=2047876, close_oi=2149013, symbol='SHFE.rb2505')\n",
"[2025-03-10 09:00:00] 策略 (SHFE.rb2505): [2025-03-10 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310090000_437 @ 3288.70\n",
"[2025-03-10 09:00:00] 策略 (SHFE.rb2505): [2025-03-10 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310090000_438 @ 3224.00\n",
"[2025-03-10 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310090000_437': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310090000_437', price_type='LIMIT', limit_price=3289, submitted_time=Timestamp('2025-03-10 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310090000_438': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310090000_438', price_type='LIMIT', limit_price=3224, submitted_time=Timestamp('2025-03-10 09:00:00'), offset='OPEN')}\n",
"[2025-03-10 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 09:00:00'), open=3246.0, high=3266.0, low=3241.0, close=3242.0, volume=483084, open_oi=2142395, close_oi=2144039, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 10:00:00'), open=3258.0, high=3279.0, low=3256.0, close=3270.0, volume=320421, open_oi=2149013, close_oi=2087348, symbol='SHFE.rb2505')\n",
"[2025-03-10 10:00:00] 策略 (SHFE.rb2505): [2025-03-10 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310100000_439 @ 3282.10\n",
"[2025-03-10 10:00:00] 策略 (SHFE.rb2505): [2025-03-10 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310100000_440 @ 3192.00\n",
"[2025-03-10 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310100000_439': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310100000_439', price_type='LIMIT', limit_price=3283, submitted_time=Timestamp('2025-03-10 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310100000_440': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310100000_440', price_type='LIMIT', limit_price=3192, submitted_time=Timestamp('2025-03-10 10:00:00'), offset='OPEN')}\n",
"[2025-03-10 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 10:00:00'), open=3242.0, high=3245.0, low=3224.0, close=3227.0, volume=314116, open_oi=2144039, close_oi=2186351, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 11:00:00'), open=3270.0, high=3276.0, low=3268.0, close=3270.0, volume=104109, open_oi=2087348, close_oi=2080006, symbol='SHFE.rb2505')\n",
"[2025-03-10 11:00:00] 策略 (SHFE.rb2505): [2025-03-10 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310110000_441 @ 3247.10\n",
"[2025-03-10 11:00:00] 策略 (SHFE.rb2505): [2025-03-10 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310110000_442 @ 3185.00\n",
"[2025-03-10 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310110000_441': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310110000_441', price_type='LIMIT', limit_price=3248, submitted_time=Timestamp('2025-03-10 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310110000_442': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310110000_442', price_type='LIMIT', limit_price=3185, submitted_time=Timestamp('2025-03-10 11:00:00'), offset='OPEN')}\n",
"[2025-03-10 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 11:00:00'), open=3227.0, high=3231.0, low=3220.0, close=3224.0, volume=153244, open_oi=2186351, close_oi=2194625, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 13:00:00'), open=3271.0, high=3272.0, low=3262.0, close=3267.0, volume=97421, open_oi=2080006, close_oi=2076516, symbol='SHFE.rb2505')\n",
"[2025-03-10 13:00:00] 策略 (SHFE.rb2505): [2025-03-10 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310130000_443 @ 3240.50\n",
"[2025-03-10 13:00:00] 策略 (SHFE.rb2505): [2025-03-10 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310130000_444 @ 3201.00\n",
"[2025-03-10 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310130000_443': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310130000_443', price_type='LIMIT', limit_price=3241, submitted_time=Timestamp('2025-03-10 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310130000_444': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310130000_444', price_type='LIMIT', limit_price=3201, submitted_time=Timestamp('2025-03-10 13:00:00'), offset='OPEN')}\n",
"[2025-03-10 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 13:00:00'), open=3223.0, high=3227.0, low=3215.0, close=3218.0, volume=175831, open_oi=2194625, close_oi=2221732, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 14:00:00'), open=3267.0, high=3268.0, low=3251.0, close=3252.0, volume=386395, open_oi=2076516, close_oi=2118487, symbol='SHFE.rb2505')\n",
"[2025-03-10 14:00:00] 策略 (SHFE.rb2505): [2025-03-10 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310140000_445 @ 3244.40\n",
"[2025-03-10 14:00:00] 策略 (SHFE.rb2505): [2025-03-10 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310140000_446 @ 3194.00\n",
"[2025-03-10 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310140000_445': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310140000_445', price_type='LIMIT', limit_price=3245, submitted_time=Timestamp('2025-03-10 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310140000_446': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310140000_446', price_type='LIMIT', limit_price=3194, submitted_time=Timestamp('2025-03-10 14:00:00'), offset='OPEN')}\n",
"[2025-03-10 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 14:00:00'), open=3218.0, high=3227.0, low=3215.0, close=3220.0, volume=199254, open_oi=2221732, close_oi=2216822, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 21:00:00'), open=3242.0, high=3249.0, low=3228.0, close=3237.0, volume=500647, open_oi=2118487, close_oi=2167858, symbol='SHFE.rb2505')\n",
"[2025-03-10 21:00:00] 策略 (SHFE.rb2505): [2025-03-10 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310210000_447 @ 3252.20\n",
"[2025-03-10 21:00:00] 策略 (SHFE.rb2505): [2025-03-10 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310210000_448 @ 3197.00\n",
"[2025-03-10 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310210000_447': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310210000_447', price_type='LIMIT', limit_price=3253, submitted_time=Timestamp('2025-03-10 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310210000_448': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310210000_448', price_type='LIMIT', limit_price=3197, submitted_time=Timestamp('2025-03-10 21:00:00'), offset='OPEN')}\n",
"[2025-03-10 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 21:00:00'), open=3221.0, high=3225.0, low=3209.0, close=3211.0, volume=253275, open_oi=2216822, close_oi=2226223, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-07 22:00:00'), open=3237.0, high=3248.0, low=3237.0, close=3247.0, volume=183174, open_oi=2167858, close_oi=2142395, symbol='SHFE.rb2505')\n",
"[2025-03-10 22:00:00] 策略 (SHFE.rb2505): [2025-03-10 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250310220000_449 @ 3232.20\n",
"[2025-03-10 22:00:00] 策略 (SHFE.rb2505): [2025-03-10 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250310220000_450 @ 3179.00\n",
"[2025-03-10 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-10 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250310220000_449': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250310220000_449', price_type='LIMIT', limit_price=3233, submitted_time=Timestamp('2025-03-10 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250310220000_450': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250310220000_450', price_type='LIMIT', limit_price=3179, submitted_time=Timestamp('2025-03-10 22:00:00'), offset='OPEN')}\n",
"[2025-03-11 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-10 22:00:00'), open=3211.0, high=3214.0, low=3197.0, close=3203.0, volume=277462, open_oi=2226223, close_oi=2234378, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 09:00:00'), open=3246.0, high=3266.0, low=3241.0, close=3242.0, volume=483084, open_oi=2142395, close_oi=2144039, symbol='SHFE.rb2505')\n",
"[2025-03-11 09:00:00] 策略 (SHFE.rb2505): [2025-03-11 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311090000_451 @ 3238.50\n",
"[2025-03-11 09:00:00] 策略 (SHFE.rb2505): [2025-03-11 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311090000_452 @ 3166.00\n",
"[2025-03-11 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311090000_451': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311090000_451', price_type='LIMIT', limit_price=3239, submitted_time=Timestamp('2025-03-11 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311090000_452': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311090000_452', price_type='LIMIT', limit_price=3166, submitted_time=Timestamp('2025-03-11 09:00:00'), offset='OPEN')}\n",
"[2025-03-11 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 09:00:00'), open=3200.0, high=3209.0, low=3186.0, close=3207.0, volume=431900, open_oi=2234378, close_oi=2240043, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 10:00:00'), open=3242.0, high=3245.0, low=3224.0, close=3227.0, volume=314116, open_oi=2144039, close_oi=2186351, symbol='SHFE.rb2505')\n",
"[2025-03-11 10:00:00] 策略 (SHFE.rb2505): [2025-03-11 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311100000_453 @ 3243.70\n",
"[2025-03-11 10:00:00] 策略 (SHFE.rb2505): [2025-03-11 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311100000_454 @ 3161.00\n",
"[2025-03-11 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311100000_453': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311100000_453', price_type='LIMIT', limit_price=3244, submitted_time=Timestamp('2025-03-11 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311100000_454': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311100000_454', price_type='LIMIT', limit_price=3161, submitted_time=Timestamp('2025-03-11 10:00:00'), offset='OPEN')}\n",
"[2025-03-11 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 10:00:00'), open=3207.0, high=3216.0, low=3203.0, close=3206.0, volume=242734, open_oi=2240043, close_oi=2237381, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 11:00:00'), open=3227.0, high=3231.0, low=3220.0, close=3224.0, volume=153244, open_oi=2186351, close_oi=2194625, symbol='SHFE.rb2505')\n",
"[2025-03-11 11:00:00] 策略 (SHFE.rb2505): [2025-03-11 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311110000_455 @ 3225.70\n",
"[2025-03-11 11:00:00] 策略 (SHFE.rb2505): [2025-03-11 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311110000_456 @ 3180.00\n",
"[2025-03-11 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311110000_455': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311110000_455', price_type='LIMIT', limit_price=3226, submitted_time=Timestamp('2025-03-11 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311110000_456': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311110000_456', price_type='LIMIT', limit_price=3180, submitted_time=Timestamp('2025-03-11 11:00:00'), offset='OPEN')}\n",
"[2025-03-11 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 11:00:00'), open=3206.0, high=3214.0, low=3205.0, close=3206.0, volume=104802, open_oi=2237381, close_oi=2228807, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 13:00:00'), open=3223.0, high=3227.0, low=3215.0, close=3218.0, volume=175831, open_oi=2194625, close_oi=2221732, symbol='SHFE.rb2505')\n",
"[2025-03-11 13:00:00] 策略 (SHFE.rb2505): [2025-03-11 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311130000_457 @ 3225.90\n",
"[2025-03-11 13:00:00] 策略 (SHFE.rb2505): [2025-03-11 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311130000_458 @ 3189.00\n",
"[2025-03-11 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311130000_457': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311130000_457', price_type='LIMIT', limit_price=3226, submitted_time=Timestamp('2025-03-11 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311130000_458': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311130000_458', price_type='LIMIT', limit_price=3189, submitted_time=Timestamp('2025-03-11 13:00:00'), offset='OPEN')}\n",
"[2025-03-11 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 13:00:00'), open=3207.0, high=3216.0, low=3206.0, close=3214.0, volume=123348, open_oi=2228807, close_oi=2224488, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 14:00:00'), open=3218.0, high=3227.0, low=3215.0, close=3220.0, volume=199254, open_oi=2221732, close_oi=2216822, symbol='SHFE.rb2505')\n",
"[2025-03-11 14:00:00] 策略 (SHFE.rb2505): [2025-03-11 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311140000_459 @ 3233.40\n",
"[2025-03-11 14:00:00] 策略 (SHFE.rb2505): [2025-03-11 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311140000_460 @ 3194.00\n",
"[2025-03-11 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311140000_459': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311140000_459', price_type='LIMIT', limit_price=3234, submitted_time=Timestamp('2025-03-11 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311140000_460': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311140000_460', price_type='LIMIT', limit_price=3194, submitted_time=Timestamp('2025-03-11 14:00:00'), offset='OPEN')}\n",
"[2025-03-11 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 14:00:00'), open=3214.0, high=3220.0, low=3208.0, close=3209.0, volume=212857, open_oi=2224488, close_oi=2206072, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 21:00:00'), open=3221.0, high=3225.0, low=3209.0, close=3211.0, volume=253275, open_oi=2216822, close_oi=2226223, symbol='SHFE.rb2505')\n",
"[2025-03-11 21:00:00] 策略 (SHFE.rb2505): [2025-03-11 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311210000_461 @ 3241.20\n",
"[2025-03-11 21:00:00] 策略 (SHFE.rb2505): [2025-03-11 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311210000_462 @ 3192.00\n",
"[2025-03-11 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311210000_461': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311210000_461', price_type='LIMIT', limit_price=3242, submitted_time=Timestamp('2025-03-11 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311210000_462': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311210000_462', price_type='LIMIT', limit_price=3192, submitted_time=Timestamp('2025-03-11 21:00:00'), offset='OPEN')}\n",
"[2025-03-11 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 21:00:00'), open=3216.0, high=3230.0, low=3211.0, close=3223.0, volume=333458, open_oi=2206072, close_oi=2215666, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-10 22:00:00'), open=3211.0, high=3214.0, low=3197.0, close=3203.0, volume=277462, open_oi=2226223, close_oi=2234378, symbol='SHFE.rb2505')\n",
"[2025-03-11 22:00:00] 策略 (SHFE.rb2505): [2025-03-11 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250311220000_463 @ 3252.90\n",
"[2025-03-11 22:00:00] 策略 (SHFE.rb2505): [2025-03-11 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250311220000_464 @ 3185.00\n",
"[2025-03-11 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-11 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250311220000_463': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250311220000_463', price_type='LIMIT', limit_price=3253, submitted_time=Timestamp('2025-03-11 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250311220000_464': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250311220000_464', price_type='LIMIT', limit_price=3185, submitted_time=Timestamp('2025-03-11 22:00:00'), offset='OPEN')}\n",
"[2025-03-12 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-11 22:00:00'), open=3223.0, high=3225.0, low=3214.0, close=3218.0, volume=150640, open_oi=2215666, close_oi=2211567, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 09:00:00'), open=3200.0, high=3209.0, low=3186.0, close=3207.0, volume=431900, open_oi=2234378, close_oi=2240043, symbol='SHFE.rb2505')\n",
"[2025-03-12 09:00:00] 策略 (SHFE.rb2505): [2025-03-12 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312090000_465 @ 3250.10\n",
"[2025-03-12 09:00:00] 策略 (SHFE.rb2505): [2025-03-12 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312090000_466 @ 3195.00\n",
"[2025-03-12 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312090000_465': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312090000_465', price_type='LIMIT', limit_price=3251, submitted_time=Timestamp('2025-03-12 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312090000_466': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312090000_466', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-03-12 09:00:00'), offset='OPEN')}\n",
"[2025-03-12 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 09:00:00'), open=3217.0, high=3219.0, low=3208.0, close=3210.0, volume=202579, open_oi=2211567, close_oi=2223220, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 10:00:00'), open=3207.0, high=3216.0, low=3203.0, close=3206.0, volume=242734, open_oi=2240043, close_oi=2237381, symbol='SHFE.rb2505')\n",
"[2025-03-12 10:00:00] 策略 (SHFE.rb2505): [2025-03-12 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312100000_467 @ 3231.10\n",
"[2025-03-12 10:00:00] 策略 (SHFE.rb2505): [2025-03-12 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312100000_468 @ 3188.00\n",
"[2025-03-12 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312100000_467': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312100000_467', price_type='LIMIT', limit_price=3232, submitted_time=Timestamp('2025-03-12 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312100000_468': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312100000_468', price_type='LIMIT', limit_price=3188, submitted_time=Timestamp('2025-03-12 10:00:00'), offset='OPEN')}\n",
"[2025-03-12 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 10:00:00'), open=3210.0, high=3214.0, low=3202.0, close=3212.0, volume=174839, open_oi=2223220, close_oi=2235067, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 11:00:00'), open=3206.0, high=3214.0, low=3205.0, close=3206.0, volume=104802, open_oi=2237381, close_oi=2228807, symbol='SHFE.rb2505')\n",
"[2025-03-12 11:00:00] 策略 (SHFE.rb2505): [2025-03-12 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312110000_469 @ 3228.80\n",
"[2025-03-12 11:00:00] 策略 (SHFE.rb2505): [2025-03-12 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312110000_470 @ 3188.00\n",
"[2025-03-12 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312110000_469': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312110000_469', price_type='LIMIT', limit_price=3229, submitted_time=Timestamp('2025-03-12 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312110000_470': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312110000_470', price_type='LIMIT', limit_price=3188, submitted_time=Timestamp('2025-03-12 11:00:00'), offset='OPEN')}\n",
"[2025-03-12 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 11:00:00'), open=3212.0, high=3220.0, low=3206.0, close=3218.0, volume=139127, open_oi=2235067, close_oi=2229476, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 13:00:00'), open=3207.0, high=3216.0, low=3206.0, close=3214.0, volume=123348, open_oi=2228807, close_oi=2224488, symbol='SHFE.rb2505')\n",
"[2025-03-12 13:00:00] 策略 (SHFE.rb2505): [2025-03-12 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312130000_471 @ 3240.00\n",
"[2025-03-12 13:00:00] 策略 (SHFE.rb2505): [2025-03-12 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312130000_472 @ 3193.00\n",
"[2025-03-12 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312130000_471': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312130000_471', price_type='LIMIT', limit_price=3240, submitted_time=Timestamp('2025-03-12 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312130000_472': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312130000_472', price_type='LIMIT', limit_price=3193, submitted_time=Timestamp('2025-03-12 13:00:00'), offset='OPEN')}\n",
"[2025-03-12 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 13:00:00'), open=3221.0, high=3226.0, low=3216.0, close=3222.0, volume=176815, open_oi=2229476, close_oi=2225638, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 14:00:00'), open=3214.0, high=3220.0, low=3208.0, close=3209.0, volume=212857, open_oi=2224488, close_oi=2206072, symbol='SHFE.rb2505')\n",
"[2025-03-12 14:00:00] 策略 (SHFE.rb2505): [2025-03-12 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312140000_473 @ 3241.40\n",
"[2025-03-12 14:00:00] 策略 (SHFE.rb2505): [2025-03-12 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312140000_474 @ 3202.00\n",
"[2025-03-12 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312140000_473': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312140000_473', price_type='LIMIT', limit_price=3242, submitted_time=Timestamp('2025-03-12 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312140000_474': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312140000_474', price_type='LIMIT', limit_price=3202, submitted_time=Timestamp('2025-03-12 14:00:00'), offset='OPEN')}\n",
"[2025-03-12 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 14:00:00'), open=3222.0, high=3228.0, low=3209.0, close=3226.0, volume=406976, open_oi=2225638, close_oi=2200520, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 21:00:00'), open=3216.0, high=3230.0, low=3211.0, close=3223.0, volume=333458, open_oi=2206072, close_oi=2215666, symbol='SHFE.rb2505')\n",
"[2025-03-12 21:00:00] 策略 (SHFE.rb2505): [2025-03-12 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312210000_475 @ 3263.30\n",
"[2025-03-12 21:00:00] 策略 (SHFE.rb2505): [2025-03-12 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312210000_476 @ 3193.00\n",
"[2025-03-12 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312210000_475': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312210000_475', price_type='LIMIT', limit_price=3264, submitted_time=Timestamp('2025-03-12 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312210000_476': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312210000_476', price_type='LIMIT', limit_price=3193, submitted_time=Timestamp('2025-03-12 21:00:00'), offset='OPEN')}\n",
"[2025-03-12 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 21:00:00'), open=3231.0, high=3244.0, low=3230.0, close=3238.0, volume=387668, open_oi=2200520, close_oi=2180841, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-11 22:00:00'), open=3223.0, high=3225.0, low=3214.0, close=3218.0, volume=150640, open_oi=2215666, close_oi=2211567, symbol='SHFE.rb2505')\n",
"[2025-03-12 22:00:00] 策略 (SHFE.rb2505): [2025-03-12 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250312220000_477 @ 3258.20\n",
"[2025-03-12 22:00:00] 策略 (SHFE.rb2505): [2025-03-12 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250312220000_478 @ 3210.00\n",
"[2025-03-12 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-12 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250312220000_477': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250312220000_477', price_type='LIMIT', limit_price=3259, submitted_time=Timestamp('2025-03-12 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250312220000_478': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250312220000_478', price_type='LIMIT', limit_price=3210, submitted_time=Timestamp('2025-03-12 22:00:00'), offset='OPEN')}\n",
"[2025-03-13 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-12 22:00:00'), open=3238.0, high=3239.0, low=3232.0, close=3236.0, volume=135857, open_oi=2180841, close_oi=2153216, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 09:00:00'), open=3217.0, high=3219.0, low=3208.0, close=3210.0, volume=202579, open_oi=2211567, close_oi=2223220, symbol='SHFE.rb2505')\n",
"[2025-03-13 09:00:00] 策略 (SHFE.rb2505): [2025-03-13 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313090000_479 @ 3253.70\n",
"[2025-03-13 09:00:00] 策略 (SHFE.rb2505): [2025-03-13 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313090000_480 @ 3223.00\n",
"[2025-03-13 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313090000_479': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313090000_479', price_type='LIMIT', limit_price=3254, submitted_time=Timestamp('2025-03-13 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313090000_480': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313090000_480', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-03-13 09:00:00'), offset='OPEN')}\n",
"[2025-03-13 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 09:00:00'), open=3237.0, high=3242.0, low=3228.0, close=3239.0, volume=258333, open_oi=2153216, close_oi=2143683, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 10:00:00'), open=3210.0, high=3214.0, low=3202.0, close=3212.0, volume=174839, open_oi=2223220, close_oi=2235067, symbol='SHFE.rb2505')\n",
"[2025-03-13 10:00:00] 策略 (SHFE.rb2505): [2025-03-13 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313100000_481 @ 3260.40\n",
"[2025-03-13 10:00:00] 策略 (SHFE.rb2505): [2025-03-13 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313100000_482 @ 3211.00\n",
"[2025-03-13 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313100000_481': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313100000_481', price_type='LIMIT', limit_price=3261, submitted_time=Timestamp('2025-03-13 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313100000_482': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313100000_482', price_type='LIMIT', limit_price=3211, submitted_time=Timestamp('2025-03-13 10:00:00'), offset='OPEN')}\n",
"[2025-03-13 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 10:00:00'), open=3239.0, high=3255.0, low=3238.0, close=3255.0, volume=355269, open_oi=2143683, close_oi=2115291, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 11:00:00'), open=3212.0, high=3220.0, low=3206.0, close=3218.0, volume=139127, open_oi=2235067, close_oi=2229476, symbol='SHFE.rb2505')\n",
"[2025-03-13 11:00:00] 策略 (SHFE.rb2505): [2025-03-13 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313110000_483 @ 3280.30\n",
"[2025-03-13 11:00:00] 策略 (SHFE.rb2505): [2025-03-13 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313110000_484 @ 3221.00\n",
"[2025-03-13 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313110000_483': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313110000_483', price_type='LIMIT', limit_price=3281, submitted_time=Timestamp('2025-03-13 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313110000_484': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313110000_484', price_type='LIMIT', limit_price=3221, submitted_time=Timestamp('2025-03-13 11:00:00'), offset='OPEN')}\n",
"[2025-03-13 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 11:00:00'), open=3255.0, high=3257.0, low=3238.0, close=3240.0, volume=191010, open_oi=2115291, close_oi=2091666, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 13:00:00'), open=3221.0, high=3226.0, low=3216.0, close=3222.0, volume=176815, open_oi=2229476, close_oi=2225638, symbol='SHFE.rb2505')\n",
"[2025-03-13 13:00:00] 策略 (SHFE.rb2505): [2025-03-13 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313130000_485 @ 3261.50\n",
"[2025-03-13 13:00:00] 策略 (SHFE.rb2505): [2025-03-13 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313130000_486 @ 3202.00\n",
"[2025-03-13 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313130000_485': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313130000_485', price_type='LIMIT', limit_price=3262, submitted_time=Timestamp('2025-03-13 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313130000_486': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313130000_486', price_type='LIMIT', limit_price=3202, submitted_time=Timestamp('2025-03-13 13:00:00'), offset='OPEN')}\n",
"[2025-03-13 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 13:00:00'), open=3240.0, high=3244.0, low=3231.0, close=3241.0, volume=241717, open_oi=2091666, close_oi=2076891, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 14:00:00'), open=3222.0, high=3228.0, low=3209.0, close=3226.0, volume=406976, open_oi=2225638, close_oi=2200520, symbol='SHFE.rb2505')\n",
"[2025-03-13 14:00:00] 策略 (SHFE.rb2505): [2025-03-13 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313140000_487 @ 3270.30\n",
"[2025-03-13 14:00:00] 策略 (SHFE.rb2505): [2025-03-13 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313140000_488 @ 3215.00\n",
"[2025-03-13 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313140000_487': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313140000_487', price_type='LIMIT', limit_price=3271, submitted_time=Timestamp('2025-03-13 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313140000_488': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313140000_488', price_type='LIMIT', limit_price=3215, submitted_time=Timestamp('2025-03-13 14:00:00'), offset='OPEN')}\n",
"[2025-03-13 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 14:00:00'), open=3241.0, high=3258.0, low=3237.0, close=3256.0, volume=358755, open_oi=2076891, close_oi=2056013, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 21:00:00'), open=3231.0, high=3244.0, low=3230.0, close=3238.0, volume=387668, open_oi=2200520, close_oi=2180841, symbol='SHFE.rb2505')\n",
"[2025-03-13 21:00:00] 策略 (SHFE.rb2505): [2025-03-13 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313210000_489 @ 3285.30\n",
"[2025-03-13 21:00:00] 策略 (SHFE.rb2505): [2025-03-13 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313210000_490 @ 3216.00\n",
"[2025-03-13 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313210000_489': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313210000_489', price_type='LIMIT', limit_price=3286, submitted_time=Timestamp('2025-03-13 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313210000_490': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313210000_490', price_type='LIMIT', limit_price=3216, submitted_time=Timestamp('2025-03-13 21:00:00'), offset='OPEN')}\n",
"[2025-03-13 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 21:00:00'), open=3258.0, high=3260.0, low=3248.0, close=3251.0, volume=198903, open_oi=2056013, close_oi=2051926, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-12 22:00:00'), open=3238.0, high=3239.0, low=3232.0, close=3236.0, volume=135857, open_oi=2180841, close_oi=2153216, symbol='SHFE.rb2505')\n",
"[2025-03-13 22:00:00] 策略 (SHFE.rb2505): [2025-03-13 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250313220000_491 @ 3265.40\n",
"[2025-03-13 22:00:00] 策略 (SHFE.rb2505): [2025-03-13 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250313220000_492 @ 3227.00\n",
"[2025-03-13 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-13 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250313220000_491': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250313220000_491', price_type='LIMIT', limit_price=3266, submitted_time=Timestamp('2025-03-13 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250313220000_492': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250313220000_492', price_type='LIMIT', limit_price=3227, submitted_time=Timestamp('2025-03-13 22:00:00'), offset='OPEN')}\n",
"[2025-03-14 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-13 22:00:00'), open=3251.0, high=3251.0, low=3241.0, close=3247.0, volume=174199, open_oi=2051926, close_oi=2044465, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 09:00:00'), open=3237.0, high=3242.0, low=3228.0, close=3239.0, volume=258333, open_oi=2153216, close_oi=2143683, symbol='SHFE.rb2505')\n",
"[2025-03-14 09:00:00] 策略 (SHFE.rb2505): [2025-03-14 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314090000_493 @ 3271.80\n",
"[2025-03-14 09:00:00] 策略 (SHFE.rb2505): [2025-03-14 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314090000_494 @ 3230.00\n",
"[2025-03-14 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314090000_493': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314090000_493', price_type='LIMIT', limit_price=3272, submitted_time=Timestamp('2025-03-14 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314090000_494': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314090000_494', price_type='LIMIT', limit_price=3230, submitted_time=Timestamp('2025-03-14 09:00:00'), offset='OPEN')}\n",
"[2025-03-14 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 09:00:00'), open=3250.0, high=3265.0, low=3245.0, close=3262.0, volume=262925, open_oi=2044465, close_oi=2029524, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 10:00:00'), open=3239.0, high=3255.0, low=3238.0, close=3255.0, volume=355269, open_oi=2143683, close_oi=2115291, symbol='SHFE.rb2505')\n",
"[2025-03-14 10:00:00] 策略 (SHFE.rb2505): [2025-03-14 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314100000_495 @ 3292.40\n",
"[2025-03-14 10:00:00] 策略 (SHFE.rb2505): [2025-03-14 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314100000_496 @ 3222.00\n",
"[2025-03-14 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314100000_495': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314100000_495', price_type='LIMIT', limit_price=3293, submitted_time=Timestamp('2025-03-14 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314100000_496': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314100000_496', price_type='LIMIT', limit_price=3222, submitted_time=Timestamp('2025-03-14 10:00:00'), offset='OPEN')}\n",
"[2025-03-14 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 10:00:00'), open=3262.0, high=3263.0, low=3253.0, close=3258.0, volume=127807, open_oi=2029524, close_oi=2018155, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 11:00:00'), open=3255.0, high=3257.0, low=3238.0, close=3240.0, volume=191010, open_oi=2115291, close_oi=2091666, symbol='SHFE.rb2505')\n",
"[2025-03-14 11:00:00] 策略 (SHFE.rb2505): [2025-03-14 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314110000_497 @ 3285.80\n",
"[2025-03-14 11:00:00] 策略 (SHFE.rb2505): [2025-03-14 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314110000_498 @ 3238.00\n",
"[2025-03-14 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314110000_497': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314110000_497', price_type='LIMIT', limit_price=3286, submitted_time=Timestamp('2025-03-14 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314110000_498': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314110000_498', price_type='LIMIT', limit_price=3238, submitted_time=Timestamp('2025-03-14 11:00:00'), offset='OPEN')}\n",
"[2025-03-14 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 11:00:00'), open=3258.0, high=3265.0, low=3256.0, close=3260.0, volume=127993, open_oi=2018155, close_oi=2017944, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 13:00:00'), open=3240.0, high=3244.0, low=3231.0, close=3241.0, volume=241717, open_oi=2091666, close_oi=2076891, symbol='SHFE.rb2505')\n",
"[2025-03-14 13:00:00] 策略 (SHFE.rb2505): [2025-03-14 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314130000_499 @ 3279.10\n",
"[2025-03-14 13:00:00] 策略 (SHFE.rb2505): [2025-03-14 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314130000_500 @ 3241.00\n",
"[2025-03-14 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314130000_499': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314130000_499', price_type='LIMIT', limit_price=3280, submitted_time=Timestamp('2025-03-14 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314130000_500': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314130000_500', price_type='LIMIT', limit_price=3241, submitted_time=Timestamp('2025-03-14 13:00:00'), offset='OPEN')}\n",
"[2025-03-14 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 13:00:00'), open=3259.0, high=3268.0, low=3256.0, close=3265.0, volume=125563, open_oi=2017944, close_oi=2005559, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 14:00:00'), open=3241.0, high=3258.0, low=3237.0, close=3256.0, volume=358755, open_oi=2076891, close_oi=2056013, symbol='SHFE.rb2505')\n",
"[2025-03-14 14:00:00] 策略 (SHFE.rb2505): [2025-03-14 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314140000_501 @ 3296.20\n",
"[2025-03-14 14:00:00] 策略 (SHFE.rb2505): [2025-03-14 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314140000_502 @ 3241.00\n",
"[2025-03-14 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314140000_501': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314140000_501', price_type='LIMIT', limit_price=3297, submitted_time=Timestamp('2025-03-14 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314140000_502': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314140000_502', price_type='LIMIT', limit_price=3241, submitted_time=Timestamp('2025-03-14 14:00:00'), offset='OPEN')}\n",
"[2025-03-14 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 14:00:00'), open=3265.0, high=3274.0, low=3259.0, close=3267.0, volume=257116, open_oi=2005559, close_oi=1963117, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 21:00:00'), open=3258.0, high=3260.0, low=3248.0, close=3251.0, volume=198903, open_oi=2056013, close_oi=2051926, symbol='SHFE.rb2505')\n",
"[2025-03-14 21:00:00] 策略 (SHFE.rb2505): [2025-03-14 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314210000_503 @ 3289.90\n",
"[2025-03-14 21:00:00] 策略 (SHFE.rb2505): [2025-03-14 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314210000_504 @ 3238.00\n",
"[2025-03-14 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314210000_503': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314210000_503', price_type='LIMIT', limit_price=3290, submitted_time=Timestamp('2025-03-14 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314210000_504': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314210000_504', price_type='LIMIT', limit_price=3238, submitted_time=Timestamp('2025-03-14 21:00:00'), offset='OPEN')}\n",
"[2025-03-14 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 21:00:00'), open=3268.0, high=3272.0, low=3246.0, close=3247.0, volume=353322, open_oi=1963117, close_oi=1981904, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-13 22:00:00'), open=3251.0, high=3251.0, low=3241.0, close=3247.0, volume=174199, open_oi=2051926, close_oi=2044465, symbol='SHFE.rb2505')\n",
"[2025-03-14 22:00:00] 策略 (SHFE.rb2505): [2025-03-14 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250314220000_505 @ 3272.00\n",
"[2025-03-14 22:00:00] 策略 (SHFE.rb2505): [2025-03-14 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250314220000_506 @ 3195.00\n",
"[2025-03-14 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-14 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250314220000_505': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250314220000_505', price_type='LIMIT', limit_price=3272, submitted_time=Timestamp('2025-03-14 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250314220000_506': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250314220000_506', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-03-14 22:00:00'), offset='OPEN')}\n",
"[2025-03-17 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-14 22:00:00'), open=3247.0, high=3250.0, low=3240.0, close=3246.0, volume=192411, open_oi=1981904, close_oi=1984271, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 09:00:00'), open=3250.0, high=3265.0, low=3245.0, close=3262.0, volume=262925, open_oi=2044465, close_oi=2029524, symbol='SHFE.rb2505')\n",
"[2025-03-17 09:00:00] 策略 (SHFE.rb2505): [2025-03-17 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317090000_507 @ 3270.00\n",
"[2025-03-17 09:00:00] 策略 (SHFE.rb2505): [2025-03-17 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317090000_508 @ 3221.00\n",
"[2025-03-17 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317090000_507': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317090000_507', price_type='LIMIT', limit_price=3270, submitted_time=Timestamp('2025-03-17 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317090000_508': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317090000_508', price_type='LIMIT', limit_price=3221, submitted_time=Timestamp('2025-03-17 09:00:00'), offset='OPEN')}\n",
"[2025-03-17 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 09:00:00'), open=3241.0, high=3250.0, low=3224.0, close=3225.0, volume=438260, open_oi=1984271, close_oi=2015076, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 10:00:00'), open=3262.0, high=3263.0, low=3253.0, close=3258.0, volume=127807, open_oi=2029524, close_oi=2018155, symbol='SHFE.rb2505')\n",
"[2025-03-17 10:00:00] 策略 (SHFE.rb2505): [2025-03-17 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317100000_509 @ 3250.00\n",
"[2025-03-17 10:00:00] 策略 (SHFE.rb2505): [2025-03-17 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317100000_510 @ 3173.00\n",
"[2025-03-17 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317100000_509': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317100000_509', price_type='LIMIT', limit_price=3250, submitted_time=Timestamp('2025-03-17 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317100000_510': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317100000_510', price_type='LIMIT', limit_price=3173, submitted_time=Timestamp('2025-03-17 10:00:00'), offset='OPEN')}\n",
"[2025-03-17 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 10:00:00'), open=3225.0, high=3226.0, low=3216.0, close=3223.0, volume=235424, open_oi=2015076, close_oi=2041501, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 11:00:00'), open=3258.0, high=3265.0, low=3256.0, close=3260.0, volume=127993, open_oi=2018155, close_oi=2017944, symbol='SHFE.rb2505')\n",
"[2025-03-17 11:00:00] 策略 (SHFE.rb2505): [2025-03-17 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317110000_511 @ 3238.80\n",
"[2025-03-17 11:00:00] 策略 (SHFE.rb2505): [2025-03-17 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317110000_512 @ 3203.00\n",
"[2025-03-17 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317110000_511': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317110000_511', price_type='LIMIT', limit_price=3239, submitted_time=Timestamp('2025-03-17 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317110000_512': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317110000_512', price_type='LIMIT', limit_price=3203, submitted_time=Timestamp('2025-03-17 11:00:00'), offset='OPEN')}\n",
"[2025-03-17 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 11:00:00'), open=3223.0, high=3225.0, low=3218.0, close=3220.0, volume=65226, open_oi=2041501, close_oi=2041183, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 13:00:00'), open=3259.0, high=3268.0, low=3256.0, close=3265.0, volume=125563, open_oi=2017944, close_oi=2005559, symbol='SHFE.rb2505')\n",
"[2025-03-17 13:00:00] 策略 (SHFE.rb2505): [2025-03-17 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317130000_513 @ 3236.90\n",
"[2025-03-17 13:00:00] 策略 (SHFE.rb2505): [2025-03-17 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317130000_514 @ 3205.00\n",
"[2025-03-17 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317130000_513': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317130000_513', price_type='LIMIT', limit_price=3237, submitted_time=Timestamp('2025-03-17 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317130000_514': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317130000_514', price_type='LIMIT', limit_price=3205, submitted_time=Timestamp('2025-03-17 13:00:00'), offset='OPEN')}\n",
"[2025-03-17 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 13:00:00'), open=3219.0, high=3219.0, low=3211.0, close=3213.0, volume=125096, open_oi=2041183, close_oi=2056487, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 14:00:00'), open=3265.0, high=3274.0, low=3259.0, close=3267.0, volume=257116, open_oi=2005559, close_oi=1963117, symbol='SHFE.rb2505')\n",
"[2025-03-17 14:00:00] 策略 (SHFE.rb2505): [2025-03-17 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317140000_515 @ 3235.00\n",
"[2025-03-17 14:00:00] 策略 (SHFE.rb2505): [2025-03-17 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317140000_516 @ 3197.00\n",
"[2025-03-17 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317140000_515': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317140000_515', price_type='LIMIT', limit_price=3235, submitted_time=Timestamp('2025-03-17 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317140000_516': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317140000_516', price_type='LIMIT', limit_price=3197, submitted_time=Timestamp('2025-03-17 14:00:00'), offset='OPEN')}\n",
"[2025-03-17 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 14:00:00'), open=3213.0, high=3220.0, low=3210.0, close=3217.0, volume=198373, open_oi=2056487, close_oi=2048429, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 21:00:00'), open=3268.0, high=3272.0, low=3246.0, close=3247.0, volume=353322, open_oi=1963117, close_oi=1981904, symbol='SHFE.rb2505')\n",
"[2025-03-17 21:00:00] 策略 (SHFE.rb2505): [2025-03-17 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317210000_517 @ 3253.20\n",
"[2025-03-17 21:00:00] 策略 (SHFE.rb2505): [2025-03-17 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317210000_518 @ 3197.00\n",
"[2025-03-17 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317210000_517': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317210000_517', price_type='LIMIT', limit_price=3254, submitted_time=Timestamp('2025-03-17 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317210000_518': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317210000_518', price_type='LIMIT', limit_price=3197, submitted_time=Timestamp('2025-03-17 21:00:00'), offset='OPEN')}\n",
"[2025-03-17 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 21:00:00'), open=3217.0, high=3217.0, low=3202.0, close=3209.0, volume=239679, open_oi=2048429, close_oi=2080938, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-14 22:00:00'), open=3247.0, high=3250.0, low=3240.0, close=3246.0, volume=192411, open_oi=1981904, close_oi=1984271, symbol='SHFE.rb2505')\n",
"[2025-03-17 22:00:00] 策略 (SHFE.rb2505): [2025-03-17 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250317220000_519 @ 3228.50\n",
"[2025-03-17 22:00:00] 策略 (SHFE.rb2505): [2025-03-17 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250317220000_520 @ 3179.00\n",
"[2025-03-17 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-17 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250317220000_519': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250317220000_519', price_type='LIMIT', limit_price=3229, submitted_time=Timestamp('2025-03-17 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250317220000_520': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250317220000_520', price_type='LIMIT', limit_price=3179, submitted_time=Timestamp('2025-03-17 22:00:00'), offset='OPEN')}\n",
"[2025-03-18 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-17 22:00:00'), open=3209.0, high=3210.0, low=3198.0, close=3207.0, volume=169717, open_oi=2080938, close_oi=2087937, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 09:00:00'), open=3241.0, high=3250.0, low=3224.0, close=3225.0, volume=438260, open_oi=1984271, close_oi=2015076, symbol='SHFE.rb2505')\n",
"[2025-03-18 09:00:00] 策略 (SHFE.rb2505): [2025-03-18 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318090000_521 @ 3244.20\n",
"[2025-03-18 09:00:00] 策略 (SHFE.rb2505): [2025-03-18 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318090000_522 @ 3183.00\n",
"[2025-03-18 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318090000_521': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318090000_521', price_type='LIMIT', limit_price=3245, submitted_time=Timestamp('2025-03-18 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318090000_522': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318090000_522', price_type='LIMIT', limit_price=3183, submitted_time=Timestamp('2025-03-18 09:00:00'), offset='OPEN')}\n",
"[2025-03-18 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 09:00:00'), open=3207.0, high=3214.0, low=3192.0, close=3198.0, volume=374133, open_oi=2087937, close_oi=2130815, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 10:00:00'), open=3225.0, high=3226.0, low=3216.0, close=3223.0, volume=235424, open_oi=2015076, close_oi=2041501, symbol='SHFE.rb2505')\n",
"[2025-03-18 10:00:00] 策略 (SHFE.rb2505): [2025-03-18 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318100000_523 @ 3221.00\n",
"[2025-03-18 10:00:00] 策略 (SHFE.rb2505): [2025-03-18 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318100000_524 @ 3154.00\n",
"[2025-03-18 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318100000_523': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318100000_523', price_type='LIMIT', limit_price=3221, submitted_time=Timestamp('2025-03-18 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318100000_524': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318100000_524', price_type='LIMIT', limit_price=3154, submitted_time=Timestamp('2025-03-18 10:00:00'), offset='OPEN')}\n",
"[2025-03-18 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 10:00:00'), open=3198.0, high=3212.0, low=3196.0, close=3203.0, volume=163346, open_oi=2130815, close_oi=2125446, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 11:00:00'), open=3223.0, high=3225.0, low=3218.0, close=3220.0, volume=65226, open_oi=2041501, close_oi=2041183, symbol='SHFE.rb2505')\n",
"[2025-03-18 11:00:00] 策略 (SHFE.rb2505): [2025-03-18 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318110000_525 @ 3219.40\n",
"[2025-03-18 11:00:00] 策略 (SHFE.rb2505): [2025-03-18 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318110000_526 @ 3171.00\n",
"[2025-03-18 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318110000_525': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318110000_525', price_type='LIMIT', limit_price=3220, submitted_time=Timestamp('2025-03-18 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318110000_526': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318110000_526', price_type='LIMIT', limit_price=3171, submitted_time=Timestamp('2025-03-18 11:00:00'), offset='OPEN')}\n",
"[2025-03-18 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 11:00:00'), open=3203.0, high=3204.0, low=3193.0, close=3196.0, volume=113886, open_oi=2125446, close_oi=2145763, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 13:00:00'), open=3219.0, high=3219.0, low=3211.0, close=3213.0, volume=125096, open_oi=2041183, close_oi=2056487, symbol='SHFE.rb2505')\n",
"[2025-03-18 13:00:00] 策略 (SHFE.rb2505): [2025-03-18 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318130000_527 @ 3211.10\n",
"[2025-03-18 13:00:00] 策略 (SHFE.rb2505): [2025-03-18 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318130000_528 @ 3174.00\n",
"[2025-03-18 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318130000_527': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318130000_527', price_type='LIMIT', limit_price=3212, submitted_time=Timestamp('2025-03-18 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318130000_528': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318130000_528', price_type='LIMIT', limit_price=3174, submitted_time=Timestamp('2025-03-18 13:00:00'), offset='OPEN')}\n",
"[2025-03-18 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 13:00:00'), open=3196.0, high=3198.0, low=3191.0, close=3194.0, volume=123575, open_oi=2145763, close_oi=2162490, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 14:00:00'), open=3213.0, high=3220.0, low=3210.0, close=3217.0, volume=198373, open_oi=2056487, close_oi=2048429, symbol='SHFE.rb2505')\n",
"[2025-03-18 14:00:00] 策略 (SHFE.rb2505): [2025-03-18 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318140000_529 @ 3209.50\n",
"[2025-03-18 14:00:00] 策略 (SHFE.rb2505): [2025-03-18 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318140000_530 @ 3180.00\n",
"[2025-03-18 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318140000_529': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318140000_529', price_type='LIMIT', limit_price=3210, submitted_time=Timestamp('2025-03-18 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318140000_530': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318140000_530', price_type='LIMIT', limit_price=3180, submitted_time=Timestamp('2025-03-18 14:00:00'), offset='OPEN')}\n",
"[2025-03-18 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 14:00:00'), open=3194.0, high=3202.0, low=3186.0, close=3191.0, volume=314454, open_oi=2162490, close_oi=2164560, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 21:00:00'), open=3217.0, high=3217.0, low=3202.0, close=3209.0, volume=239679, open_oi=2048429, close_oi=2080938, symbol='SHFE.rb2505')\n",
"[2025-03-18 21:00:00] 策略 (SHFE.rb2505): [2025-03-18 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318210000_531 @ 3221.00\n",
"[2025-03-18 21:00:00] 策略 (SHFE.rb2505): [2025-03-18 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318210000_532 @ 3163.00\n",
"[2025-03-18 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318210000_531': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318210000_531', price_type='LIMIT', limit_price=3221, submitted_time=Timestamp('2025-03-18 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318210000_532': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318210000_532', price_type='LIMIT', limit_price=3163, submitted_time=Timestamp('2025-03-18 21:00:00'), offset='OPEN')}\n",
"[2025-03-18 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 21:00:00'), open=3195.0, high=3197.0, low=3168.0, close=3170.0, volume=496173, open_oi=2164560, close_oi=2207187, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-17 22:00:00'), open=3209.0, high=3210.0, low=3198.0, close=3207.0, volume=169717, open_oi=2080938, close_oi=2087937, symbol='SHFE.rb2505')\n",
"[2025-03-18 22:00:00] 策略 (SHFE.rb2505): [2025-03-18 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250318220000_533 @ 3198.90\n",
"[2025-03-18 22:00:00] 策略 (SHFE.rb2505): [2025-03-18 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250318220000_534 @ 3112.00\n",
"[2025-03-18 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-18 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250318220000_533': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250318220000_533', price_type='LIMIT', limit_price=3199, submitted_time=Timestamp('2025-03-18 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250318220000_534': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250318220000_534', price_type='LIMIT', limit_price=3112, submitted_time=Timestamp('2025-03-18 22:00:00'), offset='OPEN')}\n",
"[2025-03-19 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-18 22:00:00'), open=3170.0, high=3174.0, low=3168.0, close=3170.0, volume=118686, open_oi=2207187, close_oi=2202875, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-18 09:00:00'), open=3207.0, high=3214.0, low=3192.0, close=3198.0, volume=374133, open_oi=2087937, close_oi=2130815, symbol='SHFE.rb2505')\n",
"[2025-03-19 09:00:00] 策略 (SHFE.rb2505): [2025-03-19 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250319090000_535 @ 3198.40\n",
"[2025-03-19 09:00:00] 策略 (SHFE.rb2505): [2025-03-19 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250319090000_536 @ 3157.00\n",
"[2025-03-19 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250319090000_535': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250319090000_535', price_type='LIMIT', limit_price=3199, submitted_time=Timestamp('2025-03-19 09:00:00'), offset='OPEN')}\n",
"[2025-03-19 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-19 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-19 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-19 11:00:00] 策略 (SHFE.rb2505): [2025-03-19 11:00:00] 止盈信号 - PnL per unit: 14.00, 目标: 10.00\n",
"[2025-03-19 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-19 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-19 11:00:00'), open=3171.0, high=3175.0, low=3165.0, close=3168.0, volume=106899, open_oi=2188091, close_oi=2178685, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-18 13:00:00'), open=3196.0, high=3198.0, low=3191.0, close=3194.0, volume=123575, open_oi=2145763, close_oi=2162490, symbol='SHFE.rb2505')\n",
"[2025-03-19 13:00:00] 策略 (SHFE.rb2505): [2025-03-19 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250319130000_538 @ 3182.40\n",
"[2025-03-19 13:00:00] 策略 (SHFE.rb2505): [2025-03-19 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250319130000_539 @ 3149.00\n",
"[2025-03-19 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250319130000_538': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250319130000_538', price_type='LIMIT', limit_price=3183, submitted_time=Timestamp('2025-03-19 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250319130000_539': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250319130000_539', price_type='LIMIT', limit_price=3149, submitted_time=Timestamp('2025-03-19 13:00:00'), offset='OPEN')}\n",
"[2025-03-19 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-19 13:00:00'), open=3169.0, high=3173.0, low=3161.0, close=3173.0, volume=111874, open_oi=2178685, close_oi=2181424, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-18 14:00:00'), open=3194.0, high=3202.0, low=3186.0, close=3191.0, volume=314454, open_oi=2162490, close_oi=2164560, symbol='SHFE.rb2505')\n",
"[2025-03-19 14:00:00] 策略 (SHFE.rb2505): [2025-03-19 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250319140000_540 @ 3198.20\n",
"[2025-03-19 14:00:00] 策略 (SHFE.rb2505): [2025-03-19 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250319140000_541 @ 3149.00\n",
"[2025-03-19 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250319140000_540': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250319140000_540', price_type='LIMIT', limit_price=3199, submitted_time=Timestamp('2025-03-19 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250319140000_541': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250319140000_541', price_type='LIMIT', limit_price=3149, submitted_time=Timestamp('2025-03-19 14:00:00'), offset='OPEN')}\n",
"[2025-03-19 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-19 14:00:00'), open=3173.0, high=3174.0, low=3156.0, close=3162.0, volume=262743, open_oi=2181424, close_oi=2173949, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-18 21:00:00'), open=3195.0, high=3197.0, low=3168.0, close=3170.0, volume=496173, open_oi=2164560, close_oi=2207187, symbol='SHFE.rb2505')\n",
"[2025-03-19 21:00:00] 策略 (SHFE.rb2505): [2025-03-19 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250319210000_542 @ 3204.80\n",
"[2025-03-19 21:00:00] 策略 (SHFE.rb2505): [2025-03-19 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250319210000_543 @ 3125.00\n",
"[2025-03-19 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250319210000_542': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250319210000_542', price_type='LIMIT', limit_price=3205, submitted_time=Timestamp('2025-03-19 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250319210000_543': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250319210000_543', price_type='LIMIT', limit_price=3125, submitted_time=Timestamp('2025-03-19 21:00:00'), offset='OPEN')}\n",
"[2025-03-19 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-19 21:00:00'), open=3161.0, high=3166.0, low=3155.0, close=3159.0, volume=234932, open_oi=2173949, close_oi=2198933, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-18 22:00:00'), open=3170.0, high=3174.0, low=3168.0, close=3170.0, volume=118686, open_oi=2207187, close_oi=2202875, symbol='SHFE.rb2505')\n",
"[2025-03-19 22:00:00] 策略 (SHFE.rb2505): [2025-03-19 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250319220000_544 @ 3171.70\n",
"[2025-03-19 22:00:00] 策略 (SHFE.rb2505): [2025-03-19 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250319220000_545 @ 3137.00\n",
"[2025-03-19 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-19 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250319220000_544': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250319220000_544', price_type='LIMIT', limit_price=3172, submitted_time=Timestamp('2025-03-19 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250319220000_545': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250319220000_545', price_type='LIMIT', limit_price=3137, submitted_time=Timestamp('2025-03-19 22:00:00'), offset='OPEN')}\n",
"[2025-03-20 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-19 22:00:00'), open=3159.0, high=3160.0, low=3152.0, close=3156.0, volume=129556, open_oi=2198933, close_oi=2195348, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-19 09:00:00'), open=3169.0, high=3171.0, low=3155.0, close=3164.0, volume=335219, open_oi=2202875, close_oi=2193834, symbol='SHFE.rb2505')\n",
"[2025-03-20 09:00:00] 策略 (SHFE.rb2505): [2025-03-20 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250320090000_546 @ 3180.20\n",
"[2025-03-20 09:00:00] 策略 (SHFE.rb2505): [2025-03-20 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250320090000_547 @ 3141.00\n",
"[2025-03-20 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250320090000_546': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250320090000_546', price_type='LIMIT', limit_price=3181, submitted_time=Timestamp('2025-03-20 09:00:00'), offset='OPEN')}\n",
"[2025-03-20 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-20 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-20 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-20 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-20 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-20 13:00:00] 策略 (SHFE.rb2505): [2025-03-20 13:00:00] 止盈信号 - PnL per unit: 26.00, 目标: 10.00\n",
"[2025-03-20 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-20 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-20 13:00:00'), open=3167.0, high=3175.0, low=3159.0, close=3168.0, volume=182934, open_oi=2184983, close_oi=2174812, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-19 14:00:00'), open=3173.0, high=3174.0, low=3156.0, close=3162.0, volume=262743, open_oi=2181424, close_oi=2173949, symbol='SHFE.rb2505')\n",
"[2025-03-20 14:00:00] 策略 (SHFE.rb2505): [2025-03-20 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250320140000_549 @ 3197.60\n",
"[2025-03-20 14:00:00] 策略 (SHFE.rb2505): [2025-03-20 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250320140000_550 @ 3136.00\n",
"[2025-03-20 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250320140000_549': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250320140000_549', price_type='LIMIT', limit_price=3198, submitted_time=Timestamp('2025-03-20 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250320140000_550': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250320140000_550', price_type='LIMIT', limit_price=3136, submitted_time=Timestamp('2025-03-20 14:00:00'), offset='OPEN')}\n",
"[2025-03-20 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-20 14:00:00'), open=3168.0, high=3176.0, low=3162.0, close=3176.0, volume=233295, open_oi=2174812, close_oi=2137880, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-19 21:00:00'), open=3161.0, high=3166.0, low=3155.0, close=3159.0, volume=234932, open_oi=2173949, close_oi=2198933, symbol='SHFE.rb2505')\n",
"[2025-03-20 21:00:00] 策略 (SHFE.rb2505): [2025-03-20 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250320210000_551 @ 3192.20\n",
"[2025-03-20 21:00:00] 策略 (SHFE.rb2505): [2025-03-20 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250320210000_552 @ 3144.00\n",
"[2025-03-20 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250320210000_551': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250320210000_551', price_type='LIMIT', limit_price=3193, submitted_time=Timestamp('2025-03-20 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250320210000_552': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250320210000_552', price_type='LIMIT', limit_price=3144, submitted_time=Timestamp('2025-03-20 21:00:00'), offset='OPEN')}\n",
"[2025-03-20 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-20 21:00:00'), open=3172.0, high=3178.0, low=3162.0, close=3166.0, volume=264070, open_oi=2137880, close_oi=2137247, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-19 22:00:00'), open=3159.0, high=3160.0, low=3152.0, close=3156.0, volume=129556, open_oi=2198933, close_oi=2195348, symbol='SHFE.rb2505')\n",
"[2025-03-20 22:00:00] 策略 (SHFE.rb2505): [2025-03-20 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250320220000_553 @ 3183.60\n",
"[2025-03-20 22:00:00] 策略 (SHFE.rb2505): [2025-03-20 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250320220000_554 @ 3134.00\n",
"[2025-03-20 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-20 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250320220000_553': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250320220000_553', price_type='LIMIT', limit_price=3184, submitted_time=Timestamp('2025-03-20 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250320220000_554': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250320220000_554', price_type='LIMIT', limit_price=3134, submitted_time=Timestamp('2025-03-20 22:00:00'), offset='OPEN')}\n",
"[2025-03-21 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-20 22:00:00'), open=3166.0, high=3171.0, low=3156.0, close=3167.0, volume=203523, open_oi=2137247, close_oi=2121887, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 09:00:00'), open=3157.0, high=3161.0, low=3134.0, close=3134.0, volume=395801, open_oi=2195348, close_oi=2212205, symbol='SHFE.rb2505')\n",
"[2025-03-21 09:00:00] 策略 (SHFE.rb2505): [2025-03-21 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321090000_555 @ 3207.90\n",
"[2025-03-21 09:00:00] 策略 (SHFE.rb2505): [2025-03-21 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321090000_556 @ 3138.00\n",
"[2025-03-21 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321090000_555': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250321090000_555', price_type='LIMIT', limit_price=3208, submitted_time=Timestamp('2025-03-21 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250321090000_556': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321090000_556', price_type='LIMIT', limit_price=3138, submitted_time=Timestamp('2025-03-21 09:00:00'), offset='OPEN')}\n",
"[2025-03-21 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-21 09:00:00'), open=3168.0, high=3175.0, low=3164.0, close=3166.0, volume=223225, open_oi=2121887, close_oi=2106974, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 10:00:00'), open=3134.0, high=3153.0, low=3134.0, close=3149.0, volume=221796, open_oi=2212205, close_oi=2200502, symbol='SHFE.rb2505')\n",
"[2025-03-21 10:00:00] 策略 (SHFE.rb2505): [2025-03-21 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321100000_557 @ 3194.30\n",
"[2025-03-21 10:00:00] 策略 (SHFE.rb2505): [2025-03-21 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321100000_558 @ 3144.00\n",
"[2025-03-21 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321100000_557': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250321100000_557', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-03-21 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250321100000_558': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321100000_558', price_type='LIMIT', limit_price=3144, submitted_time=Timestamp('2025-03-21 10:00:00'), offset='OPEN')}\n",
"[2025-03-21 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-21 10:00:00'), open=3166.0, high=3177.0, low=3165.0, close=3165.0, volume=143560, open_oi=2106974, close_oi=2097796, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 11:00:00'), open=3149.0, high=3176.0, low=3148.0, close=3167.0, volume=328857, open_oi=2200502, close_oi=2184983, symbol='SHFE.rb2505')\n",
"[2025-03-21 11:00:00] 策略 (SHFE.rb2505): [2025-03-21 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321110000_559 @ 3204.60\n",
"[2025-03-21 11:00:00] 策略 (SHFE.rb2505): [2025-03-21 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321110000_560 @ 3141.00\n",
"[2025-03-21 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321110000_559': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250321110000_559', price_type='LIMIT', limit_price=3205, submitted_time=Timestamp('2025-03-21 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250321110000_560': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321110000_560', price_type='LIMIT', limit_price=3141, submitted_time=Timestamp('2025-03-21 11:00:00'), offset='OPEN')}\n",
"[2025-03-21 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-21 11:00:00'), open=3165.0, high=3165.0, low=3151.0, close=3161.0, volume=203641, open_oi=2097796, close_oi=2097595, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 13:00:00'), open=3167.0, high=3175.0, low=3159.0, close=3168.0, volume=182934, open_oi=2184983, close_oi=2174812, symbol='SHFE.rb2505')\n",
"[2025-03-21 13:00:00] 策略 (SHFE.rb2505): [2025-03-21 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321130000_561 @ 3186.20\n",
"[2025-03-21 13:00:00] 策略 (SHFE.rb2505): [2025-03-21 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321130000_562 @ 3132.00\n",
"[2025-03-21 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321130000_561': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250321130000_561', price_type='LIMIT', limit_price=3187, submitted_time=Timestamp('2025-03-21 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250321130000_562': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321130000_562', price_type='LIMIT', limit_price=3132, submitted_time=Timestamp('2025-03-21 13:00:00'), offset='OPEN')}\n",
"[2025-03-21 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-21 13:00:00'), open=3160.0, high=3169.0, low=3157.0, close=3167.0, volume=112354, open_oi=2097595, close_oi=2086500, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 14:00:00'), open=3168.0, high=3176.0, low=3162.0, close=3176.0, volume=233295, open_oi=2174812, close_oi=2137880, symbol='SHFE.rb2505')\n",
"[2025-03-21 14:00:00] 策略 (SHFE.rb2505): [2025-03-21 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321140000_563 @ 3189.80\n",
"[2025-03-21 14:00:00] 策略 (SHFE.rb2505): [2025-03-21 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321140000_564 @ 3143.00\n",
"[2025-03-21 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321140000_563': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250321140000_563', price_type='LIMIT', limit_price=3190, submitted_time=Timestamp('2025-03-21 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250321140000_564': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321140000_564', price_type='LIMIT', limit_price=3143, submitted_time=Timestamp('2025-03-21 14:00:00'), offset='OPEN')}\n",
"[2025-03-21 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-21 14:00:00'), open=3167.0, high=3169.0, low=3154.0, close=3156.0, volume=205508, open_oi=2086500, close_oi=2077123, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 21:00:00'), open=3172.0, high=3178.0, low=3162.0, close=3166.0, volume=264070, open_oi=2137880, close_oi=2137247, symbol='SHFE.rb2505')\n",
"[2025-03-21 21:00:00] 策略 (SHFE.rb2505): [2025-03-21 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321210000_565 @ 3184.70\n",
"[2025-03-21 21:00:00] 策略 (SHFE.rb2505): [2025-03-21 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321210000_566 @ 3128.00\n",
"[2025-03-21 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321210000_565': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250321210000_565', price_type='LIMIT', limit_price=3185, submitted_time=Timestamp('2025-03-21 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250321210000_566': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321210000_566', price_type='LIMIT', limit_price=3128, submitted_time=Timestamp('2025-03-21 21:00:00'), offset='OPEN')}\n",
"[2025-03-21 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-21 21:00:00'), open=3158.0, high=3161.0, low=3145.0, close=3146.0, volume=255173, open_oi=2077123, close_oi=2095721, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-20 22:00:00'), open=3166.0, high=3171.0, low=3156.0, close=3167.0, volume=203523, open_oi=2137247, close_oi=2121887, symbol='SHFE.rb2505')\n",
"[2025-03-21 22:00:00] 策略 (SHFE.rb2505): [2025-03-21 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250321220000_567 @ 3172.00\n",
"[2025-03-21 22:00:00] 策略 (SHFE.rb2505): [2025-03-21 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250321220000_568 @ 3114.00\n",
"[2025-03-21 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-21 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250321220000_568': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250321220000_568', price_type='LIMIT', limit_price=3114, submitted_time=Timestamp('2025-03-21 22:00:00'), offset='OPEN')}\n",
"[2025-03-24 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-03-24 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-24 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-03-24 10:00:00] 策略 (SHFE.rb2505): [2025-03-24 10:00:00] 止损信号 - PnL per unit: -15.00, 目标: -10.00\n",
"[2025-03-24 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-24 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-24 10:00:00'), open=3187.0, high=3201.0, low=3185.0, close=3200.0, volume=247165, open_oi=2025346, close_oi=2007396, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-21 11:00:00'), open=3165.0, high=3165.0, low=3151.0, close=3161.0, volume=203641, open_oi=2097796, close_oi=2097595, symbol='SHFE.rb2505')\n",
"[2025-03-24 11:00:00] 策略 (SHFE.rb2505): [2025-03-24 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250324110000_570 @ 3224.80\n",
"[2025-03-24 11:00:00] 策略 (SHFE.rb2505): [2025-03-24 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250324110000_571 @ 3168.00\n",
"[2025-03-24 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250324110000_570': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250324110000_570', price_type='LIMIT', limit_price=3225, submitted_time=Timestamp('2025-03-24 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250324110000_571': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250324110000_571', price_type='LIMIT', limit_price=3168, submitted_time=Timestamp('2025-03-24 11:00:00'), offset='OPEN')}\n",
"[2025-03-24 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-24 11:00:00'), open=3200.0, high=3207.0, low=3197.0, close=3198.0, volume=177070, open_oi=2007396, close_oi=1981378, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-21 13:00:00'), open=3160.0, high=3169.0, low=3157.0, close=3167.0, volume=112354, open_oi=2097595, close_oi=2086500, symbol='SHFE.rb2505')\n",
"[2025-03-24 13:00:00] 策略 (SHFE.rb2505): [2025-03-24 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250324130000_572 @ 3217.40\n",
"[2025-03-24 13:00:00] 策略 (SHFE.rb2505): [2025-03-24 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250324130000_573 @ 3178.00\n",
"[2025-03-24 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250324130000_572': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250324130000_572', price_type='LIMIT', limit_price=3218, submitted_time=Timestamp('2025-03-24 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250324130000_573': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250324130000_573', price_type='LIMIT', limit_price=3178, submitted_time=Timestamp('2025-03-24 13:00:00'), offset='OPEN')}\n",
"[2025-03-24 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-24 13:00:00'), open=3198.0, high=3205.0, low=3197.0, close=3204.0, volume=102902, open_oi=1981378, close_oi=1969065, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-21 14:00:00'), open=3167.0, high=3169.0, low=3154.0, close=3156.0, volume=205508, open_oi=2086500, close_oi=2077123, symbol='SHFE.rb2505')\n",
"[2025-03-24 14:00:00] 策略 (SHFE.rb2505): [2025-03-24 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250324140000_574 @ 3226.00\n",
"[2025-03-24 14:00:00] 策略 (SHFE.rb2505): [2025-03-24 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250324140000_575 @ 3188.00\n",
"[2025-03-24 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250324140000_574': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250324140000_574', price_type='LIMIT', limit_price=3226, submitted_time=Timestamp('2025-03-24 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250324140000_575': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250324140000_575', price_type='LIMIT', limit_price=3188, submitted_time=Timestamp('2025-03-24 14:00:00'), offset='OPEN')}\n",
"[2025-03-24 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-24 14:00:00'), open=3204.0, high=3210.0, low=3198.0, close=3204.0, volume=191638, open_oi=1969065, close_oi=1930428, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-21 21:00:00'), open=3158.0, high=3161.0, low=3145.0, close=3146.0, volume=255173, open_oi=2077123, close_oi=2095721, symbol='SHFE.rb2505')\n",
"[2025-03-24 21:00:00] 策略 (SHFE.rb2505): [2025-03-24 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250324210000_576 @ 3227.20\n",
"[2025-03-24 21:00:00] 策略 (SHFE.rb2505): [2025-03-24 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250324210000_577 @ 3178.00\n",
"[2025-03-24 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250324210000_576': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250324210000_576', price_type='LIMIT', limit_price=3228, submitted_time=Timestamp('2025-03-24 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250324210000_577': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250324210000_577', price_type='LIMIT', limit_price=3178, submitted_time=Timestamp('2025-03-24 21:00:00'), offset='OPEN')}\n",
"[2025-03-24 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-24 21:00:00'), open=3202.0, high=3210.0, low=3201.0, close=3207.0, volume=199134, open_oi=1930428, close_oi=1924362, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-21 22:00:00'), open=3146.0, high=3175.0, low=3136.0, close=3172.0, volume=477461, open_oi=2095721, close_oi=2070770, symbol='SHFE.rb2505')\n",
"[2025-03-24 22:00:00] 策略 (SHFE.rb2505): [2025-03-24 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250324220000_578 @ 3258.30\n",
"[2025-03-24 22:00:00] 策略 (SHFE.rb2505): [2025-03-24 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250324220000_579 @ 3189.00\n",
"[2025-03-24 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-24 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250324220000_578': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250324220000_578', price_type='LIMIT', limit_price=3259, submitted_time=Timestamp('2025-03-24 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250324220000_579': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250324220000_579', price_type='LIMIT', limit_price=3189, submitted_time=Timestamp('2025-03-24 22:00:00'), offset='OPEN')}\n",
"[2025-03-25 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-24 22:00:00'), open=3207.0, high=3208.0, low=3200.0, close=3206.0, volume=130908, open_oi=1924362, close_oi=1904015, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-24 09:00:00'), open=3175.0, high=3194.0, low=3175.0, close=3187.0, volume=443383, open_oi=2070770, close_oi=2025346, symbol='SHFE.rb2505')\n",
"[2025-03-25 09:00:00] 策略 (SHFE.rb2505): [2025-03-25 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250325090000_580 @ 3233.80\n",
"[2025-03-25 09:00:00] 策略 (SHFE.rb2505): [2025-03-25 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250325090000_581 @ 3191.00\n",
"[2025-03-25 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250325090000_580': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250325090000_580', price_type='LIMIT', limit_price=3234, submitted_time=Timestamp('2025-03-25 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250325090000_581': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250325090000_581', price_type='LIMIT', limit_price=3191, submitted_time=Timestamp('2025-03-25 09:00:00'), offset='OPEN')}\n",
"[2025-03-25 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-25 09:00:00'), open=3207.0, high=3208.0, low=3201.0, close=3201.0, volume=172163, open_oi=1904015, close_oi=1889506, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-24 10:00:00'), open=3187.0, high=3201.0, low=3185.0, close=3200.0, volume=247165, open_oi=2025346, close_oi=2007396, symbol='SHFE.rb2505')\n",
"[2025-03-25 10:00:00] 策略 (SHFE.rb2505): [2025-03-25 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250325100000_582 @ 3223.70\n",
"[2025-03-25 10:00:00] 策略 (SHFE.rb2505): [2025-03-25 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250325100000_583 @ 3187.00\n",
"[2025-03-25 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250325100000_582': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250325100000_582', price_type='LIMIT', limit_price=3224, submitted_time=Timestamp('2025-03-25 10:00:00'), offset='OPEN')}\n",
"[2025-03-25 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-25 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-25 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-25 13:00:00] 策略 (SHFE.rb2505): [2025-03-25 13:00:00] 止盈信号 - PnL per unit: 29.00, 目标: 10.00\n",
"[2025-03-25 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-25 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-25 13:00:00'), open=3216.0, high=3224.0, low=3212.0, close=3218.0, volume=255617, open_oi=1851884, close_oi=1835355, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-24 14:00:00'), open=3204.0, high=3210.0, low=3198.0, close=3204.0, volume=191638, open_oi=1969065, close_oi=1930428, symbol='SHFE.rb2505')\n",
"[2025-03-25 14:00:00] 策略 (SHFE.rb2505): [2025-03-25 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250325140000_585 @ 3238.40\n",
"[2025-03-25 14:00:00] 策略 (SHFE.rb2505): [2025-03-25 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250325140000_586 @ 3194.00\n",
"[2025-03-25 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250325140000_585': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250325140000_585', price_type='LIMIT', limit_price=3239, submitted_time=Timestamp('2025-03-25 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250325140000_586': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250325140000_586', price_type='LIMIT', limit_price=3194, submitted_time=Timestamp('2025-03-25 14:00:00'), offset='OPEN')}\n",
"[2025-03-25 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-25 14:00:00'), open=3218.0, high=3225.0, low=3216.0, close=3220.0, volume=258484, open_oi=1835355, close_oi=1794958, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-24 21:00:00'), open=3202.0, high=3210.0, low=3201.0, close=3207.0, volume=199134, open_oi=1930428, close_oi=1924362, symbol='SHFE.rb2505')\n",
"[2025-03-25 21:00:00] 策略 (SHFE.rb2505): [2025-03-25 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250325210000_587 @ 3235.30\n",
"[2025-03-25 21:00:00] 策略 (SHFE.rb2505): [2025-03-25 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250325210000_588 @ 3202.00\n",
"[2025-03-25 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250325210000_587': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250325210000_587', price_type='LIMIT', limit_price=3236, submitted_time=Timestamp('2025-03-25 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250325210000_588': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250325210000_588', price_type='LIMIT', limit_price=3202, submitted_time=Timestamp('2025-03-25 21:00:00'), offset='OPEN')}\n",
"[2025-03-25 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-25 21:00:00'), open=3220.0, high=3224.0, low=3215.0, close=3216.0, volume=174397, open_oi=1794958, close_oi=1789630, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-24 22:00:00'), open=3207.0, high=3208.0, low=3200.0, close=3206.0, volume=130908, open_oi=1924362, close_oi=1904015, symbol='SHFE.rb2505')\n",
"[2025-03-25 22:00:00] 策略 (SHFE.rb2505): [2025-03-25 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250325220000_589 @ 3230.10\n",
"[2025-03-25 22:00:00] 策略 (SHFE.rb2505): [2025-03-25 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250325220000_590 @ 3198.00\n",
"[2025-03-25 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-25 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250325220000_589': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250325220000_589', price_type='LIMIT', limit_price=3231, submitted_time=Timestamp('2025-03-25 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250325220000_590': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250325220000_590', price_type='LIMIT', limit_price=3198, submitted_time=Timestamp('2025-03-25 22:00:00'), offset='OPEN')}\n",
"[2025-03-26 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-25 22:00:00'), open=3216.0, high=3220.0, low=3214.0, close=3219.0, volume=121924, open_oi=1789630, close_oi=1779138, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 09:00:00'), open=3207.0, high=3208.0, low=3201.0, close=3201.0, volume=172163, open_oi=1904015, close_oi=1889506, symbol='SHFE.rb2505')\n",
"[2025-03-26 09:00:00] 策略 (SHFE.rb2505): [2025-03-26 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326090000_591 @ 3231.40\n",
"[2025-03-26 09:00:00] 策略 (SHFE.rb2505): [2025-03-26 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326090000_592 @ 3208.00\n",
"[2025-03-26 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326090000_591': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326090000_591', price_type='LIMIT', limit_price=3232, submitted_time=Timestamp('2025-03-26 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326090000_592': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326090000_592', price_type='LIMIT', limit_price=3208, submitted_time=Timestamp('2025-03-26 09:00:00'), offset='OPEN')}\n",
"[2025-03-26 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 09:00:00'), open=3220.0, high=3229.0, low=3214.0, close=3216.0, volume=244648, open_oi=1779138, close_oi=1773944, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 10:00:00'), open=3201.0, high=3202.0, low=3185.0, close=3187.0, volume=292280, open_oi=1889506, close_oi=1867027, symbol='SHFE.rb2505')\n",
"[2025-03-26 10:00:00] 策略 (SHFE.rb2505): [2025-03-26 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326100000_593 @ 3243.90\n",
"[2025-03-26 10:00:00] 策略 (SHFE.rb2505): [2025-03-26 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326100000_594 @ 3186.00\n",
"[2025-03-26 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326100000_593': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326100000_593', price_type='LIMIT', limit_price=3244, submitted_time=Timestamp('2025-03-26 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326100000_594': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326100000_594', price_type='LIMIT', limit_price=3186, submitted_time=Timestamp('2025-03-26 10:00:00'), offset='OPEN')}\n",
"[2025-03-26 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 10:00:00'), open=3216.0, high=3218.0, low=3207.0, close=3217.0, volume=181920, open_oi=1773944, close_oi=1757587, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 11:00:00'), open=3187.0, high=3220.0, low=3186.0, close=3214.0, volume=367868, open_oi=1867027, close_oi=1851884, symbol='SHFE.rb2505')\n",
"[2025-03-26 11:00:00] 策略 (SHFE.rb2505): [2025-03-26 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326110000_595 @ 3263.30\n",
"[2025-03-26 11:00:00] 策略 (SHFE.rb2505): [2025-03-26 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326110000_596 @ 3195.00\n",
"[2025-03-26 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326110000_595': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326110000_595', price_type='LIMIT', limit_price=3264, submitted_time=Timestamp('2025-03-26 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326110000_596': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326110000_596', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-03-26 11:00:00'), offset='OPEN')}\n",
"[2025-03-26 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 11:00:00'), open=3217.0, high=3218.0, low=3207.0, close=3207.0, volume=88041, open_oi=1757587, close_oi=1742718, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 13:00:00'), open=3216.0, high=3224.0, low=3212.0, close=3218.0, volume=255617, open_oi=1851884, close_oi=1835355, symbol='SHFE.rb2505')\n",
"[2025-03-26 13:00:00] 策略 (SHFE.rb2505): [2025-03-26 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326130000_597 @ 3226.90\n",
"[2025-03-26 13:00:00] 策略 (SHFE.rb2505): [2025-03-26 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326130000_598 @ 3185.00\n",
"[2025-03-26 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326130000_597': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326130000_597', price_type='LIMIT', limit_price=3227, submitted_time=Timestamp('2025-03-26 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326130000_598': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326130000_598', price_type='LIMIT', limit_price=3185, submitted_time=Timestamp('2025-03-26 13:00:00'), offset='OPEN')}\n",
"[2025-03-26 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 13:00:00'), open=3207.0, high=3215.0, low=3202.0, close=3215.0, volume=153745, open_oi=1742718, close_oi=1735311, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 14:00:00'), open=3218.0, high=3225.0, low=3216.0, close=3220.0, volume=258484, open_oi=1835355, close_oi=1794958, symbol='SHFE.rb2505')\n",
"[2025-03-26 14:00:00] 策略 (SHFE.rb2505): [2025-03-26 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326140000_599 @ 3232.30\n",
"[2025-03-26 14:00:00] 策略 (SHFE.rb2505): [2025-03-26 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326140000_600 @ 3189.00\n",
"[2025-03-26 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326140000_599': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326140000_599', price_type='LIMIT', limit_price=3233, submitted_time=Timestamp('2025-03-26 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326140000_600': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326140000_600', price_type='LIMIT', limit_price=3189, submitted_time=Timestamp('2025-03-26 14:00:00'), offset='OPEN')}\n",
"[2025-03-26 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 14:00:00'), open=3215.0, high=3218.0, low=3206.0, close=3209.0, volume=198405, open_oi=1735311, close_oi=1712086, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 21:00:00'), open=3220.0, high=3224.0, low=3215.0, close=3216.0, volume=174397, open_oi=1794958, close_oi=1789630, symbol='SHFE.rb2505')\n",
"[2025-03-26 21:00:00] 策略 (SHFE.rb2505): [2025-03-26 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326210000_601 @ 3222.80\n",
"[2025-03-26 21:00:00] 策略 (SHFE.rb2505): [2025-03-26 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326210000_602 @ 3182.00\n",
"[2025-03-26 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326210000_601': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326210000_601', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-03-26 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326210000_602': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326210000_602', price_type='LIMIT', limit_price=3182, submitted_time=Timestamp('2025-03-26 21:00:00'), offset='OPEN')}\n",
"[2025-03-26 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 21:00:00'), open=3206.0, high=3212.0, low=3204.0, close=3211.0, volume=164562, open_oi=1712086, close_oi=1715707, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-25 22:00:00'), open=3216.0, high=3220.0, low=3214.0, close=3219.0, volume=121924, open_oi=1789630, close_oi=1779138, symbol='SHFE.rb2505')\n",
"[2025-03-26 22:00:00] 策略 (SHFE.rb2505): [2025-03-26 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250326220000_603 @ 3222.20\n",
"[2025-03-26 22:00:00] 策略 (SHFE.rb2505): [2025-03-26 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250326220000_604 @ 3195.00\n",
"[2025-03-26 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-26 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250326220000_603': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250326220000_603', price_type='LIMIT', limit_price=3223, submitted_time=Timestamp('2025-03-26 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250326220000_604': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250326220000_604', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-03-26 22:00:00'), offset='OPEN')}\n",
"[2025-03-27 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-26 22:00:00'), open=3211.0, high=3223.0, low=3210.0, close=3217.0, volume=195411, open_oi=1715707, close_oi=1700910, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-26 09:00:00'), open=3220.0, high=3229.0, low=3214.0, close=3216.0, volume=244648, open_oi=1779138, close_oi=1773944, symbol='SHFE.rb2505')\n",
"[2025-03-27 09:00:00] 策略 (SHFE.rb2505): [2025-03-27 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250327090000_605 @ 3240.50\n",
"[2025-03-27 09:00:00] 策略 (SHFE.rb2505): [2025-03-27 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250327090000_606 @ 3190.00\n",
"[2025-03-27 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250327090000_605': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250327090000_605', price_type='LIMIT', limit_price=3241, submitted_time=Timestamp('2025-03-27 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250327090000_606': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250327090000_606', price_type='LIMIT', limit_price=3190, submitted_time=Timestamp('2025-03-27 09:00:00'), offset='OPEN')}\n",
"[2025-03-27 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-27 09:00:00'), open=3216.0, high=3219.0, low=3206.0, close=3216.0, volume=268744, open_oi=1700910, close_oi=1663129, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-26 10:00:00'), open=3216.0, high=3218.0, low=3207.0, close=3217.0, volume=181920, open_oi=1773944, close_oi=1757587, symbol='SHFE.rb2505')\n",
"[2025-03-27 10:00:00] 策略 (SHFE.rb2505): [2025-03-27 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250327100000_607 @ 3235.70\n",
"[2025-03-27 10:00:00] 策略 (SHFE.rb2505): [2025-03-27 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250327100000_608 @ 3190.00\n",
"[2025-03-27 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250327100000_607': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250327100000_607', price_type='LIMIT', limit_price=3236, submitted_time=Timestamp('2025-03-27 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250327100000_608': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250327100000_608', price_type='LIMIT', limit_price=3190, submitted_time=Timestamp('2025-03-27 10:00:00'), offset='OPEN')}\n",
"[2025-03-27 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-27 10:00:00'), open=3216.0, high=3218.0, low=3212.0, close=3214.0, volume=91685, open_oi=1663129, close_oi=1653818, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-26 11:00:00'), open=3217.0, high=3218.0, low=3207.0, close=3207.0, volume=88041, open_oi=1757587, close_oi=1742718, symbol='SHFE.rb2505')\n",
"[2025-03-27 11:00:00] 策略 (SHFE.rb2505): [2025-03-27 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250327110000_609 @ 3230.20\n",
"[2025-03-27 11:00:00] 策略 (SHFE.rb2505): [2025-03-27 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250327110000_610 @ 3202.00\n",
"[2025-03-27 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250327110000_609': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250327110000_609', price_type='LIMIT', limit_price=3231, submitted_time=Timestamp('2025-03-27 11:00:00'), offset='OPEN')}\n",
"[2025-03-27 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-27 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-27 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-03-27 14:00:00] 策略 (SHFE.rb2505): [2025-03-27 14:00:00] 止损信号 - PnL per unit: -12.00, 目标: -10.00\n",
"[2025-03-27 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-03-27 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-27 14:00:00'), open=3190.0, high=3214.0, low=3190.0, close=3208.0, volume=323536, open_oi=1654010, close_oi=1607725, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-26 21:00:00'), open=3206.0, high=3212.0, low=3204.0, close=3211.0, volume=164562, open_oi=1712086, close_oi=1715707, symbol='SHFE.rb2505')\n",
"[2025-03-27 21:00:00] 策略 (SHFE.rb2505): [2025-03-27 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250327210000_612 @ 3230.60\n",
"[2025-03-27 21:00:00] 策略 (SHFE.rb2505): [2025-03-27 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250327210000_613 @ 3161.00\n",
"[2025-03-27 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250327210000_612': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250327210000_612', price_type='LIMIT', limit_price=3231, submitted_time=Timestamp('2025-03-27 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250327210000_613': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250327210000_613', price_type='LIMIT', limit_price=3161, submitted_time=Timestamp('2025-03-27 21:00:00'), offset='OPEN')}\n",
"[2025-03-27 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-27 21:00:00'), open=3209.0, high=3210.0, low=3185.0, close=3189.0, volume=347180, open_oi=1607725, close_oi=1642262, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-26 22:00:00'), open=3211.0, high=3223.0, low=3210.0, close=3217.0, volume=195411, open_oi=1715707, close_oi=1700910, symbol='SHFE.rb2505')\n",
"[2025-03-27 22:00:00] 策略 (SHFE.rb2505): [2025-03-27 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250327220000_614 @ 3217.10\n",
"[2025-03-27 22:00:00] 策略 (SHFE.rb2505): [2025-03-27 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250327220000_615 @ 3139.00\n",
"[2025-03-27 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-27 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250327220000_614': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250327220000_614', price_type='LIMIT', limit_price=3218, submitted_time=Timestamp('2025-03-27 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250327220000_615': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250327220000_615', price_type='LIMIT', limit_price=3139, submitted_time=Timestamp('2025-03-27 22:00:00'), offset='OPEN')}\n",
"[2025-03-28 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-27 22:00:00'), open=3189.0, high=3194.0, low=3183.0, close=3189.0, volume=156463, open_oi=1642262, close_oi=1624957, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 09:00:00'), open=3216.0, high=3219.0, low=3206.0, close=3216.0, volume=268744, open_oi=1700910, close_oi=1663129, symbol='SHFE.rb2505')\n",
"[2025-03-28 09:00:00] 策略 (SHFE.rb2505): [2025-03-28 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328090000_616 @ 3210.10\n",
"[2025-03-28 09:00:00] 策略 (SHFE.rb2505): [2025-03-28 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328090000_617 @ 3167.00\n",
"[2025-03-28 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328090000_616': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328090000_616', price_type='LIMIT', limit_price=3211, submitted_time=Timestamp('2025-03-28 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328090000_617': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328090000_617', price_type='LIMIT', limit_price=3167, submitted_time=Timestamp('2025-03-28 09:00:00'), offset='OPEN')}\n",
"[2025-03-28 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 09:00:00'), open=3189.0, high=3200.0, low=3184.0, close=3187.0, volume=248998, open_oi=1624957, close_oi=1599630, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 10:00:00'), open=3216.0, high=3218.0, low=3212.0, close=3214.0, volume=91685, open_oi=1663129, close_oi=1653818, symbol='SHFE.rb2505')\n",
"[2025-03-28 10:00:00] 策略 (SHFE.rb2505): [2025-03-28 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328100000_618 @ 3202.20\n",
"[2025-03-28 10:00:00] 策略 (SHFE.rb2505): [2025-03-28 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328100000_619 @ 3155.00\n",
"[2025-03-28 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328100000_618': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328100000_618', price_type='LIMIT', limit_price=3203, submitted_time=Timestamp('2025-03-28 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328100000_619': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328100000_619', price_type='LIMIT', limit_price=3155, submitted_time=Timestamp('2025-03-28 10:00:00'), offset='OPEN')}\n",
"[2025-03-28 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 10:00:00'), open=3187.0, high=3196.0, low=3181.0, close=3185.0, volume=187998, open_oi=1599630, close_oi=1590655, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 11:00:00'), open=3214.0, high=3216.0, low=3196.0, close=3198.0, volume=177790, open_oi=1653818, close_oi=1651758, symbol='SHFE.rb2505')\n",
"[2025-03-28 11:00:00] 策略 (SHFE.rb2505): [2025-03-28 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328110000_620 @ 3216.50\n",
"[2025-03-28 11:00:00] 策略 (SHFE.rb2505): [2025-03-28 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328110000_621 @ 3155.00\n",
"[2025-03-28 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328110000_620': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328110000_620', price_type='LIMIT', limit_price=3217, submitted_time=Timestamp('2025-03-28 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328110000_621': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328110000_621', price_type='LIMIT', limit_price=3155, submitted_time=Timestamp('2025-03-28 11:00:00'), offset='OPEN')}\n",
"[2025-03-28 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 11:00:00'), open=3185.0, high=3190.0, low=3183.0, close=3187.0, volume=75347, open_oi=1590655, close_oi=1589943, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 13:00:00'), open=3196.0, high=3200.0, low=3188.0, close=3190.0, volume=256028, open_oi=1651758, close_oi=1654010, symbol='SHFE.rb2505')\n",
"[2025-03-28 13:00:00] 策略 (SHFE.rb2505): [2025-03-28 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328130000_622 @ 3202.90\n",
"[2025-03-28 13:00:00] 策略 (SHFE.rb2505): [2025-03-28 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328130000_623 @ 3171.00\n",
"[2025-03-28 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328130000_622': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328130000_622', price_type='LIMIT', limit_price=3203, submitted_time=Timestamp('2025-03-28 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328130000_623': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328130000_623', price_type='LIMIT', limit_price=3171, submitted_time=Timestamp('2025-03-28 13:00:00'), offset='OPEN')}\n",
"[2025-03-28 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 13:00:00'), open=3185.0, high=3198.0, low=3184.0, close=3196.0, volume=133018, open_oi=1589943, close_oi=1578629, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 14:00:00'), open=3190.0, high=3214.0, low=3190.0, close=3208.0, volume=323536, open_oi=1654010, close_oi=1607725, symbol='SHFE.rb2505')\n",
"[2025-03-28 14:00:00] 策略 (SHFE.rb2505): [2025-03-28 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328140000_624 @ 3231.80\n",
"[2025-03-28 14:00:00] 策略 (SHFE.rb2505): [2025-03-28 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328140000_625 @ 3168.00\n",
"[2025-03-28 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328140000_624': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328140000_624', price_type='LIMIT', limit_price=3232, submitted_time=Timestamp('2025-03-28 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328140000_625': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328140000_625', price_type='LIMIT', limit_price=3168, submitted_time=Timestamp('2025-03-28 14:00:00'), offset='OPEN')}\n",
"[2025-03-28 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 14:00:00'), open=3196.0, high=3205.0, low=3191.0, close=3197.0, volume=268167, open_oi=1578629, close_oi=1553390, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 21:00:00'), open=3209.0, high=3210.0, low=3185.0, close=3189.0, volume=347180, open_oi=1607725, close_oi=1642262, symbol='SHFE.rb2505')\n",
"[2025-03-28 21:00:00] 策略 (SHFE.rb2505): [2025-03-28 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328210000_626 @ 3236.00\n",
"[2025-03-28 21:00:00] 策略 (SHFE.rb2505): [2025-03-28 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328210000_627 @ 3171.00\n",
"[2025-03-28 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328210000_626': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328210000_626', price_type='LIMIT', limit_price=3236, submitted_time=Timestamp('2025-03-28 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328210000_627': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328210000_627', price_type='LIMIT', limit_price=3171, submitted_time=Timestamp('2025-03-28 21:00:00'), offset='OPEN')}\n",
"[2025-03-28 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 21:00:00'), open=3199.0, high=3201.0, low=3184.0, close=3187.0, volume=221695, open_oi=1553390, close_oi=1536430, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-27 22:00:00'), open=3189.0, high=3194.0, low=3183.0, close=3189.0, volume=156463, open_oi=1642262, close_oi=1624957, symbol='SHFE.rb2505')\n",
"[2025-03-28 22:00:00] 策略 (SHFE.rb2505): [2025-03-28 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250328220000_628 @ 3208.70\n",
"[2025-03-28 22:00:00] 策略 (SHFE.rb2505): [2025-03-28 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250328220000_629 @ 3153.00\n",
"[2025-03-28 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-28 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250328220000_628': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250328220000_628', price_type='LIMIT', limit_price=3209, submitted_time=Timestamp('2025-03-28 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250328220000_629': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250328220000_629', price_type='LIMIT', limit_price=3153, submitted_time=Timestamp('2025-03-28 22:00:00'), offset='OPEN')}\n",
"[2025-03-31 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-28 22:00:00'), open=3187.0, high=3188.0, low=3171.0, close=3177.0, volume=271709, open_oi=1536430, close_oi=1521332, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 09:00:00'), open=3189.0, high=3200.0, low=3184.0, close=3187.0, volume=248998, open_oi=1624957, close_oi=1599630, symbol='SHFE.rb2505')\n",
"[2025-03-31 09:00:00] 策略 (SHFE.rb2505): [2025-03-31 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331090000_630 @ 3202.70\n",
"[2025-03-31 09:00:00] 策略 (SHFE.rb2505): [2025-03-31 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331090000_631 @ 3141.00\n",
"[2025-03-31 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331090000_630': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331090000_630', price_type='LIMIT', limit_price=3203, submitted_time=Timestamp('2025-03-31 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331090000_631': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331090000_631', price_type='LIMIT', limit_price=3141, submitted_time=Timestamp('2025-03-31 09:00:00'), offset='OPEN')}\n",
"[2025-03-31 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 09:00:00'), open=3175.0, high=3182.0, low=3166.0, close=3170.0, volume=283642, open_oi=1521332, close_oi=1494144, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 10:00:00'), open=3187.0, high=3196.0, low=3181.0, close=3185.0, volume=187998, open_oi=1599630, close_oi=1590655, symbol='SHFE.rb2505')\n",
"[2025-03-31 10:00:00] 策略 (SHFE.rb2505): [2025-03-31 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331100000_632 @ 3196.00\n",
"[2025-03-31 10:00:00] 策略 (SHFE.rb2505): [2025-03-31 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331100000_633 @ 3138.00\n",
"[2025-03-31 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331100000_632': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331100000_632', price_type='LIMIT', limit_price=3196, submitted_time=Timestamp('2025-03-31 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331100000_633': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331100000_633', price_type='LIMIT', limit_price=3138, submitted_time=Timestamp('2025-03-31 10:00:00'), offset='OPEN')}\n",
"[2025-03-31 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 10:00:00'), open=3170.0, high=3175.0, low=3162.0, close=3165.0, volume=117132, open_oi=1494144, close_oi=1486316, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 11:00:00'), open=3185.0, high=3190.0, low=3183.0, close=3187.0, volume=75347, open_oi=1590655, close_oi=1589943, symbol='SHFE.rb2505')\n",
"[2025-03-31 11:00:00] 策略 (SHFE.rb2505): [2025-03-31 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331110000_634 @ 3179.90\n",
"[2025-03-31 11:00:00] 策略 (SHFE.rb2505): [2025-03-31 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331110000_635 @ 3139.00\n",
"[2025-03-31 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331110000_634': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331110000_634', price_type='LIMIT', limit_price=3180, submitted_time=Timestamp('2025-03-31 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331110000_635': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331110000_635', price_type='LIMIT', limit_price=3139, submitted_time=Timestamp('2025-03-31 11:00:00'), offset='OPEN')}\n",
"[2025-03-31 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 11:00:00'), open=3165.0, high=3169.0, low=3161.0, close=3161.0, volume=66387, open_oi=1486316, close_oi=1480148, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 13:00:00'), open=3185.0, high=3198.0, low=3184.0, close=3196.0, volume=133018, open_oi=1589943, close_oi=1578629, symbol='SHFE.rb2505')\n",
"[2025-03-31 13:00:00] 策略 (SHFE.rb2505): [2025-03-31 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331130000_636 @ 3181.80\n",
"[2025-03-31 13:00:00] 策略 (SHFE.rb2505): [2025-03-31 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331130000_637 @ 3145.00\n",
"[2025-03-31 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331130000_636': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331130000_636', price_type='LIMIT', limit_price=3182, submitted_time=Timestamp('2025-03-31 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331130000_637': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331130000_637', price_type='LIMIT', limit_price=3145, submitted_time=Timestamp('2025-03-31 13:00:00'), offset='OPEN')}\n",
"[2025-03-31 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 13:00:00'), open=3161.0, high=3166.0, low=3159.0, close=3164.0, volume=84365, open_oi=1480148, close_oi=1464916, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 14:00:00'), open=3196.0, high=3205.0, low=3191.0, close=3197.0, volume=268167, open_oi=1578629, close_oi=1553390, symbol='SHFE.rb2505')\n",
"[2025-03-31 14:00:00] 策略 (SHFE.rb2505): [2025-03-31 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331140000_638 @ 3184.30\n",
"[2025-03-31 14:00:00] 策略 (SHFE.rb2505): [2025-03-31 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331140000_639 @ 3150.00\n",
"[2025-03-31 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331140000_638': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331140000_638', price_type='LIMIT', limit_price=3185, submitted_time=Timestamp('2025-03-31 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331140000_639': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331140000_639', price_type='LIMIT', limit_price=3150, submitted_time=Timestamp('2025-03-31 14:00:00'), offset='OPEN')}\n",
"[2025-03-31 21:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 14:00:00'), open=3164.0, high=3169.0, low=3153.0, close=3159.0, volume=241555, open_oi=1464916, close_oi=1403648, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 21:00:00'), open=3199.0, high=3201.0, low=3184.0, close=3187.0, volume=221695, open_oi=1553390, close_oi=1536430, symbol='SHFE.rb2505')\n",
"[2025-03-31 21:00:00] 策略 (SHFE.rb2505): [2025-03-31 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331210000_640 @ 3187.40\n",
"[2025-03-31 21:00:00] 策略 (SHFE.rb2505): [2025-03-31 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331210000_641 @ 3127.00\n",
"[2025-03-31 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331210000_640': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331210000_640', price_type='LIMIT', limit_price=3188, submitted_time=Timestamp('2025-03-31 21:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331210000_641': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331210000_641', price_type='LIMIT', limit_price=3127, submitted_time=Timestamp('2025-03-31 21:00:00'), offset='OPEN')}\n",
"[2025-03-31 22:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 21:00:00'), open=3159.0, high=3164.0, low=3137.0, close=3148.0, volume=300225, open_oi=1403648, close_oi=1386284, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-28 22:00:00'), open=3187.0, high=3188.0, low=3171.0, close=3177.0, volume=271709, open_oi=1536430, close_oi=1521332, symbol='SHFE.rb2505')\n",
"[2025-03-31 22:00:00] 策略 (SHFE.rb2505): [2025-03-31 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250331220000_642 @ 3181.90\n",
"[2025-03-31 22:00:00] 策略 (SHFE.rb2505): [2025-03-31 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250331220000_643 @ 3094.00\n",
"[2025-03-31 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-03-31 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250331220000_642': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250331220000_642', price_type='LIMIT', limit_price=3182, submitted_time=Timestamp('2025-03-31 22:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250331220000_643': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250331220000_643', price_type='LIMIT', limit_price=3094, submitted_time=Timestamp('2025-03-31 22:00:00'), offset='OPEN')}\n",
"[2025-04-01 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-03-31 22:00:00'), open=3148.0, high=3153.0, low=3144.0, close=3146.0, volume=99289, open_oi=1386284, close_oi=1369925, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-31 09:00:00'), open=3175.0, high=3182.0, low=3166.0, close=3170.0, volume=283642, open_oi=1521332, close_oi=1494144, symbol='SHFE.rb2505')\n",
"[2025-04-01 09:00:00] 策略 (SHFE.rb2505): [2025-04-01 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250401090000_644 @ 3169.70\n",
"[2025-04-01 09:00:00] 策略 (SHFE.rb2505): [2025-04-01 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250401090000_645 @ 3128.00\n",
"[2025-04-01 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250401090000_644': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250401090000_644', price_type='LIMIT', limit_price=3170, submitted_time=Timestamp('2025-04-01 09:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250401090000_645': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250401090000_645', price_type='LIMIT', limit_price=3128, submitted_time=Timestamp('2025-04-01 09:00:00'), offset='OPEN')}\n",
"[2025-04-01 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-01 09:00:00'), open=3146.0, high=3148.0, low=3131.0, close=3144.0, volume=211686, open_oi=1369925, close_oi=1365137, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-03-31 10:00:00'), open=3170.0, high=3175.0, low=3162.0, close=3165.0, volume=117132, open_oi=1494144, close_oi=1486316, symbol='SHFE.rb2505')\n",
"[2025-04-01 10:00:00] 策略 (SHFE.rb2505): [2025-04-01 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250401100000_646 @ 3168.10\n",
"[2025-04-01 10:00:00] 策略 (SHFE.rb2505): [2025-04-01 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250401100000_647 @ 3110.00\n",
"[2025-04-01 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250401100000_647': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250401100000_647', price_type='LIMIT', limit_price=3110, submitted_time=Timestamp('2025-04-01 10:00:00'), offset='OPEN')}\n",
"[2025-04-01 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-01 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-01 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-01 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-01 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-01 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-01 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-01 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-01 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-01 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-01 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 10:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 11:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 13:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 21:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 21:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 21:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-02 22:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-02 22:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-02 22:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-03 09:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': -1} SHFE.rb2505\n",
"[2025-04-03 09:00:00] 策略 (SHFE.rb2505): [2025-04-03 09:00:00] 止盈信号 - PnL per unit: 14.10, 目标: 10.00\n",
"[2025-04-03 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-03 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-03 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-03 09:00:00'), open=3154.0, high=3190.0, low=3141.0, close=3177.0, volume=393920, open_oi=1195790, close_oi=1167017, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-02 10:00:00'), open=3168.0, high=3181.0, low=3165.0, close=3177.0, volume=111070, open_oi=1248817, close_oi=1234095, symbol='SHFE.rb2505')\n",
"[2025-04-03 10:00:00] 策略 (SHFE.rb2505): [2025-04-03 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250403100000_649 @ 3220.70\n",
"[2025-04-03 10:00:00] 策略 (SHFE.rb2505): [2025-04-03 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250403100000_650 @ 3079.00\n",
"[2025-04-03 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-03 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250403100000_649': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250403100000_649', price_type='LIMIT', limit_price=3221, submitted_time=Timestamp('2025-04-03 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250403100000_650': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250403100000_650', price_type='LIMIT', limit_price=3079, submitted_time=Timestamp('2025-04-03 10:00:00'), offset='OPEN')}\n",
"[2025-04-03 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-03 10:00:00'), open=3177.0, high=3178.0, low=3161.0, close=3162.0, volume=128470, open_oi=1167017, close_oi=1156874, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-02 11:00:00'), open=3177.0, high=3179.0, low=3173.0, close=3174.0, volume=33943, open_oi=1234095, close_oi=1229613, symbol='SHFE.rb2505')\n",
"[2025-04-03 11:00:00] 策略 (SHFE.rb2505): [2025-04-03 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250403110000_651 @ 3177.70\n",
"[2025-04-03 11:00:00] 策略 (SHFE.rb2505): [2025-04-03 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250403110000_652 @ 3128.00\n",
"[2025-04-03 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-03 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250403110000_651': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250403110000_651', price_type='LIMIT', limit_price=3178, submitted_time=Timestamp('2025-04-03 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250403110000_652': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250403110000_652', price_type='LIMIT', limit_price=3128, submitted_time=Timestamp('2025-04-03 11:00:00'), offset='OPEN')}\n",
"[2025-04-03 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-03 11:00:00'), open=3162.0, high=3163.0, low=3154.0, close=3159.0, volume=77951, open_oi=1156874, close_oi=1150590, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-02 13:00:00'), open=3171.0, high=3180.0, low=3171.0, close=3174.0, volume=47149, open_oi=1229613, close_oi=1228041, symbol='SHFE.rb2505')\n",
"[2025-04-03 13:00:00] 策略 (SHFE.rb2505): [2025-04-03 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250403130000_653 @ 3175.30\n",
"[2025-04-03 13:00:00] 策略 (SHFE.rb2505): [2025-04-03 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250403130000_654 @ 3142.00\n",
"[2025-04-03 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-03 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250403130000_653': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250403130000_653', price_type='LIMIT', limit_price=3176, submitted_time=Timestamp('2025-04-03 13:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250403130000_654': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250403130000_654', price_type='LIMIT', limit_price=3142, submitted_time=Timestamp('2025-04-03 13:00:00'), offset='OPEN')}\n",
"[2025-04-03 14:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-03 13:00:00'), open=3160.0, high=3164.0, low=3157.0, close=3162.0, volume=54591, open_oi=1150590, close_oi=1147420, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-02 14:00:00'), open=3174.0, high=3175.0, low=3151.0, close=3166.0, volume=225778, open_oi=1228041, close_oi=1210865, symbol='SHFE.rb2505')\n",
"[2025-04-03 14:00:00] 策略 (SHFE.rb2505): [2025-04-03 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250403140000_655 @ 3194.30\n",
"[2025-04-03 14:00:00] 策略 (SHFE.rb2505): [2025-04-03 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250403140000_656 @ 3148.00\n",
"[2025-04-03 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-03 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250403140000_655': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250403140000_655', price_type='LIMIT', limit_price=3195, submitted_time=Timestamp('2025-04-03 14:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250403140000_656': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250403140000_656', price_type='LIMIT', limit_price=3148, submitted_time=Timestamp('2025-04-03 14:00:00'), offset='OPEN')}\n",
"[2025-04-07 09:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-03 14:00:00'), open=3162.0, high=3165.0, low=3157.0, close=3164.0, volume=106480, open_oi=1147420, close_oi=1118015, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-02 21:00:00'), open=3172.0, high=3175.0, low=3165.0, close=3173.0, volume=155134, open_oi=1210865, close_oi=1205950, symbol='SHFE.rb2505')\n",
"[2025-04-07 09:00:00] 策略 (SHFE.rb2505): [2025-04-07 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250407090000_657 @ 3086.00\n",
"[2025-04-07 09:00:00] 策略 (SHFE.rb2505): [2025-04-07 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250407090000_658 @ 3054.00\n",
"[2025-04-07 09:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-07 09:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-07 10:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-07 09:00:00'), open=3070.0, high=3088.0, low=3041.0, close=3078.0, volume=580127, open_oi=1118015, close_oi=1022802, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-02 22:00:00'), open=3173.0, high=3174.0, low=3163.0, close=3164.0, volume=58650, open_oi=1205950, close_oi=1195790, symbol='SHFE.rb2505')\n",
"[2025-04-07 10:00:00] 策略 (SHFE.rb2505): [2025-04-07 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250407100000_659 @ 3114.70\n",
"[2025-04-07 10:00:00] 策略 (SHFE.rb2505): [2025-04-07 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250407100000_660 @ 2984.00\n",
"[2025-04-07 10:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-07 10:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250407100000_659': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250407100000_659', price_type='LIMIT', limit_price=3115, submitted_time=Timestamp('2025-04-07 10:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250407100000_660': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250407100000_660', price_type='LIMIT', limit_price=2984, submitted_time=Timestamp('2025-04-07 10:00:00'), offset='OPEN')}\n",
"[2025-04-07 11:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-07 10:00:00'), open=3078.0, high=3108.0, low=3076.0, close=3093.0, volume=166617, open_oi=1022802, close_oi=1001377, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-03 09:00:00'), open=3154.0, high=3190.0, low=3141.0, close=3177.0, volume=393920, open_oi=1195790, close_oi=1167017, symbol='SHFE.rb2505')\n",
"[2025-04-07 11:00:00] 策略 (SHFE.rb2505): [2025-04-07 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250407110000_661 @ 3167.80\n",
"[2025-04-07 11:00:00] 策略 (SHFE.rb2505): [2025-04-07 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250407110000_662 @ 3029.00\n",
"[2025-04-07 11:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-07 11:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250407110000_661': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250407110000_661', price_type='LIMIT', limit_price=3168, submitted_time=Timestamp('2025-04-07 11:00:00'), offset='OPEN'), 'SHFE.rb2505_BUY_20250407110000_662': Order(symbol='SHFE.rb2505', direction='BUY', volume=1, id='SHFE.rb2505_BUY_20250407110000_662', price_type='LIMIT', limit_price=3029, submitted_time=Timestamp('2025-04-07 11:00:00'), offset='OPEN')}\n",
"[2025-04-07 13:00:00] 策略 (SHFE.rb2505): {} SHFE.rb2505\n",
"Bar(datetime=Timestamp('2025-04-07 11:00:00'), open=3093.0, high=3097.0, low=3089.0, close=3094.0, volume=40448, open_oi=1001377, close_oi=994287, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-03 10:00:00'), open=3177.0, high=3178.0, low=3161.0, close=3162.0, volume=128470, open_oi=1167017, close_oi=1156874, symbol='SHFE.rb2505')\n",
"[2025-04-07 13:00:00] 策略 (SHFE.rb2505): [2025-04-07 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2505_BUY_20250407130000_663 @ 3118.40\n",
"[2025-04-07 13:00:00] 策略 (SHFE.rb2505): [2025-04-07 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2505_BUY_20250407130000_664 @ 3078.00\n",
"[2025-04-07 13:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-07 13:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505_BUY_20250407130000_663': Order(symbol='SHFE.rb2505', direction='SELL', volume=1, id='SHFE.rb2505_BUY_20250407130000_663', price_type='LIMIT', limit_price=3119, submitted_time=Timestamp('2025-04-07 13:00:00'), offset='OPEN')}\n",
"[2025-04-07 14:00:00] 策略 (SHFE.rb2505): {'SHFE.rb2505': 1} SHFE.rb2505\n",
"[2025-04-07 14:00:00] 策略 (SHFE.rb2505): on close bar!\n",
"[2025-04-07 14:00:00] 策略 (SHFE.rb2505): {}\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2505): 检测到换月!从 [SHFE.rb2505] 切换到 [SHFE.rb2510]。在旧合约最后一根K线 (2025-04-07 14:00:00) 执行强制平仓和取消操作。\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2505): 合约换月事件: 从 SHFE.rb2505 切换到 SHFE.rb2510\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2505): 换月完成清空历史K线数据和上次订单ID准备新合约交易。\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-07 14:00:00'), open=3081.0, high=3095.0, low=3069.0, close=3083.0, volume=180825, open_oi=982400, close_oi=939691, symbol='SHFE.rb2505') Bar(datetime=Timestamp('2025-04-03 13:00:00'), open=3160.0, high=3164.0, low=3157.0, close=3162.0, volume=54591, open_oi=1150590, close_oi=1147420, symbol='SHFE.rb2505')\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): 当前是换月K线禁止开仓订单\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): [2025-04-07 21:00:00] 策略: 发送订单失败。\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): 当前是换月K线禁止开仓订单\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): [2025-04-07 21:00:00] 策略: 发送订单失败。\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-07 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-07 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-07 21:00:00'), open=3150.0, high=3163.0, low=3147.0, close=3158.0, volume=259528, open_oi=939691, close_oi=1462153, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-03 14:00:00'), open=3162.0, high=3165.0, low=3157.0, close=3164.0, volume=106480, open_oi=1147420, close_oi=1118015, symbol='SHFE.rb2505')\n",
"[2025-04-07 22:00:00] 策略 (SHFE.rb2510): [2025-04-07 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250407220000_667 @ 3175.60\n",
"[2025-04-07 22:00:00] 策略 (SHFE.rb2510): [2025-04-07 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250407220000_668 @ 3126.00\n",
"[2025-04-07 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-07 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250407220000_667': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250407220000_667', price_type='LIMIT', limit_price=3176, submitted_time=Timestamp('2025-04-07 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250407220000_668': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250407220000_668', price_type='LIMIT', limit_price=3126, submitted_time=Timestamp('2025-04-07 22:00:00'), offset='OPEN')}\n",
"[2025-04-08 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-07 22:00:00'), open=3158.0, high=3171.0, low=3157.0, close=3165.0, volume=177509, open_oi=1462153, close_oi=1458404, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-07 09:00:00'), open=3070.0, high=3088.0, low=3041.0, close=3078.0, volume=580127, open_oi=1118015, close_oi=1022802, symbol='SHFE.rb2505')\n",
"[2025-04-08 09:00:00] 策略 (SHFE.rb2510): [2025-04-08 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250408090000_669 @ 3225.40\n",
"[2025-04-08 09:00:00] 策略 (SHFE.rb2510): [2025-04-08 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250408090000_670 @ 3134.00\n",
"[2025-04-08 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250408090000_669': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250408090000_669', price_type='LIMIT', limit_price=3226, submitted_time=Timestamp('2025-04-08 09:00:00'), offset='OPEN')}\n",
"[2025-04-08 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-08 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-08 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-08 11:00:00] 策略 (SHFE.rb2510): [2025-04-08 11:00:00] 止损信号 - PnL per unit: -11.00, 目标: -10.00\n",
"[2025-04-08 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-08 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-08 11:00:00'), open=3123.0, high=3131.0, low=3117.0, close=3123.0, volume=148403, open_oi=1576563, close_oi=1593014, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-07 13:00:00'), open=3094.0, high=3094.0, low=3076.0, close=3081.0, volume=74375, open_oi=994287, close_oi=982400, symbol='SHFE.rb2505')\n",
"[2025-04-08 13:00:00] 策略 (SHFE.rb2510): [2025-04-08 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250408130000_672 @ 3148.60\n",
"[2025-04-08 13:00:00] 策略 (SHFE.rb2510): [2025-04-08 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250408130000_673 @ 3092.00\n",
"[2025-04-08 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250408130000_672': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250408130000_672', price_type='LIMIT', limit_price=3149, submitted_time=Timestamp('2025-04-08 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250408130000_673': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250408130000_673', price_type='LIMIT', limit_price=3092, submitted_time=Timestamp('2025-04-08 13:00:00'), offset='OPEN')}\n",
"[2025-04-08 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-08 13:00:00'), open=3120.0, high=3125.0, low=3110.0, close=3117.0, volume=183376, open_oi=1593014, close_oi=1622132, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-07 14:00:00'), open=3081.0, high=3095.0, low=3069.0, close=3083.0, volume=180825, open_oi=982400, close_oi=939691, symbol='SHFE.rb2505')\n",
"[2025-04-08 14:00:00] 策略 (SHFE.rb2510): [2025-04-08 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250408140000_674 @ 3155.70\n",
"[2025-04-08 14:00:00] 策略 (SHFE.rb2510): [2025-04-08 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250408140000_675 @ 3087.00\n",
"[2025-04-08 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250408140000_674': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250408140000_674', price_type='LIMIT', limit_price=3156, submitted_time=Timestamp('2025-04-08 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250408140000_675': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250408140000_675', price_type='LIMIT', limit_price=3087, submitted_time=Timestamp('2025-04-08 14:00:00'), offset='OPEN')}\n",
"[2025-04-08 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-08 14:00:00'), open=3117.0, high=3118.0, low=3093.0, close=3101.0, volume=428953, open_oi=1622132, close_oi=1640009, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-07 21:00:00'), open=3150.0, high=3163.0, low=3147.0, close=3158.0, volume=259528, open_oi=939691, close_oi=1462153, symbol='SHFE.rb2510')\n",
"[2025-04-08 21:00:00] 策略 (SHFE.rb2510): [2025-04-08 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250408210000_676 @ 3134.70\n",
"[2025-04-08 21:00:00] 策略 (SHFE.rb2510): [2025-04-08 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250408210000_677 @ 3053.00\n",
"[2025-04-08 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250408210000_676': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250408210000_676', price_type='LIMIT', limit_price=3135, submitted_time=Timestamp('2025-04-08 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250408210000_677': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250408210000_677', price_type='LIMIT', limit_price=3053, submitted_time=Timestamp('2025-04-08 21:00:00'), offset='OPEN')}\n",
"[2025-04-08 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-08 21:00:00'), open=3103.0, high=3115.0, low=3093.0, close=3103.0, volume=291457, open_oi=1640009, close_oi=1673508, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-07 22:00:00'), open=3158.0, high=3171.0, low=3157.0, close=3165.0, volume=177509, open_oi=1462153, close_oi=1458404, symbol='SHFE.rb2510')\n",
"[2025-04-08 22:00:00] 策略 (SHFE.rb2510): [2025-04-08 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250408220000_678 @ 3130.80\n",
"[2025-04-08 22:00:00] 策略 (SHFE.rb2510): [2025-04-08 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250408220000_679 @ 3059.00\n",
"[2025-04-08 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-08 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250408220000_678': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250408220000_678', price_type='LIMIT', limit_price=3131, submitted_time=Timestamp('2025-04-08 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250408220000_679': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250408220000_679', price_type='LIMIT', limit_price=3059, submitted_time=Timestamp('2025-04-08 22:00:00'), offset='OPEN')}\n",
"[2025-04-09 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-08 22:00:00'), open=3103.0, high=3108.0, low=3095.0, close=3096.0, volume=129920, open_oi=1673508, close_oi=1668464, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-08 09:00:00'), open=3162.0, high=3164.0, low=3132.0, close=3138.0, volume=409046, open_oi=1458404, close_oi=1535404, symbol='SHFE.rb2510')\n",
"[2025-04-09 09:00:00] 策略 (SHFE.rb2510): [2025-04-09 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250409090000_680 @ 3129.90\n",
"[2025-04-09 09:00:00] 策略 (SHFE.rb2510): [2025-04-09 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250409090000_681 @ 3059.00\n",
"[2025-04-09 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250409090000_680': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250409090000_680', price_type='LIMIT', limit_price=3130, submitted_time=Timestamp('2025-04-09 09:00:00'), offset='OPEN')}\n",
"[2025-04-09 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-09 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-09 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-09 11:00:00] 策略 (SHFE.rb2510): [2025-04-09 11:00:00] 止盈信号 - PnL per unit: 22.00, 目标: 10.00\n",
"[2025-04-09 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-09 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-09 11:00:00'), open=3081.0, high=3091.0, low=3072.0, close=3089.0, volume=201891, open_oi=1684051, close_oi=1684442, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-08 13:00:00'), open=3120.0, high=3125.0, low=3110.0, close=3117.0, volume=183376, open_oi=1593014, close_oi=1622132, symbol='SHFE.rb2510')\n",
"[2025-04-09 13:00:00] 策略 (SHFE.rb2510): [2025-04-09 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250409130000_683 @ 3114.50\n",
"[2025-04-09 13:00:00] 策略 (SHFE.rb2510): [2025-04-09 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250409130000_684 @ 3049.00\n",
"[2025-04-09 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250409130000_683': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250409130000_683', price_type='LIMIT', limit_price=3115, submitted_time=Timestamp('2025-04-09 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250409130000_684': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250409130000_684', price_type='LIMIT', limit_price=3049, submitted_time=Timestamp('2025-04-09 13:00:00'), offset='OPEN')}\n",
"[2025-04-09 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-09 13:00:00'), open=3087.0, high=3094.0, low=3081.0, close=3091.0, volume=156732, open_oi=1684442, close_oi=1691939, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-08 14:00:00'), open=3117.0, high=3118.0, low=3093.0, close=3101.0, volume=428953, open_oi=1622132, close_oi=1640009, symbol='SHFE.rb2510')\n",
"[2025-04-09 14:00:00] 策略 (SHFE.rb2510): [2025-04-09 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250409140000_685 @ 3127.50\n",
"[2025-04-09 14:00:00] 策略 (SHFE.rb2510): [2025-04-09 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250409140000_686 @ 3065.00\n",
"[2025-04-09 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250409140000_685': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250409140000_685', price_type='LIMIT', limit_price=3128, submitted_time=Timestamp('2025-04-09 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250409140000_686': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250409140000_686', price_type='LIMIT', limit_price=3065, submitted_time=Timestamp('2025-04-09 14:00:00'), offset='OPEN')}\n",
"[2025-04-09 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-09 14:00:00'), open=3091.0, high=3107.0, low=3085.0, close=3088.0, volume=353539, open_oi=1691939, close_oi=1687170, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-08 21:00:00'), open=3103.0, high=3115.0, low=3093.0, close=3103.0, volume=291457, open_oi=1640009, close_oi=1673508, symbol='SHFE.rb2510')\n",
"[2025-04-09 21:00:00] 策略 (SHFE.rb2510): [2025-04-09 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250409210000_687 @ 3111.40\n",
"[2025-04-09 21:00:00] 策略 (SHFE.rb2510): [2025-04-09 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250409210000_688 @ 3030.00\n",
"[2025-04-09 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250409210000_687': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250409210000_687', price_type='LIMIT', limit_price=3112, submitted_time=Timestamp('2025-04-09 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250409210000_688': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250409210000_688', price_type='LIMIT', limit_price=3030, submitted_time=Timestamp('2025-04-09 21:00:00'), offset='OPEN')}\n",
"[2025-04-09 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-09 21:00:00'), open=3074.0, high=3101.0, low=3066.0, close=3093.0, volume=366951, open_oi=1687170, close_oi=1712644, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-08 22:00:00'), open=3103.0, high=3108.0, low=3095.0, close=3096.0, volume=129920, open_oi=1673508, close_oi=1668464, symbol='SHFE.rb2510')\n",
"[2025-04-09 22:00:00] 策略 (SHFE.rb2510): [2025-04-09 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250409220000_689 @ 3126.10\n",
"[2025-04-09 22:00:00] 策略 (SHFE.rb2510): [2025-04-09 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250409220000_690 @ 3023.00\n",
"[2025-04-09 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-09 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250409220000_689': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250409220000_689', price_type='LIMIT', limit_price=3127, submitted_time=Timestamp('2025-04-09 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250409220000_690': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250409220000_690', price_type='LIMIT', limit_price=3023, submitted_time=Timestamp('2025-04-09 22:00:00'), offset='OPEN')}\n",
"[2025-04-10 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-09 22:00:00'), open=3093.0, high=3106.0, low=3090.0, close=3094.0, volume=199214, open_oi=1712644, close_oi=1709757, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 09:00:00'), open=3085.0, high=3085.0, low=3033.0, close=3063.0, volume=822232, open_oi=1668464, close_oi=1687501, symbol='SHFE.rb2510')\n",
"[2025-04-10 09:00:00] 策略 (SHFE.rb2510): [2025-04-10 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410090000_691 @ 3200.40\n",
"[2025-04-10 09:00:00] 策略 (SHFE.rb2510): [2025-04-10 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410090000_692 @ 3098.00\n",
"[2025-04-10 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410090000_691': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410090000_691', price_type='LIMIT', limit_price=3201, submitted_time=Timestamp('2025-04-10 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410090000_692': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410090000_692', price_type='LIMIT', limit_price=3098, submitted_time=Timestamp('2025-04-10 09:00:00'), offset='OPEN')}\n",
"[2025-04-10 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 09:00:00'), open=3130.0, high=3148.0, low=3116.0, close=3139.0, volume=564239, open_oi=1709757, close_oi=1709563, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 10:00:00'), open=3063.0, high=3082.0, low=3054.0, close=3081.0, volume=279023, open_oi=1687501, close_oi=1684051, symbol='SHFE.rb2510')\n",
"[2025-04-10 10:00:00] 策略 (SHFE.rb2510): [2025-04-10 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410100000_693 @ 3188.60\n",
"[2025-04-10 10:00:00] 策略 (SHFE.rb2510): [2025-04-10 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410100000_694 @ 3075.00\n",
"[2025-04-10 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410100000_693': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410100000_693', price_type='LIMIT', limit_price=3189, submitted_time=Timestamp('2025-04-10 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410100000_694': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410100000_694', price_type='LIMIT', limit_price=3075, submitted_time=Timestamp('2025-04-10 10:00:00'), offset='OPEN')}\n",
"[2025-04-10 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 10:00:00'), open=3139.0, high=3155.0, low=3135.0, close=3141.0, volume=298129, open_oi=1709563, close_oi=1707026, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 11:00:00'), open=3081.0, high=3091.0, low=3072.0, close=3089.0, volume=201891, open_oi=1684051, close_oi=1684442, symbol='SHFE.rb2510')\n",
"[2025-04-10 11:00:00] 策略 (SHFE.rb2510): [2025-04-10 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410110000_695 @ 3173.80\n",
"[2025-04-10 11:00:00] 策略 (SHFE.rb2510): [2025-04-10 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410110000_696 @ 3101.00\n",
"[2025-04-10 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410110000_695': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410110000_695', price_type='LIMIT', limit_price=3174, submitted_time=Timestamp('2025-04-10 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410110000_696': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410110000_696', price_type='LIMIT', limit_price=3101, submitted_time=Timestamp('2025-04-10 11:00:00'), offset='OPEN')}\n",
"[2025-04-10 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 11:00:00'), open=3141.0, high=3148.0, low=3130.0, close=3133.0, volume=143368, open_oi=1707026, close_oi=1700669, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 13:00:00'), open=3087.0, high=3094.0, low=3081.0, close=3091.0, volume=156732, open_oi=1684442, close_oi=1691939, symbol='SHFE.rb2510')\n",
"[2025-04-10 13:00:00] 策略 (SHFE.rb2510): [2025-04-10 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410130000_697 @ 3164.60\n",
"[2025-04-10 13:00:00] 策略 (SHFE.rb2510): [2025-04-10 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410130000_698 @ 3104.00\n",
"[2025-04-10 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410130000_697': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410130000_697', price_type='LIMIT', limit_price=3165, submitted_time=Timestamp('2025-04-10 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410130000_698': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410130000_698', price_type='LIMIT', limit_price=3104, submitted_time=Timestamp('2025-04-10 13:00:00'), offset='OPEN')}\n",
"[2025-04-10 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 13:00:00'), open=3140.0, high=3144.0, low=3131.0, close=3140.0, volume=146837, open_oi=1700669, close_oi=1705234, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 14:00:00'), open=3091.0, high=3107.0, low=3085.0, close=3088.0, volume=353539, open_oi=1691939, close_oi=1687170, symbol='SHFE.rb2510')\n",
"[2025-04-10 14:00:00] 策略 (SHFE.rb2510): [2025-04-10 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410140000_699 @ 3172.90\n",
"[2025-04-10 14:00:00] 策略 (SHFE.rb2510): [2025-04-10 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410140000_700 @ 3114.00\n",
"[2025-04-10 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410140000_699': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410140000_699', price_type='LIMIT', limit_price=3173, submitted_time=Timestamp('2025-04-10 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410140000_700': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410140000_700', price_type='LIMIT', limit_price=3114, submitted_time=Timestamp('2025-04-10 14:00:00'), offset='OPEN')}\n",
"[2025-04-10 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 14:00:00'), open=3140.0, high=3150.0, low=3137.0, close=3139.0, volume=210818, open_oi=1705234, close_oi=1686421, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 21:00:00'), open=3074.0, high=3101.0, low=3066.0, close=3093.0, volume=366951, open_oi=1687170, close_oi=1712644, symbol='SHFE.rb2510')\n",
"[2025-04-10 21:00:00] 策略 (SHFE.rb2510): [2025-04-10 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410210000_701 @ 3193.50\n",
"[2025-04-10 21:00:00] 策略 (SHFE.rb2510): [2025-04-10 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410210000_702 @ 3119.00\n",
"[2025-04-10 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410210000_701': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410210000_701', price_type='LIMIT', limit_price=3194, submitted_time=Timestamp('2025-04-10 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410210000_702': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410210000_702', price_type='LIMIT', limit_price=3119, submitted_time=Timestamp('2025-04-10 21:00:00'), offset='OPEN')}\n",
"[2025-04-10 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 21:00:00'), open=3145.0, high=3146.0, low=3125.0, close=3130.0, volume=244429, open_oi=1686421, close_oi=1689395, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-09 22:00:00'), open=3093.0, high=3106.0, low=3090.0, close=3094.0, volume=199214, open_oi=1712644, close_oi=1709757, symbol='SHFE.rb2510')\n",
"[2025-04-10 22:00:00] 策略 (SHFE.rb2510): [2025-04-10 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250410220000_703 @ 3159.70\n",
"[2025-04-10 22:00:00] 策略 (SHFE.rb2510): [2025-04-10 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250410220000_704 @ 3088.00\n",
"[2025-04-10 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-10 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250410220000_703': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250410220000_703', price_type='LIMIT', limit_price=3160, submitted_time=Timestamp('2025-04-10 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250410220000_704': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250410220000_704', price_type='LIMIT', limit_price=3088, submitted_time=Timestamp('2025-04-10 22:00:00'), offset='OPEN')}\n",
"[2025-04-11 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-10 22:00:00'), open=3130.0, high=3141.0, low=3129.0, close=3136.0, volume=140102, open_oi=1689395, close_oi=1676266, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 09:00:00'), open=3130.0, high=3148.0, low=3116.0, close=3139.0, volume=564239, open_oi=1709757, close_oi=1709563, symbol='SHFE.rb2510')\n",
"[2025-04-11 09:00:00] 策略 (SHFE.rb2510): [2025-04-11 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411090000_705 @ 3177.40\n",
"[2025-04-11 09:00:00] 策略 (SHFE.rb2510): [2025-04-11 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411090000_706 @ 3109.00\n",
"[2025-04-11 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411090000_705': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411090000_705', price_type='LIMIT', limit_price=3178, submitted_time=Timestamp('2025-04-11 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411090000_706': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411090000_706', price_type='LIMIT', limit_price=3109, submitted_time=Timestamp('2025-04-11 09:00:00'), offset='OPEN')}\n",
"[2025-04-11 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 09:00:00'), open=3133.0, high=3133.0, low=3118.0, close=3124.0, volume=260272, open_oi=1676266, close_oi=1688620, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 10:00:00'), open=3139.0, high=3155.0, low=3135.0, close=3141.0, volume=298129, open_oi=1709563, close_oi=1707026, symbol='SHFE.rb2510')\n",
"[2025-04-11 10:00:00] 策略 (SHFE.rb2510): [2025-04-11 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411100000_707 @ 3155.50\n",
"[2025-04-11 10:00:00] 策略 (SHFE.rb2510): [2025-04-11 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411100000_708 @ 3094.00\n",
"[2025-04-11 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411100000_707': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411100000_707', price_type='LIMIT', limit_price=3156, submitted_time=Timestamp('2025-04-11 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411100000_708': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411100000_708', price_type='LIMIT', limit_price=3094, submitted_time=Timestamp('2025-04-11 10:00:00'), offset='OPEN')}\n",
"[2025-04-11 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 10:00:00'), open=3124.0, high=3124.0, low=3104.0, close=3114.0, volume=251393, open_oi=1688620, close_oi=1693353, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 11:00:00'), open=3141.0, high=3148.0, low=3130.0, close=3133.0, volume=143368, open_oi=1707026, close_oi=1700669, symbol='SHFE.rb2510')\n",
"[2025-04-11 11:00:00] 策略 (SHFE.rb2510): [2025-04-11 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411110000_709 @ 3145.60\n",
"[2025-04-11 11:00:00] 策略 (SHFE.rb2510): [2025-04-11 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411110000_710 @ 3074.00\n",
"[2025-04-11 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411110000_709': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411110000_709', price_type='LIMIT', limit_price=3146, submitted_time=Timestamp('2025-04-11 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411110000_710': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411110000_710', price_type='LIMIT', limit_price=3074, submitted_time=Timestamp('2025-04-11 11:00:00'), offset='OPEN')}\n",
"[2025-04-11 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 11:00:00'), open=3114.0, high=3120.0, low=3107.0, close=3117.0, volume=114983, open_oi=1693353, close_oi=1688074, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 13:00:00'), open=3140.0, high=3144.0, low=3131.0, close=3140.0, volume=146837, open_oi=1700669, close_oi=1705234, symbol='SHFE.rb2510')\n",
"[2025-04-11 13:00:00] 策略 (SHFE.rb2510): [2025-04-11 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411130000_711 @ 3145.10\n",
"[2025-04-11 13:00:00] 策略 (SHFE.rb2510): [2025-04-11 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411130000_712 @ 3097.00\n",
"[2025-04-11 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411130000_711': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411130000_711', price_type='LIMIT', limit_price=3146, submitted_time=Timestamp('2025-04-11 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411130000_712': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411130000_712', price_type='LIMIT', limit_price=3097, submitted_time=Timestamp('2025-04-11 13:00:00'), offset='OPEN')}\n",
"[2025-04-11 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 13:00:00'), open=3123.0, high=3140.0, low=3119.0, close=3134.0, volume=280796, open_oi=1688074, close_oi=1676204, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 14:00:00'), open=3140.0, high=3150.0, low=3137.0, close=3139.0, volume=210818, open_oi=1705234, close_oi=1686421, symbol='SHFE.rb2510')\n",
"[2025-04-11 14:00:00] 策略 (SHFE.rb2510): [2025-04-11 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411140000_713 @ 3160.10\n",
"[2025-04-11 14:00:00] 策略 (SHFE.rb2510): [2025-04-11 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411140000_714 @ 3092.00\n",
"[2025-04-11 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411140000_713': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411140000_713', price_type='LIMIT', limit_price=3161, submitted_time=Timestamp('2025-04-11 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411140000_714': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411140000_714', price_type='LIMIT', limit_price=3092, submitted_time=Timestamp('2025-04-11 14:00:00'), offset='OPEN')}\n",
"[2025-04-11 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 14:00:00'), open=3134.0, high=3138.0, low=3126.0, close=3131.0, volume=213516, open_oi=1676204, close_oi=1665377, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 21:00:00'), open=3145.0, high=3146.0, low=3125.0, close=3130.0, volume=244429, open_oi=1686421, close_oi=1689395, symbol='SHFE.rb2510')\n",
"[2025-04-11 21:00:00] 策略 (SHFE.rb2510): [2025-04-11 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411210000_715 @ 3162.20\n",
"[2025-04-11 21:00:00] 策略 (SHFE.rb2510): [2025-04-11 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411210000_716 @ 3107.00\n",
"[2025-04-11 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411210000_715': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411210000_715', price_type='LIMIT', limit_price=3163, submitted_time=Timestamp('2025-04-11 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411210000_716': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411210000_716', price_type='LIMIT', limit_price=3107, submitted_time=Timestamp('2025-04-11 21:00:00'), offset='OPEN')}\n",
"[2025-04-11 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 21:00:00'), open=3131.0, high=3133.0, low=3120.0, close=3126.0, volume=171731, open_oi=1665377, close_oi=1672820, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-10 22:00:00'), open=3130.0, high=3141.0, low=3129.0, close=3136.0, volume=140102, open_oi=1689395, close_oi=1676266, symbol='SHFE.rb2510')\n",
"[2025-04-11 22:00:00] 策略 (SHFE.rb2510): [2025-04-11 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250411220000_717 @ 3146.90\n",
"[2025-04-11 22:00:00] 策略 (SHFE.rb2510): [2025-04-11 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250411220000_718 @ 3100.00\n",
"[2025-04-11 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-11 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250411220000_717': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250411220000_717', price_type='LIMIT', limit_price=3147, submitted_time=Timestamp('2025-04-11 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250411220000_718': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250411220000_718', price_type='LIMIT', limit_price=3100, submitted_time=Timestamp('2025-04-11 22:00:00'), offset='OPEN')}\n",
"[2025-04-14 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-11 22:00:00'), open=3126.0, high=3137.0, low=3124.0, close=3126.0, volume=142328, open_oi=1672820, close_oi=1658354, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 09:00:00'), open=3133.0, high=3133.0, low=3118.0, close=3124.0, volume=260272, open_oi=1676266, close_oi=1688620, symbol='SHFE.rb2510')\n",
"[2025-04-14 09:00:00] 策略 (SHFE.rb2510): [2025-04-14 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414090000_719 @ 3160.50\n",
"[2025-04-14 09:00:00] 策略 (SHFE.rb2510): [2025-04-14 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414090000_720 @ 3110.00\n",
"[2025-04-14 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414090000_719': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414090000_719', price_type='LIMIT', limit_price=3161, submitted_time=Timestamp('2025-04-14 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414090000_720': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414090000_720', price_type='LIMIT', limit_price=3110, submitted_time=Timestamp('2025-04-14 09:00:00'), offset='OPEN')}\n",
"[2025-04-14 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 09:00:00'), open=3136.0, high=3145.0, low=3134.0, close=3136.0, volume=271855, open_oi=1658354, close_oi=1674000, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 10:00:00'), open=3124.0, high=3124.0, low=3104.0, close=3114.0, volume=251393, open_oi=1688620, close_oi=1693353, symbol='SHFE.rb2510')\n",
"[2025-04-14 10:00:00] 策略 (SHFE.rb2510): [2025-04-14 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414100000_721 @ 3165.50\n",
"[2025-04-14 10:00:00] 策略 (SHFE.rb2510): [2025-04-14 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414100000_722 @ 3114.00\n",
"[2025-04-14 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414100000_721': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414100000_721', price_type='LIMIT', limit_price=3166, submitted_time=Timestamp('2025-04-14 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414100000_722': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414100000_722', price_type='LIMIT', limit_price=3114, submitted_time=Timestamp('2025-04-14 10:00:00'), offset='OPEN')}\n",
"[2025-04-14 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 10:00:00'), open=3136.0, high=3138.0, low=3118.0, close=3128.0, volume=179168, open_oi=1674000, close_oi=1701321, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 11:00:00'), open=3114.0, high=3120.0, low=3107.0, close=3117.0, volume=114983, open_oi=1693353, close_oi=1688074, symbol='SHFE.rb2510')\n",
"[2025-04-14 11:00:00] 策略 (SHFE.rb2510): [2025-04-14 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414110000_723 @ 3153.60\n",
"[2025-04-14 11:00:00] 策略 (SHFE.rb2510): [2025-04-14 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414110000_724 @ 3088.00\n",
"[2025-04-14 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414110000_723': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414110000_723', price_type='LIMIT', limit_price=3154, submitted_time=Timestamp('2025-04-14 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414110000_724': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414110000_724', price_type='LIMIT', limit_price=3088, submitted_time=Timestamp('2025-04-14 11:00:00'), offset='OPEN')}\n",
"[2025-04-14 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 11:00:00'), open=3128.0, high=3131.0, low=3124.0, close=3127.0, volume=74310, open_oi=1701321, close_oi=1707027, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 13:00:00'), open=3123.0, high=3140.0, low=3119.0, close=3134.0, volume=280796, open_oi=1688074, close_oi=1676204, symbol='SHFE.rb2510')\n",
"[2025-04-14 13:00:00] 策略 (SHFE.rb2510): [2025-04-14 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414130000_725 @ 3154.70\n",
"[2025-04-14 13:00:00] 策略 (SHFE.rb2510): [2025-04-14 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414130000_726 @ 3112.00\n",
"[2025-04-14 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414130000_725': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414130000_725', price_type='LIMIT', limit_price=3155, submitted_time=Timestamp('2025-04-14 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414130000_726': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414130000_726', price_type='LIMIT', limit_price=3112, submitted_time=Timestamp('2025-04-14 13:00:00'), offset='OPEN')}\n",
"[2025-04-14 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 13:00:00'), open=3126.0, high=3135.0, low=3125.0, close=3132.0, volume=91477, open_oi=1707027, close_oi=1717335, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 14:00:00'), open=3134.0, high=3138.0, low=3126.0, close=3131.0, volume=213516, open_oi=1676204, close_oi=1665377, symbol='SHFE.rb2510')\n",
"[2025-04-14 14:00:00] 策略 (SHFE.rb2510): [2025-04-14 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414140000_727 @ 3151.40\n",
"[2025-04-14 14:00:00] 策略 (SHFE.rb2510): [2025-04-14 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414140000_728 @ 3112.00\n",
"[2025-04-14 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414140000_727': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414140000_727', price_type='LIMIT', limit_price=3152, submitted_time=Timestamp('2025-04-14 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414140000_728': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414140000_728', price_type='LIMIT', limit_price=3112, submitted_time=Timestamp('2025-04-14 14:00:00'), offset='OPEN')}\n",
"[2025-04-14 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 14:00:00'), open=3132.0, high=3137.0, low=3125.0, close=3126.0, volume=135964, open_oi=1717335, close_oi=1705840, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 21:00:00'), open=3131.0, high=3133.0, low=3120.0, close=3126.0, volume=171731, open_oi=1665377, close_oi=1672820, symbol='SHFE.rb2510')\n",
"[2025-04-14 21:00:00] 策略 (SHFE.rb2510): [2025-04-14 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414210000_729 @ 3150.60\n",
"[2025-04-14 21:00:00] 策略 (SHFE.rb2510): [2025-04-14 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414210000_730 @ 3105.00\n",
"[2025-04-14 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414210000_729': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414210000_729', price_type='LIMIT', limit_price=3151, submitted_time=Timestamp('2025-04-14 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414210000_730': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414210000_730', price_type='LIMIT', limit_price=3105, submitted_time=Timestamp('2025-04-14 21:00:00'), offset='OPEN')}\n",
"[2025-04-14 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 21:00:00'), open=3129.0, high=3134.0, low=3125.0, close=3133.0, volume=139393, open_oi=1705840, close_oi=1712654, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-11 22:00:00'), open=3126.0, high=3137.0, low=3124.0, close=3126.0, volume=142328, open_oi=1672820, close_oi=1658354, symbol='SHFE.rb2510')\n",
"[2025-04-14 22:00:00] 策略 (SHFE.rb2510): [2025-04-14 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250414220000_731 @ 3153.10\n",
"[2025-04-14 22:00:00] 策略 (SHFE.rb2510): [2025-04-14 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250414220000_732 @ 3115.00\n",
"[2025-04-14 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-14 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250414220000_731': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250414220000_731', price_type='LIMIT', limit_price=3154, submitted_time=Timestamp('2025-04-14 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250414220000_732': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250414220000_732', price_type='LIMIT', limit_price=3115, submitted_time=Timestamp('2025-04-14 22:00:00'), offset='OPEN')}\n",
"[2025-04-15 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-14 22:00:00'), open=3133.0, high=3139.0, low=3132.0, close=3138.0, volume=137112, open_oi=1712654, close_oi=1696855, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-14 09:00:00'), open=3136.0, high=3145.0, low=3134.0, close=3136.0, volume=271855, open_oi=1658354, close_oi=1674000, symbol='SHFE.rb2510')\n",
"[2025-04-15 09:00:00] 策略 (SHFE.rb2510): [2025-04-15 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250415090000_733 @ 3152.70\n",
"[2025-04-15 09:00:00] 策略 (SHFE.rb2510): [2025-04-15 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250415090000_734 @ 3122.00\n",
"[2025-04-15 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250415090000_733': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250415090000_733', price_type='LIMIT', limit_price=3153, submitted_time=Timestamp('2025-04-15 09:00:00'), offset='OPEN')}\n",
"[2025-04-15 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-15 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-15 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-15 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-15 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-15 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 13:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-15 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-15 14:00:00] 策略 (SHFE.rb2510): [2025-04-15 14:00:00] 止盈信号 - PnL per unit: 11.00, 目标: 10.00\n",
"[2025-04-15 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 14:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-15 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-15 14:00:00'), open=3133.0, high=3134.0, low=3122.0, close=3125.0, volume=254736, open_oi=1729930, close_oi=1708811, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-14 21:00:00'), open=3129.0, high=3134.0, low=3125.0, close=3133.0, volume=139393, open_oi=1705840, close_oi=1712654, symbol='SHFE.rb2510')\n",
"[2025-04-15 21:00:00] 策略 (SHFE.rb2510): [2025-04-15 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250415210000_736 @ 3138.80\n",
"[2025-04-15 21:00:00] 策略 (SHFE.rb2510): [2025-04-15 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250415210000_737 @ 3098.00\n",
"[2025-04-15 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250415210000_736': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250415210000_736', price_type='LIMIT', limit_price=3139, submitted_time=Timestamp('2025-04-15 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250415210000_737': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250415210000_737', price_type='LIMIT', limit_price=3098, submitted_time=Timestamp('2025-04-15 21:00:00'), offset='OPEN')}\n",
"[2025-04-15 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-15 21:00:00'), open=3122.0, high=3133.0, low=3118.0, close=3126.0, volume=174822, open_oi=1708811, close_oi=1715596, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-14 22:00:00'), open=3133.0, high=3139.0, low=3132.0, close=3138.0, volume=137112, open_oi=1712654, close_oi=1696855, symbol='SHFE.rb2510')\n",
"[2025-04-15 22:00:00] 策略 (SHFE.rb2510): [2025-04-15 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250415220000_738 @ 3141.90\n",
"[2025-04-15 22:00:00] 策略 (SHFE.rb2510): [2025-04-15 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250415220000_739 @ 3096.00\n",
"[2025-04-15 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-15 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250415220000_738': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250415220000_738', price_type='LIMIT', limit_price=3142, submitted_time=Timestamp('2025-04-15 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250415220000_739': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250415220000_739', price_type='LIMIT', limit_price=3096, submitted_time=Timestamp('2025-04-15 22:00:00'), offset='OPEN')}\n",
"[2025-04-16 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-15 22:00:00'), open=3126.0, high=3130.0, low=3122.0, close=3123.0, volume=89470, open_oi=1715596, close_oi=1714839, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 09:00:00'), open=3136.0, high=3140.0, low=3119.0, close=3121.0, volume=230548, open_oi=1696855, close_oi=1712745, symbol='SHFE.rb2510')\n",
"[2025-04-16 09:00:00] 策略 (SHFE.rb2510): [2025-04-16 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416090000_740 @ 3150.20\n",
"[2025-04-16 09:00:00] 策略 (SHFE.rb2510): [2025-04-16 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416090000_741 @ 3105.00\n",
"[2025-04-16 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416090000_740': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416090000_740', price_type='LIMIT', limit_price=3151, submitted_time=Timestamp('2025-04-16 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416090000_741': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416090000_741', price_type='LIMIT', limit_price=3105, submitted_time=Timestamp('2025-04-16 09:00:00'), offset='OPEN')}\n",
"[2025-04-16 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 09:00:00'), open=3121.0, high=3124.0, low=3106.0, close=3108.0, volume=249503, open_oi=1714839, close_oi=1756171, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 10:00:00'), open=3121.0, high=3127.0, low=3116.0, close=3120.0, volume=145529, open_oi=1712745, close_oi=1720994, symbol='SHFE.rb2510')\n",
"[2025-04-16 10:00:00] 策略 (SHFE.rb2510): [2025-04-16 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416100000_742 @ 3130.20\n",
"[2025-04-16 10:00:00] 策略 (SHFE.rb2510): [2025-04-16 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416100000_743 @ 3072.00\n",
"[2025-04-16 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416100000_742': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416100000_742', price_type='LIMIT', limit_price=3131, submitted_time=Timestamp('2025-04-16 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416100000_743': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416100000_743', price_type='LIMIT', limit_price=3072, submitted_time=Timestamp('2025-04-16 10:00:00'), offset='OPEN')}\n",
"[2025-04-16 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 10:00:00'), open=3108.0, high=3110.0, low=3092.0, close=3097.0, volume=295958, open_oi=1756171, close_oi=1815188, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 11:00:00'), open=3120.0, high=3126.0, low=3118.0, close=3125.0, volume=56193, open_oi=1720994, close_oi=1724756, symbol='SHFE.rb2510')\n",
"[2025-04-16 11:00:00] 策略 (SHFE.rb2510): [2025-04-16 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416110000_744 @ 3115.60\n",
"[2025-04-16 11:00:00] 策略 (SHFE.rb2510): [2025-04-16 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416110000_745 @ 3061.00\n",
"[2025-04-16 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416110000_744': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416110000_744', price_type='LIMIT', limit_price=3116, submitted_time=Timestamp('2025-04-16 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416110000_745': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416110000_745', price_type='LIMIT', limit_price=3061, submitted_time=Timestamp('2025-04-16 11:00:00'), offset='OPEN')}\n",
"[2025-04-16 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 11:00:00'), open=3097.0, high=3099.0, low=3088.0, close=3090.0, volume=103367, open_oi=1815188, close_oi=1828763, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 13:00:00'), open=3125.0, high=3133.0, low=3112.0, close=3133.0, volume=165481, open_oi=1724756, close_oi=1729930, symbol='SHFE.rb2510')\n",
"[2025-04-16 13:00:00] 策略 (SHFE.rb2510): [2025-04-16 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416130000_746 @ 3121.70\n",
"[2025-04-16 13:00:00] 策略 (SHFE.rb2510): [2025-04-16 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416130000_747 @ 3069.00\n",
"[2025-04-16 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416130000_746': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416130000_746', price_type='LIMIT', limit_price=3122, submitted_time=Timestamp('2025-04-16 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416130000_747': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416130000_747', price_type='LIMIT', limit_price=3069, submitted_time=Timestamp('2025-04-16 13:00:00'), offset='OPEN')}\n",
"[2025-04-16 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 13:00:00'), open=3091.0, high=3099.0, low=3090.0, close=3092.0, volume=116036, open_oi=1828763, close_oi=1837124, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 14:00:00'), open=3133.0, high=3134.0, low=3122.0, close=3125.0, volume=254736, open_oi=1729930, close_oi=1708811, symbol='SHFE.rb2510')\n",
"[2025-04-16 14:00:00] 策略 (SHFE.rb2510): [2025-04-16 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416140000_748 @ 3110.90\n",
"[2025-04-16 14:00:00] 策略 (SHFE.rb2510): [2025-04-16 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416140000_749 @ 3074.00\n",
"[2025-04-16 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416140000_748': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416140000_748', price_type='LIMIT', limit_price=3111, submitted_time=Timestamp('2025-04-16 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416140000_749': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416140000_749', price_type='LIMIT', limit_price=3074, submitted_time=Timestamp('2025-04-16 14:00:00'), offset='OPEN')}\n",
"[2025-04-16 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 14:00:00'), open=3092.0, high=3096.0, low=3088.0, close=3093.0, volume=173838, open_oi=1837124, close_oi=1838220, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 21:00:00'), open=3122.0, high=3133.0, low=3118.0, close=3126.0, volume=174822, open_oi=1708811, close_oi=1715596, symbol='SHFE.rb2510')\n",
"[2025-04-16 21:00:00] 策略 (SHFE.rb2510): [2025-04-16 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416210000_750 @ 3117.00\n",
"[2025-04-16 21:00:00] 策略 (SHFE.rb2510): [2025-04-16 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416210000_751 @ 3079.00\n",
"[2025-04-16 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416210000_750': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416210000_750', price_type='LIMIT', limit_price=3117, submitted_time=Timestamp('2025-04-16 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416210000_751': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416210000_751', price_type='LIMIT', limit_price=3079, submitted_time=Timestamp('2025-04-16 21:00:00'), offset='OPEN')}\n",
"[2025-04-16 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 21:00:00'), open=3095.0, high=3106.0, low=3086.0, close=3100.0, volume=314940, open_oi=1838220, close_oi=1848447, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-15 22:00:00'), open=3126.0, high=3130.0, low=3122.0, close=3123.0, volume=89470, open_oi=1715596, close_oi=1714839, symbol='SHFE.rb2510')\n",
"[2025-04-16 22:00:00] 策略 (SHFE.rb2510): [2025-04-16 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250416220000_752 @ 3119.60\n",
"[2025-04-16 22:00:00] 策略 (SHFE.rb2510): [2025-04-16 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250416220000_753 @ 3060.00\n",
"[2025-04-16 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-16 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250416220000_752': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250416220000_752', price_type='LIMIT', limit_price=3120, submitted_time=Timestamp('2025-04-16 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250416220000_753': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250416220000_753', price_type='LIMIT', limit_price=3060, submitted_time=Timestamp('2025-04-16 22:00:00'), offset='OPEN')}\n",
"[2025-04-17 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-16 22:00:00'), open=3100.0, high=3108.0, low=3095.0, close=3096.0, volume=141003, open_oi=1848447, close_oi=1835247, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-16 09:00:00'), open=3121.0, high=3124.0, low=3106.0, close=3108.0, volume=249503, open_oi=1714839, close_oi=1756171, symbol='SHFE.rb2510')\n",
"[2025-04-17 09:00:00] 策略 (SHFE.rb2510): [2025-04-17 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250417090000_754 @ 3123.10\n",
"[2025-04-17 09:00:00] 策略 (SHFE.rb2510): [2025-04-17 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250417090000_755 @ 3069.00\n",
"[2025-04-17 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250417090000_754': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250417090000_754', price_type='LIMIT', limit_price=3124, submitted_time=Timestamp('2025-04-17 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250417090000_755': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250417090000_755', price_type='LIMIT', limit_price=3069, submitted_time=Timestamp('2025-04-17 09:00:00'), offset='OPEN')}\n",
"[2025-04-17 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-17 09:00:00'), open=3095.0, high=3106.0, low=3091.0, close=3105.0, volume=188430, open_oi=1835247, close_oi=1849379, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-16 10:00:00'), open=3108.0, high=3110.0, low=3092.0, close=3097.0, volume=295958, open_oi=1756171, close_oi=1815188, symbol='SHFE.rb2510')\n",
"[2025-04-17 10:00:00] 策略 (SHFE.rb2510): [2025-04-17 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250417100000_756 @ 3134.10\n",
"[2025-04-17 10:00:00] 策略 (SHFE.rb2510): [2025-04-17 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250417100000_757 @ 3075.00\n",
"[2025-04-17 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250417100000_756': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250417100000_756', price_type='LIMIT', limit_price=3135, submitted_time=Timestamp('2025-04-17 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250417100000_757': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250417100000_757', price_type='LIMIT', limit_price=3075, submitted_time=Timestamp('2025-04-17 10:00:00'), offset='OPEN')}\n",
"[2025-04-17 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-17 10:00:00'), open=3105.0, high=3112.0, low=3095.0, close=3107.0, volume=191332, open_oi=1849379, close_oi=1865246, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-16 11:00:00'), open=3097.0, high=3099.0, low=3088.0, close=3090.0, volume=103367, open_oi=1815188, close_oi=1828763, symbol='SHFE.rb2510')\n",
"[2025-04-17 11:00:00] 策略 (SHFE.rb2510): [2025-04-17 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250417110000_758 @ 3128.70\n",
"[2025-04-17 11:00:00] 策略 (SHFE.rb2510): [2025-04-17 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250417110000_759 @ 3073.00\n",
"[2025-04-17 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250417110000_758': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250417110000_758', price_type='LIMIT', limit_price=3129, submitted_time=Timestamp('2025-04-17 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250417110000_759': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250417110000_759', price_type='LIMIT', limit_price=3073, submitted_time=Timestamp('2025-04-17 11:00:00'), offset='OPEN')}\n",
"[2025-04-17 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-17 11:00:00'), open=3107.0, high=3115.0, low=3103.0, close=3114.0, volume=121919, open_oi=1865246, close_oi=1865013, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-16 13:00:00'), open=3091.0, high=3099.0, low=3090.0, close=3092.0, volume=116036, open_oi=1828763, close_oi=1837124, symbol='SHFE.rb2510')\n",
"[2025-04-17 13:00:00] 策略 (SHFE.rb2510): [2025-04-17 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250417130000_760 @ 3130.80\n",
"[2025-04-17 13:00:00] 策略 (SHFE.rb2510): [2025-04-17 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250417130000_761 @ 3090.00\n",
"[2025-04-17 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250417130000_760': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250417130000_760', price_type='LIMIT', limit_price=3131, submitted_time=Timestamp('2025-04-17 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250417130000_761': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250417130000_761', price_type='LIMIT', limit_price=3090, submitted_time=Timestamp('2025-04-17 13:00:00'), offset='OPEN')}\n",
"[2025-04-17 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-17 13:00:00'), open=3114.0, high=3118.0, low=3109.0, close=3110.0, volume=155627, open_oi=1865013, close_oi=1865799, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-16 14:00:00'), open=3092.0, high=3096.0, low=3088.0, close=3093.0, volume=173838, open_oi=1837124, close_oi=1838220, symbol='SHFE.rb2510')\n",
"[2025-04-17 14:00:00] 策略 (SHFE.rb2510): [2025-04-17 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250417140000_762 @ 3124.10\n",
"[2025-04-17 14:00:00] 策略 (SHFE.rb2510): [2025-04-17 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250417140000_763 @ 3092.00\n",
"[2025-04-17 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250417140000_762': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250417140000_762', price_type='LIMIT', limit_price=3125, submitted_time=Timestamp('2025-04-17 14:00:00'), offset='OPEN')}\n",
"[2025-04-17 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-17 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-17 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-17 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-17 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-18 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 09:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-18 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-18 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-18 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 13:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-18 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 14:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-18 21:00:00] 策略 (SHFE.rb2510): [2025-04-18 21:00:00] 止损信号 - PnL per unit: -13.00, 目标: -10.00\n",
"[2025-04-18 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-18 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-18 21:00:00'), open=3079.0, high=3082.0, low=3070.0, close=3081.0, volume=205688, open_oi=1926742, close_oi=1936208, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-17 22:00:00'), open=3094.0, high=3097.0, low=3088.0, close=3089.0, volume=143765, open_oi=1875976, close_oi=1875643, symbol='SHFE.rb2510')\n",
"[2025-04-18 22:00:00] 策略 (SHFE.rb2510): [2025-04-18 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250418220000_765 @ 3097.80\n",
"[2025-04-18 22:00:00] 策略 (SHFE.rb2510): [2025-04-18 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250418220000_766 @ 3057.00\n",
"[2025-04-18 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-18 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250418220000_765': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250418220000_765', price_type='LIMIT', limit_price=3098, submitted_time=Timestamp('2025-04-18 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250418220000_766': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250418220000_766', price_type='LIMIT', limit_price=3057, submitted_time=Timestamp('2025-04-18 22:00:00'), offset='OPEN')}\n",
"[2025-04-21 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-18 22:00:00'), open=3081.0, high=3090.0, low=3079.0, close=3087.0, volume=167122, open_oi=1936208, close_oi=1917818, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 09:00:00'), open=3089.0, high=3099.0, low=3082.0, close=3095.0, volume=298788, open_oi=1875643, close_oi=1896113, symbol='SHFE.rb2510')\n",
"[2025-04-21 09:00:00] 策略 (SHFE.rb2510): [2025-04-21 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421090000_767 @ 3115.90\n",
"[2025-04-21 09:00:00] 策略 (SHFE.rb2510): [2025-04-21 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421090000_768 @ 3068.00\n",
"[2025-04-21 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421090000_767': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421090000_767', price_type='LIMIT', limit_price=3116, submitted_time=Timestamp('2025-04-21 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421090000_768': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421090000_768', price_type='LIMIT', limit_price=3068, submitted_time=Timestamp('2025-04-21 09:00:00'), offset='OPEN')}\n",
"[2025-04-21 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 09:00:00'), open=3090.0, high=3110.0, low=3090.0, close=3107.0, volume=422006, open_oi=1917818, close_oi=1935911, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 10:00:00'), open=3095.0, high=3098.0, low=3085.0, close=3091.0, volume=142734, open_oi=1896113, close_oi=1894516, symbol='SHFE.rb2510')\n",
"[2025-04-21 10:00:00] 策略 (SHFE.rb2510): [2025-04-21 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421100000_769 @ 3132.60\n",
"[2025-04-21 10:00:00] 策略 (SHFE.rb2510): [2025-04-21 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421100000_770 @ 3067.00\n",
"[2025-04-21 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421100000_769': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421100000_769', price_type='LIMIT', limit_price=3133, submitted_time=Timestamp('2025-04-21 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421100000_770': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421100000_770', price_type='LIMIT', limit_price=3067, submitted_time=Timestamp('2025-04-21 10:00:00'), offset='OPEN')}\n",
"[2025-04-21 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 10:00:00'), open=3107.0, high=3109.0, low=3101.0, close=3105.0, volume=114046, open_oi=1935911, close_oi=1940794, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 11:00:00'), open=3091.0, high=3092.0, low=3082.0, close=3083.0, volume=78517, open_oi=1894516, close_oi=1893066, symbol='SHFE.rb2510')\n",
"[2025-04-21 11:00:00] 策略 (SHFE.rb2510): [2025-04-21 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421110000_771 @ 3121.00\n",
"[2025-04-21 11:00:00] 策略 (SHFE.rb2510): [2025-04-21 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421110000_772 @ 3089.00\n",
"[2025-04-21 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421110000_771': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421110000_771', price_type='LIMIT', limit_price=3121, submitted_time=Timestamp('2025-04-21 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421110000_772': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421110000_772', price_type='LIMIT', limit_price=3089, submitted_time=Timestamp('2025-04-21 11:00:00'), offset='OPEN')}\n",
"[2025-04-21 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 11:00:00'), open=3105.0, high=3112.0, low=3103.0, close=3111.0, volume=74945, open_oi=1940794, close_oi=1943632, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 13:00:00'), open=3083.0, high=3089.0, low=3078.0, close=3085.0, volume=152893, open_oi=1893066, close_oi=1910415, symbol='SHFE.rb2510')\n",
"[2025-04-21 13:00:00] 策略 (SHFE.rb2510): [2025-04-21 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421130000_773 @ 3128.70\n",
"[2025-04-21 13:00:00] 策略 (SHFE.rb2510): [2025-04-21 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421130000_774 @ 3093.00\n",
"[2025-04-21 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421130000_773': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421130000_773', price_type='LIMIT', limit_price=3129, submitted_time=Timestamp('2025-04-21 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421130000_774': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421130000_774', price_type='LIMIT', limit_price=3093, submitted_time=Timestamp('2025-04-21 13:00:00'), offset='OPEN')}\n",
"[2025-04-21 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 13:00:00'), open=3111.0, high=3117.0, low=3110.0, close=3116.0, volume=114447, open_oi=1943632, close_oi=1953311, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 14:00:00'), open=3085.0, high=3095.0, low=3073.0, close=3076.0, volume=307374, open_oi=1910415, close_oi=1926742, symbol='SHFE.rb2510')\n",
"[2025-04-21 14:00:00] 策略 (SHFE.rb2510): [2025-04-21 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421140000_775 @ 3145.90\n",
"[2025-04-21 14:00:00] 策略 (SHFE.rb2510): [2025-04-21 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421140000_776 @ 3102.00\n",
"[2025-04-21 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421140000_775': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421140000_775', price_type='LIMIT', limit_price=3146, submitted_time=Timestamp('2025-04-21 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421140000_776': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421140000_776', price_type='LIMIT', limit_price=3102, submitted_time=Timestamp('2025-04-21 14:00:00'), offset='OPEN')}\n",
"[2025-04-21 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 14:00:00'), open=3116.0, high=3119.0, low=3109.0, close=3113.0, volume=179368, open_oi=1953311, close_oi=1953540, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 21:00:00'), open=3079.0, high=3082.0, low=3070.0, close=3081.0, volume=205688, open_oi=1926742, close_oi=1936208, symbol='SHFE.rb2510')\n",
"[2025-04-21 21:00:00] 策略 (SHFE.rb2510): [2025-04-21 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421210000_777 @ 3136.40\n",
"[2025-04-21 21:00:00] 策略 (SHFE.rb2510): [2025-04-21 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421210000_778 @ 3097.00\n",
"[2025-04-21 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421210000_777': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421210000_777', price_type='LIMIT', limit_price=3137, submitted_time=Timestamp('2025-04-21 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421210000_778': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421210000_778', price_type='LIMIT', limit_price=3097, submitted_time=Timestamp('2025-04-21 21:00:00'), offset='OPEN')}\n",
"[2025-04-21 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 21:00:00'), open=3117.0, high=3123.0, low=3107.0, close=3109.0, volume=182190, open_oi=1953540, close_oi=1955161, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-18 22:00:00'), open=3081.0, high=3090.0, low=3079.0, close=3087.0, volume=167122, open_oi=1936208, close_oi=1917818, symbol='SHFE.rb2510')\n",
"[2025-04-21 22:00:00] 策略 (SHFE.rb2510): [2025-04-21 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250421220000_779 @ 3130.20\n",
"[2025-04-21 22:00:00] 策略 (SHFE.rb2510): [2025-04-21 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250421220000_780 @ 3077.00\n",
"[2025-04-21 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-21 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250421220000_779': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250421220000_779', price_type='LIMIT', limit_price=3131, submitted_time=Timestamp('2025-04-21 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250421220000_780': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250421220000_780', price_type='LIMIT', limit_price=3077, submitted_time=Timestamp('2025-04-21 22:00:00'), offset='OPEN')}\n",
"[2025-04-22 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-21 22:00:00'), open=3109.0, high=3110.0, low=3103.0, close=3105.0, volume=90119, open_oi=1955161, close_oi=1943065, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-21 09:00:00'), open=3090.0, high=3110.0, low=3090.0, close=3107.0, volume=422006, open_oi=1917818, close_oi=1935911, symbol='SHFE.rb2510')\n",
"[2025-04-22 09:00:00] 策略 (SHFE.rb2510): [2025-04-22 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250422090000_781 @ 3131.50\n",
"[2025-04-22 09:00:00] 策略 (SHFE.rb2510): [2025-04-22 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250422090000_782 @ 3090.00\n",
"[2025-04-22 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250422090000_781': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250422090000_781', price_type='LIMIT', limit_price=3132, submitted_time=Timestamp('2025-04-22 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250422090000_782': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250422090000_782', price_type='LIMIT', limit_price=3090, submitted_time=Timestamp('2025-04-22 09:00:00'), offset='OPEN')}\n",
"[2025-04-22 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-22 09:00:00'), open=3104.0, high=3109.0, low=3094.0, close=3096.0, volume=248539, open_oi=1943065, close_oi=1952634, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-21 10:00:00'), open=3107.0, high=3109.0, low=3101.0, close=3105.0, volume=114046, open_oi=1935911, close_oi=1940794, symbol='SHFE.rb2510')\n",
"[2025-04-22 10:00:00] 策略 (SHFE.rb2510): [2025-04-22 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250422100000_783 @ 3113.10\n",
"[2025-04-22 10:00:00] 策略 (SHFE.rb2510): [2025-04-22 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250422100000_784 @ 3066.00\n",
"[2025-04-22 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250422100000_783': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250422100000_783', price_type='LIMIT', limit_price=3114, submitted_time=Timestamp('2025-04-22 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250422100000_784': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250422100000_784', price_type='LIMIT', limit_price=3066, submitted_time=Timestamp('2025-04-22 10:00:00'), offset='OPEN')}\n",
"[2025-04-22 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-22 10:00:00'), open=3096.0, high=3100.0, low=3092.0, close=3096.0, volume=146338, open_oi=1952634, close_oi=1962595, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-21 11:00:00'), open=3105.0, high=3112.0, low=3103.0, close=3111.0, volume=74945, open_oi=1940794, close_oi=1943632, symbol='SHFE.rb2510')\n",
"[2025-04-22 11:00:00] 策略 (SHFE.rb2510): [2025-04-22 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250422110000_785 @ 3110.80\n",
"[2025-04-22 11:00:00] 策略 (SHFE.rb2510): [2025-04-22 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250422110000_786 @ 3080.00\n",
"[2025-04-22 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250422110000_785': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250422110000_785', price_type='LIMIT', limit_price=3111, submitted_time=Timestamp('2025-04-22 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250422110000_786': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250422110000_786', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-04-22 11:00:00'), offset='OPEN')}\n",
"[2025-04-22 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-22 11:00:00'), open=3096.0, high=3098.0, low=3090.0, close=3094.0, volume=77521, open_oi=1962595, close_oi=1964032, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-21 13:00:00'), open=3111.0, high=3117.0, low=3110.0, close=3116.0, volume=114447, open_oi=1943632, close_oi=1953311, symbol='SHFE.rb2510')\n",
"[2025-04-22 13:00:00] 策略 (SHFE.rb2510): [2025-04-22 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250422130000_787 @ 3107.40\n",
"[2025-04-22 13:00:00] 策略 (SHFE.rb2510): [2025-04-22 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250422130000_788 @ 3079.00\n",
"[2025-04-22 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250422130000_787': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250422130000_787', price_type='LIMIT', limit_price=3108, submitted_time=Timestamp('2025-04-22 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250422130000_788': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250422130000_788', price_type='LIMIT', limit_price=3079, submitted_time=Timestamp('2025-04-22 13:00:00'), offset='OPEN')}\n",
"[2025-04-22 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-22 13:00:00'), open=3095.0, high=3100.0, low=3093.0, close=3093.0, volume=90987, open_oi=1964032, close_oi=1968242, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-21 14:00:00'), open=3116.0, high=3119.0, low=3109.0, close=3113.0, volume=179368, open_oi=1953311, close_oi=1953540, symbol='SHFE.rb2510')\n",
"[2025-04-22 14:00:00] 策略 (SHFE.rb2510): [2025-04-22 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250422140000_789 @ 3108.50\n",
"[2025-04-22 14:00:00] 策略 (SHFE.rb2510): [2025-04-22 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250422140000_790 @ 3079.00\n",
"[2025-04-22 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250422140000_789': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250422140000_789', price_type='LIMIT', limit_price=3109, submitted_time=Timestamp('2025-04-22 14:00:00'), offset='OPEN')}\n",
"[2025-04-22 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-22 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-22 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-22 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-22 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-23 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-23 09:00:00] 策略 (SHFE.rb2510): [2025-04-23 09:00:00] 止盈信号 - PnL per unit: 13.00, 目标: 10.00\n",
"[2025-04-23 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 09:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-23 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-23 09:00:00'), open=3092.0, high=3113.0, low=3092.0, close=3099.0, volume=471942, open_oi=1997000, close_oi=1977247, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-22 10:00:00'), open=3096.0, high=3100.0, low=3092.0, close=3096.0, volume=146338, open_oi=1952634, close_oi=1962595, symbol='SHFE.rb2510')\n",
"[2025-04-23 10:00:00] 策略 (SHFE.rb2510): [2025-04-23 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250423100000_792 @ 3119.10\n",
"[2025-04-23 10:00:00] 策略 (SHFE.rb2510): [2025-04-23 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250423100000_793 @ 3057.00\n",
"[2025-04-23 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250423100000_792': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250423100000_792', price_type='LIMIT', limit_price=3120, submitted_time=Timestamp('2025-04-23 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250423100000_793': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250423100000_793', price_type='LIMIT', limit_price=3057, submitted_time=Timestamp('2025-04-23 10:00:00'), offset='OPEN')}\n",
"[2025-04-23 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-23 10:00:00'), open=3099.0, high=3104.0, low=3095.0, close=3103.0, volume=116056, open_oi=1977247, close_oi=1984746, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-22 11:00:00'), open=3096.0, high=3098.0, low=3090.0, close=3094.0, volume=77521, open_oi=1962595, close_oi=1964032, symbol='SHFE.rb2510')\n",
"[2025-04-23 11:00:00] 策略 (SHFE.rb2510): [2025-04-23 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250423110000_794 @ 3117.10\n",
"[2025-04-23 11:00:00] 策略 (SHFE.rb2510): [2025-04-23 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250423110000_795 @ 3085.00\n",
"[2025-04-23 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250423110000_794': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250423110000_794', price_type='LIMIT', limit_price=3118, submitted_time=Timestamp('2025-04-23 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250423110000_795': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250423110000_795', price_type='LIMIT', limit_price=3085, submitted_time=Timestamp('2025-04-23 11:00:00'), offset='OPEN')}\n",
"[2025-04-23 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-23 11:00:00'), open=3103.0, high=3116.0, low=3102.0, close=3109.0, volume=208864, open_oi=1984746, close_oi=1983863, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-22 13:00:00'), open=3095.0, high=3100.0, low=3093.0, close=3093.0, volume=90987, open_oi=1964032, close_oi=1968242, symbol='SHFE.rb2510')\n",
"[2025-04-23 13:00:00] 策略 (SHFE.rb2510): [2025-04-23 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250423130000_796 @ 3125.40\n",
"[2025-04-23 13:00:00] 策略 (SHFE.rb2510): [2025-04-23 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250423130000_797 @ 3082.00\n",
"[2025-04-23 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250423130000_797': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250423130000_797', price_type='LIMIT', limit_price=3082, submitted_time=Timestamp('2025-04-23 13:00:00'), offset='OPEN')}\n",
"[2025-04-23 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-04-23 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 14:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-23 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-04-23 21:00:00] 策略 (SHFE.rb2510): [2025-04-23 21:00:00] 止损信号 - PnL per unit: -11.60, 目标: -10.00\n",
"[2025-04-23 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-23 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-23 21:00:00'), open=3137.0, high=3139.0, low=3128.0, close=3130.0, volume=217353, open_oi=1968021, close_oi=1964589, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-22 22:00:00'), open=3085.0, high=3093.0, low=3079.0, close=3082.0, volume=184659, open_oi=2008705, close_oi=1997000, symbol='SHFE.rb2510')\n",
"[2025-04-23 22:00:00] 策略 (SHFE.rb2510): [2025-04-23 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250423220000_799 @ 3152.30\n",
"[2025-04-23 22:00:00] 策略 (SHFE.rb2510): [2025-04-23 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250423220000_800 @ 3108.00\n",
"[2025-04-23 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-23 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250423220000_799': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250423220000_799', price_type='LIMIT', limit_price=3153, submitted_time=Timestamp('2025-04-23 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250423220000_800': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250423220000_800', price_type='LIMIT', limit_price=3108, submitted_time=Timestamp('2025-04-23 22:00:00'), offset='OPEN')}\n",
"[2025-04-24 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-23 22:00:00'), open=3130.0, high=3132.0, low=3123.0, close=3130.0, volume=151130, open_oi=1964589, close_oi=1957512, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 09:00:00'), open=3092.0, high=3113.0, low=3092.0, close=3099.0, volume=471942, open_oi=1997000, close_oi=1977247, symbol='SHFE.rb2510')\n",
"[2025-04-24 09:00:00] 策略 (SHFE.rb2510): [2025-04-24 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424090000_801 @ 3158.70\n",
"[2025-04-24 09:00:00] 策略 (SHFE.rb2510): [2025-04-24 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424090000_802 @ 3111.00\n",
"[2025-04-24 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424090000_801': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424090000_801', price_type='LIMIT', limit_price=3159, submitted_time=Timestamp('2025-04-24 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424090000_802': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424090000_802', price_type='LIMIT', limit_price=3111, submitted_time=Timestamp('2025-04-24 09:00:00'), offset='OPEN')}\n",
"[2025-04-24 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 09:00:00'), open=3129.0, high=3129.0, low=3118.0, close=3124.0, volume=216082, open_oi=1957512, close_oi=1969212, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 10:00:00'), open=3099.0, high=3104.0, low=3095.0, close=3103.0, volume=116056, open_oi=1977247, close_oi=1984746, symbol='SHFE.rb2510')\n",
"[2025-04-24 10:00:00] 策略 (SHFE.rb2510): [2025-04-24 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424100000_803 @ 3140.30\n",
"[2025-04-24 10:00:00] 策略 (SHFE.rb2510): [2025-04-24 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424100000_804 @ 3102.00\n",
"[2025-04-24 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424100000_803': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424100000_803', price_type='LIMIT', limit_price=3141, submitted_time=Timestamp('2025-04-24 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424100000_804': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424100000_804', price_type='LIMIT', limit_price=3102, submitted_time=Timestamp('2025-04-24 10:00:00'), offset='OPEN')}\n",
"[2025-04-24 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 10:00:00'), open=3124.0, high=3127.0, low=3120.0, close=3121.0, volume=91409, open_oi=1969212, close_oi=1968322, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 11:00:00'), open=3103.0, high=3116.0, low=3102.0, close=3109.0, volume=208864, open_oi=1984746, close_oi=1983863, symbol='SHFE.rb2510')\n",
"[2025-04-24 11:00:00] 策略 (SHFE.rb2510): [2025-04-24 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424110000_805 @ 3141.30\n",
"[2025-04-24 11:00:00] 策略 (SHFE.rb2510): [2025-04-24 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424110000_806 @ 3107.00\n",
"[2025-04-24 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424110000_805': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424110000_805', price_type='LIMIT', limit_price=3142, submitted_time=Timestamp('2025-04-24 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424110000_806': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424110000_806', price_type='LIMIT', limit_price=3107, submitted_time=Timestamp('2025-04-24 11:00:00'), offset='OPEN')}\n",
"[2025-04-24 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 11:00:00'), open=3121.0, high=3128.0, low=3112.0, close=3114.0, volume=182054, open_oi=1968322, close_oi=1975264, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 13:00:00'), open=3110.0, high=3127.0, low=3110.0, close=3126.0, volume=267157, open_oi=1983863, close_oi=1977497, symbol='SHFE.rb2510')\n",
"[2025-04-24 13:00:00] 策略 (SHFE.rb2510): [2025-04-24 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424130000_807 @ 3140.40\n",
"[2025-04-24 13:00:00] 策略 (SHFE.rb2510): [2025-04-24 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424130000_808 @ 3080.00\n",
"[2025-04-24 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424130000_807': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424130000_807', price_type='LIMIT', limit_price=3141, submitted_time=Timestamp('2025-04-24 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424130000_808': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424130000_808', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-04-24 13:00:00'), offset='OPEN')}\n",
"[2025-04-24 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 13:00:00'), open=3112.0, high=3114.0, low=3105.0, close=3109.0, volume=213045, open_oi=1975264, close_oi=1975575, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 14:00:00'), open=3126.0, high=3146.0, low=3123.0, close=3137.0, volume=483040, open_oi=1977497, close_oi=1968021, symbol='SHFE.rb2510')\n",
"[2025-04-24 14:00:00] 策略 (SHFE.rb2510): [2025-04-24 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424140000_809 @ 3141.10\n",
"[2025-04-24 14:00:00] 策略 (SHFE.rb2510): [2025-04-24 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424140000_810 @ 3091.00\n",
"[2025-04-24 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424140000_809': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424140000_809', price_type='LIMIT', limit_price=3142, submitted_time=Timestamp('2025-04-24 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424140000_810': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424140000_810', price_type='LIMIT', limit_price=3091, submitted_time=Timestamp('2025-04-24 14:00:00'), offset='OPEN')}\n",
"[2025-04-24 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 14:00:00'), open=3109.0, high=3110.0, low=3095.0, close=3106.0, volume=385810, open_oi=1975575, close_oi=1980197, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 21:00:00'), open=3137.0, high=3139.0, low=3128.0, close=3130.0, volume=217353, open_oi=1968021, close_oi=1964589, symbol='SHFE.rb2510')\n",
"[2025-04-24 21:00:00] 策略 (SHFE.rb2510): [2025-04-24 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424210000_811 @ 3132.70\n",
"[2025-04-24 21:00:00] 策略 (SHFE.rb2510): [2025-04-24 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424210000_812 @ 3082.00\n",
"[2025-04-24 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424210000_811': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424210000_811', price_type='LIMIT', limit_price=3133, submitted_time=Timestamp('2025-04-24 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424210000_812': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424210000_812', price_type='LIMIT', limit_price=3082, submitted_time=Timestamp('2025-04-24 21:00:00'), offset='OPEN')}\n",
"[2025-04-24 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 21:00:00'), open=3112.0, high=3114.0, low=3096.0, close=3107.0, volume=267203, open_oi=1980197, close_oi=2002036, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-23 22:00:00'), open=3130.0, high=3132.0, low=3123.0, close=3130.0, volume=151130, open_oi=1964589, close_oi=1957512, symbol='SHFE.rb2510')\n",
"[2025-04-24 22:00:00] 策略 (SHFE.rb2510): [2025-04-24 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250424220000_813 @ 3126.80\n",
"[2025-04-24 22:00:00] 策略 (SHFE.rb2510): [2025-04-24 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250424220000_814 @ 3071.00\n",
"[2025-04-24 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-24 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250424220000_813': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250424220000_813', price_type='LIMIT', limit_price=3127, submitted_time=Timestamp('2025-04-24 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250424220000_814': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250424220000_814', price_type='LIMIT', limit_price=3071, submitted_time=Timestamp('2025-04-24 22:00:00'), offset='OPEN')}\n",
"[2025-04-25 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-24 22:00:00'), open=3107.0, high=3110.0, low=3098.0, close=3108.0, volume=129880, open_oi=2002036, close_oi=1990121, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-24 09:00:00'), open=3129.0, high=3129.0, low=3118.0, close=3124.0, volume=216082, open_oi=1957512, close_oi=1969212, symbol='SHFE.rb2510')\n",
"[2025-04-25 09:00:00] 策略 (SHFE.rb2510): [2025-04-25 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250425090000_815 @ 3129.20\n",
"[2025-04-25 09:00:00] 策略 (SHFE.rb2510): [2025-04-25 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250425090000_816 @ 3086.00\n",
"[2025-04-25 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250425090000_815': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250425090000_815', price_type='LIMIT', limit_price=3130, submitted_time=Timestamp('2025-04-25 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250425090000_816': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250425090000_816', price_type='LIMIT', limit_price=3086, submitted_time=Timestamp('2025-04-25 09:00:00'), offset='OPEN')}\n",
"[2025-04-25 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-25 09:00:00'), open=3110.0, high=3123.0, low=3110.0, close=3119.0, volume=267783, open_oi=1990121, close_oi=2006066, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-24 10:00:00'), open=3124.0, high=3127.0, low=3120.0, close=3121.0, volume=91409, open_oi=1969212, close_oi=1968322, symbol='SHFE.rb2510')\n",
"[2025-04-25 10:00:00] 策略 (SHFE.rb2510): [2025-04-25 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250425100000_817 @ 3133.90\n",
"[2025-04-25 10:00:00] 策略 (SHFE.rb2510): [2025-04-25 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250425100000_818 @ 3093.00\n",
"[2025-04-25 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250425100000_817': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250425100000_817', price_type='LIMIT', limit_price=3134, submitted_time=Timestamp('2025-04-25 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250425100000_818': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250425100000_818', price_type='LIMIT', limit_price=3093, submitted_time=Timestamp('2025-04-25 10:00:00'), offset='OPEN')}\n",
"[2025-04-25 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-25 10:00:00'), open=3119.0, high=3126.0, low=3112.0, close=3122.0, volume=174218, open_oi=2006066, close_oi=2018151, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-24 11:00:00'), open=3121.0, high=3128.0, low=3112.0, close=3114.0, volume=182054, open_oi=1968322, close_oi=1975264, symbol='SHFE.rb2510')\n",
"[2025-04-25 11:00:00] 策略 (SHFE.rb2510): [2025-04-25 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250425110000_819 @ 3148.20\n",
"[2025-04-25 11:00:00] 策略 (SHFE.rb2510): [2025-04-25 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250425110000_820 @ 3094.00\n",
"[2025-04-25 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250425110000_819': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250425110000_819', price_type='LIMIT', limit_price=3149, submitted_time=Timestamp('2025-04-25 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250425110000_820': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250425110000_820', price_type='LIMIT', limit_price=3094, submitted_time=Timestamp('2025-04-25 11:00:00'), offset='OPEN')}\n",
"[2025-04-25 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-25 11:00:00'), open=3122.0, high=3130.0, low=3121.0, close=3125.0, volume=150242, open_oi=2018151, close_oi=2020423, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-24 13:00:00'), open=3112.0, high=3114.0, low=3105.0, close=3109.0, volume=213045, open_oi=1975264, close_oi=1975575, symbol='SHFE.rb2510')\n",
"[2025-04-25 13:00:00] 策略 (SHFE.rb2510): [2025-04-25 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250425130000_821 @ 3138.30\n",
"[2025-04-25 13:00:00] 策略 (SHFE.rb2510): [2025-04-25 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250425130000_822 @ 3105.00\n",
"[2025-04-25 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250425130000_821': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250425130000_821', price_type='LIMIT', limit_price=3139, submitted_time=Timestamp('2025-04-25 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250425130000_822': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250425130000_822', price_type='LIMIT', limit_price=3105, submitted_time=Timestamp('2025-04-25 13:00:00'), offset='OPEN')}\n",
"[2025-04-25 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-25 13:00:00'), open=3123.0, high=3127.0, low=3105.0, close=3105.0, volume=240178, open_oi=2020423, close_oi=2009506, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-24 14:00:00'), open=3109.0, high=3110.0, low=3095.0, close=3106.0, volume=385810, open_oi=1975575, close_oi=1980197, symbol='SHFE.rb2510')\n",
"[2025-04-25 14:00:00] 策略 (SHFE.rb2510): [2025-04-25 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250425140000_823 @ 3134.00\n",
"[2025-04-25 14:00:00] 策略 (SHFE.rb2510): [2025-04-25 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250425140000_824 @ 3061.00\n",
"[2025-04-25 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250425140000_823': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250425140000_823', price_type='LIMIT', limit_price=3134, submitted_time=Timestamp('2025-04-25 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250425140000_824': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250425140000_824', price_type='LIMIT', limit_price=3061, submitted_time=Timestamp('2025-04-25 14:00:00'), offset='OPEN')}\n",
"[2025-04-25 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-25 14:00:00'), open=3105.0, high=3110.0, low=3096.0, close=3101.0, volume=450209, open_oi=2009506, close_oi=1986742, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-24 21:00:00'), open=3112.0, high=3114.0, low=3096.0, close=3107.0, volume=267203, open_oi=1980197, close_oi=2002036, symbol='SHFE.rb2510')\n",
"[2025-04-25 21:00:00] 策略 (SHFE.rb2510): [2025-04-25 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250425210000_825 @ 3134.60\n",
"[2025-04-25 21:00:00] 策略 (SHFE.rb2510): [2025-04-25 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250425210000_826 @ 3078.00\n",
"[2025-04-25 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250425210000_826': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250425210000_826', price_type='LIMIT', limit_price=3078, submitted_time=Timestamp('2025-04-25 21:00:00'), offset='OPEN')}\n",
"[2025-04-25 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-04-25 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-25 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-28 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-04-28 09:00:00] 策略 (SHFE.rb2510): [2025-04-28 09:00:00] 止损信号 - PnL per unit: -25.40, 目标: -10.00\n",
"[2025-04-28 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 09:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-28 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 09:00:00'), open=3160.0, high=3164.0, low=3133.0, close=3135.0, volume=652398, open_oi=2116114, close_oi=2053421, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-25 10:00:00'), open=3119.0, high=3126.0, low=3112.0, close=3122.0, volume=174218, open_oi=2006066, close_oi=2018151, symbol='SHFE.rb2510')\n",
"[2025-04-28 10:00:00] 策略 (SHFE.rb2510): [2025-04-28 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250428100000_828 @ 3167.30\n",
"[2025-04-28 10:00:00] 策略 (SHFE.rb2510): [2025-04-28 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250428100000_829 @ 3073.00\n",
"[2025-04-28 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250428100000_828': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250428100000_828', price_type='LIMIT', limit_price=3168, submitted_time=Timestamp('2025-04-28 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250428100000_829': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250428100000_829', price_type='LIMIT', limit_price=3073, submitted_time=Timestamp('2025-04-28 10:00:00'), offset='OPEN')}\n",
"[2025-04-28 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 10:00:00'), open=3135.0, high=3139.0, low=3118.0, close=3120.0, volume=351702, open_oi=2053421, close_oi=2062142, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-25 11:00:00'), open=3122.0, high=3130.0, low=3121.0, close=3125.0, volume=150242, open_oi=2018151, close_oi=2020423, symbol='SHFE.rb2510')\n",
"[2025-04-28 11:00:00] 策略 (SHFE.rb2510): [2025-04-28 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250428110000_830 @ 3141.30\n",
"[2025-04-28 11:00:00] 策略 (SHFE.rb2510): [2025-04-28 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250428110000_831 @ 3078.00\n",
"[2025-04-28 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250428110000_830': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250428110000_830', price_type='LIMIT', limit_price=3142, submitted_time=Timestamp('2025-04-28 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250428110000_831': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250428110000_831', price_type='LIMIT', limit_price=3078, submitted_time=Timestamp('2025-04-28 11:00:00'), offset='OPEN')}\n",
"[2025-04-28 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 11:00:00'), open=3120.0, high=3137.0, low=3119.0, close=3136.0, volume=181080, open_oi=2062142, close_oi=2055749, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-25 13:00:00'), open=3123.0, high=3127.0, low=3105.0, close=3105.0, volume=240178, open_oi=2020423, close_oi=2009506, symbol='SHFE.rb2510')\n",
"[2025-04-28 13:00:00] 策略 (SHFE.rb2510): [2025-04-28 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250428130000_832 @ 3171.40\n",
"[2025-04-28 13:00:00] 策略 (SHFE.rb2510): [2025-04-28 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250428130000_833 @ 3100.00\n",
"[2025-04-28 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250428130000_832': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250428130000_832', price_type='LIMIT', limit_price=3172, submitted_time=Timestamp('2025-04-28 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250428130000_833': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250428130000_833', price_type='LIMIT', limit_price=3100, submitted_time=Timestamp('2025-04-28 13:00:00'), offset='OPEN')}\n",
"[2025-04-28 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 13:00:00'), open=3136.0, high=3140.0, low=3133.0, close=3135.0, volume=140801, open_oi=2055749, close_oi=2059924, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-25 14:00:00'), open=3105.0, high=3110.0, low=3096.0, close=3101.0, volume=450209, open_oi=2009506, close_oi=1986742, symbol='SHFE.rb2510')\n",
"[2025-04-28 14:00:00] 策略 (SHFE.rb2510): [2025-04-28 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250428140000_834 @ 3155.30\n",
"[2025-04-28 14:00:00] 策略 (SHFE.rb2510): [2025-04-28 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250428140000_835 @ 3121.00\n",
"[2025-04-28 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250428140000_834': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250428140000_834', price_type='LIMIT', limit_price=3156, submitted_time=Timestamp('2025-04-28 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250428140000_835': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250428140000_835', price_type='LIMIT', limit_price=3121, submitted_time=Timestamp('2025-04-28 14:00:00'), offset='OPEN')}\n",
"[2025-04-28 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 14:00:00'), open=3135.0, high=3137.0, low=3122.0, close=3129.0, volume=264052, open_oi=2059924, close_oi=2032936, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-25 21:00:00'), open=3106.0, high=3155.0, low=3102.0, close=3144.0, volume=1222283, open_oi=1986742, close_oi=2083214, symbol='SHFE.rb2510')\n",
"[2025-04-28 21:00:00] 策略 (SHFE.rb2510): [2025-04-28 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250428210000_836 @ 3197.10\n",
"[2025-04-28 21:00:00] 策略 (SHFE.rb2510): [2025-04-28 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250428210000_837 @ 3096.00\n",
"[2025-04-28 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250428210000_836': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250428210000_836', price_type='LIMIT', limit_price=3198, submitted_time=Timestamp('2025-04-28 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250428210000_837': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250428210000_837', price_type='LIMIT', limit_price=3096, submitted_time=Timestamp('2025-04-28 21:00:00'), offset='OPEN')}\n",
"[2025-04-28 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 21:00:00'), open=3126.0, high=3129.0, low=3118.0, close=3124.0, volume=257395, open_oi=2032936, close_oi=2036583, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-25 22:00:00'), open=3144.0, high=3163.0, low=3142.0, close=3162.0, volume=497239, open_oi=2083214, close_oi=2116114, symbol='SHFE.rb2510')\n",
"[2025-04-28 22:00:00] 策略 (SHFE.rb2510): [2025-04-28 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250428220000_838 @ 3154.70\n",
"[2025-04-28 22:00:00] 策略 (SHFE.rb2510): [2025-04-28 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250428220000_839 @ 3102.00\n",
"[2025-04-28 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-28 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250428220000_838': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250428220000_838', price_type='LIMIT', limit_price=3155, submitted_time=Timestamp('2025-04-28 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250428220000_839': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250428220000_839', price_type='LIMIT', limit_price=3102, submitted_time=Timestamp('2025-04-28 22:00:00'), offset='OPEN')}\n",
"[2025-04-29 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-28 22:00:00'), open=3124.0, high=3131.0, low=3123.0, close=3127.0, volume=148677, open_oi=2036583, close_oi=2020002, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-28 09:00:00'), open=3160.0, high=3164.0, low=3133.0, close=3135.0, volume=652398, open_oi=2116114, close_oi=2053421, symbol='SHFE.rb2510')\n",
"[2025-04-29 09:00:00] 策略 (SHFE.rb2510): [2025-04-29 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250429090000_840 @ 3168.20\n",
"[2025-04-29 09:00:00] 策略 (SHFE.rb2510): [2025-04-29 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250429090000_841 @ 3111.00\n",
"[2025-04-29 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250429090000_840': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250429090000_840', price_type='LIMIT', limit_price=3169, submitted_time=Timestamp('2025-04-29 09:00:00'), offset='OPEN')}\n",
"[2025-04-29 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-29 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-29 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-29 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-29 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-04-29 13:00:00] 策略 (SHFE.rb2510): [2025-04-29 13:00:00] 止损信号 - PnL per unit: -12.00, 目标: -10.00\n",
"[2025-04-29 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 13:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-04-29 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-29 13:00:00'), open=3099.0, high=3107.0, low=3098.0, close=3107.0, volume=107113, open_oi=2028443, close_oi=2028490, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-28 14:00:00'), open=3135.0, high=3137.0, low=3122.0, close=3129.0, volume=264052, open_oi=2059924, close_oi=2032936, symbol='SHFE.rb2510')\n",
"[2025-04-29 14:00:00] 策略 (SHFE.rb2510): [2025-04-29 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250429140000_843 @ 3129.50\n",
"[2025-04-29 14:00:00] 策略 (SHFE.rb2510): [2025-04-29 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250429140000_844 @ 3089.00\n",
"[2025-04-29 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250429140000_843': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250429140000_843', price_type='LIMIT', limit_price=3130, submitted_time=Timestamp('2025-04-29 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250429140000_844': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250429140000_844', price_type='LIMIT', limit_price=3089, submitted_time=Timestamp('2025-04-29 14:00:00'), offset='OPEN')}\n",
"[2025-04-29 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-29 14:00:00'), open=3107.0, high=3110.0, low=3092.0, close=3100.0, volume=340098, open_oi=2028490, close_oi=2017637, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-28 21:00:00'), open=3126.0, high=3129.0, low=3118.0, close=3124.0, volume=257395, open_oi=2032936, close_oi=2036583, symbol='SHFE.rb2510')\n",
"[2025-04-29 21:00:00] 策略 (SHFE.rb2510): [2025-04-29 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250429210000_845 @ 3120.20\n",
"[2025-04-29 21:00:00] 策略 (SHFE.rb2510): [2025-04-29 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250429210000_846 @ 3062.00\n",
"[2025-04-29 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250429210000_845': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250429210000_845', price_type='LIMIT', limit_price=3121, submitted_time=Timestamp('2025-04-29 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250429210000_846': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250429210000_846', price_type='LIMIT', limit_price=3062, submitted_time=Timestamp('2025-04-29 21:00:00'), offset='OPEN')}\n",
"[2025-04-29 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-29 21:00:00'), open=3098.0, high=3104.0, low=3093.0, close=3099.0, volume=184525, open_oi=2017637, close_oi=2009911, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-28 22:00:00'), open=3124.0, high=3131.0, low=3123.0, close=3127.0, volume=148677, open_oi=2036583, close_oi=2020002, symbol='SHFE.rb2510')\n",
"[2025-04-29 22:00:00] 策略 (SHFE.rb2510): [2025-04-29 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250429220000_847 @ 3114.10\n",
"[2025-04-29 22:00:00] 策略 (SHFE.rb2510): [2025-04-29 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250429220000_848 @ 3077.00\n",
"[2025-04-29 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-29 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250429220000_847': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250429220000_847', price_type='LIMIT', limit_price=3115, submitted_time=Timestamp('2025-04-29 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250429220000_848': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250429220000_848', price_type='LIMIT', limit_price=3077, submitted_time=Timestamp('2025-04-29 22:00:00'), offset='OPEN')}\n",
"[2025-04-30 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-29 22:00:00'), open=3099.0, high=3100.0, low=3092.0, close=3096.0, volume=117162, open_oi=2009911, close_oi=1998686, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-29 09:00:00'), open=3127.0, high=3129.0, low=3098.0, close=3107.0, volume=484323, open_oi=2020002, close_oi=2011185, symbol='SHFE.rb2510')\n",
"[2025-04-30 09:00:00] 策略 (SHFE.rb2510): [2025-04-30 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250430090000_849 @ 3137.20\n",
"[2025-04-30 09:00:00] 策略 (SHFE.rb2510): [2025-04-30 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250430090000_850 @ 3080.00\n",
"[2025-04-30 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-30 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250430090000_849': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250430090000_849', price_type='LIMIT', limit_price=3138, submitted_time=Timestamp('2025-04-30 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250430090000_850': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250430090000_850', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-04-30 09:00:00'), offset='OPEN')}\n",
"[2025-04-30 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-30 09:00:00'), open=3096.0, high=3102.0, low=3085.0, close=3094.0, volume=240522, open_oi=1998686, close_oi=1981003, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-29 10:00:00'), open=3107.0, high=3110.0, low=3102.0, close=3104.0, volume=140827, open_oi=2011185, close_oi=2020683, symbol='SHFE.rb2510')\n",
"[2025-04-30 10:00:00] 策略 (SHFE.rb2510): [2025-04-30 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250430100000_851 @ 3112.10\n",
"[2025-04-30 10:00:00] 策略 (SHFE.rb2510): [2025-04-30 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250430100000_852 @ 3060.00\n",
"[2025-04-30 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-30 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250430100000_851': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250430100000_851', price_type='LIMIT', limit_price=3113, submitted_time=Timestamp('2025-04-30 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250430100000_852': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250430100000_852', price_type='LIMIT', limit_price=3060, submitted_time=Timestamp('2025-04-30 10:00:00'), offset='OPEN')}\n",
"[2025-04-30 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-30 10:00:00'), open=3094.0, high=3098.0, low=3088.0, close=3095.0, volume=106359, open_oi=1981003, close_oi=1976119, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-29 11:00:00'), open=3104.0, high=3108.0, low=3096.0, close=3099.0, volume=149097, open_oi=2020683, close_oi=2028443, symbol='SHFE.rb2510')\n",
"[2025-04-30 11:00:00] 策略 (SHFE.rb2510): [2025-04-30 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250430110000_853 @ 3114.40\n",
"[2025-04-30 11:00:00] 策略 (SHFE.rb2510): [2025-04-30 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250430110000_854 @ 3075.00\n",
"[2025-04-30 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-30 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250430110000_853': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250430110000_853', price_type='LIMIT', limit_price=3115, submitted_time=Timestamp('2025-04-30 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250430110000_854': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250430110000_854', price_type='LIMIT', limit_price=3075, submitted_time=Timestamp('2025-04-30 11:00:00'), offset='OPEN')}\n",
"[2025-04-30 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-30 11:00:00'), open=3095.0, high=3096.0, low=3089.0, close=3090.0, volume=58643, open_oi=1976119, close_oi=1973608, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-29 13:00:00'), open=3099.0, high=3107.0, low=3098.0, close=3107.0, volume=107113, open_oi=2028443, close_oi=2028490, symbol='SHFE.rb2510')\n",
"[2025-04-30 13:00:00] 策略 (SHFE.rb2510): [2025-04-30 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250430130000_855 @ 3105.30\n",
"[2025-04-30 13:00:00] 策略 (SHFE.rb2510): [2025-04-30 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250430130000_856 @ 3077.00\n",
"[2025-04-30 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-30 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250430130000_855': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250430130000_855', price_type='LIMIT', limit_price=3106, submitted_time=Timestamp('2025-04-30 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250430130000_856': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250430130000_856', price_type='LIMIT', limit_price=3077, submitted_time=Timestamp('2025-04-30 13:00:00'), offset='OPEN')}\n",
"[2025-04-30 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-30 13:00:00'), open=3091.0, high=3101.0, low=3090.0, close=3097.0, volume=114507, open_oi=1973608, close_oi=1967443, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-29 14:00:00'), open=3107.0, high=3110.0, low=3092.0, close=3100.0, volume=340098, open_oi=2028490, close_oi=2017637, symbol='SHFE.rb2510')\n",
"[2025-04-30 14:00:00] 策略 (SHFE.rb2510): [2025-04-30 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250430140000_857 @ 3124.10\n",
"[2025-04-30 14:00:00] 策略 (SHFE.rb2510): [2025-04-30 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250430140000_858 @ 3075.00\n",
"[2025-04-30 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-04-30 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250430140000_857': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250430140000_857', price_type='LIMIT', limit_price=3125, submitted_time=Timestamp('2025-04-30 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250430140000_858': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250430140000_858', price_type='LIMIT', limit_price=3075, submitted_time=Timestamp('2025-04-30 14:00:00'), offset='OPEN')}\n",
"[2025-05-06 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-04-30 14:00:00'), open=3097.0, high=3102.0, low=3094.0, close=3096.0, volume=212936, open_oi=1967443, close_oi=1911940, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-29 21:00:00'), open=3098.0, high=3104.0, low=3093.0, close=3099.0, volume=184525, open_oi=2017637, close_oi=2009911, symbol='SHFE.rb2510')\n",
"[2025-05-06 09:00:00] 策略 (SHFE.rb2510): [2025-05-06 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250506090000_859 @ 3136.20\n",
"[2025-05-06 09:00:00] 策略 (SHFE.rb2510): [2025-05-06 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250506090000_860 @ 3103.00\n",
"[2025-05-06 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250506090000_859': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250506090000_859', price_type='LIMIT', limit_price=3137, submitted_time=Timestamp('2025-05-06 09:00:00'), offset='OPEN')}\n",
"[2025-05-06 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-06 10:00:00] 策略 (SHFE.rb2510): [2025-05-06 10:00:00] 止损信号 - PnL per unit: -14.00, 目标: -10.00\n",
"[2025-05-06 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-06 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-06 10:00:00'), open=3089.0, high=3092.0, low=3071.0, close=3088.0, volume=286281, open_oi=1949595, close_oi=1981391, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-30 09:00:00'), open=3096.0, high=3102.0, low=3085.0, close=3094.0, volume=240522, open_oi=1998686, close_oi=1981003, symbol='SHFE.rb2510')\n",
"[2025-05-06 11:00:00] 策略 (SHFE.rb2510): [2025-05-06 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250506110000_862 @ 3118.90\n",
"[2025-05-06 11:00:00] 策略 (SHFE.rb2510): [2025-05-06 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250506110000_863 @ 3046.00\n",
"[2025-05-06 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250506110000_862': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250506110000_862', price_type='LIMIT', limit_price=3119, submitted_time=Timestamp('2025-05-06 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250506110000_863': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250506110000_863', price_type='LIMIT', limit_price=3046, submitted_time=Timestamp('2025-05-06 11:00:00'), offset='OPEN')}\n",
"[2025-05-06 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-06 11:00:00'), open=3088.0, high=3089.0, low=3079.0, close=3086.0, volume=63414, open_oi=1981391, close_oi=1981089, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-30 10:00:00'), open=3094.0, high=3098.0, low=3088.0, close=3095.0, volume=106359, open_oi=1981003, close_oi=1976119, symbol='SHFE.rb2510')\n",
"[2025-05-06 13:00:00] 策略 (SHFE.rb2510): [2025-05-06 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250506130000_864 @ 3104.00\n",
"[2025-05-06 13:00:00] 策略 (SHFE.rb2510): [2025-05-06 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250506130000_865 @ 3067.00\n",
"[2025-05-06 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250506130000_864': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250506130000_864', price_type='LIMIT', limit_price=3104, submitted_time=Timestamp('2025-05-06 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250506130000_865': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250506130000_865', price_type='LIMIT', limit_price=3067, submitted_time=Timestamp('2025-05-06 13:00:00'), offset='OPEN')}\n",
"[2025-05-06 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-06 13:00:00'), open=3087.0, high=3089.0, low=3073.0, close=3075.0, volume=106093, open_oi=1981089, close_oi=2002588, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-30 11:00:00'), open=3095.0, high=3096.0, low=3089.0, close=3090.0, volume=58643, open_oi=1976119, close_oi=1973608, symbol='SHFE.rb2510')\n",
"[2025-05-06 14:00:00] 策略 (SHFE.rb2510): [2025-05-06 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250506140000_866 @ 3091.40\n",
"[2025-05-06 14:00:00] 策略 (SHFE.rb2510): [2025-05-06 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250506140000_867 @ 3043.00\n",
"[2025-05-06 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250506140000_866': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250506140000_866', price_type='LIMIT', limit_price=3092, submitted_time=Timestamp('2025-05-06 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250506140000_867': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250506140000_867', price_type='LIMIT', limit_price=3043, submitted_time=Timestamp('2025-05-06 14:00:00'), offset='OPEN')}\n",
"[2025-05-06 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-06 14:00:00'), open=3075.0, high=3083.0, low=3072.0, close=3077.0, volume=156862, open_oi=2002588, close_oi=2004472, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-04-30 13:00:00'), open=3091.0, high=3101.0, low=3090.0, close=3097.0, volume=114507, open_oi=1973608, close_oi=1967443, symbol='SHFE.rb2510')\n",
"[2025-05-06 21:00:00] 策略 (SHFE.rb2510): [2025-05-06 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250506210000_868 @ 3105.70\n",
"[2025-05-06 21:00:00] 策略 (SHFE.rb2510): [2025-05-06 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250506210000_869 @ 3065.00\n",
"[2025-05-06 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250506210000_869': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250506210000_869', price_type='LIMIT', limit_price=3065, submitted_time=Timestamp('2025-05-06 21:00:00'), offset='OPEN')}\n",
"[2025-05-06 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-05-06 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-06 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-07 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-05-07 09:00:00] 策略 (SHFE.rb2510): [2025-05-07 09:00:00] 止损信号 - PnL per unit: -11.30, 目标: -10.00\n",
"[2025-05-07 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 09:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-07 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 09:00:00'), open=3117.0, high=3136.0, low=3102.0, close=3107.0, volume=784711, open_oi=1985914, close_oi=1982079, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-06 10:00:00'), open=3089.0, high=3092.0, low=3071.0, close=3088.0, volume=286281, open_oi=1949595, close_oi=1981391, symbol='SHFE.rb2510')\n",
"[2025-05-07 10:00:00] 策略 (SHFE.rb2510): [2025-05-07 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250507100000_871 @ 3149.20\n",
"[2025-05-07 10:00:00] 策略 (SHFE.rb2510): [2025-05-07 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250507100000_872 @ 3039.00\n",
"[2025-05-07 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250507100000_871': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250507100000_871', price_type='LIMIT', limit_price=3150, submitted_time=Timestamp('2025-05-07 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250507100000_872': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250507100000_872', price_type='LIMIT', limit_price=3039, submitted_time=Timestamp('2025-05-07 10:00:00'), offset='OPEN')}\n",
"[2025-05-07 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 10:00:00'), open=3107.0, high=3109.0, low=3087.0, close=3096.0, volume=292789, open_oi=1982079, close_oi=1974908, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-06 11:00:00'), open=3088.0, high=3089.0, low=3079.0, close=3086.0, volume=63414, open_oi=1981391, close_oi=1981089, symbol='SHFE.rb2510')\n",
"[2025-05-07 11:00:00] 策略 (SHFE.rb2510): [2025-05-07 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250507110000_873 @ 3119.00\n",
"[2025-05-07 11:00:00] 策略 (SHFE.rb2510): [2025-05-07 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250507110000_874 @ 3052.00\n",
"[2025-05-07 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250507110000_873': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250507110000_873', price_type='LIMIT', limit_price=3119, submitted_time=Timestamp('2025-05-07 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250507110000_874': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250507110000_874', price_type='LIMIT', limit_price=3052, submitted_time=Timestamp('2025-05-07 11:00:00'), offset='OPEN')}\n",
"[2025-05-07 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 11:00:00'), open=3096.0, high=3096.0, low=3080.0, close=3088.0, volume=186251, open_oi=1974908, close_oi=1998974, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-06 13:00:00'), open=3087.0, high=3089.0, low=3073.0, close=3075.0, volume=106093, open_oi=1981089, close_oi=2002588, symbol='SHFE.rb2510')\n",
"[2025-05-07 13:00:00] 策略 (SHFE.rb2510): [2025-05-07 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250507130000_875 @ 3115.20\n",
"[2025-05-07 13:00:00] 策略 (SHFE.rb2510): [2025-05-07 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250507130000_876 @ 3056.00\n",
"[2025-05-07 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250507130000_875': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250507130000_875', price_type='LIMIT', limit_price=3116, submitted_time=Timestamp('2025-05-07 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250507130000_876': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250507130000_876', price_type='LIMIT', limit_price=3056, submitted_time=Timestamp('2025-05-07 13:00:00'), offset='OPEN')}\n",
"[2025-05-07 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 13:00:00'), open=3088.0, high=3091.0, low=3085.0, close=3090.0, volume=104980, open_oi=1998974, close_oi=2008807, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-06 14:00:00'), open=3075.0, high=3083.0, low=3072.0, close=3077.0, volume=156862, open_oi=2002588, close_oi=2004472, symbol='SHFE.rb2510')\n",
"[2025-05-07 14:00:00] 策略 (SHFE.rb2510): [2025-05-07 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250507140000_877 @ 3106.20\n",
"[2025-05-07 14:00:00] 策略 (SHFE.rb2510): [2025-05-07 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250507140000_878 @ 3078.00\n",
"[2025-05-07 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250507140000_877': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250507140000_877', price_type='LIMIT', limit_price=3107, submitted_time=Timestamp('2025-05-07 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250507140000_878': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250507140000_878', price_type='LIMIT', limit_price=3078, submitted_time=Timestamp('2025-05-07 14:00:00'), offset='OPEN')}\n",
"[2025-05-07 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 14:00:00'), open=3090.0, high=3103.0, low=3089.0, close=3098.0, volume=240104, open_oi=2008807, close_oi=1974322, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-06 21:00:00'), open=3087.0, high=3116.0, low=3086.0, close=3110.0, volume=540918, open_oi=2004472, close_oi=2004466, symbol='SHFE.rb2510')\n",
"[2025-05-07 21:00:00] 策略 (SHFE.rb2510): [2025-05-07 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250507210000_879 @ 3144.00\n",
"[2025-05-07 21:00:00] 策略 (SHFE.rb2510): [2025-05-07 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250507210000_880 @ 3073.00\n",
"[2025-05-07 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250507210000_879': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250507210000_879', price_type='LIMIT', limit_price=3144, submitted_time=Timestamp('2025-05-07 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250507210000_880': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250507210000_880', price_type='LIMIT', limit_price=3073, submitted_time=Timestamp('2025-05-07 21:00:00'), offset='OPEN')}\n",
"[2025-05-07 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 21:00:00'), open=3101.0, high=3102.0, low=3086.0, close=3090.0, volume=255549, open_oi=1974322, close_oi=2012309, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-06 22:00:00'), open=3110.0, high=3112.0, low=3104.0, close=3108.0, volume=129876, open_oi=2004466, close_oi=1985914, symbol='SHFE.rb2510')\n",
"[2025-05-07 22:00:00] 策略 (SHFE.rb2510): [2025-05-07 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250507220000_881 @ 3107.60\n",
"[2025-05-07 22:00:00] 策略 (SHFE.rb2510): [2025-05-07 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250507220000_882 @ 3058.00\n",
"[2025-05-07 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-07 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250507220000_881': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250507220000_881', price_type='LIMIT', limit_price=3108, submitted_time=Timestamp('2025-05-07 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250507220000_882': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250507220000_882', price_type='LIMIT', limit_price=3058, submitted_time=Timestamp('2025-05-07 22:00:00'), offset='OPEN')}\n",
"[2025-05-08 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-07 22:00:00'), open=3090.0, high=3094.0, low=3088.0, close=3094.0, volume=89247, open_oi=2012309, close_oi=2008022, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-07 09:00:00'), open=3117.0, high=3136.0, low=3102.0, close=3107.0, volume=784711, open_oi=1985914, close_oi=1982079, symbol='SHFE.rb2510')\n",
"[2025-05-08 09:00:00] 策略 (SHFE.rb2510): [2025-05-08 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250508090000_883 @ 3135.80\n",
"[2025-05-08 09:00:00] 策略 (SHFE.rb2510): [2025-05-08 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250508090000_884 @ 3080.00\n",
"[2025-05-08 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250508090000_883': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250508090000_883', price_type='LIMIT', limit_price=3136, submitted_time=Timestamp('2025-05-08 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250508090000_884': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250508090000_884', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-05-08 09:00:00'), offset='OPEN')}\n",
"[2025-05-08 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-08 09:00:00'), open=3092.0, high=3100.0, low=3083.0, close=3098.0, volume=222080, open_oi=2008022, close_oi=2015562, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-07 10:00:00'), open=3107.0, high=3109.0, low=3087.0, close=3096.0, volume=292789, open_oi=1982079, close_oi=1974908, symbol='SHFE.rb2510')\n",
"[2025-05-08 10:00:00] 策略 (SHFE.rb2510): [2025-05-08 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250508100000_885 @ 3132.90\n",
"[2025-05-08 10:00:00] 策略 (SHFE.rb2510): [2025-05-08 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250508100000_886 @ 3064.00\n",
"[2025-05-08 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250508100000_885': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250508100000_885', price_type='LIMIT', limit_price=3133, submitted_time=Timestamp('2025-05-08 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250508100000_886': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250508100000_886', price_type='LIMIT', limit_price=3064, submitted_time=Timestamp('2025-05-08 10:00:00'), offset='OPEN')}\n",
"[2025-05-08 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-08 10:00:00'), open=3098.0, high=3102.0, low=3069.0, close=3083.0, volume=426389, open_oi=2015562, close_oi=2081114, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-07 11:00:00'), open=3096.0, high=3096.0, low=3080.0, close=3088.0, volume=186251, open_oi=1974908, close_oi=1998974, symbol='SHFE.rb2510')\n",
"[2025-05-08 11:00:00] 策略 (SHFE.rb2510): [2025-05-08 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250508110000_887 @ 3118.70\n",
"[2025-05-08 11:00:00] 策略 (SHFE.rb2510): [2025-05-08 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250508110000_888 @ 3017.00\n",
"[2025-05-08 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250508110000_887': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250508110000_887', price_type='LIMIT', limit_price=3119, submitted_time=Timestamp('2025-05-08 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250508110000_888': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250508110000_888', price_type='LIMIT', limit_price=3017, submitted_time=Timestamp('2025-05-08 11:00:00'), offset='OPEN')}\n",
"[2025-05-08 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-08 11:00:00'), open=3083.0, high=3085.0, low=3073.0, close=3075.0, volume=125350, open_oi=2081114, close_oi=2094118, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-07 13:00:00'), open=3088.0, high=3091.0, low=3085.0, close=3090.0, volume=104980, open_oi=1998974, close_oi=2008807, symbol='SHFE.rb2510')\n",
"[2025-05-08 13:00:00] 策略 (SHFE.rb2510): [2025-05-08 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250508130000_889 @ 3087.20\n",
"[2025-05-08 13:00:00] 策略 (SHFE.rb2510): [2025-05-08 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250508130000_890 @ 3050.00\n",
"[2025-05-08 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250508130000_889': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250508130000_889', price_type='LIMIT', limit_price=3088, submitted_time=Timestamp('2025-05-08 13:00:00'), offset='OPEN')}\n",
"[2025-05-08 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-08 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 14:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-08 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-08 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-08 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-08 22:00:00] 策略 (SHFE.rb2510): [2025-05-08 22:00:00] 止损信号 - PnL per unit: -11.00, 目标: -10.00\n",
"[2025-05-08 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-08 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-09 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-08 22:00:00'), open=3039.0, high=3040.0, low=3030.0, close=3032.0, volume=229426, open_oi=2275584, close_oi=2297223, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 09:00:00'), open=3092.0, high=3100.0, low=3083.0, close=3098.0, volume=222080, open_oi=2008022, close_oi=2015562, symbol='SHFE.rb2510')\n",
"[2025-05-09 09:00:00] 策略 (SHFE.rb2510): [2025-05-09 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509090000_892 @ 3059.40\n",
"[2025-05-09 09:00:00] 策略 (SHFE.rb2510): [2025-05-09 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509090000_893 @ 3014.00\n",
"[2025-05-09 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509090000_892': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509090000_892', price_type='LIMIT', limit_price=3060, submitted_time=Timestamp('2025-05-09 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509090000_893': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509090000_893', price_type='LIMIT', limit_price=3014, submitted_time=Timestamp('2025-05-09 09:00:00'), offset='OPEN')}\n",
"[2025-05-09 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 09:00:00'), open=3034.0, high=3050.0, low=3033.0, close=3044.0, volume=325729, open_oi=2297223, close_oi=2298650, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 10:00:00'), open=3098.0, high=3102.0, low=3069.0, close=3083.0, volume=426389, open_oi=2015562, close_oi=2081114, symbol='SHFE.rb2510')\n",
"[2025-05-09 10:00:00] 策略 (SHFE.rb2510): [2025-05-09 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509100000_894 @ 3092.10\n",
"[2025-05-09 10:00:00] 策略 (SHFE.rb2510): [2025-05-09 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509100000_895 @ 3010.00\n",
"[2025-05-09 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509100000_894': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509100000_894', price_type='LIMIT', limit_price=3093, submitted_time=Timestamp('2025-05-09 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509100000_895': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509100000_895', price_type='LIMIT', limit_price=3010, submitted_time=Timestamp('2025-05-09 10:00:00'), offset='OPEN')}\n",
"[2025-05-09 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 10:00:00'), open=3044.0, high=3046.0, low=3037.0, close=3038.0, volume=111987, open_oi=2298650, close_oi=2296305, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 11:00:00'), open=3083.0, high=3085.0, low=3073.0, close=3075.0, volume=125350, open_oi=2081114, close_oi=2094118, symbol='SHFE.rb2510')\n",
"[2025-05-09 11:00:00] 策略 (SHFE.rb2510): [2025-05-09 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509110000_896 @ 3056.90\n",
"[2025-05-09 11:00:00] 策略 (SHFE.rb2510): [2025-05-09 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509110000_897 @ 3020.00\n",
"[2025-05-09 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509110000_896': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509110000_896', price_type='LIMIT', limit_price=3057, submitted_time=Timestamp('2025-05-09 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509110000_897': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509110000_897', price_type='LIMIT', limit_price=3020, submitted_time=Timestamp('2025-05-09 11:00:00'), offset='OPEN')}\n",
"[2025-05-09 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 11:00:00'), open=3038.0, high=3040.0, low=3034.0, close=3037.0, volume=81564, open_oi=2296305, close_oi=2298202, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 13:00:00'), open=3074.0, high=3074.0, low=3047.0, close=3057.0, volume=504354, open_oi=2094118, close_oi=2205952, symbol='SHFE.rb2510')\n",
"[2025-05-09 13:00:00] 策略 (SHFE.rb2510): [2025-05-09 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509130000_898 @ 3073.40\n",
"[2025-05-09 13:00:00] 策略 (SHFE.rb2510): [2025-05-09 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509130000_899 @ 3026.00\n",
"[2025-05-09 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509130000_898': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509130000_898', price_type='LIMIT', limit_price=3074, submitted_time=Timestamp('2025-05-09 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509130000_899': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509130000_899', price_type='LIMIT', limit_price=3026, submitted_time=Timestamp('2025-05-09 13:00:00'), offset='OPEN')}\n",
"[2025-05-09 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 13:00:00'), open=3038.0, high=3045.0, low=3032.0, close=3035.0, volume=127203, open_oi=2298202, close_oi=2316435, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 14:00:00'), open=3057.0, high=3067.0, low=3048.0, close=3052.0, volume=430895, open_oi=2205952, close_oi=2234779, symbol='SHFE.rb2510')\n",
"[2025-05-09 14:00:00] 策略 (SHFE.rb2510): [2025-05-09 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509140000_900 @ 3064.30\n",
"[2025-05-09 14:00:00] 策略 (SHFE.rb2510): [2025-05-09 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509140000_901 @ 3009.00\n",
"[2025-05-09 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509140000_900': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509140000_900', price_type='LIMIT', limit_price=3065, submitted_time=Timestamp('2025-05-09 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509140000_901': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509140000_901', price_type='LIMIT', limit_price=3009, submitted_time=Timestamp('2025-05-09 14:00:00'), offset='OPEN')}\n",
"[2025-05-09 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 14:00:00'), open=3035.0, high=3036.0, low=3016.0, close=3022.0, volume=374721, open_oi=2316435, close_oi=2344321, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 21:00:00'), open=3052.0, high=3053.0, low=3036.0, close=3039.0, volume=405332, open_oi=2234779, close_oi=2275584, symbol='SHFE.rb2510')\n",
"[2025-05-09 21:00:00] 策略 (SHFE.rb2510): [2025-05-09 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509210000_902 @ 3054.40\n",
"[2025-05-09 21:00:00] 策略 (SHFE.rb2510): [2025-05-09 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509210000_903 @ 2984.00\n",
"[2025-05-09 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509210000_902': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509210000_902', price_type='LIMIT', limit_price=3055, submitted_time=Timestamp('2025-05-09 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509210000_903': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509210000_903', price_type='LIMIT', limit_price=2984, submitted_time=Timestamp('2025-05-09 21:00:00'), offset='OPEN')}\n",
"[2025-05-09 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 21:00:00'), open=3024.0, high=3029.0, low=3014.0, close=3026.0, volume=317573, open_oi=2344321, close_oi=2365790, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-08 22:00:00'), open=3039.0, high=3040.0, low=3030.0, close=3032.0, volume=229426, open_oi=2275584, close_oi=2297223, symbol='SHFE.rb2510')\n",
"[2025-05-09 22:00:00] 策略 (SHFE.rb2510): [2025-05-09 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250509220000_904 @ 3045.50\n",
"[2025-05-09 22:00:00] 策略 (SHFE.rb2510): [2025-05-09 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250509220000_905 @ 2996.00\n",
"[2025-05-09 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-09 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250509220000_904': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250509220000_904', price_type='LIMIT', limit_price=3046, submitted_time=Timestamp('2025-05-09 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250509220000_905': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250509220000_905', price_type='LIMIT', limit_price=2996, submitted_time=Timestamp('2025-05-09 22:00:00'), offset='OPEN')}\n",
"[2025-05-12 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-09 22:00:00'), open=3026.0, high=3028.0, low=3019.0, close=3026.0, volume=127210, open_oi=2365790, close_oi=2340532, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-09 09:00:00'), open=3034.0, high=3050.0, low=3033.0, close=3044.0, volume=325729, open_oi=2297223, close_oi=2298650, symbol='SHFE.rb2510')\n",
"[2025-05-12 09:00:00] 策略 (SHFE.rb2510): [2025-05-12 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250512090000_906 @ 3075.90\n",
"[2025-05-12 09:00:00] 策略 (SHFE.rb2510): [2025-05-12 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250512090000_907 @ 3033.00\n",
"[2025-05-12 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250512090000_906': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250512090000_906', price_type='LIMIT', limit_price=3076, submitted_time=Timestamp('2025-05-12 09:00:00'), offset='OPEN')}\n",
"[2025-05-12 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-12 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-12 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-12 11:00:00] 策略 (SHFE.rb2510): [2025-05-12 11:00:00] 止盈信号 - PnL per unit: 26.00, 目标: 10.00\n",
"[2025-05-12 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-12 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-12 11:00:00'), open=3059.0, high=3069.0, low=3058.0, close=3063.0, volume=244072, open_oi=2259127, close_oi=2233810, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-09 13:00:00'), open=3038.0, high=3045.0, low=3032.0, close=3035.0, volume=127203, open_oi=2298202, close_oi=2316435, symbol='SHFE.rb2510')\n",
"[2025-05-12 13:00:00] 策略 (SHFE.rb2510): [2025-05-12 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250512130000_909 @ 3084.10\n",
"[2025-05-12 13:00:00] 策略 (SHFE.rb2510): [2025-05-12 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250512130000_910 @ 3041.00\n",
"[2025-05-12 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250512130000_909': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250512130000_909', price_type='LIMIT', limit_price=3085, submitted_time=Timestamp('2025-05-12 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250512130000_910': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250512130000_910', price_type='LIMIT', limit_price=3041, submitted_time=Timestamp('2025-05-12 13:00:00'), offset='OPEN')}\n",
"[2025-05-12 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-12 13:00:00'), open=3063.0, high=3079.0, low=3062.0, close=3075.0, volume=241352, open_oi=2233810, close_oi=2221751, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-09 14:00:00'), open=3035.0, high=3036.0, low=3016.0, close=3022.0, volume=374721, open_oi=2316435, close_oi=2344321, symbol='SHFE.rb2510')\n",
"[2025-05-12 14:00:00] 策略 (SHFE.rb2510): [2025-05-12 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250512140000_911 @ 3107.50\n",
"[2025-05-12 14:00:00] 策略 (SHFE.rb2510): [2025-05-12 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250512140000_912 @ 3041.00\n",
"[2025-05-12 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250512140000_911': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250512140000_911', price_type='LIMIT', limit_price=3108, submitted_time=Timestamp('2025-05-12 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250512140000_912': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250512140000_912', price_type='LIMIT', limit_price=3041, submitted_time=Timestamp('2025-05-12 14:00:00'), offset='OPEN')}\n",
"[2025-05-12 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-12 14:00:00'), open=3075.0, high=3086.0, low=3075.0, close=3082.0, volume=400655, open_oi=2221751, close_oi=2180461, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-09 21:00:00'), open=3024.0, high=3029.0, low=3014.0, close=3026.0, volume=317573, open_oi=2344321, close_oi=2365790, symbol='SHFE.rb2510')\n",
"[2025-05-12 21:00:00] 策略 (SHFE.rb2510): [2025-05-12 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250512210000_913 @ 3128.50\n",
"[2025-05-12 21:00:00] 策略 (SHFE.rb2510): [2025-05-12 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250512210000_914 @ 3083.00\n",
"[2025-05-12 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250512210000_913': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250512210000_913', price_type='LIMIT', limit_price=3129, submitted_time=Timestamp('2025-05-12 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250512210000_914': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250512210000_914', price_type='LIMIT', limit_price=3083, submitted_time=Timestamp('2025-05-12 21:00:00'), offset='OPEN')}\n",
"[2025-05-12 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-12 21:00:00'), open=3105.0, high=3115.0, low=3089.0, close=3090.0, volume=705413, open_oi=2180461, close_oi=2159401, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-09 22:00:00'), open=3026.0, high=3028.0, low=3019.0, close=3026.0, volume=127210, open_oi=2365790, close_oi=2340532, symbol='SHFE.rb2510')\n",
"[2025-05-12 22:00:00] 策略 (SHFE.rb2510): [2025-05-12 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250512220000_915 @ 3113.80\n",
"[2025-05-12 22:00:00] 策略 (SHFE.rb2510): [2025-05-12 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250512220000_916 @ 3038.00\n",
"[2025-05-12 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-12 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250512220000_915': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250512220000_915', price_type='LIMIT', limit_price=3114, submitted_time=Timestamp('2025-05-12 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250512220000_916': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250512220000_916', price_type='LIMIT', limit_price=3038, submitted_time=Timestamp('2025-05-12 22:00:00'), offset='OPEN')}\n",
"[2025-05-13 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-12 22:00:00'), open=3090.0, high=3092.0, low=3085.0, close=3091.0, volume=229226, open_oi=2159401, close_oi=2154625, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-12 09:00:00'), open=3051.0, high=3070.0, low=3030.0, close=3037.0, volume=660129, open_oi=2340532, close_oi=2304080, symbol='SHFE.rb2510')\n",
"[2025-05-13 09:00:00] 策略 (SHFE.rb2510): [2025-05-13 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250513090000_917 @ 3143.50\n",
"[2025-05-13 09:00:00] 策略 (SHFE.rb2510): [2025-05-13 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250513090000_918 @ 3078.00\n",
"[2025-05-13 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250513090000_917': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250513090000_917', price_type='LIMIT', limit_price=3144, submitted_time=Timestamp('2025-05-13 09:00:00'), offset='OPEN')}\n",
"[2025-05-13 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-13 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-13 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-13 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-13 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-13 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 13:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-13 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-13 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 14:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-13 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-13 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-13 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-13 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-13 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-14 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-14 09:00:00] 策略 (SHFE.rb2510): [2025-05-14 09:00:00] 止盈信号 - PnL per unit: 27.00, 目标: 10.00\n",
"[2025-05-14 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 09:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-14 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 09:00:00'), open=3105.0, high=3123.0, low=3100.0, close=3112.0, volume=524563, open_oi=2144907, close_oi=2138538, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-13 10:00:00'), open=3084.0, high=3088.0, low=3081.0, close=3086.0, volume=123382, open_oi=2163637, close_oi=2163852, symbol='SHFE.rb2510')\n",
"[2025-05-14 10:00:00] 策略 (SHFE.rb2510): [2025-05-14 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250514100000_920 @ 3131.90\n",
"[2025-05-14 10:00:00] 策略 (SHFE.rb2510): [2025-05-14 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250514100000_921 @ 3066.00\n",
"[2025-05-14 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250514100000_920': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250514100000_920', price_type='LIMIT', limit_price=3132, submitted_time=Timestamp('2025-05-14 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250514100000_921': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250514100000_921', price_type='LIMIT', limit_price=3066, submitted_time=Timestamp('2025-05-14 10:00:00'), offset='OPEN')}\n",
"[2025-05-14 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 10:00:00'), open=3112.0, high=3119.0, low=3105.0, close=3115.0, volume=200328, open_oi=2138538, close_oi=2128223, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-13 11:00:00'), open=3086.0, high=3090.0, low=3080.0, close=3084.0, volume=93976, open_oi=2163852, close_oi=2164630, symbol='SHFE.rb2510')\n",
"[2025-05-14 11:00:00] 策略 (SHFE.rb2510): [2025-05-14 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250514110000_922 @ 3134.00\n",
"[2025-05-14 11:00:00] 策略 (SHFE.rb2510): [2025-05-14 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250514110000_923 @ 3087.00\n",
"[2025-05-14 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250514110000_922': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250514110000_922', price_type='LIMIT', limit_price=3134, submitted_time=Timestamp('2025-05-14 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250514110000_923': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250514110000_923', price_type='LIMIT', limit_price=3087, submitted_time=Timestamp('2025-05-14 11:00:00'), offset='OPEN')}\n",
"[2025-05-14 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 11:00:00'), open=3115.0, high=3120.0, low=3112.0, close=3115.0, volume=109329, open_oi=2128223, close_oi=2125055, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-13 13:00:00'), open=3083.0, high=3085.0, low=3066.0, close=3075.0, volume=238922, open_oi=2164630, close_oi=2162922, symbol='SHFE.rb2510')\n",
"[2025-05-14 13:00:00] 策略 (SHFE.rb2510): [2025-05-14 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250514130000_924 @ 3147.80\n",
"[2025-05-14 13:00:00] 策略 (SHFE.rb2510): [2025-05-14 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250514130000_925 @ 3105.00\n",
"[2025-05-14 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250514130000_924': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250514130000_924', price_type='LIMIT', limit_price=3148, submitted_time=Timestamp('2025-05-14 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250514130000_925': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250514130000_925', price_type='LIMIT', limit_price=3105, submitted_time=Timestamp('2025-05-14 13:00:00'), offset='OPEN')}\n",
"[2025-05-14 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 13:00:00'), open=3121.0, high=3133.0, low=3117.0, close=3124.0, volume=280353, open_oi=2125055, close_oi=2144487, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-13 14:00:00'), open=3075.0, high=3083.0, low=3072.0, close=3079.0, volume=224839, open_oi=2162922, close_oi=2151176, symbol='SHFE.rb2510')\n",
"[2025-05-14 14:00:00] 策略 (SHFE.rb2510): [2025-05-14 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250514140000_926 @ 3145.20\n",
"[2025-05-14 14:00:00] 策略 (SHFE.rb2510): [2025-05-14 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250514140000_927 @ 3092.00\n",
"[2025-05-14 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250514140000_926': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250514140000_926', price_type='LIMIT', limit_price=3146, submitted_time=Timestamp('2025-05-14 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250514140000_927': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250514140000_927', price_type='LIMIT', limit_price=3092, submitted_time=Timestamp('2025-05-14 14:00:00'), offset='OPEN')}\n",
"[2025-05-14 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 14:00:00'), open=3124.0, high=3130.0, low=3120.0, close=3127.0, volume=221633, open_oi=2144487, close_oi=2111525, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-13 21:00:00'), open=3083.0, high=3085.0, low=3067.0, close=3075.0, volume=294857, open_oi=2151176, close_oi=2177486, symbol='SHFE.rb2510')\n",
"[2025-05-14 21:00:00] 策略 (SHFE.rb2510): [2025-05-14 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250514210000_928 @ 3152.60\n",
"[2025-05-14 21:00:00] 策略 (SHFE.rb2510): [2025-05-14 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250514210000_929 @ 3106.00\n",
"[2025-05-14 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250514210000_928': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250514210000_928', price_type='LIMIT', limit_price=3153, submitted_time=Timestamp('2025-05-14 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250514210000_929': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250514210000_929', price_type='LIMIT', limit_price=3106, submitted_time=Timestamp('2025-05-14 21:00:00'), offset='OPEN')}\n",
"[2025-05-14 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 21:00:00'), open=3126.0, high=3127.0, low=3116.0, close=3117.0, volume=247340, open_oi=2111525, close_oi=2112955, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-13 22:00:00'), open=3075.0, high=3107.0, low=3074.0, close=3102.0, volume=503879, open_oi=2177486, close_oi=2144907, symbol='SHFE.rb2510')\n",
"[2025-05-14 22:00:00] 策略 (SHFE.rb2510): [2025-05-14 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250514220000_930 @ 3162.10\n",
"[2025-05-14 22:00:00] 策略 (SHFE.rb2510): [2025-05-14 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250514220000_931 @ 3095.00\n",
"[2025-05-14 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-14 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250514220000_930': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250514220000_930', price_type='LIMIT', limit_price=3163, submitted_time=Timestamp('2025-05-14 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250514220000_931': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250514220000_931', price_type='LIMIT', limit_price=3095, submitted_time=Timestamp('2025-05-14 22:00:00'), offset='OPEN')}\n",
"[2025-05-15 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-14 22:00:00'), open=3117.0, high=3120.0, low=3116.0, close=3119.0, volume=91449, open_oi=2112955, close_oi=2095487, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 09:00:00'), open=3105.0, high=3123.0, low=3100.0, close=3112.0, volume=524563, open_oi=2144907, close_oi=2138538, symbol='SHFE.rb2510')\n",
"[2025-05-15 09:00:00] 策略 (SHFE.rb2510): [2025-05-15 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515090000_932 @ 3145.60\n",
"[2025-05-15 09:00:00] 策略 (SHFE.rb2510): [2025-05-15 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515090000_933 @ 3108.00\n",
"[2025-05-15 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515090000_932': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515090000_932', price_type='LIMIT', limit_price=3146, submitted_time=Timestamp('2025-05-15 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515090000_933': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515090000_933', price_type='LIMIT', limit_price=3108, submitted_time=Timestamp('2025-05-15 09:00:00'), offset='OPEN')}\n",
"[2025-05-15 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 09:00:00'), open=3116.0, high=3130.0, low=3111.0, close=3118.0, volume=288569, open_oi=2095487, close_oi=2090624, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 10:00:00'), open=3112.0, high=3119.0, low=3105.0, close=3115.0, volume=200328, open_oi=2138538, close_oi=2128223, symbol='SHFE.rb2510')\n",
"[2025-05-15 10:00:00] 策略 (SHFE.rb2510): [2025-05-15 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515100000_934 @ 3144.30\n",
"[2025-05-15 10:00:00] 策略 (SHFE.rb2510): [2025-05-15 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515100000_935 @ 3080.00\n",
"[2025-05-15 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515100000_934': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515100000_934', price_type='LIMIT', limit_price=3145, submitted_time=Timestamp('2025-05-15 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515100000_935': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515100000_935', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-05-15 10:00:00'), offset='OPEN')}\n",
"[2025-05-15 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 10:00:00'), open=3118.0, high=3124.0, low=3113.0, close=3115.0, volume=121878, open_oi=2090624, close_oi=2087507, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 11:00:00'), open=3115.0, high=3120.0, low=3112.0, close=3115.0, volume=109329, open_oi=2128223, close_oi=2125055, symbol='SHFE.rb2510')\n",
"[2025-05-15 11:00:00] 策略 (SHFE.rb2510): [2025-05-15 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515110000_936 @ 3130.10\n",
"[2025-05-15 11:00:00] 策略 (SHFE.rb2510): [2025-05-15 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515110000_937 @ 3093.00\n",
"[2025-05-15 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515110000_936': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515110000_936', price_type='LIMIT', limit_price=3131, submitted_time=Timestamp('2025-05-15 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515110000_937': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515110000_937', price_type='LIMIT', limit_price=3093, submitted_time=Timestamp('2025-05-15 11:00:00'), offset='OPEN')}\n",
"[2025-05-15 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 11:00:00'), open=3115.0, high=3122.0, low=3111.0, close=3121.0, volume=106391, open_oi=2087507, close_oi=2090819, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 13:00:00'), open=3121.0, high=3133.0, low=3117.0, close=3124.0, volume=280353, open_oi=2125055, close_oi=2144487, symbol='SHFE.rb2510')\n",
"[2025-05-15 13:00:00] 策略 (SHFE.rb2510): [2025-05-15 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515130000_938 @ 3145.70\n",
"[2025-05-15 13:00:00] 策略 (SHFE.rb2510): [2025-05-15 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515130000_939 @ 3099.00\n",
"[2025-05-15 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515130000_938': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515130000_938', price_type='LIMIT', limit_price=3146, submitted_time=Timestamp('2025-05-15 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515130000_939': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515130000_939', price_type='LIMIT', limit_price=3099, submitted_time=Timestamp('2025-05-15 13:00:00'), offset='OPEN')}\n",
"[2025-05-15 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 13:00:00'), open=3121.0, high=3123.0, low=3111.0, close=3119.0, volume=120807, open_oi=2090819, close_oi=2093591, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 14:00:00'), open=3124.0, high=3130.0, low=3120.0, close=3127.0, volume=221633, open_oi=2144487, close_oi=2111525, symbol='SHFE.rb2510')\n",
"[2025-05-15 14:00:00] 策略 (SHFE.rb2510): [2025-05-15 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515140000_940 @ 3137.00\n",
"[2025-05-15 14:00:00] 策略 (SHFE.rb2510): [2025-05-15 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515140000_941 @ 3095.00\n",
"[2025-05-15 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515140000_940': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515140000_940', price_type='LIMIT', limit_price=3137, submitted_time=Timestamp('2025-05-15 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515140000_941': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515140000_941', price_type='LIMIT', limit_price=3095, submitted_time=Timestamp('2025-05-15 14:00:00'), offset='OPEN')}\n",
"[2025-05-15 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 14:00:00'), open=3119.0, high=3122.0, low=3113.0, close=3118.0, volume=174646, open_oi=2093591, close_oi=2088127, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 21:00:00'), open=3126.0, high=3127.0, low=3116.0, close=3117.0, volume=247340, open_oi=2111525, close_oi=2112955, symbol='SHFE.rb2510')\n",
"[2025-05-15 21:00:00] 策略 (SHFE.rb2510): [2025-05-15 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515210000_942 @ 3135.70\n",
"[2025-05-15 21:00:00] 策略 (SHFE.rb2510): [2025-05-15 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515210000_943 @ 3100.00\n",
"[2025-05-15 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515210000_942': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515210000_942', price_type='LIMIT', limit_price=3136, submitted_time=Timestamp('2025-05-15 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515210000_943': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515210000_943', price_type='LIMIT', limit_price=3100, submitted_time=Timestamp('2025-05-15 21:00:00'), offset='OPEN')}\n",
"[2025-05-15 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 21:00:00'), open=3118.0, high=3119.0, low=3103.0, close=3108.0, volume=278406, open_oi=2088127, close_oi=2104683, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-14 22:00:00'), open=3117.0, high=3120.0, low=3116.0, close=3119.0, volume=91449, open_oi=2112955, close_oi=2095487, symbol='SHFE.rb2510')\n",
"[2025-05-15 22:00:00] 策略 (SHFE.rb2510): [2025-05-15 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250515220000_944 @ 3120.80\n",
"[2025-05-15 22:00:00] 策略 (SHFE.rb2510): [2025-05-15 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250515220000_945 @ 3076.00\n",
"[2025-05-15 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-15 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250515220000_944': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250515220000_944', price_type='LIMIT', limit_price=3121, submitted_time=Timestamp('2025-05-15 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250515220000_945': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250515220000_945', price_type='LIMIT', limit_price=3076, submitted_time=Timestamp('2025-05-15 22:00:00'), offset='OPEN')}\n",
"[2025-05-16 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-15 22:00:00'), open=3108.0, high=3113.0, low=3105.0, close=3109.0, volume=125830, open_oi=2104683, close_oi=2093521, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 09:00:00'), open=3116.0, high=3130.0, low=3111.0, close=3118.0, volume=288569, open_oi=2095487, close_oi=2090624, symbol='SHFE.rb2510')\n",
"[2025-05-16 09:00:00] 策略 (SHFE.rb2510): [2025-05-16 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516090000_946 @ 3135.80\n",
"[2025-05-16 09:00:00] 策略 (SHFE.rb2510): [2025-05-16 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516090000_947 @ 3093.00\n",
"[2025-05-16 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516090000_946': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516090000_946', price_type='LIMIT', limit_price=3136, submitted_time=Timestamp('2025-05-16 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516090000_947': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516090000_947', price_type='LIMIT', limit_price=3093, submitted_time=Timestamp('2025-05-16 09:00:00'), offset='OPEN')}\n",
"[2025-05-16 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 09:00:00'), open=3109.0, high=3117.0, low=3098.0, close=3102.0, volume=278727, open_oi=2093521, close_oi=2091202, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 10:00:00'), open=3118.0, high=3124.0, low=3113.0, close=3115.0, volume=121878, open_oi=2090624, close_oi=2087507, symbol='SHFE.rb2510')\n",
"[2025-05-16 10:00:00] 策略 (SHFE.rb2510): [2025-05-16 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516100000_948 @ 3124.70\n",
"[2025-05-16 10:00:00] 策略 (SHFE.rb2510): [2025-05-16 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516100000_949 @ 3064.00\n",
"[2025-05-16 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516100000_948': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516100000_948', price_type='LIMIT', limit_price=3125, submitted_time=Timestamp('2025-05-16 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516100000_949': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516100000_949', price_type='LIMIT', limit_price=3064, submitted_time=Timestamp('2025-05-16 10:00:00'), offset='OPEN')}\n",
"[2025-05-16 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 10:00:00'), open=3102.0, high=3113.0, low=3094.0, close=3102.0, volume=223961, open_oi=2091202, close_oi=2088140, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 11:00:00'), open=3115.0, high=3122.0, low=3111.0, close=3121.0, volume=106391, open_oi=2087507, close_oi=2090819, symbol='SHFE.rb2510')\n",
"[2025-05-16 11:00:00] 策略 (SHFE.rb2510): [2025-05-16 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516110000_950 @ 3124.70\n",
"[2025-05-16 11:00:00] 策略 (SHFE.rb2510): [2025-05-16 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516110000_951 @ 3064.00\n",
"[2025-05-16 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516110000_950': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516110000_950', price_type='LIMIT', limit_price=3125, submitted_time=Timestamp('2025-05-16 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516110000_951': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516110000_951', price_type='LIMIT', limit_price=3064, submitted_time=Timestamp('2025-05-16 11:00:00'), offset='OPEN')}\n",
"[2025-05-16 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 11:00:00'), open=3102.0, high=3105.0, low=3092.0, close=3094.0, volume=112189, open_oi=2088140, close_oi=2081235, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 13:00:00'), open=3121.0, high=3123.0, low=3111.0, close=3119.0, volume=120807, open_oi=2090819, close_oi=2093591, symbol='SHFE.rb2510')\n",
"[2025-05-16 13:00:00] 策略 (SHFE.rb2510): [2025-05-16 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516130000_952 @ 3114.90\n",
"[2025-05-16 13:00:00] 策略 (SHFE.rb2510): [2025-05-16 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516130000_953 @ 3068.00\n",
"[2025-05-16 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516130000_952': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516130000_952', price_type='LIMIT', limit_price=3115, submitted_time=Timestamp('2025-05-16 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516130000_953': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516130000_953', price_type='LIMIT', limit_price=3068, submitted_time=Timestamp('2025-05-16 13:00:00'), offset='OPEN')}\n",
"[2025-05-16 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 13:00:00'), open=3094.0, high=3096.0, low=3084.0, close=3086.0, volume=187567, open_oi=2081235, close_oi=2089209, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 14:00:00'), open=3119.0, high=3122.0, low=3113.0, close=3118.0, volume=174646, open_oi=2093591, close_oi=2088127, symbol='SHFE.rb2510')\n",
"[2025-05-16 14:00:00] 策略 (SHFE.rb2510): [2025-05-16 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516140000_954 @ 3102.80\n",
"[2025-05-16 14:00:00] 策略 (SHFE.rb2510): [2025-05-16 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516140000_955 @ 3062.00\n",
"[2025-05-16 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516140000_954': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516140000_954', price_type='LIMIT', limit_price=3103, submitted_time=Timestamp('2025-05-16 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516140000_955': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516140000_955', price_type='LIMIT', limit_price=3062, submitted_time=Timestamp('2025-05-16 14:00:00'), offset='OPEN')}\n",
"[2025-05-16 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 14:00:00'), open=3086.0, high=3095.0, low=3080.0, close=3082.0, volume=279205, open_oi=2089209, close_oi=2073027, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 21:00:00'), open=3118.0, high=3119.0, low=3103.0, close=3108.0, volume=278406, open_oi=2088127, close_oi=2104683, symbol='SHFE.rb2510')\n",
"[2025-05-16 21:00:00] 策略 (SHFE.rb2510): [2025-05-16 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516210000_956 @ 3103.70\n",
"[2025-05-16 21:00:00] 策略 (SHFE.rb2510): [2025-05-16 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516210000_957 @ 3047.00\n",
"[2025-05-16 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516210000_956': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516210000_956', price_type='LIMIT', limit_price=3104, submitted_time=Timestamp('2025-05-16 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516210000_957': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516210000_957', price_type='LIMIT', limit_price=3047, submitted_time=Timestamp('2025-05-16 21:00:00'), offset='OPEN')}\n",
"[2025-05-16 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 21:00:00'), open=3077.0, high=3095.0, low=3073.0, close=3091.0, volume=297113, open_oi=2073027, close_oi=2073043, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-15 22:00:00'), open=3108.0, high=3113.0, low=3105.0, close=3109.0, volume=125830, open_oi=2104683, close_oi=2093521, symbol='SHFE.rb2510')\n",
"[2025-05-16 22:00:00] 策略 (SHFE.rb2510): [2025-05-16 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250516220000_958 @ 3111.60\n",
"[2025-05-16 22:00:00] 策略 (SHFE.rb2510): [2025-05-16 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250516220000_959 @ 3047.00\n",
"[2025-05-16 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-16 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250516220000_958': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250516220000_958', price_type='LIMIT', limit_price=3112, submitted_time=Timestamp('2025-05-16 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250516220000_959': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250516220000_959', price_type='LIMIT', limit_price=3047, submitted_time=Timestamp('2025-05-16 22:00:00'), offset='OPEN')}\n",
"[2025-05-19 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-16 22:00:00'), open=3091.0, high=3092.0, low=3077.0, close=3086.0, volume=174437, open_oi=2073043, close_oi=2063933, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 09:00:00'), open=3109.0, high=3117.0, low=3098.0, close=3102.0, volume=278727, open_oi=2093521, close_oi=2091202, symbol='SHFE.rb2510')\n",
"[2025-05-19 09:00:00] 策略 (SHFE.rb2510): [2025-05-19 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519090000_960 @ 3116.30\n",
"[2025-05-19 09:00:00] 策略 (SHFE.rb2510): [2025-05-19 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519090000_961 @ 3056.00\n",
"[2025-05-19 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519090000_960': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519090000_960', price_type='LIMIT', limit_price=3117, submitted_time=Timestamp('2025-05-19 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519090000_961': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519090000_961', price_type='LIMIT', limit_price=3056, submitted_time=Timestamp('2025-05-19 09:00:00'), offset='OPEN')}\n",
"[2025-05-19 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 09:00:00'), open=3086.0, high=3092.0, low=3072.0, close=3075.0, volume=278254, open_oi=2063933, close_oi=2073588, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 10:00:00'), open=3102.0, high=3113.0, low=3094.0, close=3102.0, volume=223961, open_oi=2091202, close_oi=2088140, symbol='SHFE.rb2510')\n",
"[2025-05-19 10:00:00] 策略 (SHFE.rb2510): [2025-05-19 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519100000_962 @ 3107.80\n",
"[2025-05-19 10:00:00] 策略 (SHFE.rb2510): [2025-05-19 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519100000_963 @ 3035.00\n",
"[2025-05-19 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519100000_962': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519100000_962', price_type='LIMIT', limit_price=3108, submitted_time=Timestamp('2025-05-19 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519100000_963': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519100000_963', price_type='LIMIT', limit_price=3035, submitted_time=Timestamp('2025-05-19 10:00:00'), offset='OPEN')}\n",
"[2025-05-19 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 10:00:00'), open=3075.0, high=3080.0, low=3066.0, close=3069.0, volume=179113, open_oi=2073588, close_oi=2096472, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 11:00:00'), open=3102.0, high=3105.0, low=3092.0, close=3094.0, volume=112189, open_oi=2088140, close_oi=2081235, symbol='SHFE.rb2510')\n",
"[2025-05-19 11:00:00] 策略 (SHFE.rb2510): [2025-05-19 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519110000_964 @ 3091.60\n",
"[2025-05-19 11:00:00] 策略 (SHFE.rb2510): [2025-05-19 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519110000_965 @ 3041.00\n",
"[2025-05-19 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519110000_964': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519110000_964', price_type='LIMIT', limit_price=3092, submitted_time=Timestamp('2025-05-19 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519110000_965': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519110000_965', price_type='LIMIT', limit_price=3041, submitted_time=Timestamp('2025-05-19 11:00:00'), offset='OPEN')}\n",
"[2025-05-19 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 11:00:00'), open=3069.0, high=3071.0, low=3062.0, close=3064.0, volume=95172, open_oi=2096472, close_oi=2105121, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 13:00:00'), open=3094.0, high=3096.0, low=3084.0, close=3086.0, volume=187567, open_oi=2081235, close_oi=2089209, symbol='SHFE.rb2510')\n",
"[2025-05-19 13:00:00] 策略 (SHFE.rb2510): [2025-05-19 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519130000_966 @ 3083.90\n",
"[2025-05-19 13:00:00] 策略 (SHFE.rb2510): [2025-05-19 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519130000_967 @ 3047.00\n",
"[2025-05-19 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519130000_966': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519130000_966', price_type='LIMIT', limit_price=3084, submitted_time=Timestamp('2025-05-19 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519130000_967': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519130000_967', price_type='LIMIT', limit_price=3047, submitted_time=Timestamp('2025-05-19 13:00:00'), offset='OPEN')}\n",
"[2025-05-19 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 13:00:00'), open=3065.0, high=3071.0, low=3062.0, close=3062.0, volume=81909, open_oi=2105121, close_oi=2118916, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 14:00:00'), open=3086.0, high=3095.0, low=3080.0, close=3082.0, volume=279205, open_oi=2089209, close_oi=2073027, symbol='SHFE.rb2510')\n",
"[2025-05-19 14:00:00] 策略 (SHFE.rb2510): [2025-05-19 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519140000_968 @ 3084.50\n",
"[2025-05-19 14:00:00] 策略 (SHFE.rb2510): [2025-05-19 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519140000_969 @ 3044.00\n",
"[2025-05-19 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519140000_968': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519140000_968', price_type='LIMIT', limit_price=3085, submitted_time=Timestamp('2025-05-19 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519140000_969': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519140000_969', price_type='LIMIT', limit_price=3044, submitted_time=Timestamp('2025-05-19 14:00:00'), offset='OPEN')}\n",
"[2025-05-19 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 14:00:00'), open=3062.0, high=3070.0, low=3061.0, close=3069.0, volume=185098, open_oi=2118916, close_oi=2113045, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 21:00:00'), open=3077.0, high=3095.0, low=3073.0, close=3091.0, volume=297113, open_oi=2073027, close_oi=2073043, symbol='SHFE.rb2510')\n",
"[2025-05-19 21:00:00] 策略 (SHFE.rb2510): [2025-05-19 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519210000_970 @ 3096.90\n",
"[2025-05-19 21:00:00] 策略 (SHFE.rb2510): [2025-05-19 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519210000_971 @ 3048.00\n",
"[2025-05-19 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519210000_970': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519210000_970', price_type='LIMIT', limit_price=3097, submitted_time=Timestamp('2025-05-19 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519210000_971': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519210000_971', price_type='LIMIT', limit_price=3048, submitted_time=Timestamp('2025-05-19 21:00:00'), offset='OPEN')}\n",
"[2025-05-19 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 21:00:00'), open=3066.0, high=3070.0, low=3058.0, close=3061.0, volume=258713, open_oi=2113045, close_oi=2142886, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-16 22:00:00'), open=3091.0, high=3092.0, low=3077.0, close=3086.0, volume=174437, open_oi=2073043, close_oi=2063933, symbol='SHFE.rb2510')\n",
"[2025-05-19 22:00:00] 策略 (SHFE.rb2510): [2025-05-19 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250519220000_972 @ 3085.00\n",
"[2025-05-19 22:00:00] 策略 (SHFE.rb2510): [2025-05-19 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250519220000_973 @ 3037.00\n",
"[2025-05-19 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-19 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250519220000_972': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250519220000_972', price_type='LIMIT', limit_price=3085, submitted_time=Timestamp('2025-05-19 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250519220000_973': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250519220000_973', price_type='LIMIT', limit_price=3037, submitted_time=Timestamp('2025-05-19 22:00:00'), offset='OPEN')}\n",
"[2025-05-20 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-19 22:00:00'), open=3061.0, high=3063.0, low=3057.0, close=3057.0, volume=116951, open_oi=2142886, close_oi=2145338, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 09:00:00'), open=3086.0, high=3092.0, low=3072.0, close=3075.0, volume=278254, open_oi=2063933, close_oi=2073588, symbol='SHFE.rb2510')\n",
"[2025-05-20 09:00:00] 策略 (SHFE.rb2510): [2025-05-20 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520090000_974 @ 3088.00\n",
"[2025-05-20 09:00:00] 策略 (SHFE.rb2510): [2025-05-20 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520090000_975 @ 3049.00\n",
"[2025-05-20 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520090000_974': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520090000_974', price_type='LIMIT', limit_price=3088, submitted_time=Timestamp('2025-05-20 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520090000_975': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520090000_975', price_type='LIMIT', limit_price=3049, submitted_time=Timestamp('2025-05-20 09:00:00'), offset='OPEN')}\n",
"[2025-05-20 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 09:00:00'), open=3061.0, high=3076.0, low=3058.0, close=3073.0, volume=283866, open_oi=2145338, close_oi=2144670, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 10:00:00'), open=3075.0, high=3080.0, low=3066.0, close=3069.0, volume=179113, open_oi=2073588, close_oi=2096472, symbol='SHFE.rb2510')\n",
"[2025-05-20 10:00:00] 策略 (SHFE.rb2510): [2025-05-20 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520100000_976 @ 3098.80\n",
"[2025-05-20 10:00:00] 策略 (SHFE.rb2510): [2025-05-20 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520100000_977 @ 3037.00\n",
"[2025-05-20 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520100000_976': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520100000_976', price_type='LIMIT', limit_price=3099, submitted_time=Timestamp('2025-05-20 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520100000_977': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520100000_977', price_type='LIMIT', limit_price=3037, submitted_time=Timestamp('2025-05-20 10:00:00'), offset='OPEN')}\n",
"[2025-05-20 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 10:00:00'), open=3073.0, high=3080.0, low=3062.0, close=3067.0, volume=184721, open_oi=2144670, close_oi=2151754, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 11:00:00'), open=3069.0, high=3071.0, low=3062.0, close=3064.0, volume=95172, open_oi=2096472, close_oi=2105121, symbol='SHFE.rb2510')\n",
"[2025-05-20 11:00:00] 策略 (SHFE.rb2510): [2025-05-20 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520110000_978 @ 3086.80\n",
"[2025-05-20 11:00:00] 策略 (SHFE.rb2510): [2025-05-20 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520110000_979 @ 3031.00\n",
"[2025-05-20 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520110000_978': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520110000_978', price_type='LIMIT', limit_price=3087, submitted_time=Timestamp('2025-05-20 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520110000_979': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520110000_979', price_type='LIMIT', limit_price=3031, submitted_time=Timestamp('2025-05-20 11:00:00'), offset='OPEN')}\n",
"[2025-05-20 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 11:00:00'), open=3067.0, high=3069.0, low=3063.0, close=3065.0, volume=57019, open_oi=2151754, close_oi=2153160, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 13:00:00'), open=3065.0, high=3071.0, low=3062.0, close=3062.0, volume=81909, open_oi=2105121, close_oi=2118916, symbol='SHFE.rb2510')\n",
"[2025-05-20 13:00:00] 策略 (SHFE.rb2510): [2025-05-20 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520130000_980 @ 3079.80\n",
"[2025-05-20 13:00:00] 策略 (SHFE.rb2510): [2025-05-20 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520130000_981 @ 3054.00\n",
"[2025-05-20 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520130000_980': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520130000_980', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-05-20 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520130000_981': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520130000_981', price_type='LIMIT', limit_price=3054, submitted_time=Timestamp('2025-05-20 13:00:00'), offset='OPEN')}\n",
"[2025-05-20 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 13:00:00'), open=3066.0, high=3070.0, low=3060.0, close=3060.0, volume=99465, open_oi=2153160, close_oi=2164500, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 14:00:00'), open=3062.0, high=3070.0, low=3061.0, close=3069.0, volume=185098, open_oi=2118916, close_oi=2113045, symbol='SHFE.rb2510')\n",
"[2025-05-20 14:00:00] 策略 (SHFE.rb2510): [2025-05-20 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520140000_982 @ 3075.80\n",
"[2025-05-20 14:00:00] 策略 (SHFE.rb2510): [2025-05-20 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520140000_983 @ 3040.00\n",
"[2025-05-20 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520140000_982': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520140000_982', price_type='LIMIT', limit_price=3076, submitted_time=Timestamp('2025-05-20 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520140000_983': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520140000_983', price_type='LIMIT', limit_price=3040, submitted_time=Timestamp('2025-05-20 14:00:00'), offset='OPEN')}\n",
"[2025-05-20 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 14:00:00'), open=3060.0, high=3063.0, low=3050.0, close=3058.0, volume=284610, open_oi=2164500, close_oi=2160329, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 21:00:00'), open=3066.0, high=3070.0, low=3058.0, close=3061.0, volume=258713, open_oi=2113045, close_oi=2142886, symbol='SHFE.rb2510')\n",
"[2025-05-20 21:00:00] 策略 (SHFE.rb2510): [2025-05-20 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520210000_984 @ 3081.90\n",
"[2025-05-20 21:00:00] 策略 (SHFE.rb2510): [2025-05-20 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520210000_985 @ 3035.00\n",
"[2025-05-20 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520210000_984': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520210000_984', price_type='LIMIT', limit_price=3082, submitted_time=Timestamp('2025-05-20 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520210000_985': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520210000_985', price_type='LIMIT', limit_price=3035, submitted_time=Timestamp('2025-05-20 21:00:00'), offset='OPEN')}\n",
"[2025-05-20 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 21:00:00'), open=3061.0, high=3063.0, low=3054.0, close=3060.0, volume=152788, open_oi=2160329, close_oi=2166219, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-19 22:00:00'), open=3061.0, high=3063.0, low=3057.0, close=3057.0, volume=116951, open_oi=2142886, close_oi=2145338, symbol='SHFE.rb2510')\n",
"[2025-05-20 22:00:00] 策略 (SHFE.rb2510): [2025-05-20 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250520220000_986 @ 3071.70\n",
"[2025-05-20 22:00:00] 策略 (SHFE.rb2510): [2025-05-20 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250520220000_987 @ 3042.00\n",
"[2025-05-20 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-20 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250520220000_986': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250520220000_986', price_type='LIMIT', limit_price=3072, submitted_time=Timestamp('2025-05-20 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250520220000_987': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250520220000_987', price_type='LIMIT', limit_price=3042, submitted_time=Timestamp('2025-05-20 22:00:00'), offset='OPEN')}\n",
"[2025-05-21 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-20 22:00:00'), open=3060.0, high=3068.0, low=3059.0, close=3061.0, volume=154902, open_oi=2166219, close_oi=2159692, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 09:00:00'), open=3061.0, high=3076.0, low=3058.0, close=3073.0, volume=283866, open_oi=2145338, close_oi=2144670, symbol='SHFE.rb2510')\n",
"[2025-05-21 09:00:00] 策略 (SHFE.rb2510): [2025-05-21 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521090000_988 @ 3090.10\n",
"[2025-05-21 09:00:00] 策略 (SHFE.rb2510): [2025-05-21 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521090000_989 @ 3046.00\n",
"[2025-05-21 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521090000_988': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521090000_988', price_type='LIMIT', limit_price=3091, submitted_time=Timestamp('2025-05-21 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521090000_989': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521090000_989', price_type='LIMIT', limit_price=3046, submitted_time=Timestamp('2025-05-21 09:00:00'), offset='OPEN')}\n",
"[2025-05-21 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 09:00:00'), open=3064.0, high=3067.0, low=3053.0, close=3062.0, volume=186683, open_oi=2159692, close_oi=2167851, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 10:00:00'), open=3073.0, high=3080.0, low=3062.0, close=3067.0, volume=184721, open_oi=2144670, close_oi=2151754, symbol='SHFE.rb2510')\n",
"[2025-05-21 10:00:00] 策略 (SHFE.rb2510): [2025-05-21 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521100000_990 @ 3090.60\n",
"[2025-05-21 10:00:00] 策略 (SHFE.rb2510): [2025-05-21 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521100000_991 @ 3034.00\n",
"[2025-05-21 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521100000_990': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521100000_990', price_type='LIMIT', limit_price=3091, submitted_time=Timestamp('2025-05-21 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521100000_991': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521100000_991', price_type='LIMIT', limit_price=3034, submitted_time=Timestamp('2025-05-21 10:00:00'), offset='OPEN')}\n",
"[2025-05-21 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 10:00:00'), open=3062.0, high=3074.0, low=3059.0, close=3066.0, volume=173369, open_oi=2167851, close_oi=2169280, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 11:00:00'), open=3067.0, high=3069.0, low=3063.0, close=3065.0, volume=57019, open_oi=2151754, close_oi=2153160, symbol='SHFE.rb2510')\n",
"[2025-05-21 11:00:00] 策略 (SHFE.rb2510): [2025-05-21 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521110000_992 @ 3080.70\n",
"[2025-05-21 11:00:00] 策略 (SHFE.rb2510): [2025-05-21 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521110000_993 @ 3036.00\n",
"[2025-05-21 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521110000_992': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521110000_992', price_type='LIMIT', limit_price=3081, submitted_time=Timestamp('2025-05-21 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521110000_993': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521110000_993', price_type='LIMIT', limit_price=3036, submitted_time=Timestamp('2025-05-21 11:00:00'), offset='OPEN')}\n",
"[2025-05-21 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 11:00:00'), open=3066.0, high=3067.0, low=3055.0, close=3056.0, volume=103611, open_oi=2169280, close_oi=2171579, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 13:00:00'), open=3066.0, high=3070.0, low=3060.0, close=3060.0, volume=99465, open_oi=2153160, close_oi=2164500, symbol='SHFE.rb2510')\n",
"[2025-05-21 13:00:00] 策略 (SHFE.rb2510): [2025-05-21 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521130000_994 @ 3074.00\n",
"[2025-05-21 13:00:00] 策略 (SHFE.rb2510): [2025-05-21 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521130000_995 @ 3032.00\n",
"[2025-05-21 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521130000_994': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521130000_994', price_type='LIMIT', limit_price=3074, submitted_time=Timestamp('2025-05-21 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521130000_995': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521130000_995', price_type='LIMIT', limit_price=3032, submitted_time=Timestamp('2025-05-21 13:00:00'), offset='OPEN')}\n",
"[2025-05-21 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 13:00:00'), open=3056.0, high=3062.0, low=3055.0, close=3060.0, volume=84331, open_oi=2171579, close_oi=2177426, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 14:00:00'), open=3060.0, high=3063.0, low=3050.0, close=3058.0, volume=284610, open_oi=2164500, close_oi=2160329, symbol='SHFE.rb2510')\n",
"[2025-05-21 14:00:00] 策略 (SHFE.rb2510): [2025-05-21 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521140000_996 @ 3079.10\n",
"[2025-05-21 14:00:00] 策略 (SHFE.rb2510): [2025-05-21 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521140000_997 @ 3046.00\n",
"[2025-05-21 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521140000_996': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521140000_996', price_type='LIMIT', limit_price=3080, submitted_time=Timestamp('2025-05-21 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521140000_997': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521140000_997', price_type='LIMIT', limit_price=3046, submitted_time=Timestamp('2025-05-21 14:00:00'), offset='OPEN')}\n",
"[2025-05-21 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 14:00:00'), open=3060.0, high=3066.0, low=3057.0, close=3061.0, volume=167593, open_oi=2177426, close_oi=2169396, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 21:00:00'), open=3061.0, high=3063.0, low=3054.0, close=3060.0, volume=152788, open_oi=2160329, close_oi=2166219, symbol='SHFE.rb2510')\n",
"[2025-05-21 21:00:00] 策略 (SHFE.rb2510): [2025-05-21 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521210000_998 @ 3077.30\n",
"[2025-05-21 21:00:00] 策略 (SHFE.rb2510): [2025-05-21 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521210000_999 @ 3044.00\n",
"[2025-05-21 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521210000_998': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521210000_998', price_type='LIMIT', limit_price=3078, submitted_time=Timestamp('2025-05-21 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521210000_999': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521210000_999', price_type='LIMIT', limit_price=3044, submitted_time=Timestamp('2025-05-21 21:00:00'), offset='OPEN')}\n",
"[2025-05-21 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 21:00:00'), open=3062.0, high=3069.0, low=3058.0, close=3069.0, volume=164276, open_oi=2169396, close_oi=2179661, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-20 22:00:00'), open=3060.0, high=3068.0, low=3059.0, close=3061.0, volume=154902, open_oi=2166219, close_oi=2159692, symbol='SHFE.rb2510')\n",
"[2025-05-21 22:00:00] 策略 (SHFE.rb2510): [2025-05-21 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250521220000_1000 @ 3085.30\n",
"[2025-05-21 22:00:00] 策略 (SHFE.rb2510): [2025-05-21 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250521220000_1001 @ 3047.00\n",
"[2025-05-21 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-21 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250521220000_1000': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250521220000_1000', price_type='LIMIT', limit_price=3086, submitted_time=Timestamp('2025-05-21 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250521220000_1001': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250521220000_1001', price_type='LIMIT', limit_price=3047, submitted_time=Timestamp('2025-05-21 22:00:00'), offset='OPEN')}\n",
"[2025-05-22 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-21 22:00:00'), open=3069.0, high=3073.0, low=3065.0, close=3067.0, volume=139927, open_oi=2179661, close_oi=2168023, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 09:00:00'), open=3064.0, high=3067.0, low=3053.0, close=3062.0, volume=186683, open_oi=2159692, close_oi=2167851, symbol='SHFE.rb2510')\n",
"[2025-05-22 09:00:00] 策略 (SHFE.rb2510): [2025-05-22 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522090000_1002 @ 3085.80\n",
"[2025-05-22 09:00:00] 策略 (SHFE.rb2510): [2025-05-22 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522090000_1003 @ 3049.00\n",
"[2025-05-22 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522090000_1002': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522090000_1002', price_type='LIMIT', limit_price=3086, submitted_time=Timestamp('2025-05-22 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522090000_1003': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522090000_1003', price_type='LIMIT', limit_price=3049, submitted_time=Timestamp('2025-05-22 09:00:00'), offset='OPEN')}\n",
"[2025-05-22 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 09:00:00'), open=3065.0, high=3066.0, low=3057.0, close=3062.0, volume=186913, open_oi=2168023, close_oi=2182167, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 10:00:00'), open=3062.0, high=3074.0, low=3059.0, close=3066.0, volume=173369, open_oi=2167851, close_oi=2169280, symbol='SHFE.rb2510')\n",
"[2025-05-22 10:00:00] 策略 (SHFE.rb2510): [2025-05-22 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522100000_1004 @ 3084.50\n",
"[2025-05-22 10:00:00] 策略 (SHFE.rb2510): [2025-05-22 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522100000_1005 @ 3044.00\n",
"[2025-05-22 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522100000_1004': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522100000_1004', price_type='LIMIT', limit_price=3085, submitted_time=Timestamp('2025-05-22 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522100000_1005': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522100000_1005', price_type='LIMIT', limit_price=3044, submitted_time=Timestamp('2025-05-22 10:00:00'), offset='OPEN')}\n",
"[2025-05-22 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 10:00:00'), open=3062.0, high=3076.0, low=3062.0, close=3068.0, volume=211412, open_oi=2182167, close_oi=2179692, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 11:00:00'), open=3066.0, high=3067.0, low=3055.0, close=3056.0, volume=103611, open_oi=2169280, close_oi=2171579, symbol='SHFE.rb2510')\n",
"[2025-05-22 11:00:00] 策略 (SHFE.rb2510): [2025-05-22 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522110000_1006 @ 3089.40\n",
"[2025-05-22 11:00:00] 策略 (SHFE.rb2510): [2025-05-22 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522110000_1007 @ 3040.00\n",
"[2025-05-22 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522110000_1006': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522110000_1006', price_type='LIMIT', limit_price=3090, submitted_time=Timestamp('2025-05-22 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522110000_1007': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522110000_1007', price_type='LIMIT', limit_price=3040, submitted_time=Timestamp('2025-05-22 11:00:00'), offset='OPEN')}\n",
"[2025-05-22 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 11:00:00'), open=3068.0, high=3071.0, low=3059.0, close=3060.0, volume=107839, open_oi=2179692, close_oi=2164859, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 13:00:00'), open=3056.0, high=3062.0, low=3055.0, close=3060.0, volume=84331, open_oi=2171579, close_oi=2177426, symbol='SHFE.rb2510')\n",
"[2025-05-22 13:00:00] 策略 (SHFE.rb2510): [2025-05-22 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522130000_1008 @ 3073.40\n",
"[2025-05-22 13:00:00] 策略 (SHFE.rb2510): [2025-05-22 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522130000_1009 @ 3035.00\n",
"[2025-05-22 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522130000_1008': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522130000_1008', price_type='LIMIT', limit_price=3074, submitted_time=Timestamp('2025-05-22 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522130000_1009': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522130000_1009', price_type='LIMIT', limit_price=3035, submitted_time=Timestamp('2025-05-22 13:00:00'), offset='OPEN')}\n",
"[2025-05-22 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 13:00:00'), open=3059.0, high=3062.0, low=3044.0, close=3046.0, volume=334079, open_oi=2164859, close_oi=2227698, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 14:00:00'), open=3060.0, high=3066.0, low=3057.0, close=3061.0, volume=167593, open_oi=2177426, close_oi=2169396, symbol='SHFE.rb2510')\n",
"[2025-05-22 14:00:00] 策略 (SHFE.rb2510): [2025-05-22 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522140000_1010 @ 3065.80\n",
"[2025-05-22 14:00:00] 策略 (SHFE.rb2510): [2025-05-22 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522140000_1011 @ 3010.00\n",
"[2025-05-22 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522140000_1010': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522140000_1010', price_type='LIMIT', limit_price=3066, submitted_time=Timestamp('2025-05-22 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522140000_1011': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522140000_1011', price_type='LIMIT', limit_price=3010, submitted_time=Timestamp('2025-05-22 14:00:00'), offset='OPEN')}\n",
"[2025-05-22 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 14:00:00'), open=3046.0, high=3063.0, low=3043.0, close=3061.0, volume=317180, open_oi=2227698, close_oi=2174638, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 21:00:00'), open=3062.0, high=3069.0, low=3058.0, close=3069.0, volume=164276, open_oi=2169396, close_oi=2179661, symbol='SHFE.rb2510')\n",
"[2025-05-22 21:00:00] 策略 (SHFE.rb2510): [2025-05-22 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522210000_1012 @ 3082.20\n",
"[2025-05-22 21:00:00] 策略 (SHFE.rb2510): [2025-05-22 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522210000_1013 @ 3019.00\n",
"[2025-05-22 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522210000_1012': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522210000_1012', price_type='LIMIT', limit_price=3083, submitted_time=Timestamp('2025-05-22 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522210000_1013': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522210000_1013', price_type='LIMIT', limit_price=3019, submitted_time=Timestamp('2025-05-22 21:00:00'), offset='OPEN')}\n",
"[2025-05-22 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 21:00:00'), open=3059.0, high=3066.0, low=3055.0, close=3055.0, volume=224606, open_oi=2174638, close_oi=2178817, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-21 22:00:00'), open=3069.0, high=3073.0, low=3065.0, close=3067.0, volume=139927, open_oi=2179661, close_oi=2168023, symbol='SHFE.rb2510')\n",
"[2025-05-22 22:00:00] 策略 (SHFE.rb2510): [2025-05-22 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250522220000_1014 @ 3070.10\n",
"[2025-05-22 22:00:00] 策略 (SHFE.rb2510): [2025-05-22 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250522220000_1015 @ 3033.00\n",
"[2025-05-22 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-22 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250522220000_1014': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250522220000_1014', price_type='LIMIT', limit_price=3071, submitted_time=Timestamp('2025-05-22 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250522220000_1015': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250522220000_1015', price_type='LIMIT', limit_price=3033, submitted_time=Timestamp('2025-05-22 22:00:00'), offset='OPEN')}\n",
"[2025-05-23 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-22 22:00:00'), open=3055.0, high=3062.0, low=3054.0, close=3059.0, volume=103243, open_oi=2178817, close_oi=2165978, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 09:00:00'), open=3065.0, high=3066.0, low=3057.0, close=3062.0, volume=186913, open_oi=2168023, close_oi=2182167, symbol='SHFE.rb2510')\n",
"[2025-05-23 09:00:00] 策略 (SHFE.rb2510): [2025-05-23 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523090000_1016 @ 3075.80\n",
"[2025-05-23 09:00:00] 策略 (SHFE.rb2510): [2025-05-23 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523090000_1017 @ 3045.00\n",
"[2025-05-23 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523090000_1016': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523090000_1016', price_type='LIMIT', limit_price=3076, submitted_time=Timestamp('2025-05-23 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523090000_1017': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523090000_1017', price_type='LIMIT', limit_price=3045, submitted_time=Timestamp('2025-05-23 09:00:00'), offset='OPEN')}\n",
"[2025-05-23 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 09:00:00'), open=3061.0, high=3061.0, low=3052.0, close=3054.0, volume=150889, open_oi=2165978, close_oi=2173486, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 10:00:00'), open=3062.0, high=3076.0, low=3062.0, close=3068.0, volume=211412, open_oi=2182167, close_oi=2179692, symbol='SHFE.rb2510')\n",
"[2025-05-23 10:00:00] 策略 (SHFE.rb2510): [2025-05-23 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523100000_1018 @ 3075.30\n",
"[2025-05-23 10:00:00] 策略 (SHFE.rb2510): [2025-05-23 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523100000_1019 @ 3036.00\n",
"[2025-05-23 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523100000_1018': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523100000_1018', price_type='LIMIT', limit_price=3076, submitted_time=Timestamp('2025-05-23 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523100000_1019': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523100000_1019', price_type='LIMIT', limit_price=3036, submitted_time=Timestamp('2025-05-23 10:00:00'), offset='OPEN')}\n",
"[2025-05-23 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 10:00:00'), open=3054.0, high=3069.0, low=3054.0, close=3056.0, volume=234819, open_oi=2173486, close_oi=2165758, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 11:00:00'), open=3068.0, high=3071.0, low=3059.0, close=3060.0, volume=107839, open_oi=2179692, close_oi=2164859, symbol='SHFE.rb2510')\n",
"[2025-05-23 11:00:00] 策略 (SHFE.rb2510): [2025-05-23 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523110000_1020 @ 3077.90\n",
"[2025-05-23 11:00:00] 策略 (SHFE.rb2510): [2025-05-23 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523110000_1021 @ 3026.00\n",
"[2025-05-23 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523110000_1020': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523110000_1020', price_type='LIMIT', limit_price=3078, submitted_time=Timestamp('2025-05-23 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523110000_1021': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523110000_1021', price_type='LIMIT', limit_price=3026, submitted_time=Timestamp('2025-05-23 11:00:00'), offset='OPEN')}\n",
"[2025-05-23 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 11:00:00'), open=3056.0, high=3058.0, low=3046.0, close=3048.0, volume=149037, open_oi=2165758, close_oi=2179534, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 13:00:00'), open=3059.0, high=3062.0, low=3044.0, close=3046.0, volume=334079, open_oi=2164859, close_oi=2227698, symbol='SHFE.rb2510')\n",
"[2025-05-23 13:00:00] 策略 (SHFE.rb2510): [2025-05-23 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523130000_1022 @ 3075.60\n",
"[2025-05-23 13:00:00] 策略 (SHFE.rb2510): [2025-05-23 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523130000_1023 @ 3024.00\n",
"[2025-05-23 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523130000_1022': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523130000_1022', price_type='LIMIT', limit_price=3076, submitted_time=Timestamp('2025-05-23 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523130000_1023': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523130000_1023', price_type='LIMIT', limit_price=3024, submitted_time=Timestamp('2025-05-23 13:00:00'), offset='OPEN')}\n",
"[2025-05-23 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 13:00:00'), open=3048.0, high=3055.0, low=3045.0, close=3054.0, volume=93206, open_oi=2179534, close_oi=2181069, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 14:00:00'), open=3046.0, high=3063.0, low=3043.0, close=3061.0, volume=317180, open_oi=2227698, close_oi=2174638, symbol='SHFE.rb2510')\n",
"[2025-05-23 14:00:00] 策略 (SHFE.rb2510): [2025-05-23 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523140000_1024 @ 3083.00\n",
"[2025-05-23 14:00:00] 策略 (SHFE.rb2510): [2025-05-23 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523140000_1025 @ 3034.00\n",
"[2025-05-23 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523140000_1024': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523140000_1024', price_type='LIMIT', limit_price=3083, submitted_time=Timestamp('2025-05-23 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523140000_1025': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523140000_1025', price_type='LIMIT', limit_price=3034, submitted_time=Timestamp('2025-05-23 14:00:00'), offset='OPEN')}\n",
"[2025-05-23 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 14:00:00'), open=3054.0, high=3054.0, low=3044.0, close=3046.0, volume=252827, open_oi=2181069, close_oi=2158221, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 21:00:00'), open=3059.0, high=3066.0, low=3055.0, close=3055.0, volume=224606, open_oi=2174638, close_oi=2178817, symbol='SHFE.rb2510')\n",
"[2025-05-23 21:00:00] 策略 (SHFE.rb2510): [2025-05-23 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523210000_1026 @ 3056.20\n",
"[2025-05-23 21:00:00] 策略 (SHFE.rb2510): [2025-05-23 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523210000_1027 @ 3018.00\n",
"[2025-05-23 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523210000_1026': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523210000_1026', price_type='LIMIT', limit_price=3057, submitted_time=Timestamp('2025-05-23 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523210000_1027': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523210000_1027', price_type='LIMIT', limit_price=3018, submitted_time=Timestamp('2025-05-23 21:00:00'), offset='OPEN')}\n",
"[2025-05-23 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 21:00:00'), open=3038.0, high=3045.0, low=3035.0, close=3039.0, volume=284587, open_oi=2158221, close_oi=2195635, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-22 22:00:00'), open=3055.0, high=3062.0, low=3054.0, close=3059.0, volume=103243, open_oi=2178817, close_oi=2165978, symbol='SHFE.rb2510')\n",
"[2025-05-23 22:00:00] 策略 (SHFE.rb2510): [2025-05-23 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250523220000_1028 @ 3053.60\n",
"[2025-05-23 22:00:00] 策略 (SHFE.rb2510): [2025-05-23 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250523220000_1029 @ 3019.00\n",
"[2025-05-23 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-23 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250523220000_1028': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250523220000_1028', price_type='LIMIT', limit_price=3054, submitted_time=Timestamp('2025-05-23 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250523220000_1029': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250523220000_1029', price_type='LIMIT', limit_price=3019, submitted_time=Timestamp('2025-05-23 22:00:00'), offset='OPEN')}\n",
"[2025-05-26 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-23 22:00:00'), open=3039.0, high=3043.0, low=3035.0, close=3035.0, volume=129891, open_oi=2195635, close_oi=2194234, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-23 09:00:00'), open=3061.0, high=3061.0, low=3052.0, close=3054.0, volume=150889, open_oi=2165978, close_oi=2173486, symbol='SHFE.rb2510')\n",
"[2025-05-26 09:00:00] 策略 (SHFE.rb2510): [2025-05-26 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250526090000_1030 @ 3049.80\n",
"[2025-05-26 09:00:00] 策略 (SHFE.rb2510): [2025-05-26 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250526090000_1031 @ 3019.00\n",
"[2025-05-26 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250526090000_1030': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250526090000_1030', price_type='LIMIT', limit_price=3050, submitted_time=Timestamp('2025-05-26 09:00:00'), offset='OPEN')}\n",
"[2025-05-26 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-26 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-26 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-26 11:00:00] 策略 (SHFE.rb2510): [2025-05-26 11:00:00] 止损信号 - PnL per unit: -18.00, 目标: -10.00\n",
"[2025-05-26 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-26 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-26 11:00:00'), open=3001.0, high=3014.0, low=3000.0, close=3007.0, volume=223678, open_oi=2362519, close_oi=2366552, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-23 13:00:00'), open=3048.0, high=3055.0, low=3045.0, close=3054.0, volume=93206, open_oi=2179534, close_oi=2181069, symbol='SHFE.rb2510')\n",
"[2025-05-26 13:00:00] 策略 (SHFE.rb2510): [2025-05-26 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250526130000_1033 @ 3027.00\n",
"[2025-05-26 13:00:00] 策略 (SHFE.rb2510): [2025-05-26 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250526130000_1034 @ 2980.00\n",
"[2025-05-26 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250526130000_1033': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250526130000_1033', price_type='LIMIT', limit_price=3027, submitted_time=Timestamp('2025-05-26 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250526130000_1034': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250526130000_1034', price_type='LIMIT', limit_price=2980, submitted_time=Timestamp('2025-05-26 13:00:00'), offset='OPEN')}\n",
"[2025-05-26 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-26 13:00:00'), open=3008.0, high=3009.0, low=3003.0, close=3006.0, volume=82188, open_oi=2366552, close_oi=2367128, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-23 14:00:00'), open=3054.0, high=3054.0, low=3044.0, close=3046.0, volume=252827, open_oi=2181069, close_oi=2158221, symbol='SHFE.rb2510')\n",
"[2025-05-26 14:00:00] 策略 (SHFE.rb2510): [2025-05-26 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250526140000_1035 @ 3021.00\n",
"[2025-05-26 14:00:00] 策略 (SHFE.rb2510): [2025-05-26 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250526140000_1036 @ 2994.00\n",
"[2025-05-26 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250526140000_1035': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250526140000_1035', price_type='LIMIT', limit_price=3021, submitted_time=Timestamp('2025-05-26 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250526140000_1036': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250526140000_1036', price_type='LIMIT', limit_price=2994, submitted_time=Timestamp('2025-05-26 14:00:00'), offset='OPEN')}\n",
"[2025-05-26 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-26 14:00:00'), open=3006.0, high=3010.0, low=3001.0, close=3004.0, volume=194325, open_oi=2367128, close_oi=2349145, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-23 21:00:00'), open=3038.0, high=3045.0, low=3035.0, close=3039.0, volume=284587, open_oi=2158221, close_oi=2195635, symbol='SHFE.rb2510')\n",
"[2025-05-26 21:00:00] 策略 (SHFE.rb2510): [2025-05-26 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250526210000_1037 @ 3025.50\n",
"[2025-05-26 21:00:00] 策略 (SHFE.rb2510): [2025-05-26 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250526210000_1038 @ 2991.00\n",
"[2025-05-26 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250526210000_1037': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250526210000_1037', price_type='LIMIT', limit_price=3026, submitted_time=Timestamp('2025-05-26 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250526210000_1038': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250526210000_1038', price_type='LIMIT', limit_price=2991, submitted_time=Timestamp('2025-05-26 21:00:00'), offset='OPEN')}\n",
"[2025-05-26 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-26 21:00:00'), open=3009.0, high=3018.0, low=3006.0, close=3009.0, volume=325593, open_oi=2349145, close_oi=2327743, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-23 22:00:00'), open=3039.0, high=3043.0, low=3035.0, close=3035.0, volume=129891, open_oi=2195635, close_oi=2194234, symbol='SHFE.rb2510')\n",
"[2025-05-26 22:00:00] 策略 (SHFE.rb2510): [2025-05-26 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250526220000_1039 @ 3024.60\n",
"[2025-05-26 22:00:00] 策略 (SHFE.rb2510): [2025-05-26 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250526220000_1040 @ 2985.00\n",
"[2025-05-26 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-26 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250526220000_1039': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250526220000_1039', price_type='LIMIT', limit_price=3025, submitted_time=Timestamp('2025-05-26 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250526220000_1040': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250526220000_1040', price_type='LIMIT', limit_price=2985, submitted_time=Timestamp('2025-05-26 22:00:00'), offset='OPEN')}\n",
"[2025-05-27 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-26 22:00:00'), open=3009.0, high=3010.0, low=3006.0, close=3009.0, volume=85068, open_oi=2327743, close_oi=2318493, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-26 09:00:00'), open=3035.0, high=3036.0, low=3015.0, close=3016.0, volume=479716, open_oi=2194234, close_oi=2286970, symbol='SHFE.rb2510')\n",
"[2025-05-27 09:00:00] 策略 (SHFE.rb2510): [2025-05-27 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250527090000_1041 @ 3034.20\n",
"[2025-05-27 09:00:00] 策略 (SHFE.rb2510): [2025-05-27 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250527090000_1042 @ 2999.00\n",
"[2025-05-27 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250527090000_1041': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250527090000_1041', price_type='LIMIT', limit_price=3035, submitted_time=Timestamp('2025-05-27 09:00:00'), offset='OPEN')}\n",
"[2025-05-27 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-27 10:00:00] 策略 (SHFE.rb2510): [2025-05-27 10:00:00] 止损信号 - PnL per unit: -11.00, 目标: -10.00\n",
"[2025-05-27 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-27 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-27 10:00:00'), open=2988.0, high=2988.0, low=2970.0, close=2980.0, volume=362225, open_oi=2368820, close_oi=2404618, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-26 11:00:00'), open=3001.0, high=3014.0, low=3000.0, close=3007.0, volume=223678, open_oi=2362519, close_oi=2366552, symbol='SHFE.rb2510')\n",
"[2025-05-27 11:00:00] 策略 (SHFE.rb2510): [2025-05-27 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250527110000_1044 @ 3005.80\n",
"[2025-05-27 11:00:00] 策略 (SHFE.rb2510): [2025-05-27 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250527110000_1045 @ 2944.00\n",
"[2025-05-27 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250527110000_1044': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250527110000_1044', price_type='LIMIT', limit_price=3006, submitted_time=Timestamp('2025-05-27 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250527110000_1045': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250527110000_1045', price_type='LIMIT', limit_price=2944, submitted_time=Timestamp('2025-05-27 11:00:00'), offset='OPEN')}\n",
"[2025-05-27 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-27 11:00:00'), open=2980.0, high=2980.0, low=2969.0, close=2976.0, volume=136600, open_oi=2404618, close_oi=2414200, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-26 13:00:00'), open=3008.0, high=3009.0, low=3003.0, close=3006.0, volume=82188, open_oi=2366552, close_oi=2367128, symbol='SHFE.rb2510')\n",
"[2025-05-27 13:00:00] 策略 (SHFE.rb2510): [2025-05-27 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250527130000_1046 @ 2989.70\n",
"[2025-05-27 13:00:00] 策略 (SHFE.rb2510): [2025-05-27 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250527130000_1047 @ 2955.00\n",
"[2025-05-27 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250527130000_1046': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250527130000_1046', price_type='LIMIT', limit_price=2990, submitted_time=Timestamp('2025-05-27 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250527130000_1047': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250527130000_1047', price_type='LIMIT', limit_price=2955, submitted_time=Timestamp('2025-05-27 13:00:00'), offset='OPEN')}\n",
"[2025-05-27 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-27 13:00:00'), open=2977.0, high=2978.0, low=2964.0, close=2975.0, volume=226799, open_oi=2414200, close_oi=2426751, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-26 14:00:00'), open=3006.0, high=3010.0, low=3001.0, close=3004.0, volume=194325, open_oi=2367128, close_oi=2349145, symbol='SHFE.rb2510')\n",
"[2025-05-27 14:00:00] 策略 (SHFE.rb2510): [2025-05-27 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250527140000_1048 @ 2992.80\n",
"[2025-05-27 14:00:00] 策略 (SHFE.rb2510): [2025-05-27 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250527140000_1049 @ 2947.00\n",
"[2025-05-27 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250527140000_1048': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250527140000_1048', price_type='LIMIT', limit_price=2993, submitted_time=Timestamp('2025-05-27 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250527140000_1049': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250527140000_1049', price_type='LIMIT', limit_price=2947, submitted_time=Timestamp('2025-05-27 14:00:00'), offset='OPEN')}\n",
"[2025-05-27 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-27 14:00:00'), open=2975.0, high=2987.0, low=2970.0, close=2980.0, volume=369296, open_oi=2426751, close_oi=2399979, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-26 21:00:00'), open=3009.0, high=3018.0, low=3006.0, close=3009.0, volume=325593, open_oi=2349145, close_oi=2327743, symbol='SHFE.rb2510')\n",
"[2025-05-27 21:00:00] 策略 (SHFE.rb2510): [2025-05-27 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250527210000_1050 @ 3003.90\n",
"[2025-05-27 21:00:00] 策略 (SHFE.rb2510): [2025-05-27 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250527210000_1051 @ 2947.00\n",
"[2025-05-27 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250527210000_1050': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250527210000_1050', price_type='LIMIT', limit_price=3004, submitted_time=Timestamp('2025-05-27 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250527210000_1051': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250527210000_1051', price_type='LIMIT', limit_price=2947, submitted_time=Timestamp('2025-05-27 21:00:00'), offset='OPEN')}\n",
"[2025-05-27 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-27 21:00:00'), open=2981.0, high=2982.0, low=2971.0, close=2973.0, volume=223990, open_oi=2399979, close_oi=2428031, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-26 22:00:00'), open=3009.0, high=3010.0, low=3006.0, close=3009.0, volume=85068, open_oi=2327743, close_oi=2318493, symbol='SHFE.rb2510')\n",
"[2025-05-27 22:00:00] 策略 (SHFE.rb2510): [2025-05-27 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250527220000_1052 @ 2983.30\n",
"[2025-05-27 22:00:00] 策略 (SHFE.rb2510): [2025-05-27 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250527220000_1053 @ 2951.00\n",
"[2025-05-27 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-27 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250527220000_1052': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250527220000_1052', price_type='LIMIT', limit_price=2984, submitted_time=Timestamp('2025-05-27 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250527220000_1053': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250527220000_1053', price_type='LIMIT', limit_price=2951, submitted_time=Timestamp('2025-05-27 22:00:00'), offset='OPEN')}\n",
"[2025-05-28 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-27 22:00:00'), open=2973.0, high=2977.0, low=2968.0, close=2970.0, volume=110464, open_oi=2428031, close_oi=2432529, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 09:00:00'), open=3007.0, high=3008.0, low=2985.0, close=2988.0, volume=430174, open_oi=2318493, close_oi=2368820, symbol='SHFE.rb2510')\n",
"[2025-05-28 09:00:00] 策略 (SHFE.rb2510): [2025-05-28 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528090000_1054 @ 3004.10\n",
"[2025-05-28 09:00:00] 策略 (SHFE.rb2510): [2025-05-28 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528090000_1055 @ 2954.00\n",
"[2025-05-28 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528090000_1054': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528090000_1054', price_type='LIMIT', limit_price=3005, submitted_time=Timestamp('2025-05-28 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528090000_1055': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528090000_1055', price_type='LIMIT', limit_price=2954, submitted_time=Timestamp('2025-05-28 09:00:00'), offset='OPEN')}\n",
"[2025-05-28 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 09:00:00'), open=2972.0, high=2976.0, low=2961.0, close=2968.0, volume=285884, open_oi=2432529, close_oi=2443255, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 10:00:00'), open=2988.0, high=2988.0, low=2970.0, close=2980.0, volume=362225, open_oi=2368820, close_oi=2404618, symbol='SHFE.rb2510')\n",
"[2025-05-28 10:00:00] 策略 (SHFE.rb2510): [2025-05-28 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528100000_1056 @ 2997.10\n",
"[2025-05-28 10:00:00] 策略 (SHFE.rb2510): [2025-05-28 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528100000_1057 @ 2938.00\n",
"[2025-05-28 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528100000_1056': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528100000_1056', price_type='LIMIT', limit_price=2998, submitted_time=Timestamp('2025-05-28 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528100000_1057': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528100000_1057', price_type='LIMIT', limit_price=2938, submitted_time=Timestamp('2025-05-28 10:00:00'), offset='OPEN')}\n",
"[2025-05-28 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 10:00:00'), open=2968.0, high=2968.0, low=2955.0, close=2958.0, volume=201602, open_oi=2443255, close_oi=2462997, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 11:00:00'), open=2980.0, high=2980.0, low=2969.0, close=2976.0, volume=136600, open_oi=2404618, close_oi=2414200, symbol='SHFE.rb2510')\n",
"[2025-05-28 11:00:00] 策略 (SHFE.rb2510): [2025-05-28 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528110000_1058 @ 2977.70\n",
"[2025-05-28 11:00:00] 策略 (SHFE.rb2510): [2025-05-28 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528110000_1059 @ 2932.00\n",
"[2025-05-28 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528110000_1058': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528110000_1058', price_type='LIMIT', limit_price=2978, submitted_time=Timestamp('2025-05-28 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528110000_1059': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528110000_1059', price_type='LIMIT', limit_price=2932, submitted_time=Timestamp('2025-05-28 11:00:00'), offset='OPEN')}\n",
"[2025-05-28 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 11:00:00'), open=2958.0, high=2966.0, low=2953.0, close=2954.0, volume=113376, open_oi=2462997, close_oi=2458565, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 13:00:00'), open=2977.0, high=2978.0, low=2964.0, close=2975.0, volume=226799, open_oi=2414200, close_oi=2426751, symbol='SHFE.rb2510')\n",
"[2025-05-28 13:00:00] 策略 (SHFE.rb2510): [2025-05-28 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528130000_1060 @ 2979.30\n",
"[2025-05-28 13:00:00] 策略 (SHFE.rb2510): [2025-05-28 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528130000_1061 @ 2930.00\n",
"[2025-05-28 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528130000_1060': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528130000_1060', price_type='LIMIT', limit_price=2980, submitted_time=Timestamp('2025-05-28 13:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528130000_1061': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528130000_1061', price_type='LIMIT', limit_price=2930, submitted_time=Timestamp('2025-05-28 13:00:00'), offset='OPEN')}\n",
"[2025-05-28 14:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 13:00:00'), open=2956.0, high=2958.0, low=2950.0, close=2955.0, volume=142133, open_oi=2458565, close_oi=2466402, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 14:00:00'), open=2975.0, high=2987.0, low=2970.0, close=2980.0, volume=369296, open_oi=2426751, close_oi=2399979, symbol='SHFE.rb2510')\n",
"[2025-05-28 14:00:00] 策略 (SHFE.rb2510): [2025-05-28 14:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528140000_1062 @ 2979.40\n",
"[2025-05-28 14:00:00] 策略 (SHFE.rb2510): [2025-05-28 14:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528140000_1063 @ 2939.00\n",
"[2025-05-28 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528140000_1062': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528140000_1062', price_type='LIMIT', limit_price=2980, submitted_time=Timestamp('2025-05-28 14:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528140000_1063': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528140000_1063', price_type='LIMIT', limit_price=2939, submitted_time=Timestamp('2025-05-28 14:00:00'), offset='OPEN')}\n",
"[2025-05-28 21:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 14:00:00'), open=2955.0, high=2965.0, low=2951.0, close=2964.0, volume=256502, open_oi=2466402, close_oi=2441388, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 21:00:00'), open=2981.0, high=2982.0, low=2971.0, close=2973.0, volume=223990, open_oi=2399979, close_oi=2428031, symbol='SHFE.rb2510')\n",
"[2025-05-28 21:00:00] 策略 (SHFE.rb2510): [2025-05-28 21:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528210000_1064 @ 2982.20\n",
"[2025-05-28 21:00:00] 策略 (SHFE.rb2510): [2025-05-28 21:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528210000_1065 @ 2934.00\n",
"[2025-05-28 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528210000_1064': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528210000_1064', price_type='LIMIT', limit_price=2983, submitted_time=Timestamp('2025-05-28 21:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528210000_1065': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528210000_1065', price_type='LIMIT', limit_price=2934, submitted_time=Timestamp('2025-05-28 21:00:00'), offset='OPEN')}\n",
"[2025-05-28 22:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 21:00:00'), open=2962.0, high=2971.0, low=2958.0, close=2959.0, volume=271168, open_oi=2441388, close_oi=2444654, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-27 22:00:00'), open=2973.0, high=2977.0, low=2968.0, close=2970.0, volume=110464, open_oi=2428031, close_oi=2432529, symbol='SHFE.rb2510')\n",
"[2025-05-28 22:00:00] 策略 (SHFE.rb2510): [2025-05-28 22:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250528220000_1066 @ 2976.30\n",
"[2025-05-28 22:00:00] 策略 (SHFE.rb2510): [2025-05-28 22:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250528220000_1067 @ 2933.00\n",
"[2025-05-28 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-28 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250528220000_1066': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250528220000_1066', price_type='LIMIT', limit_price=2977, submitted_time=Timestamp('2025-05-28 22:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250528220000_1067': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250528220000_1067', price_type='LIMIT', limit_price=2933, submitted_time=Timestamp('2025-05-28 22:00:00'), offset='OPEN')}\n",
"[2025-05-29 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-28 22:00:00'), open=2959.0, high=2962.0, low=2954.0, close=2957.0, volume=162183, open_oi=2444654, close_oi=2429561, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-28 09:00:00'), open=2972.0, high=2976.0, low=2961.0, close=2968.0, volume=285884, open_oi=2432529, close_oi=2443255, symbol='SHFE.rb2510')\n",
"[2025-05-29 09:00:00] 策略 (SHFE.rb2510): [2025-05-29 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250529090000_1068 @ 2990.00\n",
"[2025-05-29 09:00:00] 策略 (SHFE.rb2510): [2025-05-29 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250529090000_1069 @ 2952.00\n",
"[2025-05-29 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250529090000_1068': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250529090000_1068', price_type='LIMIT', limit_price=2990, submitted_time=Timestamp('2025-05-29 09:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250529090000_1069': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250529090000_1069', price_type='LIMIT', limit_price=2952, submitted_time=Timestamp('2025-05-29 09:00:00'), offset='OPEN')}\n",
"[2025-05-29 10:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-29 09:00:00'), open=2968.0, high=2976.0, low=2957.0, close=2974.0, volume=457103, open_oi=2429561, close_oi=2437266, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-28 10:00:00'), open=2968.0, high=2968.0, low=2955.0, close=2958.0, volume=201602, open_oi=2443255, close_oi=2462997, symbol='SHFE.rb2510')\n",
"[2025-05-29 10:00:00] 策略 (SHFE.rb2510): [2025-05-29 10:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250529100000_1070 @ 2999.10\n",
"[2025-05-29 10:00:00] 策略 (SHFE.rb2510): [2025-05-29 10:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250529100000_1071 @ 2936.00\n",
"[2025-05-29 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250529100000_1070': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250529100000_1070', price_type='LIMIT', limit_price=3000, submitted_time=Timestamp('2025-05-29 10:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250529100000_1071': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250529100000_1071', price_type='LIMIT', limit_price=2936, submitted_time=Timestamp('2025-05-29 10:00:00'), offset='OPEN')}\n",
"[2025-05-29 11:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-29 10:00:00'), open=2974.0, high=2979.0, low=2967.0, close=2975.0, volume=227244, open_oi=2437266, close_oi=2425181, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-28 11:00:00'), open=2958.0, high=2966.0, low=2953.0, close=2954.0, volume=113376, open_oi=2462997, close_oi=2458565, symbol='SHFE.rb2510')\n",
"[2025-05-29 11:00:00] 策略 (SHFE.rb2510): [2025-05-29 11:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250529110000_1072 @ 2996.60\n",
"[2025-05-29 11:00:00] 策略 (SHFE.rb2510): [2025-05-29 11:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250529110000_1073 @ 2951.00\n",
"[2025-05-29 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250529110000_1072': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250529110000_1072', price_type='LIMIT', limit_price=2997, submitted_time=Timestamp('2025-05-29 11:00:00'), offset='OPEN'), 'SHFE.rb2510_BUY_20250529110000_1073': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250529110000_1073', price_type='LIMIT', limit_price=2951, submitted_time=Timestamp('2025-05-29 11:00:00'), offset='OPEN')}\n",
"[2025-05-29 13:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-29 11:00:00'), open=2975.0, high=2975.0, low=2962.0, close=2963.0, volume=158681, open_oi=2425181, close_oi=2400030, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-28 13:00:00'), open=2956.0, high=2958.0, low=2950.0, close=2955.0, volume=142133, open_oi=2458565, close_oi=2466402, symbol='SHFE.rb2510')\n",
"[2025-05-29 13:00:00] 策略 (SHFE.rb2510): [2025-05-29 13:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250529130000_1074 @ 2978.10\n",
"[2025-05-29 13:00:00] 策略 (SHFE.rb2510): [2025-05-29 13:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250529130000_1075 @ 2936.00\n",
"[2025-05-29 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250529130000_1075': Order(symbol='SHFE.rb2510', direction='BUY', volume=1, id='SHFE.rb2510_BUY_20250529130000_1075', price_type='LIMIT', limit_price=2936, submitted_time=Timestamp('2025-05-29 13:00:00'), offset='OPEN')}\n",
"[2025-05-29 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-05-29 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 14:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-29 21:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-05-29 21:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 21:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-29 22:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': -1} SHFE.rb2510\n",
"[2025-05-29 22:00:00] 策略 (SHFE.rb2510): [2025-05-29 22:00:00] 止盈信号 - PnL per unit: 11.10, 目标: 10.00\n",
"[2025-05-29 22:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-29 22:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-30 09:00:00] 策略 (SHFE.rb2510): {} SHFE.rb2510\n",
"Bar(datetime=Timestamp('2025-05-29 22:00:00'), open=2967.0, high=2974.0, low=2967.0, close=2973.0, volume=115007, open_oi=2376388, close_oi=2368029, symbol='SHFE.rb2510') Bar(datetime=Timestamp('2025-05-29 09:00:00'), open=2968.0, high=2976.0, low=2957.0, close=2974.0, volume=457103, open_oi=2429561, close_oi=2437266, symbol='SHFE.rb2510')\n",
"[2025-05-30 09:00:00] 策略 (SHFE.rb2510): [2025-05-30 09:00:00] 策略: 发送限价SELL订单 SHFE.rb2510_BUY_20250530090000_1077 @ 2998.30\n",
"[2025-05-30 09:00:00] 策略 (SHFE.rb2510): [2025-05-30 09:00:00] 策略: 发送限价BUY订单 SHFE.rb2510_BUY_20250530090000_1078 @ 2958.00\n",
"[2025-05-30 09:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-30 09:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510_BUY_20250530090000_1077': Order(symbol='SHFE.rb2510', direction='SELL', volume=1, id='SHFE.rb2510_BUY_20250530090000_1077', price_type='LIMIT', limit_price=2999, submitted_time=Timestamp('2025-05-30 09:00:00'), offset='OPEN')}\n",
"[2025-05-30 10:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-30 10:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-30 10:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-30 11:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-30 11:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-30 11:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-30 13:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-30 13:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-30 13:00:00] 策略 (SHFE.rb2510): {}\n",
"[2025-05-30 14:00:00] 策略 (SHFE.rb2510): {'SHFE.rb2510': 1} SHFE.rb2510\n",
"[2025-05-30 14:00:00] 策略 (SHFE.rb2510): on close bar!\n",
"[2025-05-30 14:00:00] 策略 (SHFE.rb2510): {}\n",
"Bar 对象流生成完毕。\n",
"\n",
"--- 回测结束,检查并平仓所有剩余持仓 ---\n",
"[2025-05-30 14:00:00] 策略 (SHFE.rb2510): 回测结束清理: 强制平仓合约 SHFE.rb2510 的剩余持仓。\n",
"--- 回测结束 ---\n",
"总计处理了 671 根K线。\n",
"总计发生了 88 笔交易。\n",
"最终总净值: 99667.97\n",
"总收益率: -0.33%\n",
"\n",
"回测运行完毕。\n",
"\n",
"--- 结果分析器初始化完成 ---\n",
"\n",
"--- 交易明细 ---\n",
" 2025-01-07 13:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3253.00 | Comm: 0.33\n",
" 2025-01-07 21:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3241.00 | Comm: 0.32 | PnL: 12.00\n",
" 2025-01-08 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3228.00 | Comm: 0.32\n",
" 2025-01-08 13:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3211.00 | Comm: 0.32 | PnL: -17.00\n",
" 2025-01-09 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3189.00 | Comm: 0.32\n",
" 2025-01-09 13:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3198.00 | Comm: 0.32 | PnL: 9.00\n",
" 2025-01-10 22:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3242.00 | Comm: 0.32\n",
" 2025-01-14 10:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3267.00 | Comm: 0.33 | PnL: -25.00\n",
" 2025-01-14 13:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3284.00 | Comm: 0.33\n",
" 2025-01-15 11:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3299.00 | Comm: 0.33 | PnL: -15.00\n",
" 2025-01-15 21:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3303.00 | Comm: 0.33\n",
" 2025-01-16 21:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3332.00 | Comm: 0.33 | PnL: -29.00\n",
" 2025-01-17 11:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3359.00 | Comm: 0.34\n",
" 2025-01-17 21:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3373.00 | Comm: 0.34 | PnL: -14.00\n",
" 2025-01-17 22:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3378.00 | Comm: 0.34\n",
" 2025-01-20 09:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3392.00 | Comm: 0.34 | PnL: -14.00\n",
" 2025-01-20 21:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3375.00 | Comm: 0.34\n",
" 2025-01-21 11:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3358.00 | Comm: 0.34 | PnL: 17.00\n",
" 2025-01-24 14:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3368.00 | Comm: 0.34\n",
" 2025-01-27 10:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3379.00 | Comm: 0.34 | PnL: -11.00\n",
" 2025-02-05 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3356.00 | Comm: 0.34\n",
" 2025-02-05 10:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3325.00 | Comm: 0.33 | PnL: -31.00\n",
" 2025-02-10 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3346.00 | Comm: 0.33\n",
" 2025-02-10 11:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3318.00 | Comm: 0.33 | PnL: -28.00\n",
" 2025-02-11 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3315.00 | Comm: 0.33\n",
" 2025-02-11 11:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3284.00 | Comm: 0.33 | PnL: -31.00\n",
" 2025-02-12 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3263.00 | Comm: 0.33\n",
" 2025-02-12 10:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3286.00 | Comm: 0.33 | PnL: 23.00\n",
" 2025-02-20 13:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3342.00 | Comm: 0.33\n",
" 2025-02-20 21:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3358.00 | Comm: 0.34 | PnL: -16.00\n",
" 2025-02-25 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3288.00 | Comm: 0.33\n",
" 2025-02-25 21:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3271.00 | Comm: 0.33 | PnL: -17.00\n",
" 2025-02-26 10:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3308.00 | Comm: 0.33\n",
" 2025-02-26 13:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3330.00 | Comm: 0.33 | PnL: -22.00\n",
" 2025-03-04 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3278.00 | Comm: 0.33\n",
" 2025-03-05 09:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3267.00 | Comm: 0.33 | PnL: -11.00\n",
" 2025-03-07 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3249.00 | Comm: 0.32\n",
" 2025-03-07 11:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3269.00 | Comm: 0.33 | PnL: 20.00\n",
" 2025-03-19 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3157.00 | Comm: 0.32\n",
" 2025-03-19 11:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3170.00 | Comm: 0.32 | PnL: 13.00\n",
" 2025-03-20 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3141.00 | Comm: 0.31\n",
" 2025-03-20 13:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3166.00 | Comm: 0.32 | PnL: 25.00\n",
" 2025-03-21 22:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3172.00 | Comm: 0.32\n",
" 2025-03-24 10:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3188.00 | Comm: 0.32 | PnL: -16.00\n",
" 2025-03-25 10:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3187.00 | Comm: 0.32\n",
" 2025-03-25 13:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3215.00 | Comm: 0.32 | PnL: 28.00\n",
" 2025-03-27 11:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3202.00 | Comm: 0.32\n",
" 2025-03-27 14:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3189.00 | Comm: 0.32 | PnL: -13.00\n",
" 2025-04-01 10:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3169.00 | Comm: 0.32\n",
" 2025-04-03 09:00:00 | CLOSE_SHORT | SHFE.rb2505 | Vol: 1 | Price: 3155.00 | Comm: 0.32 | PnL: 14.00\n",
" 2025-04-07 09:00:00 | SELL | SHFE.rb2505 | Vol: 1 | Price: 3086.00 | Comm: 0.31\n",
" 2025-04-07 09:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3054.00 | Comm: 0.31 | PnL: 32.00\n",
" 2025-04-07 13:00:00 | BUY | SHFE.rb2505 | Vol: 1 | Price: 3078.00 | Comm: 0.31\n",
" 2025-04-07 14:00:00 | CLOSE_LONG | SHFE.rb2505 | Vol: 1 | Price: 3080.00 | Comm: 0.31 | PnL: 2.00\n",
" 2025-04-08 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3134.00 | Comm: 0.31\n",
" 2025-04-08 11:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3122.00 | Comm: 0.31 | PnL: -12.00\n",
" 2025-04-09 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3059.00 | Comm: 0.31\n",
" 2025-04-09 11:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3080.00 | Comm: 0.31 | PnL: 21.00\n",
" 2025-04-15 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3122.00 | Comm: 0.31\n",
" 2025-04-15 14:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3132.00 | Comm: 0.31 | PnL: 10.00\n",
" 2025-04-17 14:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3092.00 | Comm: 0.31\n",
" 2025-04-18 21:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3078.00 | Comm: 0.31 | PnL: -14.00\n",
" 2025-04-22 14:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3079.00 | Comm: 0.31\n",
" 2025-04-23 09:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3091.00 | Comm: 0.31 | PnL: 12.00\n",
" 2025-04-23 13:00:00 | SELL | SHFE.rb2510 | Vol: 1 | Price: 3126.00 | Comm: 0.31\n",
" 2025-04-23 21:00:00 | CLOSE_SHORT | SHFE.rb2510 | Vol: 1 | Price: 3138.00 | Comm: 0.31 | PnL: -12.00\n",
" 2025-04-25 21:00:00 | SELL | SHFE.rb2510 | Vol: 1 | Price: 3135.00 | Comm: 0.31\n",
" 2025-04-28 09:00:00 | CLOSE_SHORT | SHFE.rb2510 | Vol: 1 | Price: 3161.00 | Comm: 0.32 | PnL: -26.00\n",
" 2025-04-29 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3111.00 | Comm: 0.31\n",
" 2025-04-29 13:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3098.00 | Comm: 0.31 | PnL: -13.00\n",
" 2025-05-06 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3103.00 | Comm: 0.31\n",
" 2025-05-06 10:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3088.00 | Comm: 0.31 | PnL: -15.00\n",
" 2025-05-06 21:00:00 | SELL | SHFE.rb2510 | Vol: 1 | Price: 3106.00 | Comm: 0.31\n",
" 2025-05-07 09:00:00 | CLOSE_SHORT | SHFE.rb2510 | Vol: 1 | Price: 3118.00 | Comm: 0.31 | PnL: -12.00\n",
" 2025-05-08 13:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3050.00 | Comm: 0.30\n",
" 2025-05-08 22:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3038.00 | Comm: 0.30 | PnL: -12.00\n",
" 2025-05-12 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3033.00 | Comm: 0.30\n",
" 2025-05-12 11:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3058.00 | Comm: 0.31 | PnL: 25.00\n",
" 2025-05-13 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3078.00 | Comm: 0.31\n",
" 2025-05-14 09:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3104.00 | Comm: 0.31 | PnL: 26.00\n",
" 2025-05-26 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 3019.00 | Comm: 0.30\n",
" 2025-05-26 11:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 3000.00 | Comm: 0.30 | PnL: -19.00\n",
" 2025-05-27 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 2999.00 | Comm: 0.30\n",
" 2025-05-27 10:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 2987.00 | Comm: 0.30 | PnL: -12.00\n",
" 2025-05-29 13:00:00 | SELL | SHFE.rb2510 | Vol: 1 | Price: 2979.00 | Comm: 0.30\n",
" 2025-05-29 22:00:00 | CLOSE_SHORT | SHFE.rb2510 | Vol: 1 | Price: 2968.00 | Comm: 0.30 | PnL: 11.00\n",
" 2025-05-30 09:00:00 | BUY | SHFE.rb2510 | Vol: 1 | Price: 2958.00 | Comm: 0.30\n",
" 2025-05-30 14:00:00 | CLOSE_LONG | SHFE.rb2510 | Vol: 1 | Price: 2963.00 | Comm: 0.30 | PnL: 5.00\n",
"正在计算绩效指标...\n",
"绩效指标计算完成。\n",
"\n",
"--- 回测绩效报告 ---\n",
"初始资金 : 100000.00\n",
"最终资金 : 99664.27\n",
"总收益率 : -0.34%\n",
"年化收益率 : -0.57%\n",
"最大回撤 : 0.49%\n",
"夏普比率 : -0.66\n",
"卡玛比率 : -1.16\n",
"总交易次数 : 88\n",
"总实现盈亏 : -152.00\n",
"交易成本 : 28.03\n",
"\n",
"--- 交易详情 ---\n",
"盈利交易次数 : 18\n",
"亏损交易次数 : 26\n",
"胜率 : 40.91%\n",
"盈亏比 : 0.96\n",
"平均每次盈利 : 16.94\n",
"平均每次亏损 : -17.58\n",
"正在绘制绩效图表...\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWQAAAPdCAYAAAANmGE2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VGX6xvH7ZNIICQQIoaOAJvQmwtJEmgJWwIK9rmUFdXVd29oLLHbFsvuzY1dE1AUV7AhSBKQIIiAKUpMQSM8kc35/HM8UMukzmWTm+7kuriFzzpx5Z/JmMrnnOc9rmKZpCgAAAAAAAAAQdFGhHgAAAAAAAAAARAoCWQAAAAAAAACoIwSyAAAAAAAAAFBHCGQBAAAAAAAAoI4QyAIAAAAAAABAHSGQBQAAAAAAAIA6QiALAAAAAAAAAHWEQBYAAAAAAAAA6giBLAAAAAAAAADUEQJZAECDNWrUKKWnp/v869mzp44//nhdf/31WrlyZaiHWMaWLVv0t7/9TYMHD1a3bt2Unp6up556qsbH27lzp9LT0zVq1Kgy2+znZ+fOnbUZcpX4+174+/f+++8HfSwVueWWW+rFOOqjmjw377//vt+fwUGDBmnChAm68cYb9fbbbys3NzeIIw+9in4Ow913332nW2+9VSeeeKL69++vnj17atiwYbrkkkv08ssvKysrK9RDDKlXXnlF6enp+vTTTyvc76WXXnL/DM2ePbvCfZctW6b09HRdcMEFZbbZx6iprVu3avr06Tr99NM1aNAg9ejRQ4MGDdLZZ5+tRx55RFu3bq3xsVF7K1euVHp6umbOnBnqoQAAaik61AMAAKC2+vfvryOOOEKSdOjQIa1fv14LFizQJ598optvvlmXXHJJ0Mfw/vvv69Zbb9XEiRM1Y8YMv/vk5+friiuu0B9//OEOLRwOh7p16xb08dUV7++FPx07dqzD0VRdVb5/KF9CQoJOPPFESZLL5VJOTo527typ+fPn6+OPP9aMGTP097//XRdccIEMwwjxaBEIWVlZuvHGG7VkyRJJUrt27TRo0CAlJCRo//79Wr16tZYsWaInnnhCL7/8svr06RPiEde9rKwszZo1S7169XL/fJTnvffec/9/zpw5fsPWYCopKdHMmTM1e/ZsuVwuJScnq2fPnkpOTlZOTo42bNigNWvW6Pnnn9ftt9+u888/v07HZ2tor9VPPfWUZs2apalTp2ratGm1Pt6AAQN0/PHH69VXX9VZZ52lI488svaDBACEBIEsAKDBO/PMMzVp0iT310VFRbrzzjv1wQcf6KGHHtLxxx+vTp06hXCElnXr1umPP/5Qv3799NZbbwX9/l5++WU5nU61atUq6PdlO/x7Ud/ccMMN+utf/6rU1NRQDyWsNGvWzG84sm/fPj3//PN69dVX9cADD2jPnj365z//GYIRIpBycnJ07rnn6tdff1Xnzp113333acCAAT77FBcXa+7cuXrqqae0f//+EI00tGbNmqVDhw5VGsStWbNGW7ZsUZMmTVRSUqKNGzdqw4YN6tGjRx2NVLrppps0f/58JSYm6vbbb9dpp50mh8Ph3m6apr777js9+uij+u233+psXChr2rRp+uqrr/Twww9r1qxZoR4OAKCGaFkAAAg7cXFxuvPOO5WQkKDS0lItXLgw1EOSJO3evVuS6qyipWPHjurSpYtiYmLq5P4agtTUVHXp0kVJSUmhHkpESE1N1W233aY77rhDkvTCCy/Uy1YiqJ777rtPv/76q9q1a6c333yzTBgrSbGxsTr77LP1wQcfqHPnziEYZWgdOnRIc+fOVatWrTR8+PAK97WrY0866SSNGzfO57q68N5772n+/PmKiYnRiy++qEmTJvmEsZJkGIaGDRumt99+WxMmTKizsaGsnj17qmvXrvr888/rpCURACA4CGQBAGGpcePG7qrYw/9g+fbbb3XllVdq8ODB7tYB119/vdatW+f3WBdccIHS09O1bNkyrVy5UldddZX+8pe/qGvXrnr//fc1atQo3XrrrZKkuXPn+vTTvOCCC9z9/m6++Wa/+3jLzs7Wo48+qpNOOkl9+vRRv379NGnSJP3f//2fCgsLq/UcVNRDtqCgQP/97381ceJE9evXT3369NFJJ52kxx57TAcPHqzW/dTWli1bdO2112rQoEHq3bu3Tj75ZL3wwgsqLS0t9zFU1ifR+3vmzV+f1Mq+fy6XS6NHj1Z6erpWr15d7n3efffd1ertl5ubq3feeUdTp07VCSecoL59+6pv37465ZRT9Nhjj+nQoUN+b+f9nHz//fe69NJLdeyxx6p3796aOHGiPvjgg3LvMzs7Ww888IBGjhzp7rd87733Kjs7u0pjrqnzzjtPvXr1kiQ9//zzPtvsPrS33HKLe3xjxoxRz549fU7bXrJkie677z6ddtppGjRokHr27KnjjjtO119/vdauXVvmPl999VWlp6fr/vvvL7Ptr3/9q9LT0zV06FCZpumz7YMPPlB6errfSt4vv/xS559/vvr166djjjlG5557rhYtWlTp49+6datuvfVW9/M+cOBAXXTRRZo/f35Qx+3da9TpdOq///2vTjrpJPXu3VuDBg3S1KlTq90TdMeOHfr4448lSbfeequSk5Mr3D8lJcUnkK2sV7H3fCjven/z5Ntvv1V6errGjx9f7lhKSko0dOhQpaena9OmTT7bCgsL9eKLL+qss87SgAED3G0GZs6cqQMHDlT4GMt7HPn5+TrttNMUFVX+n1z5+fnueXDGGWdo8uTJkqSPP/5YRUVF1b7f6jJNU88995wkacqUKZW2loiJiVG/fv3KXL927Vpdd911GjZsmHr27KnBgwfrqquu0nfffef3ON7zYMeOHbrppps0dOhQ9ezZU2PGjNFjjz2m4uJin9tU9lptq+x3tlTz11/JmkfvvfeeLr74Yp/Xoosvvtin/296erq7gnXWrFk+4/We3/v27dP999+vE088Ub169VKfPn00YsQIXXTRRXrhhRf8jmHixIlyuVx68803yx0nAKB+o2UBACBs2QsJxcbGuq97/PHH9eyzz8owDPXr109t27bV1q1btWDBAn322We69957dcYZZ/g93ieffKK33npLnTt31pAhQ3Tw4EHFxsbqxBNP1Jo1a7Rq1Sp17NhRxxxzjPs2nTt3VkpKiiZOnKjffvvN7z62HTt26KKLLtIff/yh5s2ba8SIEXI6nVq2bJkefvhhLViwQC+99JKaNm1aq+clOztbF198sTZu3KjExET95S9/UUxMjJYvX67nnntOH3/8sV555RW1b9++VvdTFStXrtRf//pX5efnq0OHDho6dKgOHDigxx57TD/++GPQ719Spd+/qKgonX/++ZoxY4Zee+01v2FEbm6u5s2bp6ioKJ177rlVut9NmzbpjjvuUPPmzdWpUyf16NHD3QP5ueee04IFC/T222+rWbNmfm8/Z84cPfvss+revbuGDx+uP/74Q2vWrNHNN9/s/h57y8jI0Hnnnaft27eradOmGjlypFwulz766CN9++23Ouqoo6r+pNXAqaeeqnXr1mnZsmUqKSlRdLTv29ADBw5o8uTJysnJ0THHHKMePXr4VHffdddd2r17t44++mj1799f0dHR2rZtmxYsWKCFCxfq0Ucf9enTOWTIEEly9zi1OZ1Od5VuRkaGfv75Z3Xt2tW93d7fvr3t5Zdf1vTp0yVJvXv3VseOHbV9+3Zdc801Ffap/uqrr3TttdeqqKhInTp10gknnKDMzEytWLFC33//vRYvXqwHH3wwaOO2b3vFFVdo9erVGjBggLp06aK1a9dq4cKFWrZsmebOnVvln/cvv/xSpaWlatKkSUgWMStvngwdOlStW7fWtm3btGbNGvXt27fMbb/55htlZGSoR48ePs/d3r17dfnll2vz5s1KTk5Wr1691LhxY/3000964YUX9Mknn2j27Nlq165dlcdpB/X+vh/e5s+fr7y8PPeCeJJ1FsX27dv12Wef6ZRTTqnyfdbEzz//rB07dkiyQr6aeOedd3TXXXfJ5XKpe/fuGjRokP744w99+eWX+vLLLzVt2jRNnTrV7203btyoBx54QE2bNtWxxx6rgwcPatWqVXruuee0ZcsWPf300+59K3utPlx5v7Olmr/+5uTk6Morr9QPP/zgDqdTU1O1f/9+/fzzz1q6dKk7HJ44caI2btyoTZs2qWvXrj794u2x79+/X5MnT9a+ffvUtm1bDR8+XHFxcdq3b582bdqkDRs26LLLLivz2IYOHSrJmmc33XRTlb5PAIB6xgQAoIEaOXKkmZaWZs6ZM6fMto0bN5pdu3Y109LSzPfee880TdP8+uuvzbS0NLNXr17m4sWLffZ/5513zLS0NLNHjx7m5s2bfbadf/75ZlpampmWlma+9tprfscyZ84cMy0tzbz55pvLHW9l+5x55plmWlqaedVVV5l5eXnu6zMzM82JEyeaaWlp5g033OBzmx07dphpaWnmyJEjyxzPfn527Njhc/31119vpqWlmWeeeaaZlZXlvj43N9e8/PLLzbS0NPPss88u93H4U9H3ojyFhYXmiBEjzLS0NPOBBx4wS0pK3Ns2btxoDho0yP28H/4Y7OvLY3/Pvv/+e5/rb775Zr/jrOx7c+jQIbNv375mjx49zP3795fZPnv2bDMtLc288sorK33ctt27d5tLliwxS0tLfa7Pz883//nPf5ppaWnm3XffXeZ29nPdo0cP84svvvD7OI455hizoKDAZ9u0adPMtLQ089xzzzUPHTrkvv7AgQPuuVfd76F9f/7m3+FWrlzpvo/ffvutzDHS0tLMiy66yMzJyfF7+4ULF5rZ2dl+r+/evbs5cODAMo952LBhZlpamrlnzx73dcuXLzfT0tLMU045xUxLSzNffPHFSm+zceNGs1u3bmbXrl3NBQsW+Ow/b948Mz093e/zsH//fvOYY44x09LSzGeeecZ0uVzubWvXrjWPPfZYMy0tzXz77beDMu7vv//e/dyefvrp5r59+9zbCgsLzUsvvdRMS0sz77jjjjLPa3luuukmMy0tzbzwwgurfBtv5f0M2sr7WazKPHn00UcrfDzXXHONmZaWZs6ePdt9ncvlMqdMmWKmpaWZt912m89xnU6nOWPGDDMtLc284IILqvwYCwoKzB49ephdu3Ytdz7bzj77bDMtLc18+eWX3df95z//qfA5tr+v559/fpltlb02Hu7dd991v544nc4q3862adMms3v37mZ6ero5d+5cn21fffWV2aNHDzMtLa3M71x7HqSlpZmPPvqoz+v/zz//bPbt29dMS0szV61a5XO7qvyurcrv7Jq+/k6dOtX983T47yWn02kuXLjQ57onn3zSTEtLM5988km/43jqqafcc9b79cE0TbO4uNhcsmSJ39u5XC5zwIABZlpamrl7926/+wAA6jdaFgAAwkpOTo6+/vprTZs2TS6XS6mpqe5TWF988UVJ0rnnnuuuLrGdeeaZGjlypJxOp1599VW/x/7LX/6i8847LyjjXrlypX788Uc1atRI9913nxISEtzbmjdvrnvvvVeSVU21Z8+eGt/Prl279Mknn8gwDN17770+1T+NGzfW/fffr7i4OK1evVqrVq2q9vFvvfVWn9MyD//nfRrop59+qt27d6tNmza66aabfHoWdu3aVVdddVWNH2egJSUl6fTTT5fT6dQ777xTZvvrr78uSdVaebx169YaPHhwmdOZGzVqpLvvvlvR0dH65JNPyr39+eefr5EjR/pcN2nSJHXu3Fk5OTlav369+/rdu3dr4cKFMgxD99xzj08P3eTkZN1zzz1VHndNec81fy0SYmJidN999ykxMdHv7ceMGeO3OnzMmDEaN26csrOzy7SoGDx4sCTfalP7/9ddd52io6N9TqnesmWL9u3bpy5duvgshvfaa6+ptLRU48aNc/f4tJ166qnlVoq+8847ysnJUY8e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TJhQbs+9qmjbtq3GjRsn0zR15513+vT1zM/P15133qmioiL169ev2gt6Vde4cePUqlUr7dq1S48++qjPqcqbN28ucwqvN3vxolmzZvn0GNy5c6duueWWagcr1fn+TZw4UUlJSZozZ44yMzM1aNAgvwtlVSQlJUVNmzbVoUOHyoR1a9as0aOPPlqt41Wmbdu2Gjt2rFwul+6++26fkOjgwYO6++67g3Jq7v79+zV9+nTdd999kqQrr7yyRvOqc+fOkqR33nnH5/udk5Ojm2++ucI+w4MGDVJ0dLS+//57bd26tUxwOWTIEJWWlurNN990f324Cy64QA6HQwsWLNDChQt9tv3vf//TokWL/N73WWedpcTERG3YsEHPPfecz3P8008/uee4v8rMQIw7WO644w4dccQR2rlzp84991ytXLmyzD7FxcV67733dPrpp/sEsvbjmDdvnrZs2eK+3ul06qGHHnIH97XRv39/derUSdu3b9dDDz2k7OxsHXPMMTryyCPL7Dt69Gj16tVLa9eu1a233uo3+Dx48KDefPPNKodq8fHx6tu3r1wul9+A8/3331dpaal69+7tXrzKny5duqhnz55yOp368MMPq3TfNXHmmWfqxBNPlNPp1CWXXKK5c+e6WybYTNPU0qVLNWXKFP3vf/9zX3/hhRcqOjpaixYtcvfEtS1evFhvv/22JOnSSy8NyFhr+7tWqvnrb7du3TR69GgVFhbqb3/7W5lq7pKSkjKL+9nj9Z7r3j744AOtX7++zPW5ubnuBdP8tXj55ZdflJOT4/fDHABAw0DLAgBAxBgxYoSuvvpqPfvss7rkkkvUv39/tWnTRr/++qs2bNggh8Ohu+++u8p9Ar316dNHqamp+umnnzRx4kSlpaUpOjpanTp1qnJF4COPPKKLLrpIn3/+uUaPHq0BAwaopKREy5YtU25urnr06OEOZmvjzjvv1LZt2/Tjjz9q7NixGjRokBwOh1asWKGsrCy1b99eDz/8cI2O/e6777r/iPRn6NChOuWUUyRZocXDDz+sK664Qi+++KIWLVqkXr16KTs7W8uXL9fIkSO1YcMGv6eDX3nllfr000/19ddf68QTT1SvXr2UlZWldevWqX///urXr1+lpwF7q873r3Hjxpo0aZJeeeUVSdWvjpUkh8Ohv/3tb5o+fbpuvvlmvfHGG+rQoYN27dql1atX69RTT9XKlSsD2kbgzjvv1KZNm7R8+XKNHj1aAwcOlGmaWrZsmZKTkzVq1Ch98cUXNTr2gQMHdMstt0iyKrfy8vL0+++/a8uWLXK5XEpISNCNN96o8847r0bHv+iiizRv3jx9/fXXGjNmjPr27Sun06kVK1YoPj5ekydPdlebHi4xMVG9evVyzwe7D6vNDgiLioqUkJCgvn37ljlGt27ddMMNN+ihhx7S1KlT1adPH3Xo0EG//fab1q1bp4svvlgvv/xymdulpKTo4Ycf1nXXXafHHntM8+bNU/fu3ZWZmakVK1aopKREkyZN0llnnRWUcQdL06ZN9eabb+r666/X8uXLdd5556l9+/ZKT09Xo0aNlJGRobVr1yo/P1+JiYnuinbJ6tU6evRoff7555o8ebKOOeYYxcXF6aefflJubq4uvPBCvfrqq7Ue46RJk/TII4+4j+XvlG/J6uH59NNP68orr9TcuXP16aefKj09XW3btpXT6dSOHTu0efNmlZaWatKkSVWu8hwzZoxWrFih7777zicsN03TvcDY6aefXulxTj/9dK1fv15z5szRxRdfXKX7rolHHnlELVu21Ouvv65bbrlFM2bMUK9evdS0aVPl5uZqw4YN2r9/vxwOh0+lcXp6uu68807dfffd+uc//6lXXnlFnTp1cr+WmaapadOmlendW1OB+F1bm9ff6dOn64orrtCaNWt0wgknqF+/fkpNTVVGRoY2b96srKwsn7MNhg0bpoSEBC1atEjnnHOOjjzySEVFRal///6aPHmyPvvsM918881KTU1Vt27d1KRJEx06dEirVq1STk6O0tLSdOaZZ5YZh/2h8pgxY2r4TAIAQo1AFgAQUa6//nr1799fr732mn788Uf9+OOPatasmcaNG6fLLrtMvXv3rtFxY2Nj9cILL+ixxx7TmjVrtGnTJrlcLg0cOLDKfyR26NBB77//vjuc/OqrrxQVFaVOnTpp/PjxuvDCCwOysFizZs301ltvafbs2Zo/f76+++47uVwutW/fXmeddZYuvfTSGvf6sxckKU9SUpI7kJWs013feecdPfXUU1q+fLkWLlyoDh066Nprr9Wll16qE044we9xOnTooLfeekuPP/64li1bpi+//FLt2rXTVVddpcsvv7za1VjV/f4NGzZMr7zyitq0aaPRo0dX675sF198sdq3b6/nn39eW7du1S+//KLOnTvrzjvv1DnnnFPj45anZcuWeuedd/T0009r4cKF+vLLL9WiRQtNmDBB1113nWbOnFnjY+fn57tPWY6JiVHjxo3VokULjR8/XoMGDdJJJ51Uq/6mHTp00Ny5c/X444/rhx9+0JdffqmWLVvqpJNO0rRp09xVouUZPHiwO9g8vNI0PT1dLVq0UGZmpgYMGOA+xfhwl19+uTp16qQXXnhBGzdu1C+//KL09HQ9+eST6tGjh99AVrJ6rs6dO1f/93//p6VLl+rTTz9Vo0aNdMwxx2jKlCmaMGFCUMcdLC1atNDs2bP1zTff6H//+59Wr16tpUuXyul0Kjk5Wf369dOIESN02mmnKTk52ee2jz/+uJ555hl9/PHHWr58uZo0aaLBgwfruuuu81ttWxOnn366Hn/8cZWWliohIUHjxo0rd99WrVrpnXfe0fvvv+9uIbBu3To1bdpUqampmjJlikaNGqW4uLgq3/+kSZP0xBNP6MMPP9QNN9zg7pv8/fffa8eOHYqJiXG3fqjISSedpH//+9/avHmz1q5dW+PfUZWJiYnRHXfcoXPOOUdvv/22li9frh9//FH5+flq3LixjjzySE2ePFkTJ04sU2l89tlnq2vXrnrhhRe0atUq/fzzz0pMTNSIESN04YUXlvkwoTYC8btWqvnrb9OmTTV79mzNmTNHH3/8sTZt2qTVq1erRYsW7gpabykpKfq///s/Pf3009qwYYPWrFkjl8ul0tJSTZ48WZdeeqnat2+v1atX66efflJ2draSk5N11FFH6eSTT9akSZOUkJBQZhxz585VVFSUzjnnnOo9gQCAesMwg710JAAAQA2NGjVKf/zxhz7//HO1b98+1MNx+8c//qGPPvpIN9xwg6688spQDwdAPXTvvffq9ddf17PPPqtRo0aFejgIE+vXr9fkyZM1duxYzZo1K9TDAQDUED1kAQAAquHnn3/WggULlJCQoLPPPjvUwwFQT02dOlVNmjTR008/HeqhIIw8+eSTiomJ0T/+8Y9QDwUAUAsEsgAAAFVw++2364YbbtB5552nkpISXX311WVOxQYAW/PmzTV16lStX79en3zySaiHgzCwcuVKff3117rwwgv9LlIHAGg4aFkAAADqrfrUsiA9PV1RUVFq06aNzjjjDF199dUyDCOkYwIAAADQ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SAhkAQAAAAAAACBICGQBAAAAAAAAIEgIZAEAAAAAAAAgSAhkAQAAIsDu3bs1efJkDRgwQF27dlV6enqN9vPcc8+pS5cuWrt2rc/1Xbp00dixY/0x1Ij13nvvqUuXLnrvvfdCPRQAAAAEUFSoBwAAAFAf7N+/X0OGDPG5Ljo6WikpKUpPT9fvf/97de3aNSDHXrt2rW655RbdcccduvPOO8vd7nA4NHnyZO3Zs0cjR45UixYtFBsbG5CxBIL1+LwlJCQoOTlZnTt31gUXXKCRI0eqefPmIRohTqesrEyLFy/W8uXLtXXrVp04cUKxsbFq166dBgwYoNGjR+uss84K9TABAACChkAWAADAj9q0aaOrr75aklRQUKBNmzbpgw8+0Mcff6w33nhDffr0CfqY9u/fr59//lmjR4/WE088EZBjLF26VPHx8QHZt6V79+669NJLJUmFhYXKzMzUxo0btWbNGj3//PN64IEHqNINMwcOHNDtt9+uH3/8Uampqerfv79atmypgoICbd26Va+++qpmzZqlDz74QG3btg31cAEAAIKCQBYAAMCP2rRpU65K9dlnn9W//vUvzZgxQ/PmzQv6mI4ePSpJatasWcCO0bFjx4Dt23LeeedVWAH8ySef6OGHH9aTTz6p+Ph4XX/99QEfC84sLy9P48eP165duzR+/HhNmTJFMTExPtvs2bNHTz31lAoKCkI0SgAAgOCjhywAAECAWVWb33//vfu6srIyzZ49W1dffbV69uypPn36aOzYsVq5cmW5+3v3Fl25cqVuuukm9erVS4MHD9Zzzz3nPp3/+eefV5cuXdx/9u/fr8GDB2vMmDHlbn/uuefc+8/Oztbf/vY3DR48WOedd54uuugi3X333dq+fXuVH2NlPWT9se8zueyyyzRz5kxJ0rRp03zCPe+et++9956uvfZanX/++e6x5ubm6pVXXtGYMWM0YMAAnXfeeRowYICmTp2qvXv3+hznk08+UZcuXfT666/7XP/GG2+oS5cuuuSSS3yuLy4uVo8ePcr9Xo4fP65HHnlE/fv31/nnn6/rrrtOK1asOO1jXLlypcaOHas+ffqoZ8+euvrqqzV79myVlZW5t3E6nerXr59+/etflzte165d1aVLF3311Vc+t/3xj39Uly5ddODAAUmuauouXbroj3/8o/bs2aPJkyerb9++SktL07hx4/Tjjz+edpzeZs2apV27dunqq6/W1KlTy4WxktS2bVv961//cgf63sevSEXzbOzYserSpYuKi4v17LPP6rLLLlP37t313HPP6U9/+pO6dOmib7/9tsL9zZ49W126dNE777zjc/2PP/6oe+65xz0nLr30Uj3xxBPKycmp8uMHAACoDBWyAAAAQWIYhiTJNE3ddddd+vTTT9WuXTv95je/UUFBgZYtW6bbbrtNDz30kMaNG1fu/suXL9eXX36pX/3qV7r55puVl5enCy64QNdee60WLlyoCy64QBdccIF7++TkZN1yyy368ccfy91uXWZnZ+vGG2/U3r17dcEFF+iqq67S/v379dFHH2n16tV67bXXarwAWCD3fap+/fopPT1d69at09dff63Bgwf73P76669r7dq1GjJkiC6++GLZ7XZJ0o4dOzRz5kz169dPl19+ueLj47Vz50598MEHWr16td577z13f9O+ffvKZrNp7dq1Gj9+vHvf1gJnR44c0e7du9WuXTtJ0saNG1VSUqJ+/fq5ty0sLNTYsWO1fft29erVS3379tWhQ4d0zz336OKLL67wsc2ePVtPP/20GjVqpF//+tdKSEjQypUr9fTTT2vdunV6/vnnZRiGbDab+vbtqxUrVigrK0spKSmSpG+//VamabrH2r9/f5+xt27dulwP1wMHDmj06NHq3LmzrrvuOu3du1effvqpbrnlFi1dulSpqaln/DdZsGCBJGny5Mln3LaisLa67rzzTv34448aOHCgkpOT1bp1a11wwQVasGCBlixZor59+5a7z+LFixUTE6OhQ4e6r/v00081ZcoU2Ww2DRkyRC1atNCOHTv05ptv6osvvtA777yjhg0b1nq8AAAgchHIAgAABNhbb70lSerRo4ckVwj06aef6oILLtDrr7/uDqMmTZqkUaNG6e9//7uGDBmis88+22c/a9as0euvv+4TqFmswPXUU/rHjRuntWvXVnr73//+d+3du1eTJk3Svffe675+9erVmjhxov70pz9p+fLlstmqf2JVIPddkQsuuEDr1q3T999/Xy6Q/fbbb/XOO++oS5cuPtd37NhRX3zxhRo1auRz/ddff61bb71VL730kp588klJUsOGDdWtWzetW7dOZWVlioqKktPp1Lp163TRRRcpIyNDa9eudQeyVlB74YUXuvf72muvafv27eX6+Y4cOVITJkwo95j27t2radOmKSUlRQsWLFDLli0lSffcc4/GjRunTz75RIsXL9Y111wjyRVMr1ixQmvXrtXw4cPd40hISNA555zjHpMk7du3TwcPHtR1111X7rjffPON7rvvPk2cONF93YwZM/TSSy/pvffe87m+IgcOHNDhw4fVokUL9+8j0I4ePaolS5b4/FuapqlWrVrpo48+0l/+8hef4Hf79u3atm2brrzySiUnJ0uScnJyNHXqVDVu3Fhvv/22T1D94Ycf6t5779XMmTP1l7/8JSiPCQAA1E+0LAAAAPCjvXv36rnnntNzzz2n//3f/9VvfvMbvfDCC4qNjdU999wjyRWeStIDDzzgExC1atVK48aNU1lZmZYsWVJu30OGDKkwjK2pkpISffjhh2rUqJFuu+02n9sGDRqkiy++WHv27NGGDRvCat+VsXrkVnRa+ejRo8uFsZKUlJRULoyVXCFqp06dyp3i369fP+Xn5+uHH36QJG3dulUnT57UDTfcoFatWunrr792b7t27VrFxcWpZ8+e7usWLVqk6Oho3XXXXT77HThwoC666KJy43j//fdVVlamW2+91R3GSq6K0vvvv1+SZz5Z45NUbhy9e/fWxRdfrO+//175+fk+23hXVVtat25dLiC2evN6t96oTGZmpiSpRYsWZ9zWX+68885y/5aGYWjEiBE6ceKEVq1a5XPb4sWLJcm9CJ91XV5enu69995yVcNXXXWVunfvrg8//DAg4wcAAJGDClkAAAA/2rt3r55//nlJUnR0tFJSUvTrX/9aEydOdAeC27ZtU3x8vE9QZ7ECtYp6dVa0fW3s3LlTxcXF6tevn+Lj4yscy5dffqlt27ZVu7VAIPddE6f73a1du1Zz5szR5s2blZOT49OXNTo62mfbfv36adasWVq7dq3S0tJ8qmD79eunNWvWSHK1Jti8ebPS09PdoXteXp7279+vTp06qWnTpuXGkZ6eroyMDJ/rtm3b5j7uqXr16qXY2FifudK5c2c1adLEPa7s7Gz99NNP7l7FL7zwgtatW6dBgwZVWMFr6datW7nKZStcPXnyZLntw0Fl/8YjR47Uyy+/rMWLF+uKK66Q5Oq3+8EHH6hRo0YaNGiQe9tNmzZJkjZv3qx9+/aV21dxcbFycnKUnZ2tJk2a+P9BAACAiEAgCwAA4EcDBgwot+jTqfLy8iqtHLSCury8vHK3WT1B/cU6RmX9QE83llDuuzJHjx6VpAqDssp+d8uWLdM999yjhIQEDRgwQGeddZbi4+NlGIYWLlzoXuzKkp6eLrvdrrVr12rSpElau3atOnfurJSUFPXr108LFy7Uzz//rCNHjqi0tNQnSLUea2VBXkVjtO5T0W2GYSg1NVVHjhzxue6CCy7Q8uXLdeTIEW3YsEGmaerCCy9Uly5dFBsbq7Vr12rQoEH65ptv1LZt2wrnYmJiYrnroqJcHx2cTmeF4/dm/bt7jy3QKptrHTt2VPfu3bV69WqdOHFCDRs21Nq1a3X48GHdfPPNPqH7iRMnJEnz588/7bEKCwv9N3AAABBxCGQBAACCLDExUdnZ2RXeZp3qXVEgZi0K5s9xeB+zOmMJ5b4r880330jy9Or1Vtnv7vnnn1dsbKzee++9cr1OKzo1PTExUd27d9eGDRtUVFSk9evX+/RvlVwVt1Y47B3IWo+1sn/7rKysCo9n3XbqKfSmaSozM7Pc77Bfv35avny51q5dq40bNyopKUnnnnuu7Ha7u6p39+7dOnLkiEaPHl3hWGrrrLPOUvPmzXXo0CGfhc7OxKrK9a5StuTm5p72vqf7/zFy5Ej9z//8j5YtW6abbrrJ3RJk5MiRPttZv8v3339f55xzTpXGDAAAUF30kAUAAAiybt26uU9pP5UVKnbt2rXK+7Pb7ZIkh8NRrXF06NBBsbGx+v777yus+LNOae/WrVu19hvofVfkm2++0bp165SSklLhKfiV2bt3rzp27FguMDx69Kj2799f4X369eunwsJCvfXWW8rLy3Mfr1WrVmrTpo2+/vpr90Ja3uFwYmKiWrdurT179ujYsWPl9rtu3bpy11m/H+/FuCzfffediouLy80V7z6ya9euVd++fd1z5MILL9S2bdu0YsUKSRX3j/UXq+fsSy+9dMZtS0pKJMm9uFZFlbVbt26t8Vh+/etfKyoqSkuWLFFRUZE+/vhjtW3bVmlpaT7bWW0PrNYFAAAAgUAgCwAAEGTXXnutJOkf//iHSktL3dcfOnRIs2fPVlRUlM9CQ2fSsGFDSdLhw4erNY6YmBhdddVVysnJ0csvv+xz2+eff64vvvhCbdu2Ve/evau130Dv+1QrV67UnXfeKUm6//77K+xZW5lWrVppz549PpW8xcXFevTRR33+bbxZgeerr74qm83mE2r269dPX3/9tb7//nv17t27XA/akSNHqrS0VDNnzvS5/osvvijXP1aSRowYoaioKL3xxhs+IWVJSYmmTZsmyTOfLB07dlTTpk312WefaceOHT4Bdb9+/eRwODRr1iyfxxIIv/vd79S+fXstWrRI06dPd4eu3vbt26fbb79dO3bskOQKrdu3b68NGzZoz5497u3y8vI0ffr0Go8lJSVFF198sTZs2KA5c+YoLy+vwv9j1113nRo0aKBnn31WP/30U7nbCwsLCWsBAECt0bIAAAAgyEaOHKmPP/5Yn376qa6++mr96le/UmFhoZYtW6bjx4/rj3/8o84+++wq769Dhw5q1qyZPvzwQ8XExKh58+YyDENjx45VUlLSae/7wAMP6Ntvv9VLL72kjRs36vzzz9eBAwe0fPlyxcfH63/+53/KLe5UVf7e9w8//KDnnntOkis0PXbsmDZu3Kg9e/YoLi5OjzzyiEaNGlWtMY4dO1ZPPPGErrnmGg0dOlRlZWX66quvZJqmunbtWuHian369FF0dLSys7N17rnnugNxyRVw/uc//3H//VQTJkzQihUr9M477+inn35S3759dejQIS1fvly/+tWvtGrVKp/t27Rpo/vvv19PP/20rr76ag0bNkzx8fH67LPPtGvXLg0ZMqTcaffWsT/44INy4+jZs6cSEhKUnZ2t9u3bq1mzZtX6fVVHYmKiXn/9dd1+++16+eWX9d577+niiy9WixYtVFhYqG3btmnDhg2y2+168MEH3ff73e9+p7/85S+68cYbNXToUDmdTq1Zs6bCVhTVMXLkSK1evdo9hyoKZJs0aaLp06fr7rvv1siRIzVw4EB16NBBJSUlOnDggL755hv16tXrjH2iAQAATodAFgAAIMgMw9DMmTM1d+5cLVy4UG+++aaio6PVvXt3jRs3TkOGDKnW/ux2u55//nlNmzZNH3zwgfLz8yW5AqczBbJNmjTRO++8oxdffFErV67U+vXrlZiYqCFDhuiOO+6oVR9Nf+97y5Yt2rJliyQpPj5eDRs2VKdOnXT99dfrmmuuqVG4+Jvf/EZRUVF688039c477yg5OVmDBg3Sfffdp7vvvrvC+yQkJOi8887Txo0by7VH8A4/K2oHkJCQoHnz5mn69OlasWKFtm7dqk6dOunZZ59Vbm5u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",
"text/plain": [
"<Figure size 1400x1000 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAKyCAYAAACuWPzHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XecFPX9x/HXzO7e7TXuuKN3BA6kCQgCsaDYoyZ2TBTbz0SNJRpjSWISTYwtscQWjSKKYuzYoiYWgihSVFBEQHqvB9fLlpnfH7szt3u3B9cL934+Hj64m/qdu9lF3vuZz9ewbdtGRERERERERERERFoFs6UHICIiIiIiIiIiIiKVFNqKiIiIiIiIiIiItCIKbUVERERERERERERaEYW2IiIiIiIiIiIiIq2IQlsRERERERERERGRVkShrYiIiIiIiIiIiEgrotBWREREREREREREpBVRaCsiIiIiIiIiIiLSiii0FREREREREREREWlFFNqKiEi7tnnzZgYPHszgwYPZvHnzPredPHkygwcP5vXXX2+WsT388MMMHjyYhx9+uFnO19jndH62kydPboSRNZ/p06e798Rzzz3X0sNpUdu2beOBBx7g3HPPZcKECQwbNoyxY8dyxhlncMcdd/DNN99U28f52R0opk6d6l6T89/w4cM54ogjuOKKK/j444/rddyWeH3Xx5133smQIUNYunRpjdusWbOGu+66i9NPP53x48czbNgwxo8fz5QpU7jvvvtYs2ZNM45Y2rL6vH8keo0OHjyYQw45hJNPPpk///nPbN26tYlG3Dg2bdrE8OHD+eUvf9nSQxERkVZEoa2IiIhIjFdffdX9+rXXXmvBkdTP66+/zuDBg7nlllsadJwnn3yS448/nscff5xVq1YxZMgQTjrpJMaOHUtBQQHPPfcc55xzDvfee28jjbx1GzJkCGeccQZnnHEGkydPxu/3M3v2bK688kruuOOOlh5ek1izZg0zZ87khBNOYMSIEdXWh0Ih7rzzTk499VSeeeYZtm3bxvDhwznppJM45JBD2Lx5M//85z859dRTef7551vgCppXWwni96ex3kOaW+xr9PTTT2fs2LHs3r2b559/ntNOOy3hh0ytRe/evTn33HN5//33WbhwYUsPR0REWglvSw9AREREDkxdu3bl3XffxefztfRQam3JkiWsXr2aDh06EAqFWL58OcuWLWPYsGEtPbRm9be//Y0nn3wSn8/HzTffzAUXXEBSUlLcNkuWLOGBBx5g/fr1LTPIZnbcccdxzTXXuN9blsWDDz7IE088wXPPPcexxx7LxIkTa328888/nx/+8Id07NixKYbbKO69915CoVDcdce68cYbeffdd0lPT+d3v/sdP/7xj/F4PO5627b57LPPuP/++9mwYUNzDVvaqaqvUYCioiKuuOIKvvjiC2677bZme1KmPq688kpefvll7rrrLmbNmtXSwxERkVZAlbYiIiLSJHw+HwMGDKBPnz4tPZRac6psTznlFE466aS4Ze3F559/zpNPPgnAAw88wKWXXlotsAUYNWoUzzzzDJdeemlzD7FVME2TX/7yl/Tu3RuA9957r077Z2dnM2DAALKzs5tieA22bt065syZw6hRoxg0aFC19a+++qr7oczTTz/NmWeeGRfYAhiGwRFHHMFLL73ED3/4w+YauogrIyODq666CoBly5ZRVFTUwiOqWefOnTnqqKP47rvvWLRoUUsPR0REWgFV2oqIiDTQ1KlTWbhwITNmzKBDhw48+uijLFq0iJKSEvr06cPZZ5/NJZdcgmEY1fYtLy/nySef5O2332br1q1kZWVx+OGH16qv3bfffsv06dP58ssv2b17N6mpqYwYMYILL7yQSZMmVdt+8uTJbNmyhY8++ogVK1YwY8YMVqxYQUFBATNmzGD8+PEJz/PQQw/x6KOPMmXKFP70pz8l3Oabb77hnHPOoUuXLsyePRuv18vmzZs59thj6dmzZ7W+n07PwpUrV/Kf//yHZ555hpUrV2JZFkOGDOHKK69MeA0AW7Zs4eGHH2bu3LkUFhbSvXt3Tj31VC6//HIuu+wy93dR0/XUpLS0lHfffReAs88+m/Lycl5//XXeeecdbrnlFpKTkxPu99577/HSSy+xfPlyiouLSU9PJycnhzFjxnDBBRcwZMgQd9uioiKeeuopPv74YzZt2kQoFCIrK4tevXoxceJEfvGLX1SrTC4oKODZZ5/lo48+YuPGjViWRZ8+fTj55JO55JJLSElJcbd1fscAs2bNiqvWOuyww2rVo/exxx5zj3X88cfvc1vDMBg7dux+j+nIz8/n6aef5qOPPmLz5s2Ypkn//v05+eSTmTp1Kn6/v9o+8+bNY8aMGXzzzTcUFBSQmppKx44dGTlyJFOmTGHcuHHV9vn888+ZOXMmS5YsIT8/n4yMDMaMGcNll13G6NGjaz3e/fF4PBx88MFs2rTJ/blD7V5rDz/8MI888ghXX311wkrWdevW8eyzz/L555+zfft2PB4P3bp147DDDuOnP/0pubm5cdvX5T6pjZkzZ2LbNmeccUa1dbZt8/jjjwNw3nnnccghh+zzWD6fL+HP/ZtvvmHatGl8+eWX7u/pkEMOYerUqRx++OHVtr/llluYNWsWd911F+PGjeOhhx5i3rx5FBQU0K1bN0455RSuuuqqhB8yQOQ987nnnmPRokXs2rWLlJQUunXrxuGHH84FF1xAz5493W3/+9//MmfOHL7++mt27NhBeXk5nTt3Zvz48fzsZz/joIMOijt2bB/WRx55hEceecT9/owzzuDuu+92vw+FQsyaNYu33nqLlStXUlpaSpcuXTjyyCO54oor6N69e9yxFyxYwIUXXshhhx3G008/zfTp03nzzTfZtGkTKSkpjBs3juuvv54BAwZUu+Z58+bx0Ucf8cUXX7B9+3ZKSkrIzs5mzJgxXHrppYwcOTJu+7q+h7z//vu88sorLFu2jOLiYjp27Mj48eO54oorGDhwYMLfw+LFi3n00UdZsmQJ4XCY/v3789Of/pSzzz474fYN1alTJ/frUCgUt27Pnj288847zJ07lzVr1rB79268Xi/9+vXjpJNO4qKLLkr43h/7d9hrr73Gyy+/zOrVqykuLuajjz6iV69e9Xq/P/PMM/noo4+YOXNmwvc2ERFpXxTaioiINJJPP/2U6dOn06dPHw4//HB27drFl19+yT333MO2bdv43e9+F7d9WVkZF198MUuWLCE1NZUjjjiC5ORkPv30U/73v/9x9NFH13iuZ599lrvvvhvLsjj44IMZOXIku3fvZsGCBXz66adcc801XH311Qn3nT59Os8//zzDhw/nyCOPZOfOndUq5GL95Cc/4Z///Cdvv/02v/71r+nQoUO1bWbOnAnAlClT8Hpr/78XDz30EI899hijR49m0qRJrF27lsWLF3P55Zfz8MMPVwsNV69ezQUXXMDevXvp0qULxx57LGVlZUyfPp358+djWVatz13Vu+++S0lJiTvRFEC/fv1Yv349//3vfznttNOq7fPII4/w8MMP4/V6GT16NF27dqWoqIht27bx6quvMnDgQDe0LSsr46c//Snff/892dnZTJgwgdTUVHbt2sW6det47LHHuOSSS+L+Eb969Wouu+wytm3bRufOnTn00EPxer0sXbqUv//97/z3v//lueeeIyMjA4ATTzyRJUuW8NVXX9GnTx8OPfRQ91hVQ6ZECgsL+eKLLwAShnUNsWnTJi666CK2bNlCdnY2kyZNIhgMsmDBAv72t7/x3nvvMX36dDIzM919Zs2axW9+8xsARo4cyfjx4ykvL2fHjh28++67dOzYsVqwcc899/D0009jmibDhw/n0EMPZdu2bXz00UfMnj2bP//5z5x11lmNdl3FxcUACYPCur7WHG+//Ta//e1vCQQC9OjRg0mTJmFZFps2beLFF18kJycnLrSt631SGx999BEAP/jBD6qtW7lyJZs2bQLqf5+8/PLL/PGPf8SyLIYOHcr48ePZsmULs2fPZvbs2ft8D1u+fDl/+ctfyMzMZNy4cRQUFPDVV1/x+OOPs3r1ah599NFq+zz11FPcd999WJZFv379OPbYYykvL2fjxo08/fTTDBo0iDPPPNPd/rrrriMpKYkBAwYwYcIEQqEQq1at4vXXX+f9999n2rRpjBkzxt3+jDPOYPny5axYsYIhQ4Zw8MEHu+tiX4fFxcVceeWVLFy4kNTUVIYPH07Hjh35/vvvefHFF3n//feZPn06Q4cOrXYNwWCQn//85yxevJixY8cyYMAAvvnmGz744AMWLFjArFmz6NWrV9w+f/zjH9m2bRuDBg1izJgxeL1e1q5dy3vvvccHH3zA/fffz4knnuhuX9v3kFAoxK9//Wvee+89kpKSGDZsGF27dmX9+vW8/fbbfPDBBzz88MMcddRRceN57733uOGGGwiHw+Tm5pKbm8u2bdu49dZbWb16dcLfd0M5vWw7depUrR3J3Llz+ctf/kLXrl3p27cvo0aNYs+ePXz99dfcd999fPzxx8yYMaPGDwL+/Oc/88ILLzB69GiOPvpoNm3ahGEY9Xq/B5gwYQKmaTJnzhyCwWCbai8kIiJNwBYREWnHNm3aZOfm5tq5ubn2pk2b9rntMcccY+fm5tqvvfZa3PILLrjAPca//vWvuHXz5s2zBw8ebB988MH2tm3b4tbdfffddm5urn3SSSfZ27dvd5eXlpbaV155pXvMhx56KG6/Tz75xB48eLA9fvx4e+HChXHrVqxY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3r3p0aMHe/bsqbHa8JxzzuHEE08kGAxyySWXMGvWLLeViMO2bT7//HPOO+88/v3vf7vLL7zwQrxeLx9++KHbT9rx6aef8tJLLwG492FDXX311QA88MADCT+cW716ddzrxXmkf+bMmXGv1507d3LzzTfXGGY69+Lq1asTrh86dCgnnngi27Zt4+qrr3YrimOVlpby1ltvJfxwo66c63j55ZfjXsNFRUXcfPPN7mP4Ve3vPaRTp05MnTqV0tJSrrjiClauXFltm0AgwEcffRR3jLPPPpvU1FQWL15cbcKxBQsWuJNaNianp+13330HEFc53a9fPzweD99//z0LFiyI2+/jjz/mmWeeqfd56/p+7ygqKmL16tWkpqYmnDRNRETaF7VHEBGRdm/cuHH89re/5e677+bWW2/liSeeYOjQoXi9XjZs2MCyZcuwbZtTTjmFn//854123muvvZYvv/ySb775hhNPPJHx48eTnJzMl19+STAY5PTTT09YeTR58mR+97vfcc8993DllVfSt29f+vfvT3p6Onv37mXFihXk5eXxs5/9rFYzxdfVhRde6FasTZo0qcGTx9SWYRj89a9/ZerUqbz99tssXLiQMWPGUF5ezoIFCxgyZAijR49m8eLFtQrWbdvm9ddfB+D000/f7/ann3463377La+99hoXX3wxhYWF3Hrrrdx+++0MGTLE/Tls2LCB7777DsMwuPHGG91JmhYuXMiMGTPo2LEjQ4cOJTs7m5KSEr7++mvy8vLo2rUrl112mXu+1NRUnnjiCS6//HKeeuopXn75ZQYPHkzXrl0pLy9n/fr1rFmzhpycHM4991x3v0MOOYQuXbrw3XffccYZZ5Cbm4vX66V///5xx9+Xm2++mczMTB555BHuvvtuHn74YQ455BCys7MpLS1l5cqV7qPMP/vZz2p1zPvuu4+LLrqIjz76iGOPPZaxY8cSCoVYsGABxcXFDBs2LO6R8WAwyN133829995Lbm4uffv2xefzsWXLFjd0veKKK+Ime7vgggvYunUr06ZN4/zzz2fQoEH06dMHv9/Prl27WLFiBYWFhdx2222MGjWqVuNubiNHjuQvf/kLt956K3/605+YNm0aw4cPx7ZtNm3axIoVK7jqqqvcvrL1vU/259hjj+W5557js88+o2/fvgm3ue++++jcuTMzZ87klltu4e6772bEiBFkZmZSXFzMsmXL2LVrFx6PhzPOOMPdb/DgwfzhD3/gtttu46abbuLZZ5+lf//+bN26lcWLF2PbNtdcc02jvX8df/zxXH/99Tz44INce+21HHTQQQwZMoTy8nI2btzI6tWrueuuu9wPbq644grmzp3Lyy+/zIIFCxg6dCjFxcUsWrSI3r17c/zxxyesQj/iiCNITU3lww8/5Cc/+Qn9+vXDNE3GjBnjTnJ45513UlhYyCeffMJJJ53kvnfYts2WLVtYsWIFwWCQd999d789ivfnoosu4s0332TOnDkcd9xxjBo1imAwyKJFi/D7/Zx11lkJq49r8x5yww03sHPnTt555x1OP/10hgwZQu/evfF4PGzfvp0VK1ZQWlrKk08+6f5cu3btyh133MGNN97IX/7yF1555RVyc3PZsWMHX3zxBRdddFGDgtIPP/wwrsVCYWEha9ascavxf/zjH3PKKae467Ozszn//POZMWMGF198MWPHjqVLly6sW7eOZcuWceWVV1brcV5bdX2/d8yfPx/Lspg0aVKjfEAsIiJtm0JbERERIkHkuHHjeP755/niiy/45JNPCIVCZGdnc+yxx3LmmWcm7G3YEKmpqcyYMYN//vOfvPPOO3z66adkZmYyceJErrvuuhofHXbGO2HCBJ5//nkWLFjA559/jmmadOrUiYMPPpijjz660fqRVjVkyBA6d+7Mrl27uOCCC5rkHDXJzc3ltdde46GHHuLTTz/lww8/pHv37lx44YVceeWVbm/d2kw0NX/+fDZt2oTP54v7h3xNTjnlFO655x6+//57vvnmGw466CB++9vfsmjRIlatWsWcOXOAyKO2p59+OlOnTnWDNYAzzzwTv9/Pl19+yerVq9mzZw8ZGRl0796diy66iHPPPbfauAcNGsRbb73Fiy++yIcffsjKlStZsmQJWVlZdOvWjUsvvZTjjz8+bp+kpCSmTZvGAw88wJIlS1ixYgWWZXHYYYfVOrSFSHB12mmn8dJLLzFv3jy+++47iouLSUlJoXfv3hx77LGcccYZDB06tFbH6927N6+//jpPP/00H374If/73/8wTZP+/ftz8sknc+GFF8a12UhNTeX2229n0aJFfPfdd8ybN49gMEiXLl044YQT+MlPfhI3yZvjpptu4rjjjuOFF17gq6++Yu7cufh8Pjp37sxhhx3WpK+NxnL66aczfPhwpk+fzvz585k9ezbJycl07dqV888/n5NPPjlu+/rcJ/tz/vnn8/zzzzNr1qwaq+l9Ph+///3v+clPfsJLL73EwoUL+frrryktLSUtLY1+/fpx1llnccYZZ9CvX7+4fadMmcKQIUOYNm0aX331FStXriQ9PZ1JkyZx4YUXcvjhh9dpvPtzxRVXMGHCBJ577jkWLVrEBx98QFpaGt26deOyyy5jwoQJ7raHHHIIr732Gg8++CBLly7l448/pnv37lxwwQVceeWV3HHHHQnP0alTJ5588kkeffRRli1bxpIlS7Asi3A47Ia26enpPP3007z77ru89dZbLFu2jBUrVpCWlkaXLl047bTTOPbYY+nTp0+Dr7l3797MmjWLBx98kC+//JLZs2fTuXNnTjnlFK655hr+9a9/JdyvNu8hXq+X++67jx/96Ee8+uqrfP3116xatYqUlBQ6d+7MMcccw+TJk6u1OznllFPo2rUr//jHP1iyZAmbNm2if//+3H777UyZMqVBoe2KFSviWlf4fD46duzI5MmTOeusszjuuOOq7fPb3/6WwYMH88ILL/Dtt9/i8XjIzc3lgQce4Ic//GG9Q9v6vN8D7geJ9Z3cU0REDiyGXdfpQkVERKRdmzdvHpdccgn9+/fnvffewzCMlh4SEOlZeMIJJ5CWlsbChQubdZI2kQPR5Zdfzv/+9z/eeustBg8e3NLDETmg7dq1i2OOOYZBgwbt80NbERFpP/SvGREREam1cDjMQw89BET6+zZ3YFtaWppwkqktW7Zw4403YlkWp59+ugJbkUZw44034vV6efTRR1t6KCIHvMcee4xgMMgtt9zS0kMREZFWQu0RREREZL9ee+01vvjiC7799lu+//57cnNz3cd9m9OePXs49dRT6dOnD/369SM9PZ1t27axbNkyAoEAQ4YMcSdqE5GGGThwIOeffz7PPvssS5cuZcSIES09JJED0qZNm3jllVc46aSTGD9+fEsPR0REWgm1RxAREZH9uuWWW5g1axYdOnRg/Pjx/Pa3v6VHjx7NPo6SkhIeeeQRFixYwNatWykqKsLv99O/f39OOOEEpk6dSkpKSrOPS0REREREpDEptBURERERERERERFpRdTwTURERERERERERKQVUWgrIiIiIiIiIiIi0oootBURERERERERERFpRbwtPYC2YteuopYeQrPJzk5jz56Slh6GtAK6F8She0Gq0j0hDt0LUpXuCYml+0Fi6X6QWLofpKr2dE907pyx321UaStxDAM8HhPDaOmRSEvTvSAO3QtSle4JcehekKp0T0gs3Q8SS/eDxNL9IFXpnqhOoa2IiIiIiIiIiIhIK6LQVkRERERERERERKQVUWgrIiIiIiIiIiIi0oootBURERERERERERFpRRTaioiIiIiIiIiIiLQiCm1FREREREREREREWhGFtiIiIiIiIiIiIiKtSKsKbV944QVOO+00xowZw5gxY5gyZQpz5syptp1t21x22WUMHjyYDz/8MG7d1q1b+fnPf84hhxzCxIkTueeeewiFQnHbLFiwgDPOOIPhw4dz/PHH8/rrrzfpdYmIiIiIiIiIiIjUlrelBxCrW7du/PrXv6Zv377Yts0bb7zBVVddxaxZsxg0aJC73bPPPothGNX2D4fDXH755XTq1IkXX3yRnTt3cvPNN+Pz+fjVr34FwKZNm7j88ss577zz+Nvf/sbnn3/OrbfeSufOnTnyyCOb7VpFREREREREREREEmlVlbaTJ09m0qRJ9OvXj/79+3P99deTmprKkiVL3G2WL1/O008/zZ133llt/08//ZTVq1fz17/+lYMPPphJkybxy1/+kpkzZxIIBAB48cUX6dWrF7fccgsDBgzgggsu4MQTT+SZZ55ppqsUERERERERERERqVmrqrSNFQ6Hef/99yktLWX06NEAlJWVccMNN/CHP/yBzp07V9tnyZIl5Obm0qlTJ3fZEUccwW233cbq1asZOnQoS5YsYeLEiXH7HXHEEQlD4KoSFPcecJxrbA/XKvume0EcuhekKt0T4tC9IFXpnpBYuh8klu4HiaX7QarSPVFdqwttV65cyXnnnUdFRQWpqak8+uijDBw4EIC77rqL0aNHc9xxxyXcd/fu3XGBLeB+v2vXrn1uU1xcTHl5OX6/P+Gxs7PT8HhaVWFyk8rJyQBg8ODBPProozX+zFurqVOnMmTIEH73u9+19FDaPOdeENG9IFXpnhCH7gWpSveExNL9ILF0P0gs3Q9Sle6JSq0utO3fvz9vvPEGRUVF/Oc//+Hmm2/m+eefZ8OGDcyfP59Zs2a1yLj27Ck54NL+vLzdPPvs03z++Wfs2rWTjh2zGTQol5/97P/IzR2ObUe2Kyws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jScfeUxqefy42HxWXMwVERGR+a/YdhG5Fa8GoOHh986N1TG8LHZhf/hwgkVbP70qflzRPNvofHXH4Cda4+du40kAmGInBN6or3H67wuPbdiIW78BAHvw6HfjiYiIiMw1KtrKghcVbSNew0lHHjOs07bYfknF5yQiIiK1ZWjduwisDIneW+OM+1pm58KF03ynicBpPcrRoeGdtpXOswXAGNxSt22AwavfQIApLRDbNepLnIEHwrk2bsSrPwEAe0CdtiIiIjL/qGgrC16QKBdtA2Pjlj4ADDe807agoq2IiMiC46eWMrTmjQCk91xb5dkcXbQImZ9eHUY+TcDwTlt/FjptAYqlXNsg2QFWiiDRBjBmrm05HmEjXn24MKxd2D9mkVdERERkrlLRVhY8P9keP/Yyx4V5toeJVl32E224TafN0sxERESklrjNZwPjZ67WCruUZzvRaAQ4LMM/MQudtoDbdEZ47lR4bj+5CID03h9glwq0EVPsxc6FxWi38SQCpxGvVGi2Bx+elfmKiIiIzBYVbWXBGx6PEC1ocTi36XQGNnyUvlOuBWPP1tRERESkhkRf9FrFzirP5OjsXKlom5540RY7g19aoHVW4hGAQsezGDz2nQxuuBoIO5oBMo//J62bzyd54Bfl6Q08CIQF3qgjN+q2dRSRICIiIvOMiray4PnD4hHchtGLthhDdvUbKLZdNEuzEhERkVoTFTStQu0XbeN4hLo1k3pd1Lk6W0VbLIehde+m2Ho+AENr30F+0fMoNp2OIaDx/tdiDzwEgDNQWoRs2JfsUayVPaiirYiIiMwv0y7aDgwM8KUvfYkrr7ySF77whdx7770A9PT08LWvfY0dO3ZMe5IilRQM67T1xui0FREREQlKnbbGHwJvqMqzGZ9dKtpOJh4BwC8tRjZbmbaHK7ZdQN9p36Xnyb+j0HoRljdA890vwxQ6SR38JQDesC/Zo8XInMGtVZmviIiISKU403nxvn37eMUrXsG+fftYs2YNjz76KIODgwC0tLTwve99j927d/Pe9753RiYrUgkj4hHG6rQVERGRBS+wGwlMAhMUsYpd+Ham2lMak5XbDYxcXGwicitejVU4QGHx8ysxrYmzEvSd8g1ab70YO/s4rTefg13YT2AS5Ja+KD7MbYg6bVW0FRERkfllWkXbj33sYwwODnLdddfR1tbGeeed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0YEJXJyB+2ZjplLjVLQVEREREREREZkFfrrUaZubZqatOm1rml9ajOxonbbYdfSc+Qt6zvwVQbIjjktQrq2AirYiIiIiIiIiIrPCqzsGmMFO26SKtrXIy4QLznmlDONxj208Bbc5XJAs+m+i947KTU7mDKfaExARERERERERWQi8ulUAWG4PpthDkGgBL4szuBW36bQJj2MVuwF12taqoWPfhZdZR37Zyyb1umLzWQAkejZXYloyx6jTVkRERERERERkNtj1+IkOoByRUP/o1bTechGpvT+Y8DBWoROAQEXbmuTVH8fQuveERflJcJvPIsBgZx/Dyu+rzORkzlDRVkRERERERERklhy+GFnUVZnaf92ExzDKtJ2XgkQzXsNGABx12y54KtqKiIiIiIiIiMyScq7tDgCsoccASHT/GXx3QmNoIbL5q9h6DgCJnpurPBOpNhVtRURERERERERmiV/qtLVyT4A3iF3YHz53+3D6JrYAVbwQmYq2806x5VwAEt3qtF3oVLQVEREREREREZklXjqKR9iBPfT4iH3Jzt9PaAx12s5fUdHWGbgX3IEqz0aqSUVbEREREREREZFZ4tcNK9pmHxuxL9n5h6MP4A1h/BygTtv5yE+vwEuvxgQeid7bqj0dqSIVbUVEREREREREZombOQ4Ae3AbzuAWAIrNZwPg9N6O03vnuK+PumwD4xA4TRWcqVRLoe0iAFL7/qfKM5FqUtFWRERERERERGSW+HXH4CWXYIICqX0/BKDQdiHF5idj8Gm59RLqt70fgmDU15fzbFvBmNmatsyi3IpXAZDe90NMsbvKs5FqUdFWRERERERERGS2GIPbcg4AzsADAPh1a+k99bvklr4Eg0/m8f+k7onPjvpyO78vfE1y0ezMV2ad23w2bsNJGD9Leu93qz0dqRIVbUVEREREREREZlGxVLSNeHVrCVKL6T/5vxk4/moA6h9+L4lRMm7toUfC12TWVX6iUh3GkF15JQDpXf89Zte1zG8q2oqIiIiIiIiIzKJiy7kjnnuZY+LH2dVvJLv8FWHH7WMfP+K19tD20mvWV3SOUl35ZS8jsOpwBh/GHtpW7elIFahoKyIiIiIiIiIyi9zGUwjsegACK4WfWl7eaQy5la8BwB569IjX2oNh0TZa0Ezmp8BpxKtbBYCV31/l2Ug1qGgrIiIiIiIiIjKb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rS1mGylBZXEGFMmMw8kxNNJWRERERERERETEi7n88pMY3huXXwFSgivj9M2DJeUqftEbbv3FUhLNgq3TJxgA37j9qT/75vlzeoSks/idX0+efW0I/vXZTDmOnERFWxERERERERERkZzCYiWxaHcAch0dDa6UW3q61Z46Utdl9Sc55C4AfBJPpW6z5cFly4vTlh+AoJOTAfC9eihTmp6TqGgrIiIiIiIiIiKSgySUHoLTNze+8T/jf3blLT3XmnQOAKdfIVKCSqd7zOWbG4CUXKnz2hqLnVntUeBy/dtm5ygq2oqIiIiIiIiIiOQgLr98JJR+EYBcR9/A8sc8tzfDGGnr9C+IMzB90dZY8Cz5j8XIDBZnEpbkK/+myTmOirYiIiIiIiIiIiI5zLXi/UgOKo9P0lly/9QDnPabet6fI20LZzDSNg8AKW5FW/iz2Cs3R0VbERERERERERGRnMYnkCs1V+D0DcV2eRe5It68qaeZRVv/QqRcN9I2D3Cjou2Ff9feHEZFWxERERERERERkRwoJVd54iuNB8Dvwhc39RxzeoSbmNMWwOWTCwCLPepftzcnUdFWREREREREREQkh3LkbQyAT0IEOB1/u/+fI20L47KF4fxjSgSXNQB8AoDUkbYpgaVJzlURe9h9fzxP0yPcChVtRUREREREREREciinfzGcPsFYXMn4JBz72/2tf4yYdfoXAjCnSDCKt6k7+RHTYDeX6m/B6V/kj+epaHsrVLQVERERERERERHJqSwWUnJVBMDn6sH0j7mcBB17D1v0RnOTNemPoq3fH0XboFKpu/4xn63JJwB8As3ibto5bQNOLSTkp96E/NQb/3OrM/FgvIevpxsgIiIiIiIiIiIinpMSXAnblX34Xj2InYfN7baYb8kV8RZOWz6i7z0CFuufc9r6F079/z9G2l5XtP2D068g8Gex1/fKj4T8Nsh83P/851zKUxeoltmHdUfTSFsREREREREREZEcLDlXJQB84tOPtPW98hMAVkc0tsvbsThisLiScWHB6Vcg9bnBlQFI8S+a4WubRds/ir25jowCwB52P47cdbG47AQdHZPJR3Tn00hbERERERERERGRHMyYHsH36qF0233jfzb/2z9qLU5bPgBctnxgtQGQVKgDcSlXsed7IMPXNoq7VvsFbNEb8Iv5FpfFj7gqk7E6LpF3d1MC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lStXiI2NTRf648ePc/78eVq2bInL5WLHjh3mY+3atWP69OmEh4d7oslym1ksFqxWK7GxsezevZvatWvzxhtvEBUVxddff03Lli0JDg7G6XRSqFAh3nnnHa3g6mV8fX1p2LAhXbp0IXfu3FgsFiZPnsyaNWuoV68ejRo1IiYmhmnTpnH8+HEA2rdvr34hB/D19aV06dKcOXOGpKQkc3utWrXo3LkzFouFr776CkjtS/r378+0adMoVKiQp5ost0mlSpXo27cvZcuWpU2bNgwbNsws3EZERJj7GSMsa9euzYwZMyhdurSnmiy3kc4bklalSpUYPHgw1atXp2HDhjz77LNERUWxePFi9uzZA6SeI5KTkwEoUqQIb7/9tq4nvZTuN8Vgs9koWLAgxYoVIzg42Bw9XbRoUeLi4rhw4cJ138x45plndC2ZA1gsFmrWrMmlS5ew2+288cYbVKhQgUmTJrFx40YKFChg7qv7i9tHRdtsyGKxUL58ee6++25GjBjBjBkzWLp0KR07dqRBgwb06NGDJk2amDfhKSkpWCwWc9EA8Q5pT47GyIeyZcuaF1YffPABKSkpVKhQgbFjx6b7KkJGX4OVO5eRhdKlS5urbzocDo4dO8bEiRPp378/zz33HF26dOH48eNERUUBqF/wcka/4Ovry1133cX69evZvXt3un3q16/P/fffz+rVq4mPj8flcmG1WsmTJ48HWiy3W968ealZsyaQOkdl2sLtkiVLzBG3CxYsMEfX+fv7e6q5chvpvCEGp9MJpF4bVqxY0dzWuHFjBg0aRFRUFEuWLDH7hMmTJ7Np0yYALUroxXS/KWl1796dwYMHp9tmtVoJCAggICDAvLf88ccfuXjxoq4lvVjab1y4XC7sdjuXL18mIiICPz8/rl69Snx8PGXKlOG3334zp89QJm4fnYmziXPnzvHrr7/idDoJDw+nUqVKTJgwgVGjRvH1119jtVp5+umn+b//+z8AAgMDza8uqEDnXWJiYggLC8PHx8ec5N/4xLNWrVrs37+f559/nr179zJv3jySk5MZPnw4zzzzDEuWLNEcMl7EWOzBx8cn3YTuLpcLm83GpEmTsFgsZk4KFixIeHg4oaGhHm653E6JiYkEBASk+9336dOHAwcOMGzYMCZNmkSdOnXMc0PNmjUpUKAASUlJutnyMlFRURw6dIiEhATK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uHFj+vbtS3R0NNHR0cTFxfHyyy/TrVs3dZo5wObNm5k2bRoLFy4kV65cABw4cIDFixezdetWJk6cSP369T3cSslKUVFRtGvXjnvvvZcJEybgcDiYNm0akZGRREdH07lzZ+rWravFg3KAhIQE8/qgVKlSrFy5kkceeYQuXbrcdOFWvE9sbCz9+/fnvffeo0iRIjz//PNERUVx5swZKlWqRN++fbnnnnt0DeHl1D9IRubMmcP333/PrFmzzG19+vShS5cuBAQEULRoUcqVK6f+wctFR0fz4IMPcs899zB16lTsdjvjxo0jMjKSc+fO0a5dOx544AFKly6d4fOVD+9kTImzePFi8/e7ceNGPvroIy5evMjrr7+u+YvvAPr4/TY5d+4cFouFdu3aAeBwOLDZbFSuXJnExEQPt06yktPpJDY2losXL2KxWJg/fz5Wq5UpU6bgcDjYsmULo0ePJk+ePLRp08bTzZXbLCkpid9++42YmBizaFutWjWefvppUlJSeP/99xk3bhwlSpTwcEslq5w8eZIKFSpw4cIFfvnlFyZOnEhiYiLFixcnICCA999/nwcffJD//Oc/5MmTx9PNldvI5XJRp04dgoODadeuHXny5GH27NkAKszkYBcuXODIkSPY7XbGjBlDYmIiw4YN49SpU+zYsYOXX36ZKVOmcNddd3m6qXIbqX+QjDgcDk6fPs3Zs2cpUqQIM2fOZMeOHcTGxuJwOLh06RITJkygXr16nm6q3EaXL1/mnnvu4cCBA+zdu5d58+Zx9epVatSoQd68eVm/fj2//vorQ4YMybCvUMHWOzkcDo4dO8bFixcpUKAAAM2aNcPf358PP/yQBQsWMGLECE2lks2paHubVKpUiUcffZTatWsDf3aEBQsW5OTJk+n2vXr1qlm8Ee9jtVrJmzcvTZo0Yd68efj4+PDII49QsmRJAMqVK8f58+dZtGgR9957L7ly5dKJ04uVL1+eSpUq8fXXX9OlSxfzb79cuXJ06NCBt99+m6NHj6pom4PUq1ePAQMG8OGHH9K5c2fq16/PlClTCAsLA2DWrFksWrTIvEkX75UrVy5at25NaGgoAN27dwdg9uzZuFwuunbtStGiRUlOTiY6OppChQp5srmSRUqUKEGtWrX49NNPOXv2LAMGDKB27drUrVuXatWqERsby+bNm7nrrrs0WsqLqX+QtIy/9ZIlS+Lv78///d//Ua5cOdatW8e0adNo3Lgx586dY8qUKSxevJhq1aoRGBio/sFLlS1blsGDBzN9+nR69OhBo0aNmDJlCnnz5gVSR1xOmTKFI0eO6AOeHMCYEqN48eLkzp2bH374gebNm5vTZDRq1IioqCgmTZrEuXPnVLTN5jRZZiZKTEzEbreTkJAAYI6adDqd5pxidrudixcvms+ZN28eCxcuJDk5OesbLLed0+k0/7tJkybY7Xa+++47/Pz8gNQ5xiC1mG+1WlWw9WJGFkqXLk3NmjVZvHgxO3fuxG63m/s0atQIPz8/tmzZ4qlmShZxuVyknZ2oYcOGdOvWjS5dutC/f3/CwsLMzPTv35/k5GS2b9/uqeZKFjDOB7lz58ZisZjXBd27d6dv3758+umnrFixgpMnTzJhwgSGDx9OUlISmuXK+7j3D35+flSsWJGlS5eyZ88ebDab+Vi5cuXIlSsXhw4dAjRaylupfxCD0T8Yf+vt2rXjySef5PHHHyckJIROnTrRvHlzAgICKFWqFPny5SMmJoagoCD1D17K6A/KlClDv379ePbZZ+nduzd58+Y1ryU7dOiAy+Xiu+++82RT5TZLSkrCbreTlJQEQIMGDShTpgzvvPMOhw8fTrdvx44dsdlsbNy40RNNlVugkbaZ5PDhw0ycOJEzZ84QHh5OvXr16NWrF5A60tL4tMPPz4+AgAAAJk+ezMyZM1m7dq0WivAikZGR7Nu3j0ceeQSr1Wou/nDffffx+++/ExERwaRJkyhbtqy5IF10dDT58uUjKSnJzIfc+c6ePcvRo0dp0qQJVqvVnCZl5MiRnD59mtdee40RI0bQtGlTgoODAShUqNBNrwoud6bjx4+zevVqjhw5wt13380999xDtWrVaNq0KSVLljRHQBjnjqioKMLDw2+4YKHcudL2ET4+PuluxH19fc1rhx49emCxWPjggw/45ptviIyMZOXKlVp0zAvdqH8YMmQI0dHRrFmzhpUrV1K4cGHzq47BwcEUKlRIi5d6GfUP4s69f6hfvz7Vq1enbdu2AEyfPp1jx46le05KSgpFihTRQpVeJm3/4Ovra95vVqhQgdy5c5vf1jLuRa9cuUKRIkWoXLmyh1sut8vRo0eZNm0av//+O6VLl6ZNmzY88MADTJ8+na5duzJo0CDGjh1LtWrV8PX1xW63U7hwYQoXLuzppsvfUKUwE5w8eZIePXrQvn177rrrLs6fP8+kSZP49ddfee211wgKCkpXtC1QoACzZ8/mgw8+4OOPP6ZSpUqePgTJJMePH6dr164EBARw9epVunfvjo+Pj1mse+KJJ/D39+ejjz6ie/fuNG7cmMTERPbu3cvSpUtVsPUix44do2vXroSHh5OUlETz5s2x2WzY7Xb8/PyYOXMmgwcPZsqUKXzzzTdUrlyZ06dPs3fvXoYOHerp5sttcvjwYXr37k29evUICAhg1apVRERE8MorrxAcHHzdSs9Wq5VVq1aRlJREhQoVPNNouS0y6iMsFku6wkzaD327d+/OZ599xokTJ/j444/ND/3Ee9yofxg+fDihoaG88847QOqClmfPnqVWrVqcO3eOL7/8khUrVqhg60XUP4i7v7p+CAoKwmq1Ehoayr59+1i7di358+fnu+++4/PPP2fp0qUq2HqRjPoHHx8fs3DrPjWKj48PS5YsITo6WnOfe6nDhw/To0cP2rZtS/ny5fnhhx/48ssvadiwIYGBgcydO5f+/fszaNAgHn74YUqWLMnRo0fND4Ake7O49L2Zf23hwoV88803LFy40PzUYs+ePbz44ovcc889TJ482dx3xowZTJkyhcDAQBYtWkT16tU92HLJTJcuXWLo0KH4+vqSO3duTpw4Qfv27enRoweAWawDOHjwIDt37uSXX36hcOHCdOjQgbJly3qy+ZKJYmJiGDx4ML6+viQnJ+Pr60vXrl1p3rw5kD4LS5cu5ccffzTnmBo4cKA+yPFSUVFRPP300zRp0sQszG/dupWBAweydOlSqlatmm7///3vf+zevZtPP/2URYsWaXSEF/m7PsJ9XtLk5GTeeustli9fzqeffqqCjBe6lf5h5cqV7N+/n6NHjxIeHk6/fv103vAi6h/E3a30Dy+++CLfffcdNpuNfPnyMXr0aPUPXuRW+4eNGzeydetWPv/8c11LeqkzZ87w5JNP8uCDDzJ48GAAVq9ezaZNm3jrrbewWCyEhIQAMHbsWA4dOsSpU6coXLgww4YNUybuABppmwmioqJISEgwpziw2Ww0btyY6dOn07dvX9566y1eeeUVAEJDQ8mVKxcfffSRinRexuVykSdPHtq3b0/ZsmWZPXs269atA6BHjx74+fmZI24rVaqkCygvFhcXR/78+ena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x/rQQw+xbds2duzYQenSpQFYs2YNQUFBPPnkkwQFBbFr1y6mTJlCfHw8L7/8MgD9+/cnLi6Oc+fOmfMwGwXjmz3mf+Pnn3/mhx9+oG3bthQuXJjTp0+zfPlynnjiCf773/8SGBiYbv/Ro0eb+Tl+/DjLly/nzJkzLF682JyOY+3atQwbNozGjRszZMgQrl27xvLly+nWrRtr1qwhPDw8w7YcOXKEfv36UbFiRQYNGoSfnx8nT57k+++/v6ljSU5ONj+AsNvt/PrrryxYsIC7776b4sWLp3ufrl27UqhQIZ5++mmCgoL44osvGDBgAFOnTqVFixY3fA9jvuzq1avzwgsvEB0dzaJFi/j+++9Zu3YtoaGh1KlTB4vFwt69e80pWPbu3YvVak23uF1MTAzHjh2jR48e6d6jatWquFwufvjhhwxHfIuIiIj3UdFWREREBChcuDAhISFERkaa27p160afPn3S7VezZk1eeOEF9u3bR926dalUqRJVqlTh888/p3nz5tcVn5YsWZJuuoUePXrw1FNPsWDBgpsu2hqjFo05bZctW0b+/PmpW7cuGzZsYNeuXTz//PM888wzAHTv3p1BgwaxaNEievToQYkSJf7y9fPkycP8+fPNApvT6WTx4sXExcUREhJC8+bNmTRpEnnz5r1uKoBblZSUxNq1a82pGkJDQ3nrrbc4fPgwFSpUwOFwMHHiRCpXrsyiRYvM/cqVK8err76armi7bt06duzYweLFi6lbt665vXz58rz22mt8//331K5d23yPp556ijlz5tCuXTvee+89mjdv/rfHc/bsWRITE29YVPwrFSpUAP4ssgNMmDAhXR66du3KqFGjWL58OYMHD8bPz49GjRqxaNEirly5cl37bvaY/4377ruPBx98MN22+++/n86dO/PVV1/xyCOPpHvMZrOxcOFCbDYbAEWLFmXcuHFs3LiRBx54gKtXr/LWW2/x+OOPM2bMGPN5HTp04MEHH2T27Nnptqe1fft2HA4Hc+fONT8IuRXbtm2jQYMG6bbVrl2bqVOnptv21ltvUaRIEVavXm1mrlu3bnTt2pXx48ffsGjrcDgYP348FSpUYOnSpeZCYXXq1KFfv34sXLiQQYMGkSdPHsqVK8fevXvNguy+ffto2bIlX375JREREZQtW9Ys4KZd8A4wC8xHjx5V0VZERCSH0PQI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6dKliY+P55VXXqFKlSr079/ffG7dunV54oknWLBgAS1btvzLEYwPP/wwEyZMYMOGDTz88MPpHrPb7WbRNzAwkLCwMKpVq8aAAQNo0aJFujl88+bNy6xZs3jvvfeYNGkSoaGhPPTQQzRo0ICnnnoq3et269aN3377jU8++YSFCxdSrFgxmjVrdlPH/HccDkeGC26VKFGC7t2788orr2C1Wlm3bh1JSUnUrl2bBQsW8J///CfD1xs1ahTr1q1jypQpOBwO2rZty8iRI9NN39C+fXsKFizInDlz+OCDD7Db7RQqVIi6devSsWPHG7a1WbNmnD59mtWrV3Pp0iXy5s1LvXr1GDhw4E0t4vfbb7+Zvx+r1UrevHlp2bIlzz33XLqFxcqVK8fq1auZNm0aa9as4fLly4SFhVGlShUGDBjwl+/RsWNHAgICmDt3LuPHjycoKIjmzZszdOhQc6E9gzElQpkyZdIVYOvWrcu2bdvMx9OKi4tj27ZtvPbaa397vCIiIuI9LK7bscKEiIiIiIgXGTFiBCdOnMhwKgOR22nhwoXMmzePb775hoCAAE83R0RERLKI5rQVEREREfkbzz77LD///DP79u3zdFMkB3E4HCxcuJBnnnlGBVsREZEcRiNtRURERERERERERLIRjbQVERERERERERERyUZUtBURERERERERERHJRlS0FREREREREREREclGVLQVERERERERERERyUZUtBURERERERERERHJRlS0FREREREREREREclGVLQVERERERERERERyUZUtBURERERERERERHJRlS0FREREREREREREclGVLQVERERERERERERyUZUtBURERERERERERHJRv4fTqhd1xifbKMAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1400x700 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"图表绘制完成。\n",
"{'初始资金': 100000.0, '最终资金': np.float64(99664.26649999997), '总收益率': np.float64(-0.00335733500000035), '年化收益率': np.float64(-0.00570979787387349), '最大回撤': np.float64(0.00490732677831955), '夏普比率': np.float64(-0.6640930456703092), '卡玛比率': np.float64(-1.1635250986543708), '总交易次数': 88, '交易成本': 28.0298, '总实现盈亏': -152.0, '胜率': 0.4090909090909091, '盈亏比': 0.9640165329443228, '盈利交易次数': 18, '亏损交易次数': 26, '平均每次盈利': 16.944444444444443, '平均每次亏损': -17.576923076923077, 'initial_capital': 100000.0, 'final_capital': np.float64(99664.26649999997), 'total_return': np.float64(-0.00335733500000035), 'annualized_return': np.float64(-0.00570979787387349), 'max_drawdown': np.float64(0.00490732677831955), 'sharpe_ratio': np.float64(-0.6640930456703092), 'calmar_ratio': np.float64(-1.1635250986543708), 'total_trades': 88, 'transaction_costs': 28.0298, 'total_realized_pnl': -152.0, 'win_rate': 0.4090909090909091, 'profit_loss_ratio': 0.9640165329443228, 'winning_trades_count': 18, 'losing_trades_count': 26, 'avg_profit_per_trade': 16.944444444444443, 'avg_loss_per_trade': -17.576923076923077}\n"
]
}
],
"source": [
"from datetime import datetime\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
"from src.analysis.result_analyzer import ResultAnalyzer\n",
"# 导入所有必要的模块\n",
"from src.data_manager import DataManager\n",
"from src.backtest_engine import BacktestEngine\n",
"from src.strategies.SimpleLimitBuyStrategy import SimpleLimitBuyStrategy, SimpleLimitBuyStrategyLong, SimpleLimitBuyStrategyShort\n",
"from src.strategies.simple_limit_buy_strategy import TestStrategy\n",
"\n",
"\n",
"def main():\n",
" # --- 配置参数 ---\n",
" # 获取当前脚本所在目录,假设数据文件在项目根目录下的 data 文件夹内\n",
" # data_file_path = '/mnt/d/PyProject/NewQuant/data/data/SHFE_rb2510/SHFE_rb2510_min60.csv'\n",
" data_file_path = \"/mnt/d/PyProject/NewQuant/data/data/KQ_m@SHFE_rb/KQ_m@SHFE_rb_min60.csv\"\n",
"\n",
" initial_capital = 100000.0\n",
" slippage_rate = 0.000 # 假设每笔交易0.1%的滑点\n",
" commission_rate = 0.0001 # 假设每笔交易0.02%的佣金\n",
"\n",
" global_config = {\n",
" 'symbol': 'KQ_m@SHFE_rb',\n",
" }\n",
"\n",
" strategy_parameters = {\n",
" # 'symbol': \"SHFE_rb2501\", # 根据您的数据文件中的品种名称调整\n",
" 'trade_volume': 1,\n",
" # 'open_range_factor_1_ago': 2.0, # 示例值,需要通过网格搜索优化\n",
" # 'open_range_factor_7_ago': 0.0, # 示例值\n",
" # 'open_range_factor_1_ago': 0.5, # 示例值,需要通过网格搜索优化\n",
" # 'open_range_factor_7_ago': 1.2, # 示例值\n",
" 'open_range_factor_1_long': 2.0, # 示例值,需要通过网格搜索优化\n",
" 'open_range_factor_7_long': 0.0, # 示例值\n",
" 'open_range_factor_1_short': 0.5, # 示例值,需要通过网格搜索优化\n",
" 'open_range_factor_7_short': 1.2, # 示例值\n",
" 'max_position': 10,\n",
" 'enable_log': True\n",
" }\n",
" start_time = datetime(2025, 1, 1)\n",
" end_time = datetime(2025, 6, 1)\n",
"\n",
"\n",
" # --- 1. 初始化数据管理器 ---\n",
" print(\"初始化数据管理器...\")\n",
" data_manager = DataManager(file_path=data_file_path, symbol=global_config['symbol'], start_time=start_time, end_time=end_time)\n",
" # 确保 DataManager 能够重置以进行多次回测\n",
" # data_manager.reset() # 首次运行不需要重置\n",
"\n",
" # --- 2. 初始化回测引擎并运行 ---\n",
" print(\"\\n初始化回测引擎...\")\n",
" engine = BacktestEngine(\n",
" data_manager=data_manager,\n",
" strategy_class=SimpleLimitBuyStrategy,\n",
" # current_segment_symbol=strategy_parameters['symbol'],\n",
" strategy_params=strategy_parameters,\n",
" initial_capital=initial_capital,\n",
" slippage_rate=slippage_rate,\n",
" commission_rate=commission_rate,\n",
" roll_over_mode=True,\n",
" start_time=start_time,\n",
" end_time=end_time\n",
" )\n",
"\n",
" print(\"\\n开始运行回测...\")\n",
" engine.run_backtest()\n",
" print(\"\\n回测运行完毕。\")\n",
"\n",
" # --- 3. 获取回测结果 ---\n",
" results = engine.get_backtest_results()\n",
" portfolio_snapshots = results[\"portfolio_snapshots\"]\n",
" trade_history = results[\"trade_history\"]\n",
" initial_capital_result = results[\"initial_capital\"]\n",
" bars = results[\"all_bars\"]\n",
"\n",
" # --- 4. 结果分析与可视化 ---\n",
" if portfolio_snapshots:\n",
" analyzer = ResultAnalyzer(portfolio_snapshots, trade_history, bars, initial_capital_result)\n",
"\n",
" analyzer.generate_report()\n",
" analyzer.plot_performance()\n",
" metrics = analyzer.calculate_all_metrics()\n",
" print(metrics)\n",
" else:\n",
" print(\"\\n没有生成投资组合快照无法进行结果分析。\")\n",
"\n",
" # --- 4. 结果分析与可视化 (待实现) ---\n",
" # if portfolio_snapshots:\n",
" # analyzer = ResultAnalyzer(portfolio_snapshots, trade_history, initial_capital_result)\n",
" # metrics = analyzer.calculate_all_metrics()\n",
" # print(\"\\n--- 绩效指标 ---\")\n",
" # for key, value in metrics.items():\n",
" # print(f\" {key}: {value:.4f}\")\n",
" #\n",
" # print(\"\\n--- 绘制绩效图表 ---\")\n",
" # analyzer.plot_performance()\n",
" # else:\n",
" # print(\"\\n没有生成投资组合快照无法进行结果分析。\")\n",
"\n",
"\n",
"if __name__ == '__main__':\n",
" main()\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "quant",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}