New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

koishi-plugin-stock-market

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koishi-plugin-stock-market

Koishi模拟股票投资插件,提供完整的股票市场模拟功能

latest
npmnpm
Version
1.0.5
Version published
Maintainers
1
Created
Source

Koishi 股票市场模拟插件

一个功能完整的 Koishi 股票投资模拟插件,提供真实的股票市场交易体验。

功能特性

📊 完整的股票市场系统

  • 20只精选模拟股票,覆盖多个行业
  • 实时价格波动(可配置更新间隔)
  • 真实的涨跌幅限制(基于开盘价)
  • 完整的股市指标(开盘价、最高价、最低价、成交量等)
  • 自动交易时间控制(每日定时开市/收市)
  • 周末自动休市
  • 每日自动重置市场数据

💰 账户管理

  • 用户开户系统
  • 现金和持仓管理
  • 实时资产计算
  • 盈亏统计(基于累计入金)
  • 数据库持久化存储

📈 交易功能

  • 买入/卖出股票(仅交易时间可用)
  • 交易手续费计算(支持最低手续费)
  • 持仓成本追踪
  • 交易记录查询
  • 净盈亏计算(扣除手续费)

🏆 社交功能

  • 资产排行榜(TOP 10)
  • 多用户竞争
  • 用户ID隐私保护

安装

# 在 Koishi 项目的目录下安装
npm install koishi-plugin-stock-market

配置

在 Koishi 配置文件中添加插件:

plugins:
  stock-market:
    initialCash: 100000          # 初始资金(元)
    tradeFee: 0.003             # 交易手续费率(0.3%)
    minFee: 5                   # 最低手续费(元)
    minTradeAmount: 1000        # 最小交易金额(元)
    updateInterval: 5           # 市场更新间隔(分钟)
    maxChangePercent: 0.10      # 单日最大涨跌幅(10%)
    enableMarket: true           # 是否启用市场
    marketOpenHour: 9           # 开市时间(小时)
    marketOpenMinute: 30        # 开市时间(分钟)
    marketCloseHour: 15         # 收市时间(小时)
    marketCloseMinute: 0        # 收市时间(分钟)
    enableAutoReset: true       # 是否启用每日自动重置市场

指令说明

账户相关

指令说明
股票开户开通股票账户,获得初始资金
我的账户查看账户余额、持仓和盈亏
交易记录查看最近的交易记录

市场相关

指令说明
股票市场查看市场整体状态
股票列表查看所有股票信息
股票列表 <关键词>按股票代码、名称或行业搜索
股票查询 <代码>查看单只股票的详细信息

交易相关

指令说明
股票买入 <代码> <数量>买入指定数量的股票
股票卖出 <代码> <数量>卖出指定数量的股票

其他

指令说明
股票排行查看资产排行榜 TOP 10
股票帮助显示所有指令帮助

交易规则

  • 最小交易单位: 股票交易数量必须是 100 股的整数倍(1 手 = 100 股)
  • 交易手续费: 每笔交易收取 max(交易金额 × 手续费率, 最低手续费) 的手续费
  • 最小交易金额: 单笔交易金额不能低于配置的最小限制(默认 1000 元)
  • 涨跌幅限制: 单日涨跌幅限制为 ±10%(基于开盘价),价格会被严格限制在此范围内
  • 交易时间: 仅在配置的交易时间内(默认 9:30-15:00)可以进行交易
  • 周末休市: 周六、周日自动休市,无法交易
  • 市场更新: 市场价格每 5 分钟(可配置)自动更新一次
  • 盈亏计算: 显示的盈亏为净盈亏,已扣除交易手续费
  • 数据持久化: 所有账户、持仓、交易记录都会保存到数据库

股票列表

代码名称行业
000001平安银行银行
000002万科A房地产
000858五粮液白酒
000876新希望农业
300750宁德时代新能源
300059东方财富证券
601318中国平安保险
600519贵州茅台白酒
600036招商银行银行
601888中国中免旅游零售
000725京东方A电子
002415海康威视安防
601012隆基绿能光伏
600690海尔智家家电
000333美的集团家电
002594比亚迪汽车
601919中远海控航运
600276恒瑞医药医药
300760迈瑞医疗医疗器械

价格波动机制

股票价格采用随机波动模型,基于以下因素:

  • 基准价格: 每只股票都有基准价格,价格不会低于基准价格的 50%
  • 波动率: 每只股票有不同的波动率,反映其历史波动特性
  • 涨跌幅限制: 单日涨跌幅限制为配置的百分比(默认 10%),价格严格限制在 [open * (1 - maxChangePercent), open * (1 + maxChangePercent)] 范围内
  • 趋势判断: 根据涨跌幅判断当前趋势(上涨 >3% / 下跌 <-3% / 震荡)
  • 成交量模拟: 成交量根据价格变动幅度动态生成,价格变动越大成交量越大
  • 每日重置: 每个交易日自动重置开盘价、最高价、最低价和涨跌幅

使用示例

用户: 股票开户
Bot: 🎉 股票账户开通成功!
     💰 初始资金: 100000.00 元
     📊 使用 "股票帮助" 查看更多指令

用户: 股票列表 白酒
Bot: 📊 股票列表
     ━━━━━━━━━━━━━━━━
     ⚪ 000858 五粮液
         价格: 180.50 | 涨跌: +0.00 (+0.00%)
         ...

用户: 股票买入 000858 100
Bot: ✅ 买入成功!五粮液 100 股,价格: 180.50 元,手续费: 54.15 元

用户: 我的账户
Bot: 👤 我的股票账户
     ━━━━━━━━━━━━━━━━
     💰 现金余额: 99845.85 元
     📊 持仓市值: 18050.00 元
     ...

开发

# 克隆项目
git clone <repository-url>
cd koishi-plugin-stock-market

# 安装依赖
npm install

# 开发模式
npm run dev

# 构建
npm run build

技术架构

  • TypeScript: 类型安全的开发体验
  • Koishi Framework: 基于 Koishi 4.x 生态
  • 数据库持久化: 使用 Koishi 数据库 API 存储账户、持仓和交易记录
  • 模块化设计: 清晰的代码结构,易于扩展
  • 异步操作: 关键交易操作使用 async/await 确保数据一致性

数据结构

Stock(股票)

{
  code: string          // 股票代码
  name: string          // 股票名称
  industry: string      // 所属行业
  basePrice: number     // 基准价格
  price: number         // 当前价格
  open: number          // 开盘价
  high: number          // 最高价
  low: number           // 最低价
  change: number        // 涨跌额
  changePercent: number // 涨跌幅
  volume: number        // 成交量(手)
  turnover: number      // 成交额(万)
  volatility: number    // 波动率
  trend: 'bull' | 'bear' | 'neutral' // 趋势
  lastVolume: number    // 上次成交量
}

UserAccount(用户账户)

{
  userId: string        // 用户ID
  cash: number          // 现金余额
  totalDeposit: number  // 累计入金总额
  totalAssets: number   // 总资产
  profit: number        // 总盈亏(基于累计入金)
  profitPercent: number // 盈亏比例
  createTime: number    // 开户时间
  lastTradeTime: number // 最后交易时间
}

TradeRecord(交易记录)

{
  id: string            // 记录ID(时间戳+随机数)
  userId: string        // 用户ID
  stockCode: string     // 股票代码
  stockName: string     // 股票名称
  type: 'buy' | 'sell'  // 交易类型
  price: number         // 交易价格
  shares: number        // 交易数量
  amount: number        // 交易金额
  fee: number           // 手续费
  netAmount: number     // 净金额
  profit: number        // 净盈亏(仅卖出时)
  time: number          // 交易时间
}

数据库表结构

插件使用 Koishi 数据库存储以下数据:

表名说明
stock_account用户账户信息
stock_position用户持仓信息
stock_trade交易记录

更新日志

v1.1.0

  • ✅ 新增数据库持久化支持,数据不再丢失
  • ✅ 新增交易时间控制(可配置开市/收市时间)
  • ✅ 新增周末自动休市功能
  • ✅ 新增每日自动重置市场数据
  • ✅ 新增最低手续费配置
  • ✅ 优化涨跌幅限制逻辑,严格限制在日内范围内
  • ✅ 优化手续费计算,确保净盈亏显示正确
  • ✅ 优化成交量生成,与价格变动幅度相关
  • ✅ 优化账户盈亏计算,基于累计入金而非固定初始资金
  • ✅ 优化排行榜用户ID显示,保护用户隐私
  • ✅ 修复股票搜索大小写敏感问题
  • ✅ 修复交易数量为0时的边界检查
  • ✅ 降低日志输出频率

v1.0.0

  • 🎉 初始版本发布
  • ✅ 基础股票市场功能
  • ✅ 账户管理
  • ✅ 交易功能
  • ✅ 排行榜

License

MIT

Keywords

koishi

FAQs

Package last updated on 28 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts