Mit dem alten Weißen JavaScript spielen - ein Partner schaffen, der einkaufen und verkaufen kann.

Schriftsteller:Kleine Träume, Erstellt: 2017-03-06 09:57:41, Aktualisiert: 2017-10-11 10:36:41

Mit dem alten Weiß spielt man mit JavaScript, um einen kleinen Partner zu schaffen, der Kauf und Verkauf macht.

Das langweilige Leben der Frontenfarmer

Kann die langweilige Codewelt eine klare Quelle haben? Kann ein einheitliches Leben einen frischen Wind haben? Unruhige Jugend wieder unruhig sein? Dies müssen die gemeinsamen Gefühle der Programmierer sein. Als ein auf der Strecke lebender Programmierer kann man sich nicht mehr als Kleingeborener in der Kabeljau-Ebene von JavaScript bezeichnen.

  • Entdecken

    Langwei ist ein spät eingeschlagener Gardner, der sich vor allem mit dem Hintern und Futures beschäftigt. Es gibt ein bisschen Konzepte von Wertpapierhandel, die man für einen Programmierer halten kann, bevor ich auf dem Futures-Markt explodiert bin. Es ist gut, dass ich C und C++ Programmiersprachen gelernt habe, die für mich hilfreich sind. Das ist sehr hilfreich, um JavaScript schnell zu lernen.

    JS, Python, C/C++, JAVA, etc. können Programmierungstransaktionen durchführen. Es gibt viel zu lernen, aber es gibt immer noch etwas Neues zu spielen.

    Einer der jüngsten Roboterstudien zeigt, dass ein bekannter Handelsprozess, der auch auf dem Commodity-Futures-Markt zu finden ist, in einem anderen Land entwickelt wurde.

    img

    img

    Als ich anfing, mit JavaScript zu schreiben, fühlte ich mich völlig unempfänglich. Das ist ein ganz anderes Gefühl als beim ersten JS-Code, der sich eine Zeit lang nicht anpasste. Früher sah ich die blumiggrünen Linien und Säulen in der Aktiensoftware, die nie darüber nachgedacht hatten, wie sie berechnet wurden.

    Es gibt auch einige, die eine Referenz wert sind. Der STOCH RSI-Indikator, zum Beispiel, gibt es nur wenig Informationen im Internet.

    Der alte Weißschriftvergleich ist LOW, bitte nicht.

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

Das ist eine sehr schwierige Aufgabe.

img

Schreiben Sie erst heute und wir sehen uns dann.https://www.fmz.com/bbs-topic/723

Der Programmierer littleDream, ursprünglich


Mehr

wenig315Die Kühe!