Stock Simulator
v8模拟炒股技能。当用户想要模拟炒股、学习投资、记录股票交易、查看股票收益时使用此技能。支持A股、港股、美股市场,提供股票推荐、购买记录、收益计算等功能。
运行时依赖
安装命令
点击复制技能文档
模拟炒股技能 (Stock Simulator) 概述
这是一个模拟炒股的技能,帮助用户在不投入真实资金的情况下体验股票投资。用户可以:
每天获取金融市场分析推荐 虚拟买入股票(按市场价格计算份额) 查看每日收益和累计收益 学习投资分析逻辑 前置要求 Python 3.x - 用于运行数据处理脚本 网络环境 - 访问A股/港股/美股数据 数据存储(技能自动管理)
技能会自动在以下位置创建数据目录:
workspace/stock_data/{用户ID}/ ├── config.json # 账户配置(自动创建) ├── holdings.json # 持仓数据(自动创建) ├── transactions.json # 交易记录(自动创建) └── profits.json # 收益数据(自动创建)
用户无需手动创建这些目录。
⚙️ 代理配置(仅当你的网络无法直接访问A股/港股/美股API时需要) 何时需要配置代理 如果你在中国大陆,且无法直接访问 Yahoo Finance、东方财富等API → 需要代理 如果你在海外或网络可以直接访问这些网站 → 无需配置 配置步骤 步骤1:创建脚本目录
在你的工作区内创建以下目录结构:
workspace/技能s/stock-simulator/scripts/
步骤2:创建 获取_market_data.py
在上述目录创建文件 获取_market_data.py,复制以下代码:
#!/usr/bin/env python3 # -- coding: utf-8 -- """股票数据获取脚本"""
导入 json 导入 urllib.请求 导入 sys 导入 os
# ====== 代理配置 ====== # 如果需要代理,取消注释以下两行并修改为你的代理地址 # PROXY = {'http': 'http://代理地址:端口', 'https': 'http://代理地址:端口'} # ======================
def 获取_stock_data(stock_code, market='cn'): url = "" if market == 'cn': url = f"https://push2.eastmoney.com/API/qt/stock/获取?secid=1.{stock_code}&fields=f2,f3,f4,f43,f44,f45,f57,f58" elif market == 'hk': url = f"https://qt.gtimg.cn/q=r_hk{stock_code}" elif market == 'us': url = f"https://查询1.finance.yahoo.com/v8/finance/图表/{stock_code}" try: req = urllib.请求.请求(url) req.添加_header('User-代理', 'Mozilla/5.0') # 只有配置了代理时才使用 if 'PROXY' in dir(): proxy_处理器 = urllib.请求.Proxy处理器(PROXY) opener = urllib.请求.build_opener(proxy_处理器) 响应 = opener.open(req, timeout=10) else: 响应 = urllib.请求.urlopen(req, timeout=10) data = json.loads(响应.read().decode('utf-8')) # 解析返回数据(根据市场类型) if market == 'cn': data_obj = data.获取('data', {}) if data_obj: return { 'code': data_obj.获取('f57'), 'name': data_obj.获取('f58'), 'price': (data_obj.获取('f43') or 0) / 100, 'change': (data_obj.获取('f44') or 0) / 10000, 'change_percent': (data_obj.获取('f45') or 0) / 10000, 'market': 'cn', 'source': 'eastmoney' } elif market == 'hk': 导入 re text = str(data) match = re.搜索(r'="([^"]+)"', text) if match: parts = match.group(1).split('~') if len(parts) > 4: return { 'code': parts[2], 'name': parts[1], 'price': float(parts[3]) if parts[3] else 0, 'change': float(parts[4]) - float(parts[3]) if parts[3] and parts[4] else 0, 'change_percent': 0, 'currency': 'HKD', 'market': 'hk', 'source': 'tencent' } elif market == 'us': 结果 = data.获取('图表', {}).获取('结果', []) if 结果: meta = 结果[0].获取('meta', {}) price = meta.获取('regularMarketPrice', 0) prev = meta.获取('previousClose', price) return { 'code': stock_code, 'name': meta.获取('shortName', stock_code), 'price': price, 'change': price - prev if price and prev else 0, 'change_percent': ((price - prev) / prev * 100) if prev and price else 0, 'currency': 'USD', 'market': 'us', 'source': 'yahoo' } except 异常 as e: return {'error': str(e), 'code': stock_code, 'market': market} return {'error': 'No data', 'code': stock_code}
if __name__ == '__mAIn__': if len(sys.argv) > 1: code = sys.argv[1] market = sys.argv[2] if len(sys.argv) > 2 else 'cn' print(json.dumps(获取_stock_data(code, market), ensure_ascii=False, indent=2))
关键点:
代码使用 if 'PROXY' in dir() 判断是否配置了代理 如果你没有配置代理变量,脚本会直接访问(无代理) 如果你配置了代理变量,脚本会使用代理 步骤3:测试脚本 python workspace/技能s/stock-simulator/scripts/获取_market_data.py 600519 cn python workspace/技能s/stock-simulator/scripts/获取_market_data.py 00700 hk python workspace/技能s/stock-simulator/scripts/获取_market_data.py AAPL us
使用方法 交互方式
对AI说:
"模拟炒股" - 开始使用技能 根据提示设置初始资金 选择操作:查看推荐、买入股票、查看收益 直接命令 模拟炒股,买入腾讯控股 10000元 模拟炒股,推荐股票 模拟炒股,我的收益
功能说明
- 初始化账户
- 股票推荐
- 买入股票
- 查看收益
版本: 1.0.0