Type/to search
8
Follow
1370
Followers
Pengertian STOCHRSI
FAQ
Created 2016-08-24 19:25:22  Updated 2017-10-11 11:07:31
 14
 12711

Pengertian STOCHRSI

  • Dalam beberapa hari ini saya telah membantu seorang rakan untuk menyelesaikan satu soalan mengenai indeks, iaitu STOCHRSI. Saya telah mencari banyak maklumat di internet, tetapi tidak banyak yang ditulis dalam bahasa Cina.
    Berniaga kecil-kecilan, ia adalah perkara biasa. Tetapi, anda akan mendapat sedikit hasil dari penyelidikan anda, dan anda boleh mengambil contoh daripada rakan anda yang perlu berkongsi pengalaman anda di bawah.

Terdapat beberapa formula yang boleh dijumpai dalam talian untuk mengira nilai ini.

/* LC := REF(CLOSE,1); //REF(C,1) 上一周期的收盘价 RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100; %K: MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100; LLV(l,60)表示:检索60天内的最低价,可适应于检索任何股票 %D:MA(%K,P2); LC := REF(CLOSE,1); RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100; STOCHRSI:MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100; */

Ya Tuhan! Saya sudah tidak sabar lagi untuk menontonnya.
Ini adalah formula umum, tetapi saya yang mempunyai sedikit pengalaman pengaturcaraan hanya boleh meneka! meneka! meneka!

    1. Sumber yang ditemui di internet mengatakan bahawa terdapat kira-kira 3 bentuk yang berbeza. Rumus di atas adalah 2 daripadanya. Tetapi sumber itu tidak mengatakan maklumat lanjut mengenai 3 bentuk yang berbeza.
    1. Lihat dan bandingkan keadaan carta di setiap platform. Ia mendapati bahawa penerangan mengenai indikator ini berbeza. Penerangan parameter fungsi indikator STOCHRSI dalam perpustakaan indikator talib di platform juga tidak sepenuhnya difahami.
    1. Menggunakan talib indicator library untuk memasukkan parameter 14,14,3,3 Kumpulan parameter ini, data yang dihasilkan dibandingkan dengan platform lain, mendapati perbezaan yang besar.
    1. sedikit ingin menggerakkan tangan pada penunjuk ini... ((sedikit takut, jika gagal, ia akan dianiaya oleh kod) <unk>)

Selepas perjuangan yang menyakitkan...
Kesimpulannya:

  • 1 , Indeks ini tidak kira apa bentuknya, RSI adalah data asas untuk indikator ini. Dibandingkan dengan penerangan platform lain dan formula di atas. Untuk menentukan parameter indikator STOCHRSI, mesti ada parameter RSI.
  • 2), dan terdapat pelbagai penerangan mengenai penunjuk ini, ada yang menyatakan bahawa penunjuk ini menghasilkan dua baris %K, %D. Ada juga yang menyatakan bahawa penunjuk ini menghasilkan STOCHRSI, MA(3) (parameter penerangan ini adalah 14, 14, 3, 3)
    Analisis, sebenarnya walaupun 2 bentuk yang berbeza, %K === STOCHRSI, %D === MA(3) 2 baris () data) formula perhitungan output adalah sama. Menentukan MA(3) 3 adalah parameter.
    2 parameter yang tersisa, yang dibawa ke dalam formula di atas, iaitu M dan P1. 14, 3 telah dicuba. Data penunjuk akhirnya ditemui, dan akhirnya data di platform lain.

Hijau ialah %K, oren ialah %D
img

  • Ia adalah penunjuk yang saya tulis sendiri, dan boleh dibandingkan dengan OKCoin. Sila komen jika anda mempunyai soalan ^^
function LLV(array,period){ if(!array || array.length - period < 0){ throw "error:" + array; } var min = array[array.length - period]; for(var i = array.length - period; i < array.length; i++){ if( array[i] < min ){ min = array[i]; } } return min; } function HHV(array,period){ if(!array || array.length - period < 0){ throw "error:" + array; } var max = array[array.length - period]; for(var i = array.length - period; i < array.length; i++){ if( array[i] > max){ max = array[i]; } } return max; } function DeleteNullEle(initArr){ var dealArr = []; var initArrLen = initArr.length; for(var i = 0,j = 0 ; i < initArrLen ; i++,j++){ if(initArr[i] === null || isNaN(initArr[i]) ){ j--; continue; } dealArr[j] = initArr[i]; } return dealArr; } /* LC := REF(CLOSE,1); //REF(C,1) 上一周期的收盘价 RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100; %K: MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100; LLV(l,60)表示:检索60天内的最低价,可适应于检索任何股票 %D:MA(%K,P2); LC := REF(CLOSE,1); RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100; STOCHRSI:MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100; */ function FstochRSI(records,n,m,p1,p2){ var len = records.length; //var LC = records[len-2];//上一周期收盘价 //var rsi = TA.RSI(records,n);// RSI 数组 ,talib var rsi = talib.RSI(records,n); rsi = DeleteNullEle(rsi);//ceshi var arr1 = []; var arr2 = []; var arr3 = []; var arr4 = []; var rsi_a = []; var rsi_b = []; var k = []; var d = null; /*不包含当前柱 for(var a = 0 ;a < rsi.length ; a++ ){//改造 不用 LLV for(var aa = 0 ; aa <= a; aa++ ){ rsi_a.push(rsi[aa]); } arr1.push(rsi[a] - TA.Lowest(rsi_a,m)); } for(var b = 0 ;b < rsi.length ; b++ ){//改造 不用 HHV for(var bb = 0 ; bb <= b; bb++ ){ rsi_b.push(rsi[bb]); } arr2.push(TA.Highest(rsi_b,m) - TA.Lowest(rsi_b,m)); } */ for(var a = 0 ;a < rsi.length ; a++ ){//改造 不用 LLV if(a < m){ continue; } for(var aa = 0 ; aa <= a; aa++ ){ rsi_a.push(rsi[aa]); } arr1.push(rsi[a] - LLV(rsi_a,m)); } for(var b = 0 ;b < rsi.length ; b++ ){//改造 不用 HHV if(b < m){ continue; } for(var bb = 0 ; bb <= b; bb++ ){ rsi_b.push(rsi[bb]); } arr2.push(HHV(rsi_b,m) - LLV(rsi_b,m)); } arr1 = DeleteNullEle(arr1); arr2 = DeleteNullEle(arr2); //Log("arr1:",arr1.length,"-",arr1);//ceshi //Log("arr2:",arr2.length,"-",arr2);//ceshi arr3 = talib.MA(arr1,p1); arr4 = talib.MA(arr2,p1); arr3 = DeleteNullEle(arr3); arr4 = DeleteNullEle(arr4); //Log("ceshi");//ceshi var c = 0; var diff = 0; if(arr3.length !== arr4.length){//实测 长度不相等 throw "error: !=" + arr3.length + "----" + arr4.length; diff = arr4.length - arr3.length; //example diff = 10 - 6 }else{ //throw "error:" + arr3.length + "----" + arr4.length; } for( ;c < arr3.length ; c++ ){ k.push(arr3[c] / arr4[c + diff] * 100); } d = talib.MA(k,p2); return [k,d,rsi]; }
Related Recommendations
Comment
All comments (11)

    function main()
    {
    exchange.SetContractType("swap") // 设置为永续合约
    var records = exchange.GetRecords(PERIOD_M15)
    let [k, d, rsi] = FstochRSI(records, 14, 14, 3, 3);
    Log("K",k[k.length-2])
    Log("D",d[d.length-2])
    }

    梦总,我调用了这个函数,并且打印出来的数据跟币安上的StochRsi的实际值是对不上的

    2 years ago

    可能是对比的问题,确定对比的数据是同样品种、周期、参数、BAR位置。这个之前测试过,应该是一样的。

    2 years ago
    J

    回测时发现这个函数的速度非常慢,有待提高

    10 years ago

    可能算法或者代码需要优化

    10 years ago
    J

    还是没看明白,这最后到底要怎么用 talib.STOCHRSI() 才能对的上bitcoinwisdom的数据?

    10 years ago

    talib的 对不上,内部计算,有些不一样。我自己写了下 STOCHRSI ,稍后贴出来。

    10 years ago

    先用STOCH函数了,感觉效果差不多

    10 years ago

    代码已经写在帖子上了, 可以对比下看看。

    10 years ago

    太好了,现在正常了。谢谢!

    10 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)