三招玩转XMO-Studio
产品地址:https://studio.xm-opt.com
- 产品开通
- 使用xmo-data
- 使用XMCoder
招式1:产品开通
1. 账号注册
使用产品前需注册XMO账号,详情可见 注册/登录
2. 服务开通
首次使用需进行身份认证--->认证完毕,同意XMO-STUDIO开通协议--->联系工作人员签署试用协议并审核
签署成功,默认分配2核(CPU)4G(内存)的资源。


3. 获取密钥
你需要在「 官网--个人中心--密钥管理」中获得身份验证的APIkey,用于后续编程中必要的鉴权。您有两种使用方式
- 在创建项目时配置XMO-APIKEY:适合多项目或统一配置场景,不用在代码中暴露 token;即client = Client()
- 初始化Client传参:适合临时测试、脚本开发等场景,方便快速验。
即client = Client(token = "您的官网APIkey字符串")
招式2:使用xmo-data
xmo-data 统一了全国市场披露数据+气象数据,提供标准化API服务接口。(仅限开通Studio的用户在webIDE中直接使用)
使用步骤
- Studio左侧菜单栏「开发」---创建新项目---分配实例---打开webIDE(VSCode/JupyterLab)
- webIDE左侧菜单栏「EXPLORER」---新建脚本文件用于编程(以.py或.ipynb后缀结尾)
- .py 是纯文本的Python脚本文件,适合编写可部署、模块化的程序代码。
- .ipynb 是用于交互式编程的笔记本文件,支持代码分块执行、图表展示和Markdown说明,常用于数据分析与教学。您可分步骤执行代码,并查看运行结果。
- 根据需求,编辑对应python语句并运行👇
- 查询数据集
# 查询账号下可以使用的数据集或数据列基本信息
# client 是指初始化客户端,若您在创建项目时已配置XMO-APIKEY,可直接使用client = Client()
# 若您仅看自己的数据,可使用type=“USER”查询;若想查看所有数据(包括公开数据和您的数据)无需使用此语句。
from xmodata.client import Client
client = Client(token = "您的官网APIkey字符串")
meta_cols = client.list_datacol_meta(page_no=1, page_size=1000, type="USER", printout=True)

# 列出您拥有的数据集
from xmodata.client import Client
client = Client()
ds = client.list_datasets(printout=True)
ds
- 创建数据集
# 创建数据集
from xmodata.models import DataSetColCreateParam
from xmodata.client import Client
client = Client()
cols = client.make_cols(cols=[
DataSetColCreateParam(alias="自定义列名称1", meta_name="系统提供的数据列名称", params={"province":"您需要查询的省份"}),
DataSetColCreateParam(alias="自定义列名称2", meta_name="系统提供的数据列名称", params={"province":"您需要查询的省份"}),
])
#设置要获取的数据列的开始时间和结束时间
dataset = client.create_dataset("自定义数据集名称1", start="2025-01-01", end="2025-03-02", cols=cols)
- 读取数据集
# 同步数据集数据
from xmodata.client import Client
client = Client()
client.sync_data_for_dataset(name="自定义数据集名称1")
# 查询数据集
from xmodata.client import Client
client = Client()
df = client.query_data(name="自定义列名称1")
print(df)

- 编辑数据集(下载、删除、加载、上传)
# 下载数据集
from xmodata.client import Client
client = Client()
client.download_dataset("自定义数据集名称1", "自定义文件名称.csv")
# 删除数据集
from xmodata.client import Client
client = Client()
client.delete_dataset("自定义数据集名称1")
# 加载用户数据
import pandas as pd
load_df = pd.read_csv("自定义文件名称1")
load_df = load_df[["times","自定义列名称1"]]
load_df = load_df.rename(columns={"自定义列名称1":"重命名"})
#上传用户数据
from xmodata.client import Client
client = Client()
client.upload_data_to_user_col_meta(df=load_df, tags={"province":"山东省"})
# 删除数据集
from xmodata.client import Client
client = Client()
client.delete_dataset("自定义列名称1")
# 删除用户数据列
from xmodata.client import Client
client = Client()
client.delete_user_datacol_meta("自定义列名称1")
实操案例
💡 例如创建山东省电价分析数据集示例代码
# 创建数据集
from xmodata.models import DataSetColCreateParam
from xmodata.client import Client
client = Client()
# 假设你有以下导入
# from your_package import DataSetColCreateParam, client
# 1. 整理山东省市场数据对应的 meta_name
# 你可将所有需要的 “披露数据” meta_name 都列在下面
shandong_market_meta_names = [
{"meta_name": "系统负荷实际值", "alias": "load_actual"},
{"meta_name": "系统负荷预测值", "alias": "load_forecast"},
{"meta_name": "竞价空间实际值", "alias": "bidding_space_actual"},
{"meta_name": "竞价空间预测值", "alias": "bidding_space_forecast"},
{"meta_name": "实时出清电价", "alias": "rt_clearing_price"},
{"meta_name": "日前出清电价", "alias": "da_clearing_price"},
{"meta_name": "联络线实际值", "alias": "tie_line_actual"},
{"meta_name": "地方电厂发电实际值", "alias": "local_gen_actual"},
{"meta_name": "风电实际值", "alias": "wind_actual"},
{"meta_name": "光伏实际值", "alias": "solar_actual"},
{"meta_name": "地方电厂发电预测值", "alias": "local_gen_forecast"},
{"meta_name": "联络线预测值", "alias": "tie_line_forecast"},
{"meta_name": "风电预 测值", "alias": "wind_forecast"},
{"meta_name": "光伏预测值", "alias": "solar_forecast"},
{"meta_name": "XFusion-日前电价预测值", "alias": "XFusion_day_ahead"},
{"meta_name": "XFusion-实时电价预测值", "alias": "XFusion_real_time"},
{"meta_name": "XFusion-价差预测", "alias": "XFusion_diff_price"},
{"meta_name": "Xperts-价差预测", "alias": "Xperts_diff_price"},
{"meta_name": "XFusion-价差方向预测", "alias": "XFusion_diff"},
{"meta_name": "XFusion-相似时刻Top1", "alias": "XFusion_similar_period"},
]
# 2. 整理城市气象数据对应的 meta_name
# 你可将所有需要的 “城市天气” meta_name 都列在下面
shandong_weather_meta_names = [
{"meta_name": "城市-温度(2米)", "alias": "temp_2m"},
{"meta_name": "城市-体感温度", "alias": "temp_feel"},
{"meta_name": "城市-天气代码", "alias": "weather_code"},
{"meta_name": "城市-降水量", "alias": "precipitation"},
{"meta_name": "城市-雨量", "alias": "rainfall"},
{"meta_name": "城市-降雪量", "alias": "snowfall"},
]
# 3. 山东省所有城市
shandong_cities = [
"济南",
"潍坊",
"临沂",
"德州",
"滨州",
"泰安",
"烟台",
"青岛"
]
# 4. 开始构造需要的列
cols = []
# 4.1 加载山东省份市场数据(省级别)
for item in shandong_market_meta_names:
cols.append(
DataSetColCreateParam(
alias=item["alias"],
meta_name=item["meta_name"],
params={"province": "山东省"}
)
)
# 4.2 加载山东省各城市气象数据(城市级别)
for city in shandong_cities:
for item in shandong_weather_meta_names:
alias = f"{city}_{item['alias']}" # 给每个城市的列起一个区分度高的 alias
area_value = f"山东省-{city}市"
cols.append(
DataSetColCreateParam(
alias=alias,
meta_name=item["meta_name"],
params={"area": area_value}
)
)
# 5. 最后统一通过 client.make_cols 生成
final_cols = client.make_cols(cols=cols)
dataset = client.create_dataset("test", start="2024-06-20", end="2025-04-10", cols=final_cols)
client.sync_data_for_dataset(name="test")
df = client.query_data(name="test")
print(df)
client.download_dataset("test", "test1.csv")
招式3:使用XMCoder
XMCoder是XMO-Studio中强大的代码辅助工具,具备电力市场相关算法、分析、统计报告一键生成能力。旨在帮助用户快速编写、调试和管理算法代码,通过智能提示和自动补全功能,提升开发效率,降低编码难度。
在哪里找到XMCoder?
- Studio左侧菜单栏--->开发
- 创建新项目--->创建并打开WebIDE(或 点击已分配好实例的项目--->打开webIDE )

- 点击WebIDE左侧菜单栏--->XMCoder(长得像机器人🤖的按钮)

在下面任务对话栏中输 入任务指令

使用方式
- 通过在任务栏中输入任务指令使用XMCoder
1️⃣ 选择指令模式
XMCoder有两种指令模式,一个是计划(Plan)一个是操作(Act)
- 计划模式(Plan)主要用于规划和讨论
- 操作模式(Act)主要用于执行具体操作(如读取文件、执行命令等)
📖 参考问题:
- 算法开发:“基于xx.csv数据集,使用xmopy写一个江苏省现货出清算法/日前电价预测算法”
- 数据分析:“使用xx.csv文件,两两数据进行相关性分析,并生成交互式可视化分析报告”
2️⃣ 点击 运行 按钮提交任务。
- XMCoder将自动解析任务需求,识别关键要素(如 “电价预测”、“江苏地区”、“xmopy工具”等)。
- 若运行环境/数据支持 → XMCoder自动执行任务,并实时反馈进度。
❌ 若运行环境/数据缺失 → XMCoder提供