#indicator #technical-analysis #trading

rust_ti

一个高级且可配置的技术指标库,包含超过70个独特的股票市场技术分析指标

8个稳定版本

1.3.0 2024年7月22日
1.2.1 2024年7月19日
1.1.0 2024年6月27日
0.0.2 2024年6月14日

#83 in 数学

Download history 268/week @ 2024-06-10 216/week @ 2024-06-17 635/week @ 2024-06-24 55/week @ 2024-07-01 139/week @ 2024-07-08 140/week @ 2024-07-15 159/week @ 2024-07-22 17/week @ 2024-07-29 7/week @ 2024-08-12

187 每月下载量

MIT许可证

555KB
10K SLoC

RustTI

RustTI是一个可配置的技术指标库,满足您所有的技术分析需求。

在RustTI函数中,一切都可以配置。

许多函数接受参数,允许调用者将技术指标从默认行为中移除。例如,如果一个TI使用均值来计算指标,它可以被指示使用中位数或众数。

因此,RustTI是一个更高级的技术指标包,用户应该对其计划使用的指标有一定的了解。

安装

在您的项目目录中运行以下Cargo命令

cargo add rust_ti

或者将以下行添加到您的Cargo.toml文件中

rust_ti = "1.2.0" 

文档

文档可以在这里找到: rust_ti

示例

简单示例

单个示例,其中需要计算整个向量的移动平均

use rust_ti;

let prices = vec![100.2, 100.46, 100.53, 100.38, 100.19];

let ma = rust_ti::moving_average::single::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Simple
);
assert_eq!(100.352, ma);

let sma = rust_ti::moving_average::single::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Smoothed
);
assert_eq!(100.34228938600666, sma);

let ema = rust_ti::moving_average::single::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Exponential
);
assert_eq!(100.32810426540287, ema);

// The values used in the example for the personalised moving average are random.
// If using the PMA, it is recommended to look into how the moving averages are calculated before using values.
let pma = rust_ti::moving_average::single::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Personalised(&5.0, &3.0)
);
assert_eq!(100.27405995388162, personalised_ma);

批量示例,其中计算一个期间的移动平均

在幕后,函数将计算3个期间的移动平均。切片 [100.2, 100.46, 100.53][100.46, 100.53, 100.38],和 [100.53, 100.38, 100.19] 将从 prices 中派生出来。函数将返回一个包含3个期间的移动平均的向量。

let prices = vec![100.2, 100.46, 100.53, 100.38, 100.19];
let period: usize = 3;

let ma = rust_ti::moving_average::bulk::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Simple,
    &period
);
assert_eq!(
    vec![100.39666666666666, 100.456666666666666, 100.36666666666667],
    ma
);

let sma = rust_ti::moving_average::bulk::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Smoothed,
    &period
);
assert_eq!(
    vec![100.43842105263158, 100.4442105263158, 100.32157894736842],
    sma
);

let ema = rust_ti::moving_average::bulk::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Exponential,
    &period
);
assert_eq!(
    vec![100.46285714285715, 100.4342857142857, 100.29285714285713],
    pma
);

let pma = rust_ti::moving_average::bulk::moving_average(
    &prices,
    &rust_ti::MovingAverageType::Personalised(&5.0, &3.0),
    &period
);
assert_eq!(
    vec![100.5125581395349, 100.40279069767443, 100.22441860465118],
    pma
);

S&P 500 示例

关于使用 Rust TI 对 S&P 500 的示例,可以在 GitHub 找到。

并在 examples/main.rs 下。

代码位于 examples/main.rs,可以通过克隆仓库并运行来执行。

cargo build
cargo run --example sp500

可用的指标

所有指标都是根据其分析区域分组并拆分为模块。

这些模块被拆分为两个子模块:bulksingle

Bulk 指标计算给定期间的指标并返回指标向量。

Single 指标计算整个向量的指标并返回单个值。

标准指标

标准指标是配置硬编码以满足行业标准默认值的指标。

  • 简单移动平均
  • 平滑移动平均
  • 指数移动平均
  • 布林带
  • MACD
  • RSI

基本指标

基本指标是非常简单的指标,主要用于其他指标。

  • 绝对偏差
  • 对数
  • 对数差分
  • 均值
  • 中位数
  • 众数
  • 标准差
  • 方差
  • 最大值
  • 最小值

蜡烛图指标

蜡烛图指标是用于蜡烛图的指标

  • Ichimoku 云
  • McGinley 动态带
  • McGinley 动态包络
  • 移动常数带,布林带的通用版本
  • 移动常数包络,移动平均包络的通用版本
  • Donchian 通道
  • Keltner 通道
  • Supertrend

图表趋势是用于显示趋势方向的图表的指标

  • 下跌趋势
  • 总体趋势
  • 峰值趋势
  • 峰值
  • 最低点趋势
  • 最低点

相关系数指标

相关系数计算两个资产之间的相关性

  • 相关资产价格

动量指标

动量指标计算价格移动的动量

  • Chaikin 振荡器
  • 商品通道指数
  • MACD 线
  • McGinley 动态 Chaikin 振荡器
  • McGinley 动态商品通道指数
  • McGinley 动态 MACD 线
  • 资金流量指数
  • 平衡交易量
  • 变化率
  • 相对强弱指数
  • 信号线
  • 慢速随机指标
  • 最慢速随机指标
  • 随机振荡器
  • Williams %r
  • 百分比价格振荡器
  • Chande 动量振荡器

移动平均

  • McGinley 动态
  • 移动平均

其他指标

不属于任何地方的指标

  • 投资回报率
  • 真实范围
  • 平均真实范围
  • 内部条形图强度

强度指标

强度指标计算价格移动的强度

  • 累积分布
  • 上涨量指数
  • 下跌量指数
  • 相对活力指数

趋势指标

趋势指标显示价格移动的趋势

  • Aroon Down
  • Aroon 指标
  • Aroon 振荡器
  • Aroon Up
  • 帕累托时间价格系统
  • 长期帕累托时间价格系统
  • 短期帕累托时间价格系统
  • 方向性移动
  • 量价趋势
  • 真实强度指数

波动性指标

波动性指标显示资产如何波动

  • 溃疡指数
  • 波动性系统

发布说明

v1.3.0 的新功能是什么?

  • 修复了 on_balance_volume 和其他使用体积的函数的体积不匹配问题

完整的变更日志

无运行时依赖项