This commit is contained in:
lz_db
2025-12-04 22:03:02 +08:00
parent a7152f58ea
commit 878901826c
8 changed files with 604 additions and 191 deletions

204
数据库.sql Normal file
View File

@@ -0,0 +1,204 @@
/*
Navicat Premium Data Transfer
Source Server : lz_mysql_host
Source Server Type : MySQL
Source Server Version : 50740
Source Host : localhost:3306
Source Schema : lz_app_test
Target Server Type : MySQL
Target Server Version : 50740
File Encoding : 65001
Date: 04/12/2025 21:57:38
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for deh_strategy_asset_new
-- ----------------------------
DROP TABLE IF EXISTS `deh_strategy_asset_new`;
CREATE TABLE `deh_strategy_asset_new` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`st_id` int(11) NOT NULL COMMENT '策略id',
`asset` varchar(32) NOT NULL COMMENT '资产名称',
`win_rate` decimal(11,8) NOT NULL DEFAULT '0.00000000' COMMENT '胜率',
`aror` decimal(12,8) NOT NULL DEFAULT '0.00000000' COMMENT '年化收益',
`networth` decimal(12,8) NOT NULL DEFAULT '1.00000000' COMMENT '净值',
`max_down` decimal(12,8) NOT NULL DEFAULT '0.00000000' COMMENT '最大回撤',
`profit` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '总收益',
`profit_rate` decimal(12,8) NOT NULL DEFAULT '0.00000000' COMMENT '总收益率',
`current_num` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '资产数量',
`usd_num` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '价值美元数',
`deposit` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '总充值',
`withdrawal` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '总提现',
`other` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '其他总变动',
`time` int(11) NOT NULL COMMENT 'unix时间戳',
PRIMARY KEY (`id`) USING BTREE,
KEY `st_id` (`st_id`) USING BTREE,
KEY `asset` (`asset`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='策略资产表';
-- ----------------------------
-- Table structure for deh_strategy_kx_new
-- ----------------------------
DROP TABLE IF EXISTS `deh_strategy_kx_new`;
CREATE TABLE `deh_strategy_kx_new` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`st_id` int(11) DEFAULT NULL COMMENT '策略id',
`k_id` int(11) DEFAULT '0' COMMENT '对应strategy_key 的ID',
`asset` varchar(32) DEFAULT NULL COMMENT '资产名',
`balance` decimal(20,8) DEFAULT '0.00000000' COMMENT '当日账户金额',
`withdrawal` decimal(20,8) DEFAULT '0.00000000' COMMENT '当日提现',
`deposit` decimal(20,8) DEFAULT '0.00000000' COMMENT '当日充值',
`other` decimal(20,8) DEFAULT '0.00000000' COMMENT '当日其他',
`profit` decimal(20,8) DEFAULT '0.00000000' COMMENT '当日利润',
`time` int(11) DEFAULT NULL COMMENT '时间',
`up_time` datetime DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `kid_asset_time` (`k_id`,`asset`,`time`) USING BTREE,
KEY `st_id_asset_time` (`st_id`,`asset`,`time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=259 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for deh_strategy_networth
-- ----------------------------
DROP TABLE IF EXISTS `deh_strategy_networth`;
CREATE TABLE `deh_strategy_networth` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`st_id` int(11) DEFAULT '0' COMMENT '策略ID对应deh_strategy表的ID',
`asset` varchar(32) CHARACTER SET utf8 DEFAULT NULL COMMENT '资产名',
`share` decimal(20,8) DEFAULT '0.00000000' COMMENT '份额-净值算法',
`net_worth` decimal(13,8) DEFAULT '0.00000000' COMMENT '净值-净值算法',
`total_profit` decimal(20,8) DEFAULT NULL COMMENT '累计利润',
`time` int(10) DEFAULT '0' COMMENT '日期',
`up_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
PRIMARY KEY (`id`),
KEY `net_worth_index` (`st_id`,`asset`,`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Table structure for deh_strategy_order_new
-- ----------------------------
DROP TABLE IF EXISTS `deh_strategy_order_new`;
CREATE TABLE `deh_strategy_order_new` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`st_id` int(11) DEFAULT NULL COMMENT '策略id',
`k_id` int(11) DEFAULT '0' COMMENT '对应strategy_key 的ID',
`asset` varchar(32) DEFAULT NULL COMMENT '资产名称',
`order_id` varchar(765) DEFAULT NULL COMMENT '订单id',
`symbol` varchar(120) DEFAULT NULL COMMENT '交易对',
`side` varchar(120) DEFAULT NULL COMMENT '订单方向',
`price` float DEFAULT NULL COMMENT '订单价格',
`time` int(11) DEFAULT NULL COMMENT '订单时间',
`order_qty` float DEFAULT NULL COMMENT '订单挂单数量',
`last_qty` float DEFAULT NULL COMMENT '订单成交数量',
`avg_price` float DEFAULT NULL COMMENT '订单成交均价',
`exchange_id` int(11) DEFAULT NULL COMMENT '交易所id',
PRIMARY KEY (`id`),
UNIQUE KEY `order_index` (`order_id`,`symbol`,`k_id`,`side`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1269 DEFAULT CHARSET=utf8 COMMENT='订单表';
-- ----------------------------
-- Table structure for deh_strategy_position_new
-- ----------------------------
DROP TABLE IF EXISTS `deh_strategy_position_new`;
CREATE TABLE `deh_strategy_position_new` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`st_id` int(11) NOT NULL COMMENT '策略id',
`k_id` int(11) DEFAULT '0' COMMENT '对应strategy_key 的ID',
`asset` varchar(32) DEFAULT '' COMMENT '使用资产名称,如BTC或USDT',
`symbol` varchar(50) NOT NULL COMMENT '交易对',
`price` float DEFAULT NULL COMMENT '持仓均价',
`side` varchar(10) NOT NULL COMMENT '方向',
`sum` float NOT NULL COMMENT '仓位(张数)',
`asset_num` decimal(20,8) DEFAULT '0.00000000' COMMENT '资产数量',
`asset_profit` decimal(20,8) DEFAULT NULL COMMENT '利润数量',
`leverage` int(11) DEFAULT '0' COMMENT '杠杆倍数',
`uptime` int(11) NOT NULL COMMENT '更新时间',
`profit_price` decimal(20,8) DEFAULT '0.00000000' COMMENT '止盈价格',
`stop_price` decimal(20,8) DEFAULT '0.00000000' COMMENT '止损价格',
`liquidation_price` decimal(20,8) DEFAULT '0.00000000' COMMENT '强平价格',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `st_id_asset_sum` (`k_id`,`st_id`,`symbol`,`side`) USING BTREE,
KEY `k_id` (`k_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='持仓表';
-- ----------------------------
-- Event structure for auto_del
-- ----------------------------
DROP EVENT IF EXISTS `auto_del`;
delimiter ;;
CREATE EVENT `auto_del`
ON SCHEDULE
EVERY '1' MINUTE STARTS '2021-11-01 00:00:00'
DO BEGIN
DELETE FROM deh_strategy_kx_new WHERE CONCAT(k_id,asset,time) IN (
SELECT p_key FROM (
SELECT CONCAT(k_id,asset,time) AS p_key FROM deh_strategy_kx_new GROUP BY CONCAT(k_id,asset,time) HAVING count(CONCAT(k_id,asset,time)) > 1)
AS tmp
) AND id NOT IN (
SELECT id FROM (
SELECT min(id) AS id FROM deh_strategy_kx_new GROUP BY CONCAT(k_id,asset,time) HAVING count(CONCAT(k_id,asset,time)) > 1)
AS tmp1
);
DELETE FROM deh_strategy_networth WHERE CONCAT(st_id,asset,time) IN (
SELECT p_key FROM (
SELECT CONCAT(st_id,asset,time) AS p_key FROM deh_strategy_networth GROUP BY CONCAT(st_id,asset,time) HAVING count(CONCAT(st_id,asset,time)) > 1)
AS tmp
) AND id NOT IN (
SELECT id FROM (
SELECT min(id) AS id FROM deh_strategy_networth GROUP BY CONCAT(st_id,asset,time) HAVING count(CONCAT(st_id,asset,time)) > 1)
AS tmp1
);
DELETE FROM deh_strategy_asset_new WHERE CONCAT(st_id,asset) IN (
SELECT p_key FROM (
SELECT CONCAT(st_id,asset) AS p_key FROM deh_strategy_asset_new GROUP BY CONCAT(st_id,asset) HAVING count(CONCAT(st_id,asset)) > 1)
AS tmp
) AND id NOT IN (
SELECT id FROM (
SELECT min(id) AS id FROM deh_strategy_asset_new GROUP BY CONCAT(st_id,asset) HAVING count(CONCAT(st_id,asset)) > 1)
AS tmp1
);
END
;;
delimiter ;
-- ----------------------------
-- Event structure for auto_del_order
-- ----------------------------
DROP EVENT IF EXISTS `auto_del_order`;
delimiter ;;
CREATE EVENT `auto_del_order`
ON SCHEDULE
EVERY '1' HOUR STARTS '2021-11-01 00:00:00'
DO BEGIN
-- DELETE FROM `deh_strategy_order_new` WHERE `time` < UNIX_TIMESTAMP(NOW() - INTERVAL 3 DAY);
DELETE FROM `deh_strategy_order_new` WHERE `time` < UNIX_TIMESTAMP(NOW() - INTERVAL 3 DAY) AND st_id IN (SELECT st_id FROM `deh_strategy` WHERE is_ia=1);
DELETE FROM `deh_strategy_order_new` WHERE `time` < UNIX_TIMESTAMP(NOW() - INTERVAL 30 DAY) AND st_id IN (SELECT st_id FROM `deh_strategy` WHERE is_ia=0);
DELETE from `deh_strategy_order_new` where order_id in (
select order_id from (
SELECT order_id FROM `deh_strategy_order_new` GROUP BY order_id HAVING count(order_id) > 1)
as tmp
) and id not in (
select id from (
SELECT min(id) as id FROM `deh_strategy_order_new` GROUP BY order_id HAVING count(order_id) > 1)
as tmp1
);
END
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;