اس کے علاوہ ، اس کے بارے میں کچھ اعداد و شمار آن لائن پائے گئے ہیں۔
/*
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;
*/
میرے خدا! میں نے صبر کے ساتھ یہ دیکھا ہے۔ (جب میں نے یہ دیکھا تو مجھے ایسا لگا جیسے میں نے کیل کو چھو لیا ہے۔) یہ وضاحت ایک عام فارمولا ہے۔ لیکن میں نے کچھ پروگرامنگ کے تجربے کے ساتھ صرف اندازہ لگا سکتا ہوں! اندازہ! اندازہ!
ان کا کہنا تھا کہ 'ہمیں اپنی زندگی میں ایک مشکل وقت کا سامنا کرنا پڑا ہے'۔ خلاصہ:
سبز رنگ میں فوری لائن %K، اورینج رنگ میں %D
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];
}
ججب ہم نے اسے دوبارہ جانچ لیا تو پتہ چلا کہ اس فنکشن کی رفتار بہت سست ہے اور اس میں بہتری کی ضرورت ہے۔
جکیا آپ کو معلوم ہے کہ آخر میں یہ کیا ہے؟ talib.STOCHRSI))) کے اعداد و شمار کو درست کرنے کے لئے؟
چھوٹا سا خوابtalib ایک اشاریہ جات کا ذخیرہ ہے۔ اوپن سورس ہے۔ بوٹ وی ایس میں اس طرح استعمال کیا جاتا ہے۔ مثال کے طور پر ، طلب کرنے والے اوسط لائن talib.MA ((records ، 10) ؛ // records طلب کرنے والے اوسط لائن کے دورانیے کے لئے K لائن ڈیٹا۔ حساب لگایا جاتا ہے کہ records K لائن 10 بار کی اوسط ہے۔ BotVS QQ گروپ پر جائیں: 608262365
چھوٹا سا خوابFstochRSI ((records,n,m,p1,p2) کے مطابق OKCoin کے پیرامیٹرز ایک جیسے ہیں، سوائے اس کے کہ پہلا records یہ K لائن ڈیٹا ہے، یعنی حساب کے اشارے کا ڈیٹا ماخذ، اور میں نے OK کے چارٹ کے حساب سے اعداد و شمار کے مقابلے میں وہی ڈیٹا کیا ہے، یعنی یہ الگورتھم کچھ سست ہے۔
چھوٹا سا خوابیہ ممکن ہے کہ آپ کو اپنے کوڈ یا الگورتھم کو بہتر بنانے کی ضرورت ہو۔
جبہت اچھا، اب میں ٹھیک ہوں۔ شکریہ!
چھوٹا سا خواباس پوسٹ میں کوڈ پہلے ہی لکھا گیا ہے ، اس کا موازنہ ذیل میں کیا جاسکتا ہے۔
جاس سے پہلے کہ ہم اسٹاک فنکشن کا استعمال کریں، یہ تقریباً ایسا ہی محسوس ہوتا ہے۔
چھوٹا سا خوابمیں نے خود STOCHRSI لکھا ہے اور بعد میں پوسٹ کیا ہے۔