क्या थकी हुई कोड की दुनिया में एक स्वच्छ स्रोत हो सकता है? क्या एकतरफा जीवन में एक साफ हवा हो सकती है? बेचैन युवाओं को फिर से बेचैन होना चाहिए? ये प्रोग्रामरों की आम भावनाएं होनी चाहिए। एक अजनबी वयस्क प्रोग्रामर के रूप में, जावास्क्रिप्ट के रबड़ स्तर पर अब कोलोबेट नहीं कहा जा सकता है, तो पुराने रबड़ का नाम लें! हालांकि रबड़ स्तर, रोजाना कोड करने में व्यस्त है, लेकिन यह भी जेएस के साथ कुछ मजेदार खेलने से नहीं रोकता है, अपनी तकनीक के साथ जीवन और काम में भी खुशी पा सकता है।
बूढ़े आदमी के रूप में एक देर से प्रवेश करने वाले जॉर्डन किसान के रूप में, मियामी से पहले कोई समस्या नहीं थी, भविष्यवाणियों के साथ खेलते थे। एक छोटे से स्टॉक ट्रेडिंग अवधारणा है, आप सोच सकते हैं कि मैं भविष्यवाणियों के बाजार में विस्फोट हुआ हूं, ताकि मैं प्रोग्रामर बन सकूं। यह भी अच्छा है कि मैं कॉलेज में था, सी और सी ++ प्रोग्रामिंग भाषाओं को सीख रहा था, जो मेरी उम्र के युवाओं के लिए जल्दी से जावास्क्रिप्ट को मास्टर करने के लिए उपयोगी था। दोस्तों के साथ शराब पीने के लिए बहुत अच्छा है (दोस्त एक निजी तौर पर खाली समय में कमोडिटी ऑपरेटर है) और भविष्यवाणियों के बारे में बात करते हैं। एक बार बात करते हुए कि उनकी कंपनी ने प्रोग्रामेटिक ट्रेडिंग करने की योजना बनाई है, मुझे प्रोग्रामिंग पसंद करने वालों के लिए बहुत दिलचस्पी है, यह स्वाभाविक रूप से इंटरनेट पर विभिन्न पूरक अवधारणाओं, सूखी वस्तुओं की खोज है। परिणामों का पता चला है, इस तरह के बहुत पहले से ही हैं, और हाल ही में विदेशों में अधिक लोकप्रिय हैं। मुझे अजीब लग रहा है, कुछ भी तकनीक में इंटरनेट का
JS, Python, C/C++, JAVA आदि में प्रोग्रामेटिक लेन-देन किया जा सकता है (केवल JS का उपयोग करने के लिए बहुत कुछ है, Python स्वयं सीख रहा है), सीखने के लिए बहुत कुछ है।
हाल ही में, एक रोबोट प्रोग्राम ने एक विदेशी प्रसिद्ध ट्रेडिंग लॉजिक और एक कमोडिटी फ्यूचर्स मार्केट का अध्ययन किया है, जो इसे घरेलू कमोडिटी बाजार में लाने का विचार रखता है।
जब मैं जावास्क्रिप्ट के साथ लिखना शुरू करता हूं तो मुझे पूरी तरह से समझ में नहीं आता है, यह पहले के जेएस के साथ कोड लिखने के लिए पूरी तरह से अलग महसूस करता है, एक समय के लिए मस्तिष्क अनुकूल नहीं होता है, पहले स्टॉक सॉफ्टवेयर पर उन फूलों, हरे रंग की रेखाओं, स्तंभों को देखने के लिए कभी नहीं सोचा था कि वे कैसे गणना की गई थी। इस बार आम तौर पर इस्तेमाल किया गया है, और कुछ ने भी अध्ययन किया है कि कैसे गणना की गई है।
कुछ अन्य संदर्भ भी हैं। उदाहरण के लिए, स्टोच आरएसआई सूचकांक के बारे में बहुत कम जानकारी है, इसलिए आप इसे स्वयं देख सकते हैं।
पुराने और सफेद में तुलना LOW है, आप परवाह नहीं करते हैं।
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];
}
यह एक बहुत ही अच्छा तरीका है।
आज ही यहाँ लिखिए, हम अगले अंक में मिलेंगे।https://www.fmz.com/bbs-topic/723
छोटा315गाय!