资源加载中... loading...

如何通过MACD函数获取MACD的5分钟对应值

Author: only油, Created: 2018-03-01 10:28:37, Updated:

var records = exchange.GetRecords(PERIOD_M5);. var macd = TA.MACD(records, 12, 26, 9); Log(“DIF:”, macd[0], “DEA:”, macd[1], “MACD:”, macd[2]); 我使用TA.MACD()函数,返回的结果是一个5分钟内所有数据的数组。 如何获取MACD的5分钟对应的准确值,是取数组5分钟平均值,还是数组的最后一个值


More

发明者量化-小小梦 可以看 这个 KDJ 的 例子 和 MACD 一样 https://zhuanlan.zhihu.com/p/27300549 ``` var records = exchange.GetRecords(PERIOD_M5);. var macd = TA.MACD(records, 12, 26, 9); Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2]); ``` 这个 macd 二维数组 就是 三条指标线, macd[0][0] ,macd[1][0], macd[2][0] 就是这三条 线的第一个 点, 当前的 macd 三条线的数值 就是 对应他们的 macd[0][n], macd[1][n], macd[2][n] 最后一个数据。 在计算MACD 时传入 K线是 5分钟周期 算出来的就是 5分钟 K线 对应的 MACD 指标。

only油 梦大超神

发明者量化-小小梦 最好 用 macd[0] 的长度 做 索引 macd[0][macd[0].length-1] 这样, 用records.length -1 做索引 不太 安全(个人感觉)。

only油 梦大,那我用5分钟的macd数组的最后一个值判断金叉死叉,这样写有问题么 var records = exchange.GetRecords(PERIOD_M5); var macd = TA.MACD(records, 12, 26, 9); if(macd[0][records.length-1] > macd[1][records.length-1] && macd[0][records.length-1] - macd[1][records.length-1] > 5) { return "buy"; } if(macd[0][records.length-1] < macd[1][records.length-1] && macd[0][records.length-1] - macd[1][records.length-1] < -5) { return "sell"; }

only油 梦大威武

发明者量化-小小梦 数据 是不同的, 1小时 MACD 和 5分钟 MACD 肯定是不一样的 , 你看交易所 图表 就能看出来, 这些指标计算的 依据 就是 K线数据 , 不同周期的 K线数据 计算出来的 指标 肯定是 不一样的。 MACD 从概念上不好理解 , 你试着用均线 指标理解下, 均线 就是 一定 数量的 K线柱 收盘价 的 平均值 (一般来说)。

发明者量化-小小梦 MACD 指标中的 量柱 是 dif - dea 有的是 2倍的 dif -dea , 是一个时刻的值, 在 一个 K线bar 没有 走完的 时候 任何 指标都是 变动的, 包括 MACD , 你可以观察下 交易所 图表上的 最后一根 K线的 MACD 指标 数值, 可能 前一秒是 1 (举例子) 下一秒 就是 -1 了。

only油 是不是不管选择M5还是H1,数据都是相同的,只是数据容量不同。比如说如果选择1小时线,那么该1小时的其他时刻的数据都被无情过滤掉了。

only油 看了文章,是该时刻的值

only油 梦大,交易所的K线图中,MACD的小柱子的值取的是 当时刻最后一个数据么,还是一段时间的平均值啊。 比如我看5分钟的K线图,19:00的那根MACD柱子,它的值是18:55 ~ 19:00之间所有数据的平均值,还是19:00该时刻的值呢