当前位置:首页>python>金融版本manus"的核心要义,附python代码

金融版本manus"的核心要义,附python代码

  • 2026-02-04 21:25:26
金融版本manus"的核心要义,附python代码
原创内容第1098篇,专注AGI+,AGI量化投资、个人成长与财富自由。

让技术从能用变成好用,从给建议变成给结果。

将军赶路,不追野兔。
开发金融版本的通用智能体,这里的核心关键,不是说能回答一些金融问题。那样的话,一个api和提示词,或者加一些rag库,更高级一点的,加一些函数功能。
现在市面上很源的很多金融智能体项目,写研报,技术分析,甚至也做投资组合等,仍然没有解决核心痛点——可持续稳健获利的实盘策略
回归到这个本质问题,才是"金融版本manus"的核心要义。
这里不要要找到一个策略圣杯,这个圣杯并不存在。
要是训练有素的智能体团队,在复杂多变的二级市场,可以稳健存在下来,有积累,自迭代。就是一个私募团队一样。
所以,我们并没有让智能体去写研报,而是直面策略而去。
昨天我们聊的是技术分析策略,或者说传统的规则策略。
细想来,多因子策略,走因子挖掘的路径可能是关键。
因子,本质是对一个事物的抽象和简化描述。但这样的描述是必要的。
比如一个人,身高,体重,两个指标,就能描述出一个人的轮廓。
现实世界里,表格里的信息,本质都是这样的刻画,都是因子。
实盘策略导向,策略一定要能回测检验的。通过回测不代表实盘,但回测都通不过,一定无法实盘。——通过回测是一个必要非充分条件。

下面的表格梳理了AI投资体系的关键构成:

体系维度
核心特点
具体描述
数据与特征工程
多源异构、另类数据深度挖掘
融合交易所行情、财务、新闻舆情,并创新性地利用卫星遥感图像、物联网设备、社交媒体等另类数据构建信号。
算法模型与策略框架
三层动态策略架构
底层因子库
:通过机器学习(如遗传算法)动态筛选数百个量化因子。中层策略工厂:基于强化学习(如PPO算法),根据市场状态动态调整策略参数。顶层风险预算:采用CVaR等模型控制风险,单策略亏损超阈值会触发熔断。
交易执行系统
极低延迟、硬件加速
自研硬件,将订单生成到成交的延迟压缩至纳秒级;通过智能算法拆分大单、选择最优交易通道,以控制交易成本。
算力基础设施
自建超算集群
为AI模型训练和复杂策略研究提供强大支撑
开发智能体,第一步肯定是优化提示词,下面是中英两个版本。
定义一个backtrader的交易策略师。
system_prompts = '''你将扮演一位以开发复杂交易算法闻名的交易策略师。你的任务是运用编程技能,使用BackTrader Python库创建定制化的交易策略,并将其保存为Python模块。请务必在策略中记录必要信息,以便后续进行分析。你也可以编写自定义的头寸规模计算器(sizer)或指标(indicator),并保存为独立模块,从而构建更复杂的策略。完成策略开发后,你可以使用提供的工具进行回测,评估其表现并做出必要调整。编码过程中创建的所有文件将自动存放在 {work_dir} 目录中,无需额外指定路径前缀。但在调用回测函数时,模块路径需采用 {work_dir.strip('/')}.<模块路径> 格式,且保存图表(savefig)的路径也需考虑 {work_dir} 目录。当策略准备就绪可进行测试时,请回复EXIT指令给执行器。'''system_prompts_en = '''You are a trading strategist known for your expertise in developing sophisticated trading algorithms.         Your task is to leverage your coding skills to create a customized trading strategy using the BackTrader Python library, and save it as a Python module.         Remember to log necessary information in the strategy so that further analysis could be done.        You can also write custom sizer / indicator and save them as modules, which would allow you to generate more sophisticated strategies.        After creating the strategy, you may backtest it with the tool you're provided to evaluate its performance and make any necessary adjustments.        All files you created during coding will automatically be in `{work_dir}`, no need to specify the prefix.         But when calling the backtest function, module path should be like `{work_dir.strip('/')}.<module_path>` and savefig path should consider `{work_dir}` as well.        Reply EXIT to executer when the strategy is ready to be tested.'''
昨天的文章,咱们是让智能体完全写一个backtrader策略。
所以它的symbol和数据都是随机生成的。
在量化投资策略开发领域,有很多“模板代码”。比如backtrader的模板人码就比较多。我们尽量让智能体少写模板代码,这样更快,更可控也更省成本。
下面这个就是我们给agentscope的智能体提供的回测函数。
import osimport jsonimport importlibimport pandas as pdimport backtrader as btfrom typing import Annotated, ListTuplefrom agentscope.message import TextBlockfrom agentscope.tool import ToolResponsefrom matplotlib import pyplot as pltfrom pprint import pformatfrom core.datafeed.sqlite_dataloader import SQLiteDataLoaderclass DeployedCapitalAnalyzer(bt.Analyzer):    def start(self):        self.deployed_capital = []        self.initial_cash = self.strategy.broker.get_cash()  # Initial cash in account    def notify_order(self, order):        if order.status in [order.Completed]:            if order.isbuy():                self.deployed_capital.append(order.executed.price * order.executed.size)            elif order.issell():                self.deployed_capital.append(order.executed.price * order.executed.size)    def stop(self):        total_deployed = sum(self.deployed_capital)        final_cash = self.strategy.broker.get_value()        net_profit = final_cash - self.initial_cash        if total_deployed > 0:            self.retn = net_profit / total_deployed        else:            self.retn = 0    def get_analysis(self):        return {"return_on_deployed_capital"self.retn}class BackTraderUtils:    @staticmethod    def back_test(        ticker_symbol: Annotated[            str"Ticker symbol of the stock (e.g., 'AAPL' for Apple)"        ],        start_date: Annotated[            str"Start date of the historical data in 'YYYY-MM-DD' format"        ],        end_date: Annotated[            str"End date of the historical data in 'YYYY-MM-DD' format"        ],        strategy: Annotated[            str,            "BackTrader Strategy class to be backtested. Can be pre-defined or custom. Pre-defined options: 'SMA_CrossOver'. If custom, provide module path and class name as a string like 'my_module:TestStrategy'.",        ],        strategy_params: Annotated[            str,            "Additional parameters to be passed to the strategy class formatted as json string. E.g. {'fast': 10, 'slow': 30} for SMACross.",        ] = "",        sizer: Annotated[            int | str | None,            "Sizer used for backtesting. Can be a fixed number or a custom Sizer class. If input is integer, a corresponding fixed sizer will be applied. If custom, provide module path and class name as a string like 'my_module:TestSizer'.",        ] = None,        sizer_params: Annotated[            str,            "Additional parameters to be passed to the sizer class formatted as json string.",        ] = "",        indicator: Annotated[            str | None,            "Custom indicator class added to strategy. Provide module path and class name as a string like 'my_module:TestIndicator'.",        ] = None,        indicator_params: Annotated[            str,            "Additional parameters to be passed to the indicator class formatted as json string.",        ] = "",        cash: Annotated[            float"Initial cash amount for the backtest. Default to 10000.0"        ] = 10000.0,        save_fig: Annotated[            str | None"Path to save the plot of backtest results. Default to None."        ] = None,    ) -> str:        """        Use the Backtrader library to backtest a trading strategy on historical stock data.        args:            ticker_symbol: Ticker symbol of the stock (e.g., 'AAPL' for Apple)            start_date: Start date of the historical data in 'YYYY-MM-DD' format            end_date: End date of the historical data in 'YYYY-MM-DD' format            strategy: BackTrader Strategy class to be backtested. Can be pre-defined or custom. Pre-defined options: 'SMA_CrossOver'. If custom, provide module path and class name as a string like 'my_module:TestStrategy'.            strategy_params: Additional parameters to be passed to the strategy class formatted as json string. E.g. {'fast': 10, 'slow': 30} for SMACross.            sizer: Sizer used for backtesting. Can be a fixed number or a custom Sizer class. If input is integer, a corresponding fixed sizer will be applied. If custom, provide module path and class name as a string like 'my_module:TestSizer'.            sizer_params: Additional parameters to be passed to the sizer class formatted as json string.        """        cerebro = bt.Cerebro()        assert (                ":" in strategy        ), "Custom strategy should be module path and class name separated by a colon."        module_path, class_name = strategy.split(":")        print(strategy)        import sys        print(sys.path)        module = importlib.import_module(module_path)        strategy_class = getattr(module, class_name)        strategy_params = json.loads(strategy_params) if strategy_params else {}        cerebro.addstrategy(strategy_class, **strategy_params)        loader = SQLiteDataLoader()        df = loader.read_df(symbols=[ticker_symbol])        df.set_index('date', inplace=True)        df.index = pd.to_datetime(df.index)        print(df)        # Create a data feed        data = bt.feeds.PandasData(            dataname=df#yf.download(ticker_symbol, start_date, end_date, auto_adjust=True)        )        cerebro.adddata(data)  # Add the data feed        # Set our desired cash start        cerebro.broker.setcash(cash)        # Set the size of the trades        if sizer is not None:            if isinstance(sizer, int):                cerebro.addsizer(bt.sizers.FixedSize, stake=sizer)            else:                assert (                    ":" in sizer                ), "Custom sizer should be module path and class name separated by a colon."                module_path, class_name = sizer.split(":")                module = importlib.import_module(module_path)                sizer_class = getattr(module, class_name)                sizer_params = json.loads(sizer_params) if sizer_params else {}                cerebro.addsizer(sizer_class, **sizer_params)        # Set additional indicator        if indicator is not None:            assert (                ":" in indicator            ), "Custom indicator should be module path and class name separated by a colon."            module_path, class_name = indicator.split(":")            module = importlib.import_module(module_path)            indicator_class = getattr(module, class_name)            indicator_params = json.loads(indicator_params) if indicator_params else {}            cerebro.addindicator(indicator_class, **indicator_params)        # Attach analyzers        cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name="sharpe_ratio")        cerebro.addanalyzer(bt.analyzers.DrawDown, _name="draw_down")        cerebro.addanalyzer(bt.analyzers.Returns, _name="returns")        cerebro.addanalyzer(bt.analyzers.TradeAnalyzer, _name="trade_analyzer")        # cerebro.addanalyzer(DeployedCapitalAnalyzer, _name="deployed_capital")        stats_dict = {"Starting Portfolio Value:": cerebro.broker.getvalue()}        results = cerebro.run()  # run it all        first_strategy = results[0]        # Access analysis results        stats_dict["Final Portfolio Value"] = cerebro.broker.getvalue()        # stats_dict["Deployed Capital"] = pformat(        #     first_strategy.analyzers.deployed_capital.get_analysis(), indent=4        # )        stats_dict["Sharpe Ratio"] = (            first_strategy.analyzers.sharpe_ratio.get_analysis()        )        stats_dict["Drawdown"] = first_strategy.analyzers.draw_down.get_analysis()        stats_dict["Returns"] = first_strategy.analyzers.returns.get_analysis()        stats_dict["Trade Analysis"] = (            first_strategy.analyzers.trade_analyzer.get_analysis()        )        if save_fig:            directory = os.path.dirname(save_fig)            if directory:                os.makedirs(directory, exist_ok=True)            plt.figure(figsize=(128))            cerebro.plot()            plt.savefig(save_fig)            plt.close()        #return "Back Test Finished. Results: \n" + pformat(stats_dict, indent=2)        return ToolResponse(            content=[                TextBlock(                    type="text",                    text="Back Test Finished. Results: \n" + pformat(stats_dict, indent=2)                ),            ],        )if __name__ == "__main__":    # Example usage:    start_date = "2011-01-01"    end_date = "2012-12-31"    ticker = "159915.SZ"    # BackTraderUtils.back_test(    #     ticker, start_date, end_date, "SMA_CrossOver", {"fast": 10, "slow": 30}    # )    BackTraderUtils.back_test(        ticker,        start_date,        end_date,        "test_module:TestStrategy",        '{"exitbars": 5}',    )
给智能体加上写代码到文件的能力:
async def creating_react_agent() -> None:    """创建一个 ReAct 智能体并运行一个简单任务。"""    # 准备工具    toolkit = Toolkit()    toolkit.register_tool_function(BackTraderUtils.back_test)    toolkit.register_tool_function(CodingUtils.list_dir) # 列出目录下的文件列表    toolkit.register_tool_function(CodingUtils.see_file) # 读文件内容    toolkit.register_tool_function(CodingUtils.create_file_with_code) # 代码写到文件里    toolkit.register_tool_function(CodingUtils.modify_code) #替换部分代码
这样就可以写出标准的backtrader策略。
智能体还是在学习人的行为。
从策略的开发角度,我更习惯“积木式”的策略开发,就是策略拆解成小块,然后组合起来。
比如SelectAll, SelectBySignal。
VectorBT更直接,直接from_signal(...entries, exits),纯向量化操作,不过这种纯向量化,有一些策略是无法表达的,比如最简单的“动态再平衡”。或者表达式起来比较复杂。
还有更复杂的如海龟策略。
单标的,用SelectAll选标的没问题。
吾日三省吾身
无论你努不努力,计不计划,焦不焦虑,明天都会到来。
生命从一开始,就奔流不息。
不以物喜,不以己忧。
反正都是要过去,不妨开心点。
做好自己可以掌控的事情,其它的,随它去吧。

运营量化社群几年后,发现学员更需要体系化的课程,因此我们同步推出课程。

(文末 查看原文 可以直达店铺)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-09 05:43:57 HTTP/2.0 GET : https://f.mffb.com.cn/a/460297.html
  2. 运行时间 : 0.149468s [ 吞吐率:6.69req/s ] 内存消耗:4,899.05kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=dd68fe1524bbb6598814fe2c576a0765
  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.000904s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001398s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000645s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000651s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001249s ]
  6. SELECT * FROM `set` [ RunTime:0.000498s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001408s ]
  8. SELECT * FROM `article` WHERE `id` = 460297 LIMIT 1 [ RunTime:0.001076s ]
  9. UPDATE `article` SET `lasttime` = 1770587037 WHERE `id` = 460297 [ RunTime:0.011898s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000661s ]
  11. SELECT * FROM `article` WHERE `id` < 460297 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001342s ]
  12. SELECT * FROM `article` WHERE `id` > 460297 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001220s ]
  13. SELECT * FROM `article` WHERE `id` < 460297 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005962s ]
  14. SELECT * FROM `article` WHERE `id` < 460297 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.022833s ]
  15. SELECT * FROM `article` WHERE `id` < 460297 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008971s ]
0.151074s