楼主: littleDreamXX
10494 1

[讨论交流] 有谁熟悉STOCHRSI这个指标么? [推广有奖]

  • 0关注
  • 2粉丝

大专生

28%

还不是VIP/贵宾

-

威望
0
论坛币
107 个
通用积分
0.0601
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
768 点
帖子
34
精华
0
在线时间
26 小时
注册时间
2016-5-3
最后登录
2019-1-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用talib 这个JS 库带的  STOCHRSI 指标 算出的 数据总是和交易所的 数据不一致。没办法 自己手动撸了一边不知道对不对 ,有没有大神看看是不是 有问题。
在BotVS 上测试的 用得JS 语言写的。
代码:
这个是这个指标的公式
  1. /*
  2. LC := REF(CLOSE,1); //REF(C,1) 上一周期的收盘价
  3. RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100;
  4. %K:     MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100;  LLV(l,60)表示:检索60天内的最低价,可适应于检索任何股票
  5. %D:MA(%K,P2);

  6. LC := REF(CLOSE,1);
  7. RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100;
  8. STOCHRSI:MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100;
  9. */
复制代码
这是我写的:
  1. function FstochRSI(records,n,m,p1,p2){
  2.     var len = records.length;
  3.     //var LC = records[len-2];//上一周期收盘价
  4.     //var rsi = TA.RSI(records,n);// RSI 数组   ,talib
  5.     var rsi = talib.RSI(records,n);
  6.     rsi = DeleteNullEle(rsi);//ceshi
  7.     //Log("rsi:",rsi) //测试
  8.     //Log("rsi:",rsi);//ceshi
  9.     //throw "stop";//ceshi
  10.     table.e5 = "rsi :" + rsi[rsi.length-1] + "rsi[-1]:" + rsi[rsi.length-2];//ceshi

  11.     var arr1 = [];
  12.     var arr2 = [];
  13.     var arr3 = [];
  14.     var arr4 = [];
  15.     var rsi_a = [];
  16.     var rsi_b = [];
  17.     var k = [];
  18.     var d = null;

  19.     /*不包含当前柱
  20.     for(var a = 0 ;a < rsi.length ; a++ ){//改造 不用 LLV
  21.         for(var aa = 0 ; aa <= a; aa++ ){
  22.             rsi_a.push(rsi[aa]);
  23.         }
  24.         arr1.push(rsi[a] - TA.Lowest(rsi_a,m));
  25.     }
  26.     for(var b = 0 ;b < rsi.length ; b++ ){//改造 不用 HHV
  27.         for(var bb = 0 ; bb <= b; bb++ ){
  28.             rsi_b.push(rsi[bb]);
  29.         }
  30.         arr2.push(TA.Highest(rsi_b,m) - TA.Lowest(rsi_b,m));
  31.     }
  32.     */
  33.     for(var a = 0 ;a < rsi.length ; a++ ){//改造 不用 LLV
  34.         if(a < m){
  35.             continue;
  36.         }
  37.         for(var aa = 0 ; aa <= a; aa++ ){
  38.             rsi_a.push(rsi[aa]);
  39.         }
  40.         arr1.push(rsi[a] - LLV(rsi_a,m));
  41.     }
  42.     for(var b = 0 ;b < rsi.length ; b++ ){//改造 不用 HHV
  43.         if(b < m){
  44.             continue;
  45.         }
  46.         for(var bb = 0 ; bb <= b; bb++ ){
  47.             rsi_b.push(rsi[bb]);
  48.         }
  49.         arr2.push(HHV(rsi_b,m) - LLV(rsi_b,m));
  50.     }

  51.     arr1 = DeleteNullEle(arr1);
  52.     arr2 = DeleteNullEle(arr2);
  53.     //Log("arr1:",arr1.length,"-",arr1);//ceshi
  54.     //Log("arr2:",arr2.length,"-",arr2);//ceshi

  55.     arr3 = talib.MA(arr1,p1);
  56.     arr4 = talib.MA(arr2,p1);

  57.     arr3 = DeleteNullEle(arr3);
  58.     arr4 = DeleteNullEle(arr4);

  59.     //Log("ceshi");//ceshi
  60.     var c = 0;
  61.     var diff = 0;
  62.     if(arr3.length !== arr4.length){//实测 长度不相等
  63.         throw "error: !=" + arr3.length + "----" + arr4.length;
  64.         diff = arr4.length - arr3.length; //example   diff  =   10  -   6
  65.     }else{
  66.         //throw "error:" + arr3.length + "----" + arr4.length;
  67.     }

  68.     for( ;c < arr3.length ; c++ ){
  69.         k.push(arr3[c] / arr4[c + diff] * 100);
  70.     }
  71.    
  72.     d = talib.MA(k,p2);

  73.     return [k,d,rsi];
  74. }
复制代码
感觉还是有点差别,但是不知道问题出在哪。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:stoc hrs CHR och TOC 最低价 交易所 收盘价

沙发
orator 发表于 2019-4-25 11:29:54 |只看作者 |坛友微信交流群
那公式是通用的源代码
我不懂JS,所以看不出哪里有问题
如果数据源没错的话,可以采用源代码调试,更改下参数,比对原图,就可以找到问题了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 11:53