Hikyuu
| 函数
Indicator 指标库

内建常用指标,及新指标定义实现基础设施 更多...

Indicator 指标库 的协作图:

class  hku::Indicator
 指标类,具体由IndicatorImp实现,实现新指标时应继承IndicatorImp 更多...
 
class  hku::IndicatorImp
 指标实现类,定义新指标时,应从此类继承 更多...
 

函数

Indicator HKU_API hku::AMA (int n=10, int fast_n=2, int slow_n=30)
 佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均,参见《精明交易者》(2006年 广东经济出版社) 更多...
 
Indicator HKU_API hku::AMA (const Indicator &indicator, int n=10, int fast_n=2, int slow_n=30)
 佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均,参见《精明交易者》(2006年 广东经济出版社) 更多...
 
Indicator HKU_API hku::ATR (int n=14)
 平均真实波幅(Average True Range) 更多...
 
Indicator HKU_API hku::ATR (const Indicator &data, int n=14)
 平均真实波幅(Average True Range) 更多...
 
Indicator HKU_API hku::CVAL (double value=0.0, size_t len=0, size_t discard=0)
 创建一个指定长度的常数指标 更多...
 
Indicator HKU_API hku::CVAL (const Indicator &ind, double value=0.0)
 创建一个常数指标,其长度和输入的ind相同,其值固定为指定value 更多...
 
Indicator HKU_API hku::DIFF ()
 差分指标,即data[i] - data[i-1] 更多...
 
Indicator HKU_API hku::DIFF (const Indicator &data)
 差分指标,即data[i] - data[i-1] 更多...
 
Indicator HKU_API hku::EMA (int n=22)
 指数移动平均线(Exponential Moving Average) 更多...
 
Indicator HKU_API hku::EMA (const Indicator &data, int n=22)
 指数移动平均线(Exponential Moving Average) 更多...
 
HKU_API Indicator hku::IND_AND (const Indicator &, const Indicator &)
 对两个Indicator执行与操作 更多...
 
HKU_API Indicator hku::IND_OR (const Indicator &, const Indicator &)
 对两个Indicator执行或操作 更多...
 
Indicator HKU_API hku::KDATA ()
 包装KData成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::OPEN ()
 包装KData的开盘价成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::HIGH ()
 包装KData的最高价成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::LOW ()
 包装KData的最低价成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::CLOSE ()
 包装KData的收盘价成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::AMO ()
 包装KData的成交金额成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::VOL ()
 包装KData的成交量成Indicator,用于其他指标计算 更多...
 
Indicator HKU_API hku::KDATA_PART (const string &kpart)
 根据字符串选择返回KDATA/OPEN/HIGH/LOW/CLOSE/AMO/VOL 更多...
 
Indicator HKU_API hku::MA (const Indicator &data, int n=22, const string &type="SMA")
 移动平均 更多...
 
Indicator HKU_API hku::MACD (int n1=12, int n2=26, int n3=9)
 MACD平滑异同移动平均线 更多...
 
Indicator HKU_API hku::MACD (const Indicator &data, int n1=12, int n2=26, int n3=9)
 MACD平滑异同移动平均线 更多...
 
Indicator HKU_API hku::PRICELIST (const PriceList &, int discard=0)
 包装PriceList成Indicator 更多...
 
Indicator HKU_API hku::PRICELIST (const Indicator &ind, int result_index=0)
 将某指标转化为PRICELIST 更多...
 
Indicator HKU_API hku::PRICELIST (int result_index=0)
 将某指标转化为PRICELIST 更多...
 
Indicator HKU_API hku::PRICELIST (price_t *data, size_t total)
 包装 price_t 数组成Indicator,用于计算其他指标 更多...
 
Indicator HKU_API hku::REF (int n)
 REF 向前引用 (即右移) 引用若干周期前的数据。 用法: REF(X,A) 引用A周期前的X值。 更多...
 
Indicator HKU_API hku::REF (const Indicator &ind, int n)
 REF 向前引用 (即右移) 引用若干周期前的数据。 用法: REF(X,A) 引用A周期前的X值。 更多...
 
Indicator HKU_API hku::SAFTYLOSS (const Indicator &data, int n1=10, int n2=3, double p=2.0)
 亚历山大 艾尔德安全地带止损 更多...
 
Indicator HKU_API hku::SAFTYLOSS (int n1=10, int n2=3, double p=2.0)
 亚历山大 艾尔德安全地带止损 更多...
 
Indicator HKU_API hku::SMA (const Indicator &data, int n=22)
 简单移动平均 更多...
 
Indicator HKU_API hku::STDEV (int n=10)
 计算N周期内样本标准差 更多...
 
Indicator HKU_API hku::STDEV (const Indicator &data, int n=10)
 计算N周期内样本标准差 更多...
 
Indicator HKU_API hku::VIGOR (const KData &kdata, int n=2)
 亚历山大 艾尔德力度指数 更多...
 
Indicator HKU_API hku::WEAVE (const Indicator &ind)
 将ind的结果组合在一起放在一个Indicator中。如ind = WEAVE(ind1); ind=ind(ind2)。 则此时ind包含两个结果,result1为ind1的数据,result2为ind2的数据 更多...
 
HKU_API Indicator hku::operator+ (const Indicator &, const Indicator &)
 Indicator实例相加,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator- (const Indicator &, const Indicator &)
 Indicator实例相减,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator* (const Indicator &, const Indicator &)
 Indicator实例相乘,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator/ (const Indicator &, const Indicator &)
 Indicator实例相除,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator== (const Indicator &, const Indicator &)
 Indicator实例相等,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator!= (const Indicator &, const Indicator &)
 Indicator实例不相等,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator> (const Indicator &, const Indicator &)
 Indicator实例大于操作,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator< (const Indicator &, const Indicator &)
 Indicator实例小于操作,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator>= (const Indicator &, const Indicator &)
 Indicator实例大于操作,两者的size必须相等,否在返回空 更多...
 
HKU_API Indicator hku::operator<= (const Indicator &, const Indicator &)
 Indicator实例小于操作,两者的size必须相等,否在返回空 更多...
 

详细描述

内建常用指标,及新指标定义实现基础设施

包含指标基类定义、部分常用指标以及指标的生成函数

注解
在客户端程序中,建议尽可能使用指标的生成函数,生成具体的指标进行调用,以避免错误的内存申请和释放
示例:
Indicator ma = MA();
std::cout << ma.name() << std::endl;

函数说明

Indicator HKU_API hku::AMA ( int  n = 10,
int  fast_n = 2,
int  slow_n = 30 
)

佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均,参见《精明交易者》(2006年 广东经济出版社)

参数
n计算均值的周期窗口,必须为大于2的整数,默认为10天
fast_n对应快速周期N,默认为2
slow_n对应慢速EMA线的N值,默认为30,不过当超过60左右该指标会收敛不会有太大的影响 (0)(1)
Indicator HKU_API hku::AMA ( const Indicator indicator,
int  n = 10,
int  fast_n = 2,
int  slow_n = 30 
)

佩里.J 考夫曼(Perry J.Kaufman)自适应移动平均,参见《精明交易者》(2006年 广东经济出版社)

参数
indicator待计算的数据
n计算均值的周期窗口,必须为大于2的整数,默认为10天
fast_n对应快速周期N,默认为2
slow_n对应慢速EMA线的N值,默认为30,不过当超过60左右该指标会收敛不会有太大的影响
Indicator HKU_API hku::AMO ( )

包装KData的成交金额成Indicator,用于其他指标计算

Indicator HKU_API hku::ATR ( int  n = 14)

平均真实波幅(Average True Range)

参数
n计算均值的周期窗口,必须为大于1的整数
Indicator HKU_API hku::ATR ( const Indicator data,
int  n = 14 
)

平均真实波幅(Average True Range)

参数
data待计算的源数据
n计算均值的周期窗口,必须为大于1的整数
Indicator HKU_API hku::CLOSE ( )

包装KData的收盘价成Indicator,用于其他指标计算

Indicator HKU_API hku::CVAL ( double  value = 0.0,
size_t  len = 0,
size_t  discard = 0 
)

创建一个指定长度的常数指标

参数
value常量
len长度
discard抛弃数量,默认0
Indicator HKU_API hku::CVAL ( const Indicator ind,
double  value = 0.0 
)

创建一个常数指标,其长度和输入的ind相同,其值固定为指定value

参数
ind待计算的数据
value常量
Indicator HKU_API hku::DIFF ( )

差分指标,即data[i] - data[i-1]

Indicator HKU_API hku::DIFF ( const Indicator data)

差分指标,即data[i] - data[i-1]

参数
data待计算数据
Indicator HKU_API hku::EMA ( int  n = 22)

指数移动平均线(Exponential Moving Average)

参数
n计算均值的周期窗口,必须为大于0的整数
Indicator HKU_API hku::EMA ( const Indicator data,
int  n = 22 
)

指数移动平均线(Exponential Moving Average)

参数
data待计算的源数据
n计算均值的周期窗口,必须为大于0的整数
Indicator HKU_API hku::HIGH ( )

包装KData的最高价成Indicator,用于其他指标计算

HKU_API Indicator hku::IND_AND ( const Indicator ,
const Indicator  
)

对两个Indicator执行与操作

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果ind1相同位置的值和ind2相同位置的值都大于0则为1.0,否则为0.0
HKU_API Indicator hku::IND_OR ( const Indicator ,
const Indicator  
)

对两个Indicator执行或操作

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果ind1相同位置的值和ind2相同位置的值其中一个大于0则为1.0,否则为0.0
Indicator HKU_API hku::KDATA ( )

包装KData成Indicator,用于其他指标计算

Indicator HKU_API hku::KDATA_PART ( const string kpart)

根据字符串选择返回KDATA/OPEN/HIGH/LOW/CLOSE/AMO/VOL

参数
kdataK线数据
kpartKDATA|OPEN|HIGH|LOW|CLOSE|AMO|VOL
参见
KDATA, OPEN, HIGH, LOW, CLOSE, AMO, VOL
Indicator HKU_API hku::LOW ( )

包装KData的最低价成Indicator,用于其他指标计算

Indicator HKU_API hku::MA ( const Indicator data,
int  n = 22,
const string type = "SMA" 
)

移动平均

参数
data待计算的数据
n计算均值的周期窗口,必须为大于0的整数
type"EMA"|"SMA"|"AMA", 默认"SMA"
Indicator HKU_API hku::MACD ( int  n1 = 12,
int  n2 = 26,
int  n3 = 9 
)

MACD平滑异同移动平均线

参数
n1短期EMA时间窗,默认12
n2长期EMA时间窗,默认26
n3(短期EMA-长期EMA)EMA平滑时间窗,默认9
返回
MACD BAR: MACD直柱,即MACD快线-MACD慢线
DIFF: 快线,即(短期EMA-长期EMA)
DEA: 慢线,即快线的n3周期EMA平滑
Indicator HKU_API hku::MACD ( const Indicator data,
int  n1 = 12,
int  n2 = 26,
int  n3 = 9 
)

MACD平滑异同移动平均线

参数
data待计算数据
n1短期EMA时间窗,默认12
n2长期EMA时间窗,默认26
n3(短期EMA-长期EMA)EMA平滑时间窗,默认9
返回
MACD BAR: MACD直柱,即MACD快线-MACD慢线
DIFF: 快线,即(短期EMA-长期EMA)
DEA: 慢线,即快线的n3周期EMA平滑
Indicator HKU_API hku::OPEN ( )

包装KData的开盘价成Indicator,用于其他指标计算

HKU_API Indicator hku::operator!= ( const Indicator ,
const Indicator  
)

Indicator实例不相等,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果相同位置的值不相等为1.0,否则为0.0
HKU_API Indicator hku::operator* ( const Indicator ,
const Indicator  
)

Indicator实例相乘,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber
HKU_API Indicator hku::operator+ ( const Indicator ,
const Indicator  
)

Indicator实例相加,两者的size必须相等,否在返回空

返回
1) 相加的两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber
HKU_API Indicator hku::operator- ( const Indicator ,
const Indicator  
)

Indicator实例相减,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber
HKU_API Indicator hku::operator/ ( const Indicator ,
const Indicator  
)

Indicator实例相除,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如被除中存在为零的数据,则对应位置结果为Null<price_t>()
HKU_API Indicator hku::operator< ( const Indicator ,
const Indicator  
)

Indicator实例小于操作,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果ind1相同位置的值小于ind2相同位置的值则为1.0,否则为0.0
HKU_API Indicator hku::operator<= ( const Indicator ,
const Indicator  
)

Indicator实例小于操作,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果ind1相同位置的值小于等于ind2相同位置的值则为1.0,否则为0.0
HKU_API Indicator hku::operator== ( const Indicator ,
const Indicator  
)

Indicator实例相等,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果相同位置的值相等为1.0, 否则为0.0
HKU_API Indicator hku::operator> ( const Indicator ,
const Indicator  
)

Indicator实例大于操作,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果ind1相同位置的值大于ind2相同位置的值则为1.0,否则为0.0
HKU_API Indicator hku::operator>= ( const Indicator ,
const Indicator  
)

Indicator实例大于操作,两者的size必须相等,否在返回空

返回
1) 两个实例的size必须相等,否在返回空实例 2)如果两个实例的resultNumber不等,则取最小的resultNumber 3)如果ind1相同位置的值大于等于ind2相同位置的值则为1.0,否则为0.0
Indicator HKU_API hku::PRICELIST ( const PriceList data,
int  discard = 0 
)

包装PriceList成Indicator

参数
data源数据
discard前端抛弃的数据点数,抛弃的值使用Null<price_t>()填充
Indicator HKU_API hku::PRICELIST ( const Indicator ind,
int  result_index = 0 
)

将某指标转化为PRICELIST

参数
ind源数据
result_index源数据中指定的结果集
Indicator HKU_API hku::PRICELIST ( int  result_index = 0)

将某指标转化为PRICELIST

参数
result_index源数据中指定的结果集
Indicator HKU_API hku::PRICELIST ( price_t data,
size_t  total 
)

包装 price_t 数组成Indicator,用于计算其他指标

参数
dataprice_t[]
total数组大小
Indicator HKU_API hku::REF ( int  n)

REF 向前引用 (即右移) 引用若干周期前的数据。 用法: REF(X,A) 引用A周期前的X值。

参数
n引用n周期前的值,即右移n位
Indicator HKU_API hku::REF ( const Indicator ind,
int  n 
)

REF 向前引用 (即右移) 引用若干周期前的数据。 用法: REF(X,A) 引用A周期前的X值。

参数
ind待计算的数据
n引用n周期前的值,即右移n位
Indicator HKU_API hku::SAFTYLOSS ( const Indicator data,
int  n1 = 10,
int  n2 = 3,
double  p = 2.0 
)

亚历山大 艾尔德安全地带止损

参见《走进我的交易室》(2007年 地震出版社) 亚历山大.艾尔德(Alexander Elder) P202
计算说明:在回溯周期内(一般为10到20天),将所有向下穿越的长度相加除以向下穿越的次数,
        得到噪音均值(即回溯期内所有最低价低于前一日最低价的长度除以次数),并用今日
        最低价减去(前日噪音均值乘以一个倍数)得到该止损线。为了抵消波动并且保证止损线的
        上移,在上述结果的基础上再取起N日(一般为3天)内的最高值
注解
:返回结果中前(回溯周期宽度+去最高值的宽度)个点是无效的
参数
data输入数据,单一输入
n1计算平均噪音的回溯时间窗口,默认为10天
n2对初步止损线去n2日内的最高值,默认为3
p噪音系数,默认为2
Indicator HKU_API hku::SAFTYLOSS ( int  n1 = 10,
int  n2 = 3,
double  p = 2.0 
)

亚历山大 艾尔德安全地带止损

参见《走进我的交易室》(2007年 地震出版社) 亚历山大.艾尔德(Alexander Elder) P202
计算说明:在回溯周期内(一般为10到20天),将所有向下穿越的长度相加除以向下穿越的次数,
        得到噪音均值(即回溯期内所有最低价低于前一日最低价的长度除以次数),并用今日
        最低价减去(前日噪音均值乘以一个倍数)得到该止损线。为了抵消波动并且保证止损线的
        上移,在上述结果的基础上再取起N日(一般为3天)内的最高值
注解
:返回结果中前(回溯周期宽度+去最高值的宽度)个点是无效的
参数
n1计算平均噪音的回溯时间窗口,默认为10天
n2对初步止损线去n2日内的最高值,默认为3
p噪音系数,默认为2
Indicator HKU_API hku::SMA ( const Indicator data,
int  n = 22 
)

简单移动平均

参数
data待计算的数据
n计算均值的周期窗口,必须为大于0的整数
Indicator HKU_API hku::STDEV ( int  n = 10)

计算N周期内样本标准差

参数
nN日时间窗口
Indicator HKU_API hku::STDEV ( const Indicator data,
int  n = 10 
)

计算N周期内样本标准差

参数
data输入数据,单一输入
nN日时间窗口
Indicator HKU_API hku::VIGOR ( const KData kdata,
int  n = 2 
)

亚历山大 艾尔德力度指数

参见《走进我的交易室》(2007年 地震出版社) (Alexander Elder) P131
计算公式:(收盘价今-收盘价昨)*成交量今
一般可以再使用EMA或MA进行平滑
参数
kdata待计算的K线数据
nEMA平滑窗口,必须大于等于1
Indicator HKU_API hku::VOL ( )

包装KData的成交量成Indicator,用于其他指标计算

Indicator HKU_API hku::WEAVE ( const Indicator ind)

将ind的结果组合在一起放在一个Indicator中。如ind = WEAVE(ind1); ind=ind(ind2)。 则此时ind包含两个结果,result1为ind1的数据,result2为ind2的数据

参数
data待计算的数据