当前位置:首页>python>期权量化策略(二):用Python玩转金融衍生品

期权量化策略(二):用Python玩转金融衍生品

  • 2026-02-26 00:58:29
期权量化策略(二):用Python玩转金融衍生品
接上一篇期权量化策略(一):用Python玩转金融衍生品

2. 隐含波动率计算

实际交易中,我们更关心隐含波动率——市场对未来波动率的预期。

def calculate_implied_volatility(S, K, T, r, market_price, option_type='call', max_iter=100, tol=1e-6):    """    使用牛顿法计算隐含波动率    参数:    S: 标的资产价格    K: 行权价    T: 到期时间(年)    r: 无风险利率    market_price: 期权市场价格    option_type: 'call'或'put'    """    # 初始猜测    sigma = 0.2    for i in range(max_iter):        # 计算当前sigma下的理论价格        theoretical_price = calculate_bs_price(S, K, T, r, sigma, option_type)        # 计算vega        d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))        vega = S * stats.norm.pdf(d1) * np.sqrt(T)        # 如果vega太小,避免除零错误        if vega < tol:            break        # 牛顿法更新sigma        price_diff = theoretical_price - market_price        sigma = sigma - price_diff / vega        # 确保sigma为正        sigma = max(sigma, 0.001)        # 检查收敛        if abs(price_diff) < tol:            break    return sigma# 测试隐含波动率计算market_call_price = 0.08  # 市场观察到的看涨期权价格iv_call = calculate_implied_volatility(S, K, T, r, market_call_price, 'call')print(f"\n隐含波动率计算:")print(f"市场看涨期权价格: {market_call_price:.4f}")print(f"计算得到的隐含波动率: {iv_call:.4f} ({iv_call*100:.1f}%)")# 验证:用计算出的IV重新计算价格validated_price = calculate_bs_price(S, K, T, r, iv_call, 'call')print(f"验证价格: {validated_price:.4f}")print(f"价格差异: {abs(validated_price - market_call_price):.6f}")

三、常见期权策略

1. 备兑开仓(Covered Call)

备兑开仓是最基础的期权策略之一:持有股票的同时卖出看涨期权。

class CoveredCallStrategy:    """    备兑开仓策略    持有标的资产 + 卖出看涨期权    """    def __init__(self, initial_capital=100000):        self.initial_capital = initial_capital        self.results = []    def execute(self, S, K, T, r, sigma, call_premium, stock_quantity=10000):        """        执行备兑开仓策略        """        # 初始头寸        stock_cost = S * stock_quantity        option_premium = call_premium * stock_quantity        # 初始现金流:买入股票,卖出期权        initial_cashflow = -stock_cost + option_premium        # 计算不同到期价格下的损益        expiration_prices = np.linspace(S * 0.7, S * 1.3100)        pnl = []        for St in expiration_prices:            # 股票损益            stock_pnl = (St - S) * stock_quantity            # 期权损益(卖出看涨期权的损益)            # 如果到期价格高于行权价,期权被行权            if St > K:                option_pnl = (call_premium - (St - K)) * stock_quantity            else:                option_pnl = call_premium * stock_quantity            # 总损益            total_pnl = stock_pnl + option_pnl            pnl.append(total_pnl)        # 计算盈亏平衡点        # 股票成本 - 期权权利金 = 到期时股票价值        # S - call_premium = 盈亏平衡价格        breakeven = S - call_premium        # 最大盈利(当价格在行权价或以下时)        max_profit = (K - S + call_premium) * stock_quantity        # 最大亏损(当价格跌到0时)        max_loss = (-S + call_premium) * stock_quantity        return {            'expiration_prices': expiration_prices,            'pnl': pnl,            'breakeven': breakeven,            'max_profit': max_profit,            'max_loss': max_loss,            'initial_cashflow': initial_cashflow        }    def backtest(self, stock_prices, option_params, rebalance_freq=30):        """        回测试兑开仓策略        """        capital = self.initial_capital        capital_history = [capital]        for i in range(0len(stock_prices) - rebalance_freq, rebalance_freq):            current_price = stock_prices[i]            # 选择行权价(例如,当前价格的105%)            K = current_price * 1.05            # 计算期权理论价格            T = rebalance_freq / 365  # 假设每次持有30天            r = 0.02            sigma = 0.2            call_premium = calculate_bs_price(current_price, K, T, r, sigma, 'call')            # 计算可以买卖的股票数量            stock_quantity = capital // current_price            # 执行策略            result = self.execute(current_price, K, T, r, sigma, call_premium, stock_quantity)            # 模拟到期损益(简化:使用下一个调仓日的价格)            expiration_price = stock_prices[i + rebalance_freq]            if expiration_price > K:                # 期权被行权,以K价格卖出股票                stock_pnl = (K - current_price) * stock_quantity                option_pnl = call_premium * stock_quantity            else:                # 期权未被行权                stock_pnl = (expiration_price - current_price) * stock_quantity                option_pnl = call_premium * stock_quantity            total_pnl = stock_pnl + option_pnl            capital += total_pnl            capital_history.append(capital)            self.results.append({                'period': i,                'stock_price': current_price,                'strike': K,                'call_premium': call_premium,                'expiration_price': expiration_price,                'pnl': total_pnl,                'capital': capital            })        return pd.DataFrame(self.results), capital_history# 测试备兑开仓策略S = 2.5K = 2.6  # 行权价略高于当前价T = 30/365r = 0.02sigma = 0.2call_premium = calculate_bs_price(S, K, T, r, sigma, 'call')covered_call = CoveredCallStrategy(initial_capital=100000)single_trade_result = covered_call.execute(S, K, T, r, sigma, call_premium)print(f"\n备兑开仓单次交易分析:")print(f"股票价格: {S:.2f}")print(f"行权价: {K:.2f}")print(f"看涨期权权利金: {call_premium:.4f}")print(f"盈亏平衡点: {single_trade_result['breakeven']:.4f}")print(f"最大盈利: {single_trade_result['max_profit']:.2f}")print(f"最大亏损: {single_trade_result['max_loss']:.2f}")# 可视化损益图plt.figure(figsize=(106))plt.plot(single_trade_result['expiration_prices'], single_trade_result['pnl'],          linewidth=2, label='备兑开仓损益')plt.axhline(y=0, color='black', linestyle='-', alpha=0.3)plt.axvline(x=single_trade_result['breakeven'], color='red', linestyle='--'           alpha=0.5, label=f'盈亏平衡点: {single_trade_result["breakeven"]:.2f}')plt.axvline(x=S, color='green', linestyle='--', alpha=0.5, label=f'当前价格: {S:.2f}')plt.xlabel('到期时股票价格')plt.ylabel('损益')plt.title('备兑开仓策略损益图', fontsize=14)plt.legend()plt.grid(True, alpha=0.3)plt.tight_layout()plt.show()

2. 保护性看跌(Protective Put)

保护性看跌策略:持有股票的同时买入看跌期权,相当于为股票购买"保险"。

class ProtectivePutStrategy:    """    保护性看跌策略    持有标的资产 + 买入看跌期权    """    def __init__(self, initial_capital=100000):        self.initial_capital = initial_capital        self.results = []    def execute(self, S, K, T, r, sigma, put_premium, stock_quantity=10000):        """        执行保护性看跌策略        """        # 初始头寸        stock_cost = S * stock_quantity        option_cost = put_premium * stock_quantity        # 初始现金流:买入股票,买入期权        initial_cashflow = -stock_cost - option_cost        # 计算不同到期价格下的损益        expiration_prices = np.linspace(S * 0.7, S * 1.3100)        pnl = []        for St in expiration_prices:            # 股票损益            stock_pnl = (St - S) * stock_quantity            # 期权损益(买入看跌期权的损益)            if St < K:                option_pnl = (K - St - put_premium) * stock_quantity            else:                option_pnl = -put_premium * stock_quantity            # 总损益            total_pnl = stock_pnl + option_pnl            pnl.append(total_pnl)        # 计算盈亏平衡点        breakeven = S + put_premium        # 最大盈利(理论上无限)        max_profit = float('inf')  # 当股票上涨时        # 最大亏损(当价格跌到0时)        max_loss = (-S - put_premium + K) * stock_quantity        return {            'expiration_prices': expiration_prices,            'pnl': pnl,            'breakeven': breakeven,            'max_profit': max_profit,            'max_loss': max_loss,            'initial_cashflow': initial_cashflow        }    def backtest(self, stock_prices, option_params, rebalance_freq=30):        """        回测保护性看跌策略        """        capital = self.initial_capital        capital_history = [capital]        for i in range(0len(stock_prices) - rebalance_freq, rebalance_freq):            current_price = stock_prices[i]            # 选择行权价(例如,当前价格的95%)            K = current_price * 0.95            # 计算期权理论价格            T = rebalance_freq / 365            r = 0.02            sigma = 0.2            put_premium = calculate_bs_price(current_price, K, T, r, sigma, 'put')            # 计算可以买卖的股票数量(考虑期权成本)            max_stocks = capital // (current_price + put_premium)            stock_quantity = max_stocks            # 执行策略            result = self.execute(current_price, K, T, r, sigma, put_premium, stock_quantity)            # 模拟到期损益            expiration_price = stock_prices[i + rebalance_freq]            # 股票损益            stock_pnl = (expiration_price - current_price) * stock_quantity            # 期权损益            if expiration_price < K:                option_pnl = (K - expiration_price - put_premium) * stock_quantity            else:                option_pnl = -put_premium * stock_quantity            total_pnl = stock_pnl + option_pnl            capital += total_pnl            capital_history.append(capital)            self.results.append({                'period': i,                'stock_price': current_price,                'strike': K,                'put_premium': put_premium,                'expiration_price': expiration_price,                'pnl': total_pnl,                'capital': capital            })        return pd.DataFrame(self.results), capital_history# 测试保护性看跌策略S = 2.5K = 2.4  # 行权价略低于当前价T = 30/365r = 0.02sigma = 0.2put_premium = calculate_bs_price(S, K, T, r, sigma, 'put')protective_put = ProtectivePutStrategy(initial_capital=100000)single_trade_result_put = protective_put.execute(S, K, T, r, sigma, put_premium)print(f"\n保护性看跌单次交易分析:")print(f"股票价格: {S:.2f}")print(f"行权价: {K:.2f}")print(f"看跌期权权利金: {put_premium:.4f}")print(f"盈亏平衡点: {single_trade_result_put['breakeven']:.4f}")print(f"最大盈利: 理论上无限")print(f"最大亏损: {single_trade_result_put['max_loss']:.2f}")# 可视化损益图plt.figure(figsize=(106))plt.plot(single_trade_result_put['expiration_prices'], single_trade_result_put['pnl'],          linewidth=2, label='保护性看跌损益', color='orange')plt.axhline(y=0, color='black', linestyle='-', alpha=0.3)plt.axvline(x=single_trade_result_put['breakeven'], color='red', linestyle='--'           alpha=0.5, label=f'盈亏平衡点: {single_trade_result_put["breakeven"]:.2f}')plt.axvline(x=S, color='green', linestyle='--', alpha=0.5, label=f'当前价格: {S:.2f}')plt.axvline(x=K, color='blue', linestyle='--', alpha=0.5, label=f'行权价: {K:.2f}')plt.xlabel('到期时股票价格')plt.ylabel('损益')plt.title('保护性看跌策略损益图', fontsize=14)plt.legend()plt.grid(True, alpha=0.3)plt.tight_layout()plt.show()# 对比两种策略plt.figure(figsize=(106))plt.plot(single_trade_result['expiration_prices'], single_trade_result['pnl'],          linewidth=2, label='备兑开仓')plt.plot(single_trade_result_put['expiration_prices'], single_trade_result_put['pnl'],          linewidth=2, label='保护性看跌')plt.axhline(y=0, color='black', linestyle='-', alpha=0.3)plt.axvline(x=S, color='green', linestyle='--', alpha=0.5, label=f'当前价格: {S:.2f}')plt.xlabel('到期时股票价格')plt.ylabel('损益')plt.title('备兑开仓 vs 保护性看跌策略对比', fontsize=14)plt.legend()plt.grid(True, alpha=0.3)plt.tight_layout()plt.show()

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-28 08:56:45 HTTP/2.0 GET : https://f.mffb.com.cn/a/476705.html
  2. 运行时间 : 0.105922s [ 吞吐率:9.44req/s ] 内存消耗:4,410.12kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8ea23f55081d326bf6eaa82e3ba9fc7f
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000838s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000657s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001332s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000312s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000656s ]
  6. SELECT * FROM `set` [ RunTime:0.000234s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000679s ]
  8. SELECT * FROM `article` WHERE `id` = 476705 LIMIT 1 [ RunTime:0.000540s ]
  9. UPDATE `article` SET `lasttime` = 1772240205 WHERE `id` = 476705 [ RunTime:0.008993s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000262s ]
  11. SELECT * FROM `article` WHERE `id` < 476705 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000406s ]
  12. SELECT * FROM `article` WHERE `id` > 476705 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000363s ]
  13. SELECT * FROM `article` WHERE `id` < 476705 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003468s ]
  14. SELECT * FROM `article` WHERE `id` < 476705 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002183s ]
  15. SELECT * FROM `article` WHERE `id` < 476705 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000810s ]
0.107495s