前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指标记录5-FAST PKAMA、Centred Trend Indicator、BOLINGER BANDS

指标记录5-FAST PKAMA、Centred Trend Indicator、BOLINGER BANDS

作者头像
项勇
发布2023-03-24 13:55:20
3230
发布2023-03-24 13:55:20
举报
文章被收录于专栏:项勇项勇

本篇补充几个新指标,来自于其他策略,当补充学习,并放入指标库。

代码片段

代码语言:javascript
复制
// FAST PKAMA
// inputs
lengthA = input.int(29, title='  Fast PKAMA Lenght', group='PKAMA')
factorA = input.float(3.5, title='  Fast PKAMA Factor', group='PKAMA')
spA = input.bool(true, title='  Self Powered - Fast PKAMA', group='PKAMA')
// calc
erA = math.abs(ta.change(close, lengthA)) / math.sum(math.abs(ta.change(close)), lengthA)
powA = spA ? 1 / erA : factorA
perA = math.pow(math.abs(ta.change(close, lengthA)) / math.sum(math.abs(ta.change(close)), lengthA), powA)
aA = 0.
aA := perA * src + (1 - perA) * nz(aA[1], src)
// cont
mad_f = aA / aA[1] > .999 and aA / aA[1] < 1.001

官方文档解释

math.abs

如果 `number` >= 0,`number` 的绝对值为 `number`,否则为 -`number`。

返回`number`的绝对值。

ta.change

比较当前 `source` 值与它的值 `length` K线之前的值并返回差值。

math.sum

sum函数返回x的最后y值的滑动综合。

返回值

`length`K线返回的`source`总和。

参数

source (series int/float) 待执行的系列值。

length (series int) K线数量(长度).

math.pow

数学幂函数

返回值

`base`提高到`exponent`的幂。如果`base`是一个系列,它是按元素计算的。

参数

base (series int/float) 指定要使用的基础。

exponent (series int/float) 指定指数。

nz

以系列中的零(或指定数)替换NaN值。

返回值

`source`的值,如果它不是`na`。如果`source`的值为`na`,则返回0,如果使用1,则返回`replacement`参数。

参数

source (series int/float/bool/color) 待执行的系列值。

replacement (series int/float/bool/color) 将替换“source”系列中的所有“na”值的值。


代码片段

代码语言:javascript
复制
// Centred Trend Indicator
// inputs
length_ = input.int(10, title='  CTI Lenght', group='Centred Trend Indicator')
lag = input.bool(false, title='  CTI Lag Reduction', group='Centred Trend Indicator')
effi = input.bool(true, title='  CTI Efficient', group='Centred Trend Indicator')
// calc
ma = 0.
sma_1 = ta.sma(src, length_)
X = math.sign(src - (effi ? nz(ma[1]) : sma_1))
Req = math.sum(ta.change(src) * X[1], length_)
OPTeq = ta.cum(ta.change(src) * X)
alpha = math.pow(math.max(Req / OPTeq, 0), lag ? .5 : 1)
ma := alpha * src + (1 - alpha) * nz(ma[1], src)
// condt
L_ma = ma > ma[2]
S_ma = ma < ma[2]

官方文档解释

ta.sma

sma函数返回移动平均值,即x的最后y值,除以y。

返回值

`length`K线返回的`source`的简单移动平均线。

参数

source (series int/float) 待执行的系列值。

length (series int) K线数量(长度).

math.sign

如果“number”为零,则“number”的符号(signum)为零,如果“number”大于0,则为1.0,如果“number”小于0,则为-1.0。

ta.cum

`source` 的累积(全部的)总和。换句话说,它是`source`的所有元素的总和。

返回值

系列总和。

参数

source (series int/float)


代码片段

代码语言:javascript
复制
//BOLINGER BANDS ( not a_f ) 
// inputs
length = input.int(36, title=' BB lenght', group='Bollinger Bands')
mult = input.float(1.5, title=' BB mult.', group='Bollinger Bands', step=0.1)
// calc
basis = ta.ema(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
// condt
Long_BB = ta.crossunder(src, lower)
Short_BB = ta.crossover(src, upper)

官方文档解释

ta.ema

ema 函数返回指数加权移动平均线。在 ema 中,加权因子呈指数下降。它使用以下公式计算:EMA = alpha * source + (1 - alpha) * EMA[1],其中 alpha = 2 / (length + 1)。

返回值

`source` 的指数移动平均线,alpha = 2 / (长度 + 1)。

参数

source (series int/float) 待执行的系列值。

length (simple int) K线数量(长度).

ta.stdev

返回值

标准差

参数

source (series int/float) 待执行的系列值。

length (series int) K线数量(长度).

biased (series bool) 确定应该使用哪个估计。可选。默认值为true。

备注

如果`biased`为true,函数将使用对整个总体的有偏估计进行计算,如果为false - 对样本的无偏估计。

ta.crossover

返回值

如果`source1`穿过`source2`则为true,否则为false。

参数

source1 (series int/float) 第一数据系列。

source2 (series int/float) 第二数据系列。

ta.crossunder

返回值

如果`source1`在`source2`下交叉,则为true,否则为false。

参数

source1 (series int/float) 第一数据系列。

source2 (series int/float) 第二数据系列。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 项勇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • math.abs
  • ta.change
  • math.sum
  • math.pow
  • nz
  • ta.sma
  • math.sign
  • ta.cum
  • ta.ema
  • ta.stdev
  • ta.crossover
  • ta.crossunder
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档