commit;
This commit is contained in:
parent
8203b5dd74
commit
f6682be833
|
|
@ -14,4 +14,5 @@ reports/
|
||||||
.idea
|
.idea
|
||||||
.vscode
|
.vscode
|
||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
|
*.log
|
||||||
440
data.sql
440
data.sql
|
|
@ -11,130 +11,12 @@
|
||||||
Target Server Version : 90200 (9.2.0)
|
Target Server Version : 90200 (9.2.0)
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|
||||||
Date: 26/06/2025 11:41:15
|
Date: 28/09/2025 14:05:57
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for eastmoney_rzrq_data
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `eastmoney_rzrq_data`;
|
|
||||||
CREATE TABLE `eastmoney_rzrq_data` (
|
|
||||||
`trade_date` date NOT NULL,
|
|
||||||
`index_value` decimal(10, 4) NULL DEFAULT NULL COMMENT '指数',
|
|
||||||
`change_percent` decimal(10, 4) NULL DEFAULT NULL COMMENT '涨跌幅',
|
|
||||||
`float_market_value` decimal(20, 2) NULL DEFAULT NULL COMMENT '流通市值',
|
|
||||||
`change_percent_3d` decimal(10, 4) NULL DEFAULT NULL COMMENT '3日涨跌幅',
|
|
||||||
`change_percent_5d` decimal(10, 4) NULL DEFAULT NULL COMMENT '5日涨跌幅',
|
|
||||||
`change_percent_10d` decimal(10, 4) NULL DEFAULT NULL COMMENT '10日涨跌幅',
|
|
||||||
`financing_balance` decimal(20, 2) NULL DEFAULT NULL COMMENT '融资余额',
|
|
||||||
`financing_balance_ratio` decimal(10, 4) NULL DEFAULT NULL COMMENT '融资余额占比',
|
|
||||||
`financing_buy_amount` decimal(20, 2) NULL DEFAULT NULL COMMENT '融资买入额',
|
|
||||||
`financing_buy_amount_3d` decimal(20, 2) NULL DEFAULT NULL COMMENT '3日融资买入额',
|
|
||||||
`financing_buy_amount_5d` decimal(20, 2) NULL DEFAULT NULL COMMENT '5日融资买入额',
|
|
||||||
`financing_buy_amount_10d` decimal(20, 2) NULL DEFAULT NULL COMMENT '10日融资买入额',
|
|
||||||
`financing_repay_amount` decimal(20, 2) NULL DEFAULT NULL COMMENT '融资偿还额',
|
|
||||||
`financing_repay_amount_3d` decimal(20, 2) NULL DEFAULT NULL COMMENT '3日融资偿还额',
|
|
||||||
`financing_repay_amount_5d` decimal(20, 2) NULL DEFAULT NULL COMMENT '5日融资偿还额',
|
|
||||||
`financing_repay_amount_10d` decimal(20, 2) NULL DEFAULT NULL COMMENT '10日融资偿还额',
|
|
||||||
`financing_net_amount` decimal(20, 2) NULL DEFAULT NULL COMMENT '融资净额',
|
|
||||||
`financing_net_amount_3d` decimal(20, 2) NULL DEFAULT NULL COMMENT '3日融资净额',
|
|
||||||
`financing_net_amount_5d` decimal(20, 2) NULL DEFAULT NULL COMMENT '5日融资净额',
|
|
||||||
`financing_net_amount_10d` decimal(20, 2) NULL DEFAULT NULL COMMENT '10日融资净额',
|
|
||||||
`securities_balance` decimal(20, 2) NULL DEFAULT NULL COMMENT '融券余额',
|
|
||||||
`securities_volume` decimal(20, 2) NULL DEFAULT NULL COMMENT '融券余量',
|
|
||||||
`securities_repay_volume` decimal(20, 2) NULL DEFAULT NULL COMMENT '融券偿还量',
|
|
||||||
`securities_repay_volume_3d` decimal(20, 2) NULL DEFAULT NULL COMMENT '3日融券偿还量',
|
|
||||||
`securities_repay_volume_5d` decimal(20, 2) NULL DEFAULT NULL COMMENT '5日融券偿还量',
|
|
||||||
`securities_repay_volume_10d` decimal(20, 2) NULL DEFAULT NULL COMMENT '10日融券偿还量',
|
|
||||||
`securities_sell_volume` decimal(20, 2) NULL DEFAULT NULL COMMENT '融券卖出量',
|
|
||||||
`securities_sell_volume_3d` decimal(20, 2) NULL DEFAULT NULL COMMENT '3日融券卖出量',
|
|
||||||
`securities_sell_volume_5d` decimal(20, 2) NULL DEFAULT NULL COMMENT '5日融券卖出量',
|
|
||||||
`securities_sell_volume_10d` decimal(20, 2) NULL DEFAULT NULL COMMENT '10日融券卖出量',
|
|
||||||
`securities_net_volume` decimal(20, 2) NULL DEFAULT NULL COMMENT '融券净量',
|
|
||||||
`securities_net_volume_3d` decimal(20, 2) NULL DEFAULT NULL COMMENT '3日融券净量',
|
|
||||||
`securities_net_volume_5d` decimal(20, 2) NULL DEFAULT NULL COMMENT '5日融券净量',
|
|
||||||
`securities_net_volume_10d` decimal(20, 2) NULL DEFAULT NULL COMMENT '10日融券净量',
|
|
||||||
`total_rzrq_balance` decimal(20, 2) NULL DEFAULT NULL COMMENT '融资融券余额',
|
|
||||||
`total_rzrq_balance_cz` decimal(20, 2) NULL DEFAULT NULL COMMENT '融资融券余额差值',
|
|
||||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
||||||
PRIMARY KEY (`trade_date`) USING BTREE
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '东方财富融资融券数据表' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for fear_greed_index
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `fear_greed_index`;
|
|
||||||
CREATE TABLE `fear_greed_index` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`index_value` decimal(5, 2) NOT NULL COMMENT '恐贪指数值(0-100)',
|
|
||||||
`trading_date` date NOT NULL COMMENT '交易日期',
|
|
||||||
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
UNIQUE INDEX `uk_trading_date`(`trading_date` ASC) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 1003 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '市场恐贪指数数据' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for follow_stock
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `follow_stock`;
|
|
||||||
CREATE TABLE `follow_stock` (
|
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
||||||
`stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
|
|
||||||
`stock_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票名称',
|
|
||||||
`add_time` datetime NULL DEFAULT NULL COMMENT '添加时间',
|
|
||||||
`status` tinyint NULL DEFAULT 1 COMMENT '状态',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
UNIQUE INDEX `uk_stock_code`(`stock_code` ASC) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '关注的股票' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for fund_cang
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `fund_cang`;
|
|
||||||
CREATE TABLE `fund_cang` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`fund_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`fund_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`company_money` decimal(20, 2) NULL DEFAULT NULL,
|
|
||||||
`company_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`company_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`fund_data` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 1874595 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for fundamental_analysis
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `fundamental_analysis`;
|
|
||||||
CREATE TABLE `fundamental_analysis` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
|
|
||||||
`stock_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票名称',
|
|
||||||
`dimension` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分析维度',
|
|
||||||
`ai_response` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AI分析结果',
|
|
||||||
`reasoning_process` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '推理过程',
|
|
||||||
`references` json NULL COMMENT '参考资料',
|
|
||||||
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
||||||
`extra_info` json NULL COMMENT '扩展信息',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
INDEX `idx_stock_dimension`(`stock_code` ASC, `dimension` ASC) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 12104 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '基本面分析结果表' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_category_industry
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_category_industry`;
|
|
||||||
CREATE TABLE `gp_category_industry` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
|
|
||||||
`category_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类名称',
|
|
||||||
`belong_industry` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属行业',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for gp_code_all
|
-- Table structure for gp_code_all
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
|
@ -151,58 +33,6 @@ CREATE TABLE `gp_code_all` (
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 6686 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '所有个股代码-爬取指数用' ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 6686 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '所有个股代码-爬取指数用' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_code_hk
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_code_hk`;
|
|
||||||
CREATE TABLE `gp_code_hk` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`gp_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`gp_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`gp_code_two` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`gp_code_three` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`market_cap` decimal(20, 2) NULL DEFAULT NULL,
|
|
||||||
`mark1` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`mark2` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 2956 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '所有指数代码-爬取数据使用' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_code_zs
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_code_zs`;
|
|
||||||
CREATE TABLE `gp_code_zs` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`gp_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`gp_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`gp_code_two` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`gp_code_three` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`market_cap` decimal(20, 2) NULL DEFAULT NULL,
|
|
||||||
`mark1` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`mark2` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 6686 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '所有指数代码-爬取数据使用' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_data
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_data`;
|
|
||||||
CREATE TABLE `gp_data` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`pg_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`xiangsidu` decimal(10, 2) NULL DEFAULT NULL COMMENT '控制相似度为多少的时候进行回测 和下面的数字是关联的',
|
|
||||||
`ii` int NULL DEFAULT NULL COMMENT '相似度的条数',
|
|
||||||
`raye_ga_hc` decimal(10, 2) NULL DEFAULT NULL COMMENT '回测涨跌幅大于多少的数据',
|
|
||||||
`huice_function_num` int NULL DEFAULT NULL COMMENT '回测判断胜率方法 0是代表相差1%或者同涨同跌都算胜 1是代表相差1%算胜 2是代表同涨同跌算胜',
|
|
||||||
`yes_yuce` int NULL DEFAULT NULL,
|
|
||||||
`no_yuce` int NULL DEFAULT NULL,
|
|
||||||
`yes_yuce_twoday` int NULL DEFAULT NULL,
|
|
||||||
`no_yuce_twoday` int NULL DEFAULT NULL,
|
|
||||||
`yes_yuce_fiveday` int NULL DEFAULT NULL,
|
|
||||||
`no_yuce_fiveday` int NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 42690 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for gp_day_data
|
-- Table structure for gp_day_data
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
|
@ -224,26 +54,12 @@ CREATE TABLE `gp_day_data` (
|
||||||
`pe` decimal(10, 2) NULL DEFAULT NULL COMMENT '当前PE',
|
`pe` decimal(10, 2) NULL DEFAULT NULL COMMENT '当前PE',
|
||||||
`ps` decimal(10, 2) NULL DEFAULT NULL COMMENT '当前PS',
|
`ps` decimal(10, 2) NULL DEFAULT NULL COMMENT '当前PS',
|
||||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
`pre_close` decimal(10, 2) NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `idx_symbol`(`symbol` ASC) USING BTREE,
|
INDEX `idx_symbol`(`symbol` ASC) USING BTREE,
|
||||||
INDEX `idx_timestamp`(`timestamp` ASC) USING BTREE,
|
INDEX `idx_timestamp`(`timestamp` ASC) USING BTREE,
|
||||||
INDEX `idx_symbol_time`(`symbol` ASC, `timestamp` ASC) USING BTREE
|
INDEX `idx_symbol_time`(`symbol` ASC, `timestamp` ASC) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 28356293 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 36167913 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_ex_rights_log
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_ex_rights_log`;
|
|
||||||
CREATE TABLE `gp_ex_rights_log` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`stock_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '股票代码',
|
|
||||||
`change_date` date NULL DEFAULT NULL COMMENT '除权变动日期',
|
|
||||||
`before_price` decimal(10, 3) NULL DEFAULT NULL COMMENT '变动前收盘价(数据库中的价格)',
|
|
||||||
`after_price` decimal(10, 3) NULL DEFAULT NULL COMMENT '变动后收盘价(API获取的价格)',
|
|
||||||
`update_time` datetime NULL DEFAULT NULL COMMENT '脚本执行的更新时间',
|
|
||||||
`optimization_flag` int NULL DEFAULT NULL COMMENT '波段优化标志,1为已经完成优化',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 285 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '股票除权日志表' ROW_FORMAT = DYNAMIC;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for gp_gnbk
|
-- Table structure for gp_gnbk
|
||||||
|
|
@ -255,263 +71,21 @@ CREATE TABLE `gp_gnbk` (
|
||||||
`bk_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
`bk_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||||||
`gp_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
`gp_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||||||
`gp_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL
|
`gp_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '概念板块' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_gnbk_all
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_gnbk_all`;
|
|
||||||
CREATE TABLE `gp_gnbk_all` (
|
|
||||||
`id` bigint NULL DEFAULT NULL,
|
|
||||||
`bk_code` bigint NULL DEFAULT NULL,
|
|
||||||
`bk_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`gp_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`gp_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_gnbk_gn
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_gnbk_gn`;
|
|
||||||
CREATE TABLE `gp_gnbk_gn` (
|
|
||||||
`id` bigint NULL DEFAULT NULL,
|
|
||||||
`bk_code` bigint NULL DEFAULT NULL,
|
|
||||||
`bk_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`gp_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`gp_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for gp_hybk
|
-- Table structure for gp_hybk
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `gp_hybk`;
|
DROP TABLE IF EXISTS `gp_hybk`;
|
||||||
CREATE TABLE `gp_hybk` (
|
CREATE TABLE `gp_hybk` (
|
||||||
`id` bigint NULL DEFAULT NULL,
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||||
`bk_code` bigint NULL DEFAULT NULL,
|
`bk_code` bigint NULL DEFAULT NULL,
|
||||||
`bk_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
`bk_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||||||
`gp_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
`gp_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||||||
`gp_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
`gp_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||||||
`Unnamed: 5` double NULL DEFAULT NULL,
|
`Unnamed: 5` double NULL DEFAULT NULL,
|
||||||
`Unnamed: 6` double NULL DEFAULT NULL
|
`Unnamed: 6` double NULL DEFAULT NULL,
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_main_business
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_main_business`;
|
|
||||||
CREATE TABLE `gp_main_business` (
|
|
||||||
`stock_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
|
|
||||||
`stock_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票简称',
|
|
||||||
`report_date` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '报告期(YYYYMMDD)',
|
|
||||||
`product_rank` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '项目排名(1-5)',
|
|
||||||
`product_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '项目名称',
|
|
||||||
`revenue` decimal(20, 2) NULL DEFAULT NULL COMMENT '项目收入',
|
|
||||||
`cost` decimal(20, 2) NULL DEFAULT NULL COMMENT '项目成本',
|
|
||||||
`profit` decimal(20, 2) NULL DEFAULT NULL COMMENT '项目毛利',
|
|
||||||
`profit_margin` decimal(10, 4) NULL DEFAULT NULL COMMENT '项目毛利率',
|
|
||||||
PRIMARY KEY (`stock_code`, `report_date`, `product_rank`) USING BTREE
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_min_data
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_min_data`;
|
|
||||||
CREATE TABLE `gp_min_data` (
|
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
||||||
`symbol` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '个股代码',
|
|
||||||
`timestamp` timestamp NULL DEFAULT NULL COMMENT '时间戳',
|
|
||||||
`volume` bigint NULL DEFAULT NULL COMMENT '数量',
|
|
||||||
`open` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '开始价',
|
|
||||||
`high` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '最高价',
|
|
||||||
`low` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '最低价',
|
|
||||||
`close` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '结束价',
|
|
||||||
`chg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '变化数值',
|
|
||||||
`percent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '变化百分比',
|
|
||||||
`turnoverrate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
|
||||||
`amount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '成交金额',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 61116588 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 8331 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '行业板块' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_product_category
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_product_category`;
|
|
||||||
CREATE TABLE `gp_product_category` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`category_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
||||||
`product_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
||||||
`stock_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
||||||
`stock_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
||||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
INDEX `idx_stock_code`(`stock_code` ASC) USING BTREE,
|
|
||||||
INDEX `idx_product_name`(`product_name` ASC) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 35869 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_zygc
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_zygc`;
|
|
||||||
CREATE TABLE `gp_zygc` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`gp_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
|
|
||||||
`gp_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票代码',
|
|
||||||
`zygc_xmmc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主营构成(按行业)-项目名称',
|
|
||||||
`zygc_xmsr` decimal(20, 0) NULL DEFAULT NULL COMMENT '主营构成(按行业)-项目收入',
|
|
||||||
`zygc_xmmlr` decimal(10, 2) NULL DEFAULT NULL COMMENT '主营构成(按行业)-项目毛利率',
|
|
||||||
`belong_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属财报期',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 12774 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '个股的主营构成' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for gp_zyyw
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `gp_zyyw`;
|
|
||||||
CREATE TABLE `gp_zyyw` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`gp_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
|
|
||||||
`gp_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票代码',
|
|
||||||
`zyyw_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主营业务名称',
|
|
||||||
`zyyw_zb` decimal(10, 2) NULL DEFAULT NULL COMMENT '主营业务占比',
|
|
||||||
`belong_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属财报期',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 25280 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '上市公司主营业务占比' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for hk_hot_stocks
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `hk_hot_stocks`;
|
|
||||||
CREATE TABLE `hk_hot_stocks` (
|
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
|
||||||
`symbol` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
|
||||||
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
|
||||||
`value` int NULL DEFAULT NULL,
|
|
||||||
`increment` int NULL DEFAULT NULL,
|
|
||||||
`rank_change` int NULL DEFAULT NULL,
|
|
||||||
`percent` float NULL DEFAULT NULL,
|
|
||||||
`current` float NULL DEFAULT NULL,
|
|
||||||
`chg` float NULL DEFAULT NULL,
|
|
||||||
`exchange` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
|
||||||
`stock_type` int NULL DEFAULT NULL,
|
|
||||||
`add_time` datetime NULL DEFAULT NULL,
|
|
||||||
`status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 53981 CHARACTER SET = sjis COLLATE = sjis_japanese_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for limitup_analysis_stock_changes
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `limitup_analysis_stock_changes`;
|
|
||||||
CREATE TABLE `limitup_analysis_stock_changes` (
|
|
||||||
`symbol` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`net_profit_cagr` double NULL DEFAULT NULL,
|
|
||||||
`north_net_inflow` double NULL DEFAULT NULL,
|
|
||||||
`ps` double NULL DEFAULT NULL,
|
|
||||||
`type` bigint NULL DEFAULT NULL,
|
|
||||||
`percent` double NULL DEFAULT NULL,
|
|
||||||
`has_follow` tinyint(1) NULL DEFAULT NULL,
|
|
||||||
`tick_size` double NULL DEFAULT NULL,
|
|
||||||
`pb_ttm` double NULL DEFAULT NULL,
|
|
||||||
`float_shares` bigint NULL DEFAULT NULL,
|
|
||||||
`current` double NULL DEFAULT NULL,
|
|
||||||
`amplitude` double NULL DEFAULT NULL,
|
|
||||||
`pcf` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`current_year_percent` double NULL DEFAULT NULL,
|
|
||||||
`float_market_capital` double NULL DEFAULT NULL,
|
|
||||||
`north_net_inflow_time` double NULL DEFAULT NULL,
|
|
||||||
`market_capital` double NULL DEFAULT NULL,
|
|
||||||
`dividend_yield` double NULL DEFAULT NULL,
|
|
||||||
`lot_size` bigint NULL DEFAULT NULL,
|
|
||||||
`roe_ttm` double NULL DEFAULT NULL,
|
|
||||||
`total_percent` double NULL DEFAULT NULL,
|
|
||||||
`percent5m` double NULL DEFAULT NULL,
|
|
||||||
`income_cagr` double NULL DEFAULT NULL,
|
|
||||||
`amount` double NULL DEFAULT NULL,
|
|
||||||
`chg` double NULL DEFAULT NULL,
|
|
||||||
`issue_date_ts` bigint NULL DEFAULT NULL,
|
|
||||||
`eps` double NULL DEFAULT NULL,
|
|
||||||
`main_net_inflows` double NULL DEFAULT NULL,
|
|
||||||
`volume` bigint NULL DEFAULT NULL,
|
|
||||||
`volume_ratio` double NULL DEFAULT NULL,
|
|
||||||
`pb` double NULL DEFAULT NULL,
|
|
||||||
`followers` bigint NULL DEFAULT NULL,
|
|
||||||
`turnover_rate` double NULL DEFAULT NULL,
|
|
||||||
`mapping_quote_current` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`first_percent` double NULL DEFAULT NULL,
|
|
||||||
`name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`pe_ttm` double NULL DEFAULT NULL,
|
|
||||||
`dual_counter_mapping_symbol` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`total_shares` bigint NULL DEFAULT NULL,
|
|
||||||
`limitup_days` bigint NULL DEFAULT NULL,
|
|
||||||
`id` bigint NULL DEFAULT NULL
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for rzrq_data
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `rzrq_data`;
|
|
||||||
CREATE TABLE `rzrq_data` (
|
|
||||||
`trade_date` date NOT NULL COMMENT '交易日期',
|
|
||||||
`sh_financing_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '上海融资余额(亿元)',
|
|
||||||
`sz_financing_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '深圳融资余额(亿元)',
|
|
||||||
`bj_financing_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '北京融资余额(亿元)',
|
|
||||||
`total_financing_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '融资余额合计(亿元)',
|
|
||||||
`sh_financing_buy` decimal(12, 2) NULL DEFAULT NULL COMMENT '上海融资买入额(亿元)',
|
|
||||||
`sz_financing_buy` decimal(12, 2) NULL DEFAULT NULL COMMENT '深圳融资买入额(亿元)',
|
|
||||||
`bj_financing_buy` decimal(12, 2) NULL DEFAULT NULL COMMENT '北京融资买入额(亿元)',
|
|
||||||
`total_financing_buy` decimal(12, 2) NULL DEFAULT NULL COMMENT '融资买入额合计(亿元)',
|
|
||||||
`sh_securities_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '上海融券余量余额(亿元)',
|
|
||||||
`sz_securities_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '深圳融券余量余额(亿元)',
|
|
||||||
`bj_securities_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '北京融券余量余额(亿元)',
|
|
||||||
`total_securities_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '融券余量余额合计(亿元)',
|
|
||||||
`sh_rzrq_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '上海融资融券余额(亿元)',
|
|
||||||
`sz_rzrq_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '深圳融资融券余额(亿元)',
|
|
||||||
`bj_rzrq_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '北京融资融券余额(亿元)',
|
|
||||||
`total_rzrq_balance` decimal(12, 2) NULL DEFAULT NULL COMMENT '融资融券余额合计(亿元)',
|
|
||||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
||||||
PRIMARY KEY (`trade_date`) USING BTREE
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '融资融券数据表' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for stock_price_changes
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `stock_price_changes`;
|
|
||||||
CREATE TABLE `stock_price_changes` (
|
|
||||||
`symbol` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`current` double NULL DEFAULT NULL,
|
|
||||||
`percent` double NULL DEFAULT NULL,
|
|
||||||
`time_mark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
|
||||||
`add_time` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for stock_price_data
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `stock_price_data`;
|
|
||||||
CREATE TABLE `stock_price_data` (
|
|
||||||
`stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
|
|
||||||
`stock_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
|
|
||||||
`latest_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最新价',
|
|
||||||
`change_percent` decimal(10, 2) NULL DEFAULT NULL COMMENT '涨跌幅',
|
|
||||||
`change_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '涨跌额',
|
|
||||||
`volume` bigint NULL DEFAULT NULL COMMENT '成交量(手)',
|
|
||||||
`amount` decimal(20, 2) NULL DEFAULT NULL COMMENT '成交额',
|
|
||||||
`amplitude` decimal(10, 2) NULL DEFAULT NULL COMMENT '振幅',
|
|
||||||
`turnover_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '换手率',
|
|
||||||
`pe_ratio` decimal(10, 2) NULL DEFAULT NULL COMMENT '市盈率',
|
|
||||||
`high_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最高价',
|
|
||||||
`low_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最低价',
|
|
||||||
`open_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '开盘价',
|
|
||||||
`pre_close` decimal(10, 2) NULL DEFAULT NULL COMMENT '昨收价',
|
|
||||||
`total_market_value` decimal(20, 2) NULL DEFAULT NULL COMMENT '总市值',
|
|
||||||
`float_market_value` decimal(20, 2) NULL DEFAULT NULL COMMENT '流通市值',
|
|
||||||
`pb_ratio` decimal(10, 2) NULL DEFAULT NULL COMMENT '市净率',
|
|
||||||
`list_date` date NULL DEFAULT NULL COMMENT '上市日期',
|
|
||||||
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
||||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
||||||
PRIMARY KEY (`stock_code`) USING BTREE
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '实时股价数据表' ROW_FORMAT = Dynamic;
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,6 @@ pandas==2.2.3
|
||||||
apscheduler==3.11.0
|
apscheduler==3.11.0
|
||||||
pymongo==4.13.0
|
pymongo==4.13.0
|
||||||
scikit-learn==1.6.1
|
scikit-learn==1.6.1
|
||||||
dbutils==3.1.2
|
dbutils==3.1.2
|
||||||
|
pyyaml==6.0.3
|
||||||
|
xtquant==250516.1.1
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# QMT交易配置
|
# QMT交易配置
|
||||||
qmt_config:
|
qmt_config:
|
||||||
# 客户端路径
|
# 客户端路径
|
||||||
client_path: "D:\\SoftwareCenter\\中金财富QMT个人版模拟交易端38421\\userdata_mini"
|
client_path: "D:\\SoftwareCenter\\中金财富QMT个人版交易端\\userdata_mini"
|
||||||
|
|
||||||
# 账户配置
|
# 账户配置
|
||||||
account:
|
account:
|
||||||
account_id: "10839603" # 资金账号
|
account_id: "79355243" # 资金账号
|
||||||
account_type: "STOCK" # 账号类型:STOCK(股票) CREDIT(信用) FUTURE(期货)
|
account_type: "STOCK" # 账号类型:STOCK(股票) CREDIT(信用) FUTURE(期货)
|
||||||
|
|
||||||
# 数据库配置
|
# 数据库配置
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ class DatabaseManager:
|
||||||
'buy_amount': float(buy_amount),
|
'buy_amount': float(buy_amount),
|
||||||
'trading_version': int(tver or 0)
|
'trading_version': int(tver or 0)
|
||||||
}
|
}
|
||||||
self.logger.info(f"加载买入计划: {len(buy_plans)}个")
|
# self.logger.info(f"加载买入计划: {len(buy_plans)}个")
|
||||||
return buy_plans
|
return buy_plans
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"获取买入计划失败: {str(e)}")
|
self.logger.error(f"获取买入计划失败: {str(e)}")
|
||||||
|
|
@ -154,7 +154,7 @@ class DatabaseManager:
|
||||||
'sell_quantity': sell_quantity,
|
'sell_quantity': sell_quantity,
|
||||||
'trading_version': int(tver or 0)
|
'trading_version': int(tver or 0)
|
||||||
}
|
}
|
||||||
self.logger.info(f"加载卖出计划: {len(sell_plans)}个")
|
# self.logger.info(f"加载卖出计划: {len(sell_plans)}个")
|
||||||
return sell_plans
|
return sell_plans
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"获取卖出计划失败: {str(e)}")
|
self.logger.error(f"获取卖出计划失败: {str(e)}")
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,9 @@ from xtquant.xttype import StockAccount
|
||||||
|
|
||||||
# 导入自定义模块
|
# 导入自定义模块
|
||||||
from config_loader import get_qmt_config, get_logging_config, get_strategy_config
|
from config_loader import get_qmt_config, get_logging_config, get_strategy_config
|
||||||
from strategy import load_initial_positions, create_buy_strategy_callback, create_sell_strategy_callback, start_account_funds_monitor, start_reconciliation_monitor, start_position_snapshot_monitor
|
from strategy import load_initial_positions, create_buy_strategy_callback, create_sell_strategy_callback, \
|
||||||
|
start_account_funds_monitor, start_reconciliation_monitor, start_position_snapshot_monitor, \
|
||||||
|
refresh_positions_snapshot
|
||||||
from redis_state_manager import RedisStateManager
|
from redis_state_manager import RedisStateManager
|
||||||
from database_manager import DatabaseManager, close_pool
|
from database_manager import DatabaseManager, close_pool
|
||||||
from trader_callback import MyXtQuantTraderCallback
|
from trader_callback import MyXtQuantTraderCallback
|
||||||
|
|
@ -97,7 +99,7 @@ if __name__ == '__main__':
|
||||||
sell_plans = rsm.get_all_sell_plans()
|
sell_plans = rsm.get_all_sell_plans()
|
||||||
logger.info(f"买入计划数量(Redis): {len(buy_plans)}")
|
logger.info(f"买入计划数量(Redis): {len(buy_plans)}")
|
||||||
logger.info(f"卖出计划数量(Redis): {len(sell_plans)}")
|
logger.info(f"卖出计划数量(Redis): {len(sell_plans)}")
|
||||||
logger.info(f"每只股票买入金额: {buy_amount}元")
|
# logger.info(f"每只股票买入金额: {buy_amount}元")
|
||||||
logger.info("="*50)
|
logger.info("="*50)
|
||||||
|
|
||||||
# 显示买入计划
|
# 显示买入计划
|
||||||
|
|
@ -183,7 +185,6 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
# 启动每10分钟持仓快照覆盖更新线程(只更新DB,不叠加)
|
# 启动每10分钟持仓快照覆盖更新线程(只更新DB,不叠加)
|
||||||
start_position_snapshot_monitor(xt_trader, acc, logger, interval_seconds=600)
|
start_position_snapshot_monitor(xt_trader, acc, logger, interval_seconds=600)
|
||||||
|
|
||||||
# 下载股票数据
|
# 下载股票数据
|
||||||
xtdata.download_sector_data()
|
xtdata.download_sector_data()
|
||||||
|
|
||||||
|
|
@ -194,26 +195,32 @@ if __name__ == '__main__':
|
||||||
sell_strategy_callback = create_sell_strategy_callback(xt_trader, acc, logger)
|
sell_strategy_callback = create_sell_strategy_callback(xt_trader, acc, logger)
|
||||||
|
|
||||||
# 订阅买卖计划中的股票行情(基于Redis)
|
# 订阅买卖计划中的股票行情(基于Redis)
|
||||||
|
subscription_ids = {} # 统一管理所有订阅ID
|
||||||
|
|
||||||
if buy_plans:
|
if buy_plans:
|
||||||
buy_code_list = list(buy_plans.keys())
|
buy_code_list = list(buy_plans.keys())
|
||||||
logger.info(f"开始订阅 {len(buy_code_list)} 只买入股票的行情...")
|
logger.info(f"开始订阅 {len(buy_code_list)} 只买入股票的行情...")
|
||||||
for code in buy_code_list:
|
for code in buy_code_list:
|
||||||
xtdata.subscribe_quote(code, '1m', callback=buy_strategy_callback)
|
sub_id = xtdata.subscribe_quote(code, '1d', callback=buy_strategy_callback)
|
||||||
logger.info(f"已订阅买入 {code} ({buy_plans[code].get('stock_name','')}) 行情")
|
subscription_ids[code] = sub_id
|
||||||
|
logger.info(f"已订阅买入 {code} ({buy_plans[code].get('stock_name','')}) 行情,订阅ID: {sub_id}")
|
||||||
if sell_plans:
|
if sell_plans:
|
||||||
sell_code_list = list(sell_plans.keys())
|
sell_code_list = list(sell_plans.keys())
|
||||||
logger.info(f"开始订阅 {len(sell_code_list)} 只卖出股票的行情...")
|
logger.info(f"开始订阅 {len(sell_code_list)} 只卖出股票的行情...")
|
||||||
for code in sell_code_list:
|
for code in sell_code_list:
|
||||||
xtdata.subscribe_quote(code, '1m', callback=sell_strategy_callback)
|
sub_id = xtdata.subscribe_quote(code, '1d', callback=sell_strategy_callback)
|
||||||
logger.info(f"已订阅卖出 {code} ({sell_plans[code].get('stock_name','')}) 行情")
|
subscription_ids[code] = sub_id
|
||||||
|
logger.info(f"已订阅卖出 {code} ({sell_plans[code].get('stock_name','')}) 行情,订阅ID: {sub_id}")
|
||||||
|
|
||||||
# 计划同步线程:每60秒从MySQL同步到Redis,并直接更新订阅(不再分线程管理订阅)
|
# 计划同步线程:每60秒从MySQL同步到Redis,并直接更新订阅(不再分线程管理订阅)
|
||||||
import threading, time
|
import threading, time
|
||||||
def plan_sync_worker():
|
def plan_sync_worker():
|
||||||
interval = 60 # 固定60秒同步一次
|
interval = 60 # 固定60秒同步一次
|
||||||
# 当前已订阅集合
|
# 当前已订阅集合
|
||||||
subscribed_buy = set(buy_plans.keys())
|
subscribed_codes = set(subscription_ids.keys())
|
||||||
subscribed_sell = set(sell_plans.keys())
|
# 存储订阅ID的字典,初始化为初始订阅ID
|
||||||
|
current_subscription_ids = subscription_ids.copy()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
time.sleep(interval)
|
time.sleep(interval)
|
||||||
|
|
@ -262,25 +269,28 @@ if __name__ == '__main__':
|
||||||
for code in del_sell:
|
for code in del_sell:
|
||||||
rsm.del_sell_plan(code)
|
rsm.del_sell_plan(code)
|
||||||
# 直接同步订阅(差分)
|
# 直接同步订阅(差分)
|
||||||
new_buy_sub = latest_buy_codes
|
new_codes = latest_buy_codes | latest_sell_codes
|
||||||
new_sell_sub = latest_sell_codes
|
|
||||||
# 买入订阅差分
|
# 新增订阅
|
||||||
for code in new_buy_sub - subscribed_buy:
|
for code in new_codes - subscribed_codes:
|
||||||
xtdata.subscribe_quote(code, '1m', callback=buy_strategy_callback)
|
# 判断是买入还是卖出计划
|
||||||
logger.info(f"[订阅新增-买入] {code}")
|
if code in latest_buy_codes:
|
||||||
for code in subscribed_buy - new_buy_sub:
|
sub_id = xtdata.subscribe_quote(code, '1d', callback=buy_strategy_callback)
|
||||||
xtdata.unsubscribe_quote(code)
|
logger.info(f"[订阅新增-买入] {code},订阅ID: {sub_id}")
|
||||||
logger.info(f"[取消订阅-买入] {code}")
|
else:
|
||||||
# 卖出订阅差分
|
sub_id = xtdata.subscribe_quote(code, '1d', callback=sell_strategy_callback)
|
||||||
for code in new_sell_sub - subscribed_sell:
|
logger.info(f"[订阅新增-卖出] {code},订阅ID: {sub_id}")
|
||||||
xtdata.subscribe_quote(code, '1m', callback=sell_strategy_callback)
|
current_subscription_ids[code] = sub_id
|
||||||
logger.info(f"[订阅新增-卖出] {code}")
|
|
||||||
for code in subscribed_sell - new_sell_sub:
|
# 取消订阅
|
||||||
xtdata.unsubscribe_quote(code)
|
for code in subscribed_codes - new_codes:
|
||||||
logger.info(f"[取消订阅-卖出] {code}")
|
if code in current_subscription_ids:
|
||||||
subscribed_buy = new_buy_sub
|
xtdata.unsubscribe_quote(current_subscription_ids[code])
|
||||||
subscribed_sell = new_sell_sub
|
del current_subscription_ids[code]
|
||||||
logger.info("计划同步与订阅更新完成")
|
logger.info(f"[取消订阅] {code}")
|
||||||
|
|
||||||
|
subscribed_codes = new_codes
|
||||||
|
# logger.info("计划同步与订阅更新完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"计划同步线程异常: {str(e)}")
|
logger.warning(f"计划同步线程异常: {str(e)}")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -273,7 +273,7 @@ def create_buy_strategy_callback(xt_trader, acc, buy_amount, logger):
|
||||||
xtconstant.STOCK_BUY,
|
xtconstant.STOCK_BUY,
|
||||||
buy_volume,
|
buy_volume,
|
||||||
xtconstant.FIX_PRICE,
|
xtconstant.FIX_PRICE,
|
||||||
target_price,
|
current_price,
|
||||||
'auto_buy_strategy',
|
'auto_buy_strategy',
|
||||||
order_id
|
order_id
|
||||||
)
|
)
|
||||||
|
|
@ -282,6 +282,7 @@ def create_buy_strategy_callback(xt_trader, acc, buy_amount, logger):
|
||||||
add_pending_order(stock_code, order_id, buy_volume, current_price, target_price, 'buy', logger)
|
add_pending_order(stock_code, order_id, buy_volume, current_price, target_price, 'buy', logger)
|
||||||
|
|
||||||
logger.info(f"已提交买入订单: {stock_code} {buy_volume}股,价格{target_price},订单ID: {order_id}")
|
logger.info(f"已提交买入订单: {stock_code} {buy_volume}股,价格{target_price},订单ID: {order_id}")
|
||||||
|
update_account_funds_periodically(xt_trader, acc, logger)
|
||||||
else:
|
else:
|
||||||
logger.warning(f"买入数量计算为0,跳过 {stock_code}")
|
logger.warning(f"买入数量计算为0,跳过 {stock_code}")
|
||||||
else:
|
else:
|
||||||
|
|
@ -375,6 +376,7 @@ def create_sell_strategy_callback(xt_trader, acc, logger):
|
||||||
add_pending_order(stock_code, order_id, sell_volume, current_price, target_price, 'sell', logger)
|
add_pending_order(stock_code, order_id, sell_volume, current_price, target_price, 'sell', logger)
|
||||||
|
|
||||||
logger.info(f"已提交卖出订单: {stock_code} {sell_volume}股,价格{target_price},订单ID: {order_id}")
|
logger.info(f"已提交卖出订单: {stock_code} {sell_volume}股,价格{target_price},订单ID: {order_id}")
|
||||||
|
update_account_funds_periodically(xt_trader, acc, logger)
|
||||||
else:
|
else:
|
||||||
logger.warning(f"卖出数量为0,跳过 {stock_code}")
|
logger.warning(f"卖出数量为0,跳过 {stock_code}")
|
||||||
else:
|
else:
|
||||||
|
|
@ -544,32 +546,46 @@ def refresh_positions_snapshot(xt_trader, acc, logger):
|
||||||
try:
|
try:
|
||||||
code = pos.stock_code
|
code = pos.stock_code
|
||||||
# 获取持仓基本信息
|
# 获取持仓基本信息
|
||||||
total_qty = int(getattr(pos, 'm_nVolume', 0) or 0)
|
total_qty = int(getattr(pos, 'volume', 0)) # 使用 'volume' 或 'm_nVolume'
|
||||||
available_qty = int(getattr(pos, 'm_nCanUseVolume', 0) or 0)
|
available_qty = int(getattr(pos, 'can_use_volume', 0)) # 使用 'can_use_volume' 或 'm_nCanUseVolume'
|
||||||
frozen_qty = max(0, total_qty - available_qty) # 冻结数量 = 总数量 - 可用数量
|
|
||||||
|
# 直接使用API返回的冻结数量字段,这比自己计算更准确
|
||||||
# 获取价格和市值信息
|
frozen_qty = int(getattr(pos, 'frozen_volume', 0)) # 使用 'frozen_volume' 或 'm_nFrozenVolume'
|
||||||
cost_price = float(getattr(pos, 'm_dOpenPrice', 0.0) or 0.0)
|
|
||||||
market_price = float(getattr(pos, 'm_dLastPrice', 0.0) or 0.0)
|
# 如果总持仓为0,则没有处理的必要,直接跳过
|
||||||
market_value = float(getattr(pos, 'm_dInstrumentValue', 0.0) or 0.0)
|
if total_qty == 0:
|
||||||
|
continue
|
||||||
# 获取盈亏信息
|
|
||||||
profit_loss = float(getattr(pos, 'm_dPositionProfit', 0.0) or 0.0)
|
# 2. 获取价格和市值信息
|
||||||
position_cost = float(getattr(pos, 'm_dPositionCost', 0.0) or 0.0)
|
cost_price = float(getattr(pos, 'avg_price', 0.0)) # 使用 'avg_price' 或 'm_dAvgPrice'
|
||||||
|
market_value = float(getattr(pos, 'market_value', 0.0)) # 使用 'market_value' 或 'm_dMarketValue'
|
||||||
# 计算盈亏比例
|
|
||||||
|
# 3. 根据现有字段计算缺失的信息
|
||||||
|
|
||||||
|
# 计算市价 (Market Price)
|
||||||
|
# 正如您所说,通过 市值 / 总数量 来计算,并处理总数量为0的情况
|
||||||
|
market_price = market_value / total_qty if total_qty > 0 else 0.0
|
||||||
|
|
||||||
|
# 计算持仓成本 (Position Cost)
|
||||||
|
position_cost = cost_price * total_qty
|
||||||
|
|
||||||
|
# 计算持仓盈亏 (Profit/Loss)
|
||||||
|
# 盈亏 = 总市值 - 总成本
|
||||||
|
profit_loss = market_value - position_cost
|
||||||
|
|
||||||
|
# 计算盈亏比例 (Profit/Loss Ratio)
|
||||||
if position_cost > 0:
|
if position_cost > 0:
|
||||||
profit_loss_ratio = (profit_loss / position_cost) * 100
|
profit_loss_ratio = (profit_loss / position_cost) * 100
|
||||||
else:
|
else:
|
||||||
profit_loss_ratio = 0.0
|
profit_loss_ratio = 0.0 # 如果成本为0,则盈亏比例也为0
|
||||||
|
|
||||||
if total_qty > 0:
|
# if total_qty > 0:
|
||||||
dbm.upsert_position_snapshot(
|
dbm.upsert_position_snapshot(
|
||||||
code, total_qty, available_qty, frozen_qty,
|
code, total_qty, available_qty, frozen_qty,
|
||||||
cost_price, market_price, market_value,
|
cost_price, market_price, market_value,
|
||||||
profit_loss, profit_loss_ratio
|
profit_loss, profit_loss_ratio
|
||||||
)
|
)
|
||||||
valid_codes.append(code)
|
valid_codes.append(code)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"处理持仓记录失败 {getattr(pos, 'stock_code', 'unknown')}: {e}")
|
logger.warning(f"处理持仓记录失败 {getattr(pos, 'stock_code', 'unknown')}: {e}")
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
|
|
@ -295,3 +295,6 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ XUEQIU_HEADERS = {
|
||||||
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
||||||
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||||
'Client-Version': 'v2.44.75',
|
'Client-Version': 'v2.44.75',
|
||||||
'Cookie': 'cookiesu=811743062689927; device_id=33fa3c7fca4a65f8f4354e10ed6b7470; smidV2=20250327160437f244626e8b47ca2a7992f30f389e4e790074ae48656a22f10; HMACCOUNT=8B64A2E3C307C8C0; s=c611ttmqlj; xq_is_login=1; u=8493411634; bid=4065a77ca57a69c83405d6e591ab5449_m8r2nhs8; __utma=1.434320573.1747189698.1747189698.1747189698.1; __utmc=1; __utmz=1.1747189698.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); snbim_minify=true; _c_WBKFRo=dsWgHR8i8KGPbIyhFlN51PHOzVuuNytvUAFppfkD; _nb_ioWEgULi=; aliyungf_tc=00c6b999835b16cea9e4a6aab36cca373a0976bf55ee74770d11f421f7119ad8; Hm_lvt_1db88642e346389874251b5a1eded6e3=1757464900; xq_a_token=0c9cfffc3d713428b4759d3c4e11fff91b618525; xqat=0c9cfffc3d713428b4759d3c4e11fff91b618525; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjg0OTM0MTE2MzQsImlzcyI6InVjIiwiZXhwIjoxNzYxNTYzMTU1LCJjdG0iOjE3NTg5NzExNTUyODksImNpZCI6ImQ5ZDBuNEFadXAifQ.KotT161D0bQF-m3HNgQFTknHqUpMUR_KWY7BAjiLKOaQocVghM85sCKUretUK5OpMDXMzGPhzxTWMs4VhGxKUHxHSu3inrbCw7rgGDtK0Lnr_6OXHkEMwDadN37V3AYbxKWaX609pACLK1q2cvRmGg94wAgj9KEqu76gdV4w4tRv4LupUJQgYb6M0GEVe7ejLs2_CdV5PV7j0PSjTtpjaeZWkc9YhW32vOyA6gg3fU9S4BQg7qgciYLI8AxiU-GYgFLyFSK2S7nvAngz8TEhNoQcClKrD4NeqqSj2nA5bh5_5FM8AbdbKGw6K8eIO0wkxCV2iUWBDMz-h160cX0GLw; xq_r_token=e586d0abb8de83a22a5d66be2f908954a50005b2; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=nGvY6/KwbtfD3HgPBzY+S0khnrVCqr4mPyfsZ27X+GjYcRWS61PMogABu5uvj/LAd4TJsSFQiYwdEepZMxwg3A%3D%3D; ssxmod_itna=1-iqmxyQG=KWqGqwD4qeqY5Lor=G2zDuDBP01DpxYK0CDmxjKideDUDtTxR3R27rQA04D7777mqqeCQ_4D/A0ieDZDGKQDqx0or0KBiBUPehSmRxdW9gTBThssUUo8vG8FV4x9WCL5ZG9emiTjxIx_D0aDmKDUx4x_BAYDeWFDCeDQxirDD4DAmPDFxibDimAb4DdkK8EvUOpIDGrDlKDRchok4GWDiPD76gDl6gpbDDCDiyjKV3Dixiaz3eDBomc41iI4xi3kb8_c8b5Yq4EWi2ID7v3DlPqjdnIKy/M4E3Eps/9=agju40ODG6CofPchOBoFO3o6=rlwIlqrDKpY4Kleiix57xhx_eQDrWD57IpDx54_xmmZ7hpY21Bb0nQi/AO4b3mDrnNDt0=a0q345Bi5Drhl54nmeYnAD_mmD_GWq7h1iGq7YzGxA8DqBD=4nz7xNImYnb47xxD; ssxmod_itna2=1-iqmxyQG=KWqGqwD4qeqY5Lor=G2zDuDBP01DpxYK0CDmxjKideDUDtTxR3R27rQA04D7777mqqeCQ4DW_QRiAwxKA07vi3WDj4pxkh3pfaDlxTMHwkxxRl_UFFyKFmUR1v7kCiqQHALxyxuseYn8Q79bLg08eBKxkZwGFEy8ZxTGW7YkIrrzM=5YCx_Gem5Qg2HvQz9AhR0FvxfOG7AQwzoPjSpGmtApnKdwC4uUuzI6eDo2Bedxmf8L2fgms1KnurZO0K=m0ifvg8yDYb=qs=GimaBFojOsWf01ibDy6ZP5DLpur3mS//PdQPR0PqEEqiKseLxQQ3iKiC3ijQ5zKLELcAULPdKD6Q86ejjQKAk6K3leiePYGxdGpYpDbO3YPKa_x4RPTxTif5T3mOIGa8TCY44Y4hWn1AQq7G1nDQ7GQ7D5BDxzWw8bz3D; is_overseas=0; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1759979780',
|
'Cookie': 'cookiesu=811743062689927; device_id=33fa3c7fca4a65f8f4354e10ed6b7470; smidV2=20250327160437f244626e8b47ca2a7992f30f389e4e790074ae48656a22f10; HMACCOUNT=8B64A2E3C307C8C0; s=c611ttmqlj; xq_is_login=1; u=8493411634; bid=4065a77ca57a69c83405d6e591ab5449_m8r2nhs8; __utma=1.434320573.1747189698.1747189698.1747189698.1; __utmc=1; __utmz=1.1747189698.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); snbim_minify=true; _c_WBKFRo=dsWgHR8i8KGPbIyhFlN51PHOzVuuNytvUAFppfkD; _nb_ioWEgULi=; aliyungf_tc=00c6b999835b16cea9e4a6aab36cca373a0976bf55ee74770d11f421f7119ad8; Hm_lvt_1db88642e346389874251b5a1eded6e3=1760079937; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=cL1C7SjsshX5JK0Re7ihF6dZxxNiOAPyX1snDwPjwIcOT4loJZk0lvOmuGrSePCN89PG5UQYB5CVV6XtcSAIMw%3D%3D; xq_a_token=716a8b0d84aecdccf652cf125bfe9733d3a66c6e; xqat=716a8b0d84aecdccf652cf125bfe9733d3a66c6e; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjg0OTM0MTE2MzQsImlzcyI6InVjIiwiZXhwIjoxNzYyOTEyMjgyLCJjdG0iOjE3NjAzMjAyODI0MzEsImNpZCI6ImQ5ZDBuNEFadXAifQ.cFoUZrJkZMr55bCXCQpoPsTfLpyU6Es3ieEgNLwCsSd_ty3jysDF8eVjaZCXo9u0qcl15kK2tb1KYaA2_cqpFOhhfBBE6WvHIaMtzp8EWW5LhCuCfX0cGgsqua9hsE6HLCIxAM7ZUzYvR_bm-tRJWkVUrKFyyoTLn6NVSyub8eya2y9Dpd0B3n-FbDUbuRs6QIVNOVnE8OlGsBXHUOdMTo2s1-PGzZ3Qaw-LwBR3hkCBLZzeIkpGllESWATfNQ0xgOtRXwG-HO189JqmdEtEEpXiu1aXvvOerNuCxJpY-1QHS7UNYrUy6u36bz6xKVzcXnfrTn_aannNoTGDuMldEg; xq_r_token=eec2f02f63dc672682f60584946e2e697f19d846; acw_tc=b65cfd2717603418882762100e56b805ecd396f75d259a0af2bbedda624afd; is_overseas=0; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1760342262; ssxmod_itna=1-iqmxyQG=KWqGqwD4qeqY5Lor=G2zDuDBP01DpxYK0CDmxjKideDUDtTxR3RpDDq7x4/K07np1DBw4qrDnqD80DQeDvexkGwzMFnw2b33N7hRtdeSEjvFpvTVc4RnEXGF=MSnVriUCrKexGLDY=DCqe4exrrDYYfDBYD74G_DDeDih3Dj4GmDGYtOeDFfCuNq6R5=xDwDB=DmLqTfeDEDG3D0fRxFLv3wW4DGqDS8=BWxD3Df4uzDDXz_UvqIj5DbEbN5laTS77ilm43feDMWxGX7BCsqK1cMhWNxHCLrS2FkPGuDG6Ogj0tQqQO3i2YLo44QDmmirjP4BDr0DpD43BDd0dimGxY_4BD3liiDxe4eqiD3nqdBDwn010bm2R6jpxjAMEX/aEVPirDr7eIgnv6lpz7GAOGT9bzlwGmDT/0Y_x=FRY0b47xxD; ssxmod_itna2=1-iqmxyQG=KWqGqwD4qeqY5Lor=G2zDuDBP01DpxYK0CDmxjKideDUDtTxR3RpDDq7x4/K07nPrDGbWNrdkSmoT3Mnld744WYBD8yz4D',
|
||||||
'Referer': 'https://weibo.com/u/7735765253',
|
'Referer': 'https://weibo.com/u/7735765253',
|
||||||
'Sec-Ch-Ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
|
'Sec-Ch-Ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
|
||||||
'Sec-Ch-Ua-Mobile': '?0',
|
'Sec-Ch-Ua-Mobile': '?0',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue