Sumber daya yang dimuat... Pemuatan...

Pengertian STOCHRSI

Penulis:Penemu Kuantitas - Mimpi Kecil, Dibuat: 2016-08-24 19:25:22, Diperbarui: 2017-10-11 11:07:31

Pengertian STOCHRSI

  • Beberapa hari yang lalu, saya membantu seorang teman menyelesaikan sebuah masalah tentang indikator, indikator ini adalah STOCHRSI. Saya telah mencari banyak informasi di internet, sangat sedikit yang berbahasa Cina. Perdagangan kecil dan putih, itu adalah buku langit. Namun, jika Anda mempelajari lebih banyak, Anda akan mendapatkan sedikit hasil, bagikan pengalaman di bawah ini, teman-teman yang perlu menggunakan ini dapat mengambil pelajaran.

Saya menemukan beberapa rumus perhitungan untuk indikator ini di internet.

/*
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 Allah, aku sudah sabar menontonnya. (Ketika aku melihat ini, aku merasa seperti memukul paku.) Ini adalah deskripsi rumus umum. Tapi saya yang memiliki sedikit pengalaman dalam pemrograman hanya bisa menebak! menebak! menebak!

  • 1. Sumber yang ditemukan di internet mengatakan bahwa indikator ini memiliki sekitar tiga bentuk yang berbeda. Rumus di atas adalah dua dari mereka.
  • 2. Lihat, bandingkan, dan bandingkan indikator ini di berbagai platform. Temukan bahwa deskripsi indikator ini berbeda-beda.
  • 3. Menggunakan database indikator talib Mengirim parameter 14,14,3,3 Kelompok parameter ini, hasil data dibandingkan dengan platform lain, menemukan perbedaan yang lebih besar.
  • 4.有点想动手撸这个指标…(有点怕怕,弄不好就被代码虐了)。

Setelah perjuangan yang paling menyakitkan... Hasilnya:

  • 1, indikator ini dalam bentuk apa pun, indikator RSI adalah data dasar dari indikator ini. Dibandingkan dengan platform lain yang dijelaskan dan rumus di atas. Parameter yang menentukan indikator STOCHRSI harus memiliki parameter yang merupakan RSI.
  • 2, juga menemukan deskripsi yang berbeda dari indikator ini, beberapa deskripsi adalah bahwa indikator output adalah %K, %D dua baris. Beberapa deskripsi adalah bahwa output adalah STOCHRSI, MA ((3) (parameter deskripsi ini adalah 14, 14, 3, 3) Analisis ini menunjukkan bahwa meskipun ada dua bentuk yang berbeda, %K === STOCHRSI, %D === MA(3) menghasilkan dua baris ((data) dengan rumus yang sama. Dua parameter yang tersisa, mulai masuk ke dalam rumus di atas, yaitu M dan P1. 14, 3 mencoba; akhirnya menemukan data indikator yang keluar, akhirnya data yang benar di platform lain.

Hijau adalah garis cepat %K, oranye adalah %D.img

  • Ini adalah indikator yang saya tulis sendiri dan dapat dibandingkan dengan OKCoin di bawah ini.

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];
}

Lebih banyak

Lijingxfdjfungsi utama Aku tidak tahu. exchange.SetContractType (("swap") // diatur sebagai kontrak permanen 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]) Aku tidak tahu. --- Jadi, saya memanggil fungsi ini, dan data yang dicetak tidak sesuai dengan nilai sebenarnya dari StochRsi di Binance.

JKetika diulang, fungsi ini terlihat sangat lambat dan harus ditingkatkan.

JApakah Anda masih belum mengerti, apa yang harus dilakukan dengan data talib.STOCHRSI????) yang ada di atas Bitcoinwisdom?

Penemu Kuantitas - Mimpi KecilMungkin masalah kontras, menentukan bahwa data kontras adalah jenis, periode, parameter, dan lokasi BAR yang sama.

Penemu Kuantitas - Mimpi Keciltalib adalah sebuah database indikator yang terbuka. Pada BotVS digunakan seperti ini, misalnya talib.MA ((records, 10); // records yang diminta untuk data K-line pada siklus rata-rata. Dihitung adalah garis rata-rata rekaman K dengan 10 bar.

Penemu Kuantitas - Mimpi KecilFstochRSI ((records, n, m, p1, p2) yang sesuai dengan parameter OKCoin adalah sama, kecuali bahwa records pertama adalah data K-line, yaitu sumber data dari indikator perhitungan, dan data yang dihitung dalam grafik OK yang saya bandingkan adalah sama, yaitu algoritma ini sedikit lambat.

Penemu Kuantitas - Mimpi KecilMungkin algoritma atau kode perlu dioptimalkan.

JSangat bagus, sekarang sudah normal. Terima kasih!

Penemu Kuantitas - Mimpi KecilPada artikel ini, kita akan membahas beberapa hal yang bisa kita lakukan untuk membantu orang-orang yang menderita penyakit ini.

JJika kita menggunakan fungsi STOCH, kita akan merasakan efek yang sama.

Penemu Kuantitas - Mimpi KecilTalib tidak setuju, perhitungan internal, sedikit berbeda. Saya sendiri menulis STOCHRSI, yang akan diunggah nanti.