संसाधन लोड हो रहा है... लोड करना...

साप्ताहिक K लाइन प्राप्त करें

लेखक:पागल, दिनांकः 2016-08-17 15:42:35
टैगःएक्सटेंट-एपीआई

दिन की K रेखा को सप्ताह की K रेखा के रूप में संयोजित करें, और डिफ़ॉल्ट रूप से सप्ताह रविवार से शुरू होता है (समायोज्य) ।

उपयोग कैसे करेंः $.GetRecordsWeek (एक्सचेंज)


$.GetRecordsWeek = function(exchange) {
    var rec1 = exchange.GetRecords(PERIOD_D1);
    if (!rec1) return null;
    if (rec1.length === 0) return [];
    var recN = [];
    var tmp = {
        Time: rec1[0].Time,
        Open: rec1[0].Open,
        High: rec1[0].High,
        Low: rec1[0].Low,
        Close: rec1[0].Close,
        Volume: rec1[0].Volume
    };
    for (var i = 1; i < rec1.length; i++) {
        if (Math.floor((rec1[i].Time / 86400000 - 3 - weekStarts + 1/3) / 7 + 1e-6) > Math.floor((rec1[i-1].Time / 86400000 - 3 - weekStarts - 1/3) / 7 + 1e-6)) { // new week
            recN.push({
                Time: tmp.Time,
                Open: tmp.Open,
                High: tmp.High,
                Low: tmp.Low,
                Close: tmp.Close,
                Volume: tmp.Volume
            });
            tmp.Time = rec1[i].Time;
            tmp.Open = rec1[i].Open;
            tmp.High = rec1[i].High;
            tmp.Low = rec1[i].Low;
            tmp.Close = rec1[i].Close;
            tmp.Volume = rec1[i].Volume;
        } else if (tmp.Time) { // same week
            tmp.High = Math.max(tmp.High, rec1[i].High);
            tmp.Low = Math.min(tmp.Low, rec1[i].Low);
            tmp.Close = rec1[i].Close;
            tmp.Volume += rec1[i].Volume;
        }
    }
    recN.push({
        Time: tmp.Time,
        Open: tmp.Open,
        High: tmp.High,
        Low: tmp.Low,
        Close: tmp.Close,
        Volume: tmp.Volume
    });
    return recN;
};

function main() {
    var rec = $.GetRecordsWeek(exchange);
    Log(new Date(rec[rec.length-1].Time).toString());
}

संबंधित

अधिक

सांपभगवान, अगर 4 घंटे के लिए K लाइन है, तो कैसे बदलना है?

लोगाभगवान का शुक्र है।

पागलरतन की दूसरी पंक्ति को रतन में बदल दिया var rec1 = exchange.GetRecords ((PERIOD_H1)); रतन की 15 वीं पंक्ति को रतन में बदल दिया गया if (Math.floor((rec1[i].Time / 3600000 / 4) + 1e-6) > Math.floor((rec1[i-1].Time / 3600000 / 4) + 1e-6)) {