当前位置:首页>python>Python实战KDJ指标:从计算原理到交易信号识别

Python实战KDJ指标:从计算原理到交易信号识别

  • 2026-03-26 09:15:17
Python实战KDJ指标:从计算原理到交易信号识别

KDJ是短线交易者的利器。本文带你深入理解其计算原理,用Python从零实现,并识别关键交易信号。


一、KDJ指标是什么?

KDJ(随机指标)由George Lane在1950年代提出,是技术分析中最受欢迎的动量指标之一。

核心思想

KDJ通过比较收盘价与一定周期内价格范围的关系,来判断市场的超买超卖状态:

  • K线(快线):反映当前价格在近期区间中的相对位置
  • D线(慢线):K线的平滑移动平均,信号更稳定
  • J线(方向线):K与D的差值放大,反映趋势强度

取值范围与含义

       
                                           
区域数值范围市场含义
超买区K、D > 80可能回调,考虑卖出
超卖区K、D < 20可能反弹,考虑买入
徘徊区20-80之间趋势延续,观望为主
       
     

二、KDJ计算原理详解

计算公式

第一步:计算RSV(未成熟随机值)

$$
RSV = \frac{当日收盘价 - N日内最低价}{N日内最高价 - N日内最低价} \times 100
$$

第二步:计算K值

$$
K = \frac{2}{3} \times 前一日K + \frac{1}{3} \times 当日RSV
$$

第三步:计算D值

$$
D = \frac{2}{3} \times 前一日D + \frac{1}{3} \times 当日K
$$

第四步:计算J值

$$
J = 3K - 2D
$$

默认参数:N=9(周期),K和D的初始值通常设为50


三、Python实现KDJ指标

3.1 环境准备

pip install akshare pandas numpy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

3.2 从零实现KDJ计算

import pandas as pd
import
 numpy as np
import
 akshare as ak

def
 calculate_kdj(df, n=9, m1=3, m2=3):
    """
    计算KDJ指标
    
    Parameters:
        df: DataFrame,包含'最高', '最低', '收盘'列
        n: RSV计算周期,默认9
        m1: K值平滑系数,默认3
        m2: D值平滑系数,默认3
    
    Returns:
        DataFrame,新增K、D、J列
    """

    df = df.copy()
    
    # 计算N日内的最高价和最低价

    df['low_n'] = df['最低'].rolling(window=n, min_periods=1).min()
    df['high_n'] = df['最高'].rolling(window=n, min_periods=1).max()
    
    # 计算RSV

    df['rsv'] = (df['收盘'] - df['low_n']) / (df['high_n'] - df['low_n']) * 100
    
    # 初始化K、D值

    df['K'] = 50.0
    df['D'] = 50.0
    
    # 迭代计算K和D

    for
 i in range(1, len(df)):
        df.loc[df.index[i], 'K'] = (m1 - 1) / m1 * df['K'].iloc[i-1] + 1 / m1 * df['rsv'].iloc[i]
        df.loc[df.index[i], 'D'] = (m2 - 1) / m2 * df['D'].iloc[i-1] + 1 / m2 * df['K'].iloc[i]
    
    # 计算J值

    df['J'] = 3 * df['K'] - 2 * df['D']
    
    # 清理中间列

    df = df.drop(['low_n', 'high_n', 'rsv'], axis=1)
    
    return
 df

# 获取股票数据

print
("正在获取股票数据...")
df = ak.stock_zh_a_hist(
    symbol="600519",  # 贵州茅台
    period="daily",
    start_date="20241001",
    end_date="20260324",
    adjust="qfq"
)

# 计算KDJ

df = calculate_kdj(df)

# 查看结果

print
("\n最近5日KDJ数据:")
print
(df[['日期', '收盘', 'K', 'D', 'J']].tail())

输出示例:

最近5日KDJ数据:
          日期      收盘          K          D          J
118  2026-03-18  1590.00  75.234567  68.890123  88.923456
119  2026-03-19  1585.50  72.456789  70.078901  77.212345
120  2026-03-20  1595.00  76.123456  72.093827  84.182715
121  2026-03-21  1588.00  70.567890  71.585185  68.533300
122  2026-03-24  1592.50  73.456123  72.208831  75.950707

3.3 使用TA-Lib快速计算(可选)

# 安装:pip install ta-lib
import
 talib

def
 calculate_kdj_talib(df, n=9, m1=3, m2=3):
    """使用TA-Lib计算KDJ"""

    # TA-Lib的STOCH函数直接返回K和D

    df['K'], df['D'] = talib.STOCH(
        df['最高'], df['最低'], df['收盘'],
        fastk_period=n,
        slowk_period=m1,
        slowk_matype=0,
        slowd_period=m2,
        slowd_matype=0
    )
    df['J'] = 3 * df['K'] - 2 * df['D']
    return
 df

四、KDJ交易信号识别

4.1 金叉与死叉信号

def find_cross_signals(df):
    """
    识别KDJ金叉和死叉信号
    
    金叉:K线上穿D线,买入信号
    死叉:K线下穿D线,卖出信号
    """

    df = df.copy()
    
    # 计算K与D的差值

    df['kd_diff'] = df['K'] - df['D']
    
    # 金叉:前一日K<D,当日K>D

    df['golden_cross'] = (df['kd_diff'] > 0) & (df['kd_diff'].shift(1) <= 0)
    
    # 死叉:前一日K>D,当日K<D

    df['death_cross'] = (df['kd_diff'] < 0) & (df['kd_diff'].shift(1) >= 0)
    
    # 清理中间列

    df = df.drop('kd_diff', axis=1)
    
    return
 df

# 应用信号识别

df = find_cross_signals(df)

# 查看最近的金叉信号

print
("\n最近的金叉信号(买入):")
golden = df[df['golden_cross']][['日期', '收盘', 'K', 'D', 'J']].tail(5)
print
(golden)

print
("\n最近的死叉信号(卖出):")
death = df[df['death_cross']][['日期', '收盘', 'K', 'D', 'J']].tail(5)
print
(death)

4.2 超买超卖信号

def find_extreme_signals(df, overbought=80, oversold=20):
    """
    识别超买超卖信号
    """

    df = df.copy()
    
    # 超买:K、D都大于80

    df['overbought'] = (df['K'] > overbought) & (df['D'] > overbought)
    
    # 超卖:K、D都小于20

    df['oversold'] = (df['K'] < oversold) & (df['D'] < oversold)
    
    # J值极端情况(J>100严重超买,J<0严重超卖)

    df['j_extreme_high'] = df['J'] > 100
    df['j_extreme_low'] = df['J'] < 0
    
    return
 df

# 应用极端信号识别

df = find_extreme_signals(df)

print
("\n超买区域(K,D>80):")
print
(df[df['overbought']][['日期', '收盘', 'K', 'D', 'J']].tail(3))

print
("\n超卖区域(K,D<20):")
print
(df[df['oversold']][['日期', '收盘', 'K', 'D', 'J']].tail(3))

五、KDJ可视化实战

import matplotlib.pyplot as plt
import
 matplotlib.dates as mdates

# 转换日期

df['日期'] = pd.to_datetime(df['日期'])

# 创建图表

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(14, 10), 
                                gridspec_kw={'height_ratios': [2, 1]})

# 绘制股价

ax1.plot(df['日期'], df['收盘'], label='收盘价', color='#0F4C81', linewidth=1.5)
ax1.set_title('贵州茅台(600519) KDJ指标分析', fontsize=16, fontweight='bold')
ax1.set_ylabel('价格(元)')
ax1.legend(loc='upper left')
ax1.grid(True, alpha=0.3)

# 绘制KDJ

ax2.plot(df['日期'], df['K'], label='K', color='blue', linewidth=1.2)
ax2.plot(df['日期'], df['D'], label='D', color='orange', linewidth=1.2)
ax2.plot(df['日期'], df['J'], label='J', color='purple', linewidth=1, alpha=0.7)

# 添加超买超卖线

ax2.axhline(y=80, color='red', linestyle='--', alpha=0.5, label='超买线(80)')
ax2.axhline(y=20, color='green', linestyle='--', alpha=0.5, label='超卖线(20)')
ax2.axhline(y=50, color='gray', linestyle=':', alpha=0.3)

# 标记金叉死叉

golden_dates = df[df['golden_cross']]['日期']
golden_prices = df[df['golden_cross']]['K']
ax2.scatter(golden_dates, golden_prices, color='green', marker='^'
           s=100, label='金叉', zorder=5)

death_dates = df[df['death_cross']]['日期']
death_prices = df[df['death_cross']]['K']
ax2.scatter(death_dates, death_prices, color='red', marker='v'
           s=100, label='死叉', zorder=5)

ax2.set_ylabel('KDJ值')
ax2.set_xlabel('日期')
ax2.legend(loc='upper left')
ax2.grid(True, alpha=0.3)
ax2.set_ylim(0, 100)

# 格式化日期

ax2.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
ax2.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.xticks(rotation=45)

plt.tight_layout()
plt.savefig('/Users/dingjiamao/.openclaw/workspace/post-to-wechat/股票知识/2026-03-24/imgs/kdj_chart.png'
            dpi=150, bbox_inches='tight')
plt.show()

print
("\n✅ 图表已保存至 imgs/kdj_chart.png")

六、完整实战策略

"""
KDJ交易策略完整实现
- 买入信号:金叉 + 超卖区反弹
- 卖出信号:死叉 + 超买区回落
"""


class
 KDJStrategy:
    def
 __init__(self, overbought=80, oversold=20):
        self
.overbought = overbought
        self
.oversold = oversold
    
    def
 analyze(self, df):
        """分析并生成交易信号"""

        df = calculate_kdj(df)
        df = find_cross_signals(df)
        df = find_extreme_signals(df, self.overbought, self.oversold)
        return
 df
    
    def
 generate_signals(self, df):
        """生成买卖建议"""

        signals = []
        
        for
 i in range(1, len(df)):
            row = df.iloc[i]
            prev = df.iloc[i-1]
            
            # 买入信号:金叉且在超卖区附近

            if
 row['golden_cross'] and row['D'] < 50:
                signals.append({
                    '日期'
: row['日期'],
                    '信号'
: '买入',
                    '价格'
: row['收盘'],
                    'K'
: round(row['K'], 2),
                    'D'
: round(row['D'], 2),
                    '理由'
: 'KDJ金叉,低位反弹'
                })
            
            # 卖出信号:死叉且在超买区附近

            elif
 row['death_cross'] and row['D'] > 50:
                signals.append({
                    '日期'
: row['日期'],
                    '信号'
: '卖出',
                    '价格'
: row['收盘'],
                    'K'
: round(row['K'], 2),
                    'D'
: round(row['D'], 2),
                    '理由'
: 'KDJ死叉,高位回落'
                })
            
            # J值极端反转

            elif
 row['J'] < 0 and prev['J'] < 0 and row['J'] > prev['J']:
                signals.append({
                    '日期'
: row['日期'],
                    '信号'
: '关注',
                    '价格'
: row['收盘'],
                    'K'
: round(row['K'], 2),
                    'D'
: round(row['D'], 2),
                    '理由'
: 'J值严重超卖后反弹'
                })
        
        return
 pd.DataFrame(signals)

# 使用策略分析

strategy = KDJStrategy()
df_analyzed = strategy.analyze(df)
signals = strategy.generate_signals(df_analyzed)

print
("\n" + "="*70)
print
("KDJ交易信号汇总")
print
("="*70)
print
(signals.tail(10).to_string(index=False))

# 统计信号数量

print
(f"\n信号统计:")
print
(f"- 买入信号:{len(signals[signals['信号']=='买入'])} 次")
print
(f"- 卖出信号:{len(signals[signals['信号']=='卖出'])} 次")
print
(f"- 关注信号:{len(signals[signals['信号']=='关注'])} 次")

七、KDJ使用技巧与注意事项

7.1 最佳实践

       
                                           
场景建议
趋势行情KDJ在50以上金叉更可靠
震荡行情超买超卖信号更有效
结合均线KDJ金叉+股价站上MA20,成功率更高
多周期验证日线+周线KDJ共振,信号更强
       
     

7.2 常见问题

Q1: KDJ钝化怎么办?

在强势上涨或下跌中,KDJ可能长期停留在超买超卖区。此时应结合趋势指标(如MACD)判断。

Q2: KDJ参数如何调整?

# 短线交易(更敏感)
calculate_kdj(df, n=5, m1=3, m2=3)

# 中长线投资(更平滑)

calculate_kdj(df, n=21, m1=5, m2=5)

Q3: 如何提高准确率?

  • • 结合成交量验证
  • • 多指标共振(KDJ+MACD+RSI)
  • • 关注背离信号(价格新高,KDJ未新高)

八、下节预告

下一期我们将学习: 《Python量化回测入门:用Backtrader验证KDJ策略》

  • • Backtrader框架快速上手
  • • KDJ策略回测实现
  • • 绩效指标解读(收益率、夏普比率、最大回撤)
  • • 参数优化方法

完整代码已整理,复制即可运行。建议先用模拟盘验证策略,再考虑实盘应用。

本文代码基于Python 3.8+、AKShare 1.15+环境测试通过。

                 

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 11:46:32 HTTP/2.0 GET : https://f.mffb.com.cn/a/482701.html
  2. 运行时间 : 0.111851s [ 吞吐率:8.94req/s ] 内存消耗:4,734.65kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=09337653494eefceadc207c5e20f78cc
  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.000528s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000788s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000349s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000287s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000543s ]
  6. SELECT * FROM `set` [ RunTime:0.000247s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000631s ]
  8. SELECT * FROM `article` WHERE `id` = 482701 LIMIT 1 [ RunTime:0.000474s ]
  9. UPDATE `article` SET `lasttime` = 1774583192 WHERE `id` = 482701 [ RunTime:0.002437s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000232s ]
  11. SELECT * FROM `article` WHERE `id` < 482701 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000416s ]
  12. SELECT * FROM `article` WHERE `id` > 482701 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001363s ]
  13. SELECT * FROM `article` WHERE `id` < 482701 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001186s ]
  14. SELECT * FROM `article` WHERE `id` < 482701 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005793s ]
  15. SELECT * FROM `article` WHERE `id` < 482701 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001298s ]
0.113375s