设为首页 收藏本站 切换语言

JavaScript版本SuperTrend策略  

| 发表于 2022-3-18 16:01:28 | 显示全部楼层 |复制链接
  1. // VIA: https://github.com/freqtrade/freqtrade-strategies/issues/30
  2. function SuperTrend(r, period, multiplier) {
  3.     // atr
  4.     var atr = talib.ATR(r, period)
  5.     // baseUp , baseDown
  6.     var baseUp = []
  7.     var baseDown = []
  8.     for (var i = 0; i < r.length; i++) {
  9.         if (isNaN(atr[i])) {
  10.             baseUp.push(NaN)
  11.             baseDown.push(NaN)
  12.             continue
  13.         }
  14.         baseUp.push((r[i].High + r[i].Low) / 2 + multiplier * atr[i])
  15.         baseDown.push((r[i].High + r[i].Low) / 2 - multiplier * atr[i])
  16.     }
  17.     // fiUp , fiDown
  18.     var fiUp = []
  19.     var fiDown = []
  20.     var prevFiUp = 0
  21.     var prevFiDown = 0
  22.     for (var i = 0; i < r.length; i++) {
  23.         if (isNaN(baseUp[i])) {
  24.             fiUp.push(NaN)
  25.         } else {
  26.             fiUp.push(baseUp[i] < prevFiUp || r[i - 1].Close > prevFiUp ? baseUp[i] : prevFiUp)
  27.             prevFiUp = fiUp[i]
  28.         }
  29.         if (isNaN(baseDown[i])) {
  30.             fiDown.push(NaN)
  31.         } else {
  32.             fiDown.push(baseDown[i] > prevFiDown || r[i - 1].Close < prevFiDown ? baseDown[i] : prevFiDown)
  33.             prevFiDown = fiDown[i]
  34.         }
  35.     }
  36.     var st = []
  37.     var prevSt = NaN
  38.     for (var i = 0; i < r.length; i++) {
  39.         if (i < period) {
  40.             st.push(NaN)
  41.             continue
  42.         }
  43.         var nowSt = 0
  44.         if (((isNaN(prevSt) && isNaN(fiUp[i - 1])) || prevSt == fiUp[i - 1]) && r[i].Close <= fiUp[i]) {
  45.             nowSt = fiUp[i]
  46.         } else if (((isNaN(prevSt) && isNaN(fiUp[i - 1])) || prevSt == fiUp[i - 1]) && r[i].Close > fiUp[i]) {
  47.             nowSt = fiDown[i]
  48.         } else if (((isNaN(prevSt) && isNaN(fiDown[i - 1])) || prevSt == fiDown[i - 1]) && r[i].Close >= fiDown[i]) {
  49.             nowSt = fiDown[i]
  50.         } else if (((isNaN(prevSt) && isNaN(fiDown[i - 1])) || prevSt == fiDown[i - 1]) && r[i].Close < fiDown[i]) {
  51.             nowSt = fiUp[i]
  52.         }
  53.         st.push(nowSt)
  54.         prevSt = st[i]
  55.     }
  56.     var up = []
  57.     var down = []
  58.     for (var i = 0; i < r.length; i++) {
  59.         if (isNaN(st[i])) {
  60.             up.push(st[i])
  61.             down.push(st[i])
  62.         }
  63.         if (r[i].Close < st[i]) {
  64.             down.push(st[i])
  65.             up.push(NaN)
  66.         } else {
  67.             down.push(NaN)
  68.             up.push(st[i])
  69.         }
  70.     }
  71.     return [up, down]
  72. }
  73. // 测试指标用的main函数,并非交易策略
  74. function main() {
  75.     while (1) {
  76.         var r = _C(exchange.GetRecords)
  77.         var st = SuperTrend(r, 10, 3)
  78.         $.PlotRecords(r, "K")
  79.         $.PlotLine("L", st[0][st[0].length - 2], r[r.length - 2].Time)
  80.         $.PlotLine("S", st[1][st[1].length - 2], r[r.length - 2].Time)
  81.         Sleep(2000)
  82.     }
  83. }
复制代码

16854db9ece36988b27c.png
16d8f947aec216bd2c23.png
16994e2c68a9ed49878f.png
165b19b012f4c64e1f86.png
举报

评论 使用道具

上一篇 : MACD背离

精彩评论15

s1030hk
DD
| 发表于 2022-3-19 05:00:15 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

nanaliu
CC
| 发表于 2022-3-19 07:58:27 | 显示全部楼层
路过看看。。学习下。。。
举报

点赞 评论 使用道具

木头8500
C
| 发表于 2022-3-19 08:03:25 来自手机 | 显示全部楼层
路过
举报

点赞 评论 使用道具

紫竹青荷
CC
| 发表于 2022-3-19 08:05:45 | 显示全部楼层
路过学习下
举报

点赞 评论 使用道具

ypfy0
DD
| 发表于 2022-3-19 08:17:21 | 显示全部楼层
路过学习下
举报

点赞 评论 使用道具

jongjongyoshen
D
| 发表于 2022-3-19 08:32:13 | 显示全部楼层
这是脚本?
举报

点赞 评论 使用道具

木头8500
C
| 发表于 2022-3-19 14:08:56 来自手机 | 显示全部楼层
看看
举报

点赞 评论 使用道具

zhq320
DD
| 发表于 2022-3-20 09:26:22 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

ea12213
C
| 发表于 2022-3-20 10:58:35 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

紫竹青荷
CC
| 发表于 2022-3-20 11:05:16 | 显示全部楼层
感谢分享 看不明白
举报

点赞 评论 使用道具

EA88
D
| 发表于 2022-3-23 21:11:40 | 显示全部楼层
有好的策略 好的意见 分享谢谢
举报

点赞 评论 使用道具

JOKEEBOSS
DD
| 发表于 2022-3-24 00:04:09 | 显示全部楼层
谢谢分享!
举报

点赞 评论 使用道具

tmiqlk
未及格
| 发表于 2022-3-27 23:07:58 | 显示全部楼层
已阅,顶一下.......
举报

点赞 评论 使用道具

jongjongyoshen
D
| 发表于 2022-6-17 09:55:57 | 显示全部楼层
这是指标吗?
举报

点赞 评论 使用道具

qwe11
CCC
| 发表于 2022-6-18 15:58:34 | 显示全部楼层
确有见解
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)