{
  "as_of": "2026-10-23",
  "python_version": "3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:03:56) [MSC v.1929 64 bit (AMD64)]",
  "sample_type": "构造合同与自行编写重放实验，未运行第三方回测框架",
  "articles": {
    "DJ081": {
      "face": 10000,
      "clean_per100": 100,
      "coupon_rate": 0.036,
      "days": 90,
      "basis": 365,
      "accrued_per100": 0.8876712328767121,
      "clean_amount": 10000.0,
      "accrued_amount": 88.76712328767121,
      "dirty_amount": 10088.767123287671,
      "fee": 5,
      "debit": 10093.767123287671
    },
    "DJ082": {
      "price": 98,
      "annual_flows": [
        [
          1,
          4
        ],
        [
          2,
          104
        ]
      ],
      "semi_flows": [
        [
          0.5,
          2
        ],
        [
          1,
          2
        ],
        [
          1.5,
          2
        ],
        [
          2,
          102
        ]
      ],
      "annual_effective": 0.050767800927700946,
      "semi_effective": 0.05128205025444543,
      "semi_nominal": 0.05064092444722812,
      "semi_price_at_annual_effective": 98.0931282321826
    },
    "DJ083": {
      "previous_coupon": "2026-01-15",
      "settlement": "2026-03-01",
      "next_coupon": "2027-01-15",
      "rows": [
        [
          "ACT/365F",
          45,
          320,
          365,
          0.4931506849315068,
          100.4931506849315,
          0.8767123287671232,
          0.03990041147589607
        ],
        [
          "30E/360",
          46,
          314,
          360,
          0.5111111111111111,
          100.5111111111111,
          0.8722222222222222,
          0.03989679693209003
        ]
      ]
    },
    "DJ084": {
      "face": 10000,
      "clean": 101.2,
      "coupon_per100": 3,
      "before_dirty": 10420.0,
      "after_dirty": 10120.0,
      "cash_coupon": 300.0,
      "after_total": 10420.0,
      "lower_clean_total": 10370.0
    },
    "DJ085": {
      "flows": [
        [
          1,
          3
        ],
        [
          2,
          3
        ],
        [
          3,
          3
        ],
        [
          4,
          3
        ],
        [
          5,
          103
        ]
      ],
      "base_yield": 0.04,
      "base_price": 95.54817766898378,
      "modified_duration": 4.528354188412073,
      "rows": [
        [
          1,
          0.0001,
          95.50491006992954,
          95.50492229658789,
          -1.2796328150122161e-07
        ],
        [
          10,
          0.001,
          95.1155016784413,
          95.11672190512496,
          -1.2770800170402781e-05
        ],
        [
          100,
          0.01,
          91.22141776355895,
          91.34104665873834,
          -0.0012520269679431263
        ],
        [
          -100,
          -0.01,
          99.8749375744086,
          100.0,
          -0.0013088938862304616
        ]
      ]
    },
    "DJ086": {
      "price": 104,
      "rows": [
        {
          "name": "到期",
          "flows": [
            [
              1,
              5
            ],
            [
              2,
              5
            ],
            [
              3,
              5
            ],
            [
              4,
              5
            ],
            [
              5,
              105
            ]
          ],
          "redemption": 100,
          "yield": 0.04098991405397301
        },
        {
          "name": "第2年赎回",
          "flows": [
            [
              1,
              5
            ],
            [
              2,
              106
            ]
          ],
          "redemption": 101,
          "yield": 0.0338942021588261
        },
        {
          "name": "第3年赎回",
          "flows": [
            [
              1,
              5
            ],
            [
              2,
              5
            ],
            [
              3,
              105.5
            ]
          ],
          "redemption": 100.5,
          "yield": 0.0372668364990526
        }
      ]
    },
    "DJ087": {
      "first_rate": 0.02,
      "rows": [
        [
          0.01,
          false,
          6000.0,
          100000,
          3000.0,
          109000.0
        ],
        [
          0.01,
          true,
          6000.0,
          106000.0,
          3180.0,
          109180.0
        ],
        [
          0.03,
          false,
          6000.0,
          100000,
          9000.0,
          115000.0
        ],
        [
          0.03,
          true,
          6000.0,
          106000.0,
          9540.0,
          115540.0
        ]
      ]
    },
    "DJ088": {
      "start": "2026-03-02",
      "end": "2026-04-02",
      "days": 31,
      "daily_interest": 4.931506849315068,
      "rows": [
        [
          "含起不含止",
          31,
          152.8767123287671
        ],
        [
          "首尾都含",
          32,
          157.80821917808217
        ],
        [
          "首尾都不含",
          30,
          147.94520547945203
        ]
      ]
    },
    "DJ089": {
      "principal": 100000,
      "quoted_rate": 0.03,
      "interest_days": 3,
      "gross": 24.65753424657534,
      "fee": 1,
      "net": 23.65753424657534,
      "same_use_3d": 0.02878333333333333,
      "usable_4d": 0.0215875,
      "withdrawable_5d": 0.01727,
      "timeline": [
        [
          "T0",
          "交易并冻结"
        ],
        [
          "T1",
          "首次交收，计息起点"
        ],
        [
          "T2",
          "构造休市，不可使用"
        ],
        [
          "T3",
          "构造休市，不可使用"
        ],
        [
          "T4",
          "到期交收/可用，停止计息"
        ],
        [
          "T5",
          "按本练习账户假设可取"
        ]
      ]
    },
    "DJ090": {
      "start": "2026-01-01",
      "partial": "2026-07-01",
      "maturity": "2027-01-01",
      "early_days": 181,
      "early_principal": 30000,
      "remaining_principal": 70000,
      "early_rate": 0.001,
      "contract_rate": 0.02,
      "early_interest": 14.876712328767123,
      "remaining_interest": 1400.0,
      "total_interest": 1414.876712328767,
      "no_withdraw_interest": 2000.0,
      "wrong_remaining_also_low": 49.58904109589041
    },
    "DJ101": {
      "rows": [
        [
          0,
          1,
          0,
          100,
          100,
          1.0
        ],
        [
          1,
          1.1,
          0,
          100,
          110.00000000000001,
          1.1
        ],
        [
          2,
          1.1,
          110,
          200.0,
          220.00000000000003,
          1.1
        ],
        [
          3,
          1.21,
          0,
          200.0,
          242.0,
          1.21
        ]
      ],
      "amount_change": 1.42,
      "unit_return": 0.20999999999999996,
      "profit": 32.0
    },
    "DJ102": {
      "prior_cash": 2000,
      "shares": 100,
      "last_quote": 8,
      "prior_total": 2800,
      "rows": [
        {
          "scenario": "零残值",
          "shares_after": 0,
          "cash_after": 2000,
          "pending_mark": 0,
          "total_mark": 2000,
          "recognized_loss_vs_last": -800
        },
        {
          "scenario": "每股2元",
          "shares_after": 0,
          "cash_after": 2200,
          "pending_mark": 0,
          "total_mark": 2200,
          "recognized_loss_vs_last": -600
        },
        {
          "scenario": "按8元冻结待确认",
          "shares_after": 100,
          "cash_after": 2000,
          "pending_mark": 800,
          "total_mark": 2800,
          "recognized_loss_vs_last": null
        }
      ]
    },
    "DJ103": {
      "signal_close": 100,
      "next_open": 104,
      "exit": 106,
      "shares": 100,
      "same_close_cost": 10000,
      "next_open_cost": 10400,
      "same_close_profit": 600,
      "next_open_profit": 200,
      "assumed_events": [
        [
          "14:59:59",
          "最终收盘价未知",
          "不能使用最终价算信号"
        ],
        [
          "15:00:00",
          "收盘事件",
          "仅为构造事件时间"
        ],
        [
          "15:00:01",
          "完整数据到达",
          "此后才可计算"
        ],
        [
          "15:00:02",
          "信号形成",
          "此后才发订单"
        ],
        [
          "次日09:30:00",
          "下一个假设成交机会",
          "104元不保证实际可成交"
        ]
      ]
    },
    "DJ104": {
      "cash": 10000,
      "price": 37,
      "target_weight": 0.6,
      "lot": 100,
      "rows": [
        [
          "连续股份",
          162.16216216216216,
          6000.0,
          4000.0,
          10486.486486486487
        ],
        [
          "整100股",
          100,
          3700,
          6300,
          10300
        ]
      ],
      "lot_one_shares": 162,
      "small_target_shares": 0
    },
    "DJ105": {
      "bars": [
        [
          "09:30",
          10
        ],
        [
          "09:31",
          11
        ],
        [
          "09:31",
          11
        ],
        [
          "09:32",
          12
        ]
      ],
      "raw": {
        "orders": [
          [
            "09:31",
            11,
            10,
            890,
            10
          ],
          [
            "09:31",
            11,
            10,
            780,
            20
          ],
          [
            "09:32",
            12,
            10,
            660,
            30
          ]
        ],
        "count": 3,
        "cash": 660,
        "shares": 30,
        "final": 1020
      },
      "dedup": {
        "orders": [
          [
            "09:31",
            11,
            10,
            890,
            10
          ],
          [
            "09:32",
            12,
            10,
            770,
            20
          ]
        ],
        "count": 2,
        "cash": 770,
        "shares": 20,
        "final": 1010
      },
      "conflicting_duplicate": [
        "09:31",
        11.2
      ]
    },
    "DJ106": {
      "daily": [
        0.01,
        -0.004,
        0.006,
        -0.002,
        0.003,
        -0.008,
        0.002,
        0.001,
        0.004,
        -0.001,
        0.005,
        0.003,
        -0.007,
        0.002,
        0.004,
        -0.003,
        0.006,
        -0.002,
        0.001,
        0.005
      ],
      "weekly": [
        0.013001683785439866,
        -0.0020410619599361413,
        0.006972656041159819,
        0.006986897096179723
      ],
      "daily_stats": {
        "count": 20,
        "mean": 0.00125,
        "sample_sd": 0.004575391844019022,
        "annual_factor": 252,
        "sharpe_zero_rf": 4.336925778045325
      },
      "weekly_stats": {
        "count": 4,
        "mean": 0.006230043740710817,
        "sample_sd": 0.0062018975170807025,
        "annual_factor": 52,
        "sharpe_zero_rf": 7.243828874518318
      },
      "same_total_daily": 0.025095522563965522,
      "same_total_weekly": 0.025095522563965522
    },
    "DJ107": {
      "rows": [
        [
          0,
          1,
          0,
          100,
          100
        ],
        [
          1,
          1.2,
          0,
          100,
          120.0
        ],
        [
          2,
          0.9,
          120,
          233.33333333333334,
          210.0
        ],
        [
          3,
          0.8,
          0,
          233.33333333333334,
          186.66666666666669
        ],
        [
          4,
          1.1,
          0,
          233.33333333333334,
          256.6666666666667
        ]
      ],
      "amount_drawdown": {
        "rows": [
          0.0,
          0.0,
          0.0,
          0.11111111111111105,
          0.0
        ],
        "maximum": 0.11111111111111105
      },
      "unit_drawdown": {
        "rows": [
          0.0,
          0.0,
          0.25,
          0.33333333333333326,
          0.08333333333333326
        ],
        "maximum": 0.33333333333333326
      },
      "no_deposit_amount": {
        "rows": [
          0.0,
          0.0,
          0.25,
          0.33333333333333337,
          0.08333333333333326
        ],
        "maximum": 0.33333333333333337
      }
    },
    "DJ108": {
      "prices": [
        100,
        102,
        101,
        103,
        103,
        104
      ],
      "returns": [
        0.020000000000000018,
        -0.009803921568627416,
        0.01980198019801982,
        0.0,
        0.009708737864077666
      ],
      "traded": [
        true,
        false,
        true,
        false,
        true
      ],
      "all_days": {
        "count": 5,
        "mean": 0.007941359298694018,
        "sample_sd": 0.012914806921177463,
        "annual_factor": 252,
        "sharpe_zero_rf": 9.76128961325846
      },
      "trade_days_only": {
        "count": 3,
        "mean": 0.016503572687365835,
        "sample_sd": 0.005885332460220174,
        "annual_factor": 252,
        "sharpe_zero_rf": 44.515088352253684
      },
      "missing_prices": [
        100,
        102,
        null,
        103,
        103,
        104
      ],
      "carried_prices": [
        100,
        102,
        102,
        103,
        103,
        104
      ],
      "filled_returns": [
        0.020000000000000018,
        0.0,
        0.009803921568627416,
        0.0,
        0.009708737864077666
      ],
      "filled_stats": {
        "count": 5,
        "mean": 0.00790253188654102,
        "sample_sd": 0.008338561295993844,
        "annual_factor": 252,
        "sharpe_zero_rf": 15.044418352785163
      },
      "true_unknown_intervals": [
        2,
        3
      ]
    },
    "DJ109": {
      "windows": [
        [
          1,
          2,
          3,
          4
        ],
        [
          3,
          4,
          5,
          6
        ],
        [
          5,
          6,
          7,
          8
        ]
      ],
      "returns": [
        0.01,
        -0.02,
        0.03,
        0.005,
        -0.01,
        0.02,
        0.01,
        -0.005
      ],
      "ownership": [
        [
          1,
          "1",
          1,
          0.01
        ],
        [
          2,
          "1",
          1,
          -0.02
        ],
        [
          3,
          "1,2",
          2,
          0.03
        ],
        [
          4,
          "1,2",
          2,
          0.005
        ],
        [
          5,
          "2,3",
          3,
          -0.01
        ],
        [
          6,
          "2,3",
          3,
          0.02
        ],
        [
          7,
          "3",
          3,
          0.01
        ],
        [
          8,
          "3",
          3,
          -0.005
        ]
      ],
      "naive_count": 12,
      "unique_count": 8,
      "naive_return": 0.086848998814955,
      "unique_return": 0.03975389711470978,
      "duplicate_days": [
        3,
        4,
        5,
        6
      ]
    },
    "DJ110": {
      "quantity": 10,
      "buy_A": 20,
      "sell_A": 22,
      "buy_A_R": 7,
      "sell_A_R": 7.2,
      "buy_fee_B": 1,
      "sell_fee_B": 1.5,
      "buy_B_R": 8,
      "sell_B_R": 8.2,
      "cost_R": 1408,
      "proceeds_R": 1571.7,
      "profit_R": 163.70000000000005,
      "wrong_fees_A": 166.20000000000005,
      "price_profit_at_buyfx": 140,
      "fx_profit_on_end": 44.00000000000004,
      "fees_total_R": 20.299999999999997
    }
  }
}