Rusty-talib
Rusty-talib 是一个纯Rust编写的技术分析库,提供计算技术指标的各种方法。
特性
- 提供包括重叠研究、动量指标、成交量指标等在内的各种技术分析工具。
- 允许根据需要启用或禁用特定功能模块。
用法
要使用 Rusty-talib,您可以将其添加为依赖项,并根据需要选择启用特定功能模块。例如
[dependencies]
rusty-talib = { version = "0.1.0", features = ["overlap_studies"] }
功能模块
Rusty-talib 包含以下功能模块
重叠研究
函数 |
描述 |
状态 |
BBANDS |
布林带 |
待定 |
DEMA |
双指数移动平均 |
待定 |
EMA |
指数移动平均 |
待定 |
HT_TRENDLINE |
希尔伯特变换 - 瞬时趋势线 |
待定 |
KAMA |
考夫曼自适应移动平均 |
待定 |
MA |
移动平均 |
完成 |
MAMA |
MESA自适应移动平均 |
待定 |
MAVP |
可变周期移动平均 |
待定 |
MIDPOINT |
周期中点 |
待定 |
MIDPRICE |
周期中点价格 |
待定 |
SAR |
抛物线SAR |
待定 |
SAREXT |
抛物线SAR - 扩展 |
待定 |
SMA |
简单移动平均 |
待定 |
T3 |
三重指数移动平均(T3) |
待定 |
TEMA |
三重指数移动 |
待定 |
动量指标
函数 |
描述 |
状态 |
ADX |
平均方向性移动指数 |
待定 |
ADXR |
平均方向性移动指数评级 |
待定 |
APO |
绝对价格振荡器 |
待定 |
AROON |
Aroon |
待定 |
AROONOSC |
Aroon振荡器 |
待定 |
BOP |
力量平衡 |
待定 |
CCI |
商品通道指数 |
待定 |
CMO |
钱德动量振荡器 |
待定 |
DX |
方向性移动指数 |
待定 |
MACD |
移动平均收敛/发散 |
待定 |
MACDEXT |
可控制MA类型的MACD |
待定 |
MACDFIX |
移动平均收敛/发散 - 固定12/26 |
待定 |
MFI |
资金流量指数 |
待定 |
MINUS_DI |
减去方向指示器 |
待定 |
MINUS_DM |
减去方向移动 |
待定 |
MOM |
动量 |
待定 |
PLUS_DI |
Plus方向指示器 |
待定 |
PLUS_DM |
Plus方向移动 |
待定 |
PPO |
百分比价格振荡器 |
待定 |
ROC |
变化率:((价格/前价格)-1)*100 |
待定 |
ROCP |
变化率百分比:(价格-前价格)/前价格 |
待定 |
ROCR |
变化率比率:(价格/前价格) |
待定 |
ROCR100 |
变化率比率100倍:(价格/前价格)*100 |
待定 |
RSI |
相对强弱指数 |
待定 |
STOCH |
随机指标 |
待定 |
STOCHF |
随机快线 |
待定 |
STOCHRSI |
随机相对强弱指数 |
待定 |
TRIX |
三重平滑指数移动平均的1日变化率(ROC) |
待定 |
ULTOSC |
终极振荡器 |
待定 |
WILLR |
威廉指标 |
待定 |
成交量指标
函数 |
描述 |
状态 |
AD |
查克指标 |
待定 |
ADOSC |
查克振荡器 |
待定 |
OBV |
成交量加权平均 |
待定 |
波动性指标
函数 |
描述 |
状态 |
ATR |
真实波动率 |
待定 |
NATR |
标准化真实波动率 |
待定 |
TRANGE |
真实波动率 |
待定 |
函数 |
描述 |
状态 |
AVGPRICE |
平均价格 |
待定 |
MEDPRICE |
中位数价格 |
待定 |
TYPPRICE |
典型价格 |
待定 |
WCLPRICE |
加权收盘价格 |
待定 |
周期指标
函数 |
描述 |
状态 |
HT_DCPERIOD |
希尔伯特变换-主导周期周期 |
待定 |
HT_DCPHASE |
希尔伯特变换-主导周期相 |
待定 |
HT_PHASOR |
希尔伯特变换-相量分量 |
待定 |
HT_SINE |
希尔伯特变换-正弦波 |
待定 |
HT_TRENDMODE |
希尔伯特变换-趋势与周期模式 |
待定 |
模式识别
函数 |
描述 |
状态 |
CDL2CROWS |
双乌鸦 |
待定 |
CDL3BLACKCROWS |
三只黑乌鸦 |
待定 |
CDL3INSIDE |
三只乌鸦向上/向下 |
待定 |
CDL3LINESTRIKE |
三线打击 |
待定 |
CDL3OUTSIDE |
三只乌鸦向上/向下 |
待定 |
CDL3STARSINSOUTH |
南方的三颗星 |
待定 |
CDL3WHITESOLDIERS |
三只白色士兵 |
待定 |
CDLABANDONEDBABY |
遗弃的婴儿 |
待定 |
CDLADVANCEBLOCK |
推进块 |
待定 |
CDLBELTHOLD |
腰带保持 |
待定 |
CDLBREAKAWAY |
突破 |
待定 |
CDLCLOSINGMARUBOZU |
收盘三头线 |
待定 |
CDLCONCEALBABYSWALL |
隐藏的婴儿啄木鸟 |
待定 |
CDLCOUNTERATTACK |
反击 |
待定 |
CDLDARKCLOUDCOVER |
暗云笼罩 |
待定 |
CDLDOJI |
吞没 |
待定 |
CDLDOJISTAR |
吞没星 |
待定 |
CDLDRAGONFLYDOJI |
蜻蜓吞没 |
待定 |
CDLENGULFING |
吞没形态 |
待定 |
CDLEVENINGDOJISTAR |
傍晚吞没星 |
待定 |
CDLEVENINGSTAR |
傍晚之星 |
待定 |
CDLGAPSIDESIDEWHITE |
上/下间隙并列白线 |
待定 |
CDLGRAVESTONEDOJI |
墓碑吞没 |
待定 |
CDLHAMMER |
锤子线 |
待定 |
CDLHANGINGMAN |
吊人线 |
待定 |
CDLHARAMI |
Harami形态 |
待定 |
CDLHARAMICROSS |
Harami十字形态 |
待定 |
CDLHIGHWAVE |
高波蜡烛 |
待定 |
CDLHIKKAKE |
Hikkake形态 |
待定 |
CDLHIKKAKEMOD |
修改后的Hikkake形态 |
待定 |
CDLHOMINGPIGEON |
归巢鸽 |
待定 |
CDLIDENTICAL3CROWS |
三只相同的乌鸦 |
待定 |
CDLINNECK |
颈线形态 |
待定 |
CDLINVERTEDHAMMER |
倒锤子线 |
待定 |
CDLKICKING |
踢腿 |
待定 |
CDLKICKINGBYLENGTH |
踢腿 - 牛/熊由较长的三头线决定 |
待定 |
CDLLADDERBOTTOM |
梯形底 |
待定 |
CDLLONGLEGGEDDOJI |
长腿吞没 |
待定 |
CDLLONGLINE |
长线蜡烛 |
待定 |
CDLMARUBOZU |
三头线 |
待定 |
CDLMATCHINGLOW |
匹配低点 |
待定 |
CDLMATHOLD |
维持 |
待定 |
CDLMORNINGDOJISTAR |
早晨吞没星 |
待定 |
CDLMORNINGSTAR |
早晨之星 |
待定 |
CDLONNECK |
颈线形态 |
待定 |
CDLPIERCING |
穿透形态 |
待定 |
CDLRICKSHAWMAN |
人力车夫 |
待定 |
CDLRISEFALL3METHODS |
上升/下降三法 |
待定 |
CDLSEPARATINGLINES |
分离线 |
待定 |
CDLSHOOTINGSTAR |
射击之星 |
待定 |
CDLSHORTLINE |
短线蜡烛 |
待定 |
CDLSPINNINGTOP |
陀螺线 |
待定 |
CDLSTALLEDPATTERN |
停滞模式 |
待定 |
CDLSTICKSANDWICH |
夹心棒 |
待定 |
CDLTAKURI |
Takuri (具有非常长下影线的蜻蜓吞没) |
待定 |
CDLTASUKIGAP |
Tasuki间隙 |
待定 |
CDLTHRUSTING |
推力模式 |
待定 |
CDLTRISTAR |
三叉星模式 |
待定 |
CDLUNIQUE3RIVER |
独特三河 |
待定 |
CDLUPSIDEGAP2CROWS |
向上跳空双乌鸦 |
待定 |
CDLXSIDEGAP3METHODS |
向上/向下跳空三方法 |
待定 |
统计函数
函数 |
描述 |
状态 |
BETA |
Beta |
待定 |
CORREL |
皮尔逊相关系数(r) |
待定 |
LINEARREG |
线性回归 |
待定 |
LINEARREG_ANGLE |
线性回归角度 |
待定 |
LINEARREG_INTERCEPT |
线性回归截距 |
待定 |
LINEARREG_SLOPE |
线性回归斜率 |
待定 |
STDDEV |
标准差 |
待定 |
TSF |
时间序列预测 |
待定 |
VAR |
方差 |
待定 |
函数 |
描述 |
状态 |
ACOS |
向量三角函数ACos |
待定 |
ASIN |
向量三角函数ASin |
待定 |
ATAN |
向量三角函数ATan |
待定 |
CEIL |
向量Ceil |
待定 |
COS |
向量三角函数Cos |
待定 |
COSH |
向量三角函数Cosh |
待定 |
EXP |
向量算术Exp |
待定 |
FLOOR |
向量Floor |
待定 |
LN |
向量自然对数 |
待定 |
LOG10 |
向量Log10 |
待定 |
SIN |
向量三角函数Sin |
待定 |
SINH |
向量三角函数Sinh |
待定 |
SQRT |
向量平方根 |
待定 |
TAN |
向量三角函数Tan |
待定 |
TANH |
向量三角函数Tanh |
待定 |
数学运算函数
函数 |
描述 |
状态 |
ADD |
向量算术加 |
待定 |
DIV |
向量算术除 |
待定 |
MAX |
指定期间的最高值 |
待定 |
MAXINDEX |
指定期间最高值的索引 |
待定 |
MIN |
指定期间的最小值 |
待定 |
MININDEX |
指定期间最小值的索引 |
待定 |
MINMAX |
指定期间的最小和最大值 |
待定 |
MINMAXINDEX |
指定期间最小和最大值的索引 |
待定 |
MULT |
向量算术乘 |
待定 |
SUB |
向量算术减 |
待定 |
SUM |
求和 |
待定 |
示例
use rand;
use rusty_talib;
use rusty_talib::ErrorMsg;
use polars::prelude::*;
fn main(){
let random_data: [i32; 7] = [23, 25, 12, 28, 33, 31, 35];
let close = Series::new("data",random_data);
let ma = rusty_talib::moving_average(&close,Some(3));
match res {
Ok(ma) => {
assert_eq!(ma.len(),close.len());
eprintln!("{:?}",ma);
},
Err(e) => {
if let Some(my_error) = e.downcast_ref::<ErrorMsg>() {
eprintln!("{}", my_error.0);
} else {
eprintln!("An error occurred");
}
}
}
}
// import polars lib
use polars::prelude::*;
// Import the rusty-talib library in your Rust project
use rusty_talib;
let random_data: [i32; 7] = [23, 25, 12, 28, 33, 31, 35];
let close = Series::new("data",random_data);
// Use a specific function from the overlap studies feature module
let result = rusty_talib::moving_average(close,2);
// Series type
eprintln!("{:?}",result);
将系列转换为Vec< f64>
// import Float64Array
use polars::export::arrow::array::{Float64Array};
let array = result.to_arrow(0);
let vec_values = match array.as_any().downcast_ref::<Float64Array>() {
Some(float_array) => {
let values: &[f64] = float_array.values();
let vec_values: Vec<f64> = values.to_vec();
vec_values
}
None => return Err("Failed to downcast to Float64Array".into()),
};
eprintln!("{:?}",vec_values);
将系列转换为单个数据
// pull single data from Series type result
for i in 1..result.len() {
let elem :f64= src.get(i)?.try_extract::<f64>()?;
eprintln!("{:?}",elem);
}
许可证
本项目采用MIT许可证。
可根据需要进一步自定义内容。