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

Quantower策略中如何调用自定义Sniper指标获取数值?

在Quantower策略中获取自定义Sniper指标数值的解决方案

步骤1:确保Sniper指标已正确安装到Quantower

  • 打开Quantower脚本编辑器(快捷键Ctrl+E)。
  • 点击「导入」选择Sniper指标文件,或直接将指标代码粘贴到新建的指标脚本中。
  • 保存指标(确保代码命名空间为Trend,与原代码一致)。
  • 必要时重启Quantower,确保指标已加载到平台自定义指标库。

步骤2:修改Scalpie策略代码以加载Sniper指标

2.1 添加Sniper指标字段

在Scalpie类中新增私有字段:

private Indicator sniperIndicator;

2.2 在OnRun方法中初始化Sniper指标

在OnRun方法中,完成其他指标初始化后添加以下代码:

// 加载自定义Sniper指标,参数需与指标类属性名完全匹配
sniperIndicator = Core.Indicators.Custom("Sniper", 
    new Dictionary<string, object>
    {
        { "Period", 13 },
        { "SourcePrice", PriceType.Close },
        { "RSIMode", RSIMode.Exponential },
        { "VolatilityBand", 34 },
        { "StandardDeviation", 1.6185 },
        { "FastMaOnRSIPeriod", 2 },
        { "FastMAOnRSIMode", MaMode.SMA },
        { "CalculationType", IndicatorCalculationType.AllAvailableData }
    });

// 将Sniper指标绑定到历史数据管理器,同步计算
hdm.AddIndicator(sniperIndicator);

2.3 在OnUpdate方法中获取Sniper指标数值

在OnUpdate方法中通过GetValue获取指标各条线数值:

// 获取当前Bar的Sniper指标数值
double bbUp = sniperIndicator.GetValue(0, 0); // 第一条线:BB Up
double bbDown = sniperIndicator.GetValue(0, 1); // 第二条线:BB Down
double fastMaOnRsi = sniperIndicator.GetValue(0, 2); // 第三条线:Fast MA on RSI

// 示例:用指标数值判断交易信号
if (fastMaOnRsi > bbUp)
{
    // 做空信号逻辑
}
else if (fastMaOnRsi < bbDown)
{
    // 做多信号逻辑
}

关键注意事项

  • 指标名称匹配:Core.Indicators.Custom第一个参数必须与Sniper指标类的Name属性完全一致(原代码为"Sniper")。
  • 参数名匹配:字典键必须与Sniper指标类的公共属性名一致(如Period而非显示名称"RSI period")。
  • 禁止代码复制:不要将Sniper指标代码直接复制到策略文件,Quantower脚本环境要求指标与策略分开管理,需通过平台加载系统调用。

内容的提问来源于stack exchange,提问作者Shaniel Samadhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:12:01