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 数学
187 每月下载量
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
可用的指标
所有指标都是根据其分析区域分组并拆分为模块。
这些模块被拆分为两个子模块:bulk
和 single
。
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 和其他使用体积的函数的体积不匹配问题