You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NinjaTrader 8获取配置分享服务报错:Globals无ShareServices定义

NinjaTrader 8指标中获取已配置分享服务名称的正确方法

错误原因

你遇到的“Globals不包含ShareServices的定义”错误,本质是NinjaTrader 8中ShareServices属性属于NinjaTrader.Core命名空间下的Globals类,代码未正确引用该命名空间,导致无法识别属性。

解决方案

1. 添加必要的命名空间引用

在指标代码的顶部添加以下引用,确保能访问到目标类和Linq方法:

using NinjaTrader.Core;
using System.Linq;

2. 修正后的完整代码示例

替换原有代码为以下内容:

else if (State == State.Configure)
{
    // 获取所有Telegram相关的分享服务名称
    telegramServiceNames = Globals.ShareServices
        .Where(s => s.Name.ToLower().Contains("telegram"))
        .Select(s => s.Name)
        .ToList();
    if (telegramServiceNames.Count > 0 && string.IsNullOrEmpty(SelectedServiceName))
    {
        SelectedServiceName = telegramServiceNames[0];
    }

    // 获取所有账户名称
    accountNames = Account.All.Select(a => a.Name).ToList();
    if (accountNames.Count > 0 && string.IsNullOrEmpty(SelectedAccountName))
    {
        SelectedAccountName = accountNames[0];
    }
}

else if (State == State.DataLoaded)
{
    // 获取选中的Telegram分享服务
    selectedTelegramService = Globals.ShareServices.FirstOrDefault(s => s.Name == SelectedServiceName);

    // 获取选中的账户
    selectedAccount = Account.All.FirstOrDefault(a => a.Name == SelectedAccountName);
    if (selectedAccount != null)
    {
        selectedAccount.ExecutionUpdate += OnExecutionUpdate;
    }
}

3. 额外注意事项

  • 新建的NinjaTrader指标项目默认会引用核心程序集,无需额外配置;若为手动创建的项目,需确认已添加对NinjaTrader.Core.dll的引用。
  • Globals.ShareServices返回IEnumerable<ShareService>类型,每个实例包含Name、Description等属性,可根据需求调用。

内容的提问来源于stack exchange,提问作者Shubham Vyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:33:16