Может ли скучный мир кода иметь чистый источник? Монотонная жизнь может ли иметь свежий ветер? Беспокойная молодежь снова беспокойна? Это должны быть общие чувства программистов.
Старая белорусская как поздний входе фермеров, игры в будущее. Есть немного концепции биржевых сделок, вы можете считать, что я взорвался на рынке фьючерсов, прежде чем стать программистом. Хорошо, что я учился в колледже, изучая языки программирования C, C ++, не пропуская уроки, это очень полезно для моего возраста молодежь быстро овладеть JavaScript.
После одного поиска вы увидите, что JS, Python, C/C++, JAVA и т. д. могут делать программируемые сделки (многое только в JS, Python учится самостоятельно), и что-то еще многому нужно научиться. Но все же есть что-то новое, что можно играть, поэтому есть следующая серия статей, записанных точкой-точкой.
Недавнее исследование роботизированного программного обеспечения, которое является довольно известным за рубежом и является логикой торговли на товарных фьючерсных рынках, привело к идее использовать его на внутреннем рынке товаров (имеется компания под названием simnow, которая предоставляет услуги по созданию имитационных счетов).
Когда я только начал писать в JavaScript, я чувствовал себя совершенно беспомощным, это чувство совершенно отличается от того, что я испытывал, когда я писал код в предыдущем JS, некоторое время мозг не мог приспособиться, прежде чем посмотреть на те зеленые линии или столбы на программном обеспечении акций, которые никогда не рассчитывали, как они были рассчитаны.
И еще несколько полезных ссылок. Например, показатель STOCH RSI, о котором очень мало информации в Интернете, нужно просмотреть самостоятельно.
По сравнению с тем, что написано белым и старым 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Корова!