设置环境
要求
要与 StockSharp 一起工作,您需要:
- .NET 10(SDK 和运行时)— 下载
- IDE — Visual Studio 2022+, JetBrains Rider, 或 VS Code
- NuGet — 软件包管理器(内置于 Visual Studio 和 Rider 中)
验证 SDK 是否已安装:
dotnet --version
创建项目
Visual Studio 2022+
- 文件 → 新建 → 项目
- 选择 控制台应用程序 或 WPF 应用程序 模板
- 将目标框架设置为 .NET 10
JetBrains Rider
- 文件 → 新建解决方案
- 选择 .NET / .NET Core → 控制台应用程序
- 设置 目标框架:net10.0
命令行(CLI)
# 控制台应用程序
dotnet new console -n MyTradingApp --framework net10.0
cd MyTradingApp
# WPF 应用程序(仅限 Windows)
dotnet new wpf -n MyTradingGui --framework net10.0-windows
NuGet 软件包目录
StockSharp 通过 NuGet 分发。以下是按类别整理的完整软件包目录。
核心
| 软件包 | 描述 |
|---|---|
| StockSharp.Messages | 基础消息和合约。整个框架的基础 |
| StockSharp.BusinessEntities | 交易实体:交易品种、订单、交易、投资组合等 |
| StockSharp.Algo | 核心算法交易,连接器,订阅,K线 |
| StockSharp.Configuration | 配置管理,连接设置 |
| StockSharp.Localization | 本地化系统(默认英文) |
策略与指标
| 软件包 | 描述 |
|---|---|
| StockSharp.Algo.Strategies | 策略框架 — 基础策略类、持仓、盈亏 |
| StockSharp.Algo.Indicators | 100+ 技术指标(SMA, EMA, RSI, MACD, 布林带等) |
测试
| 软件包 | 描述 |
|---|---|
| StockSharp.Algo.Testing | 历史数据回测,交易模拟 |
存储与数据
| 软件包 | 描述 |
|---|---|
| StockSharp.Algo.Export | 市场数据导出(CSV、Excel、JSON 等) |
| StockSharp.Algo.Import | 从外部格式导入数据 |
分析与计算
| 软件包 | 描述 |
|---|---|
| StockSharp.Algo.Analytics | 分析脚本接口 |
| StockSharp.Algo.Compilation | 运行时代码编译 |
| StockSharp.Algo.Gpu | GPU加速指标计算(通过ILGPU的CUDA) |
GUI 组件(仅限 Windows)
| 软件包 | 描述 |
|---|---|
| StockSharp.Xaml | WPF 控件:工具、投资组合和订单表格 |
| StockSharp.Xaml.Charting | 烛线图,指标,股票曲线 |
| StockSharp.Charting.Interfaces | 图表组件接口 |
| StockSharp.Alerts.Interfaces | 警报系统接口 |
| StockSharp.Diagram.Core | 可视化策略设计器核心 |
连接器(交易所和经纪商)
每个连接器都是一个独立的 NuGet 封装。主要连接器:
| 套餐 | 交易所/经纪商 |
|---|---|
StockSharp.Binance |
Binance |
StockSharp.InteractiveBrokers |
互动经纪商 |
StockSharp.Fix |
FIX 协议(通用) |
StockSharp.Connectors.Coinbase |
Coinbase |
StockSharp.Connectors.BitStamp |
BitStamp |
StockSharp.Connectors.Bittrex |
Bittrex |
Note
有关连接器的完整列表,请参见 连接器 部分。某些连接器仅通过 私有 NuGet 服务器 提供。
本地化
基础 StockSharp.Localization 软件包包含英语。其他语言作为单独的软件包安装:
| 包 | 语言 |
|---|---|
StockSharp.Localization.ru |
俄语 |
StockSharp.Localization.zh |
中文 |
StockSharp.Localization.de |
德语 |
StockSharp.Localization.es |
西班牙语 |
StockSharp.Localization.ja |
日语 |
StockSharp.Localization.ko |
韩语 |
StockSharp.Localization.All |
所有语言(元包) |
也可提供:ar、bn、ca、cs、da、el、fa、fi、fr、he、hi、hu、it、jv、ms、my、nl、no、pa、pl、pt、ro、sk、sr、sv、ta、th、tl、tr、uk、uz、vi。
安装软件包
通过命令行界面(推荐)
# 核心包
dotnet add package StockSharp.Algo
dotnet add package StockSharp.Algo.Strategies
# 连接器(示例 — Binance)
dotnet add package StockSharp.Binance
# 指标
dotnet add package StockSharp.Algo.Indicators
# 回测
dotnet add package StockSharp.Algo.Testing
# 本地化(俄语)
dotnet add package StockSharp.Localization.ru
通过 Visual Studio
- 右键点击项目 → 管理 NuGet 包...
- 搜索
StockSharp - 选择所需的软件包 → 安装
所有依赖项都会自动安装。
通过 JetBrains Rider
- 右键点击项目 → 管理 NuGet 包
- 搜索
StockSharp - 选择软件包 → 安装
通过包管理器控制台 (Visual Studio)
Install-Package StockSharp.Algo
Install-Package StockSharp.Binance
Install-Package StockSharp.Algo.Strategies
私人 NuGet 服务器
某些组件(加密连接器等)仅通过面向注册用户的私人 NuGet 服务器提供。
方法1:通过URL中的令牌进行身份验证
- 在 StockSharp 网站上注册。
- 从你的个人账户复制令牌。
- 添加软件包源:
命令行界面:
dotnet nuget add source "https://nuget.stocksharp.com/{YOUR_TOKEN}/v3/index.json" --name StockSharpPrivate
Visual Studio: 打开 工具 → 选项 → NuGet 包管理器 → 包源 并添加一个 URL 为 https://nuget.stocksharp.com/{YOUR_TOKEN}/v3/index.json 的新源。
Rider: 打开 设置 → 构建、执行、部署 → NuGet → 源 并添加该源。
方法二:通过用户名和密码进行身份验证
- 添加一个 URL 为
https://nuget.stocksharp.com/x/v3/index.json的软件包源 - 当你尝试使用此资源时,会出现登录提示
- 输入您的 StockSharp 帐户凭据(或使用
x作为用户名,您的令牌作为密码)
命令行界面:
dotnet nuget add source "https://nuget.stocksharp.com/x/v3/index.json" --name StockSharpPrivate --username YOUR_LOGIN --password YOUR_PASSWORD --store-password-in-clear-text
Tip
要在 Windows 上重置已保存的凭据,请打开 控制面板 → 用户账户 → 凭据管理器,然后删除与 nuget.stocksharp.com 相关的条目。
更新软件包
命令行界面
# 检查可用更新
dotnet list package --outdated
# 更新指定包
dotnet add package StockSharp.Algo
Visual Studio
- 管理 NuGet 软件包... → 更新 标签
- 选择包 → 更新
骑手
- 管理 NuGet 软件包 → 升级 选项卡
- 选择软件包 → 升级
故障排除
版本不匹配
所有 StockSharp 包必须是相同版本。如果遇到类型或方法错误,请确保所有 StockSharp.* 包都更新到相同的版本。
在公共 NuGet 上未找到包
有些连接器只能通过私人服务器使用。请确保已添加正确的来源。
非 Windows 系统上的 GUI 问题
GUI 组件(StockSharp.Xaml, StockSharp.Xaml.Charting)仅在 Windows 上运行。在 Linux/macOS 上,请使用不带 GUI 包的控制台应用程序。
包还原错误
# 清理 NuGet 缓存
dotnet nuget locals all --clear
# 重试 restore
dotnet restore
项目文件结构 (.csproj)
极简(控制台交易机器人)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="StockSharp.Algo" Version="*" />
<PackageReference Include="StockSharp.Binance" Version="*" />
</ItemGroup>
</Project>
扩展(含指标和测试的策略)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<!-- 核心 -->
<PackageReference Include="StockSharp.Algo" Version="*" />
<PackageReference Include="StockSharp.Configuration" Version="*" />
<!-- 策略和指标 -->
<PackageReference Include="StockSharp.Algo.Strategies" Version="*" />
<PackageReference Include="StockSharp.Algo.Indicators" Version="*" />
<!-- 连接器 -->
<PackageReference Include="StockSharp.Binance" Version="*" />
<!-- 回测 -->
<PackageReference Include="StockSharp.Algo.Testing" Version="*" />
<!-- 本地化 -->
<PackageReference Include="StockSharp.Localization.ru" Version="*" />
</ItemGroup>
</Project>
带图表的WPF应用程序
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="StockSharp.Algo" Version="*" />
<PackageReference Include="StockSharp.Algo.Strategies" Version="*" />
<PackageReference Include="StockSharp.Xaml.Charting" Version="*" />
<PackageReference Include="StockSharp.Binance" Version="*" />
</ItemGroup>
</Project>
验证安装
创建一个最小化应用程序:
using StockSharp.Algo;
using StockSharp.BusinessEntities;
Console.WriteLine("StockSharp 已成功配置!");
var connector = new Connector();
Console.WriteLine($"连接器已创建: {connector}");
dotnet run
例子
StockSharp 的现成用法示例可在仓库的 Samples/ 目录中找到。它们涵盖了连接交易所、订阅数据、构建K线、指标、策略以及测试。