Support Resistance Algorithm - Technical analysis

后端 未结 11 582
悲哀的现实
悲哀的现实 2020-12-12 09:23

I have an intra-day chart and I am trying to figure out how to calculate support and resistance levels, anyone knows an algorithm for doing that, or a good starting point?

11条回答
  •  南笙
    南笙 (楼主)
    2020-12-12 09:48

    I'm not sure if it's really "Support & Resistance" detection but what about this:

    function getRanges(_nums=[], _diff=1, percent=true) {
        let nums = [..._nums];
        nums.sort((a,b) => a-b);
        
        const ranges = [];
        for (let i=0; i isInRange(j, num-diff, num+diff) );
            if (range.length) {
                ranges.push(range);
                nums = nums.slice(range.length);
                i = -1;
            }
        }
        return ranges;
    }
    
    function perc(percent, n) {
        return n * (percent * 0.01);
    }
    function isInRange(n, min, max) {
        return n >= min && n <= max;
    }
    
    

    So let's say you have an array of close prices:

    const nums = [12, 14, 15, 17, 18, 19, 19, 21, 28, 29, 30, 30, 31, 32, 34, 34, 36, 39, 43, 44, 48, 48, 48, 51, 52, 58, 60, 61, 67, 68, 69, 73, 73, 75, 87, 89, 94, 95, 96, 98];
    

    and you want to kinda split the numbers by an amount, like difference of 5 (or 5%), then you would get back a result array like this:

    const ranges = getRanges(nums, 5, false) // ranges of -5  to +5
    /* [
        [12, 14, 15, 17]
        [18, 19, 19, 21]
        [28, 29, 30, 30, 31, 32]
        [34, 34, 36, 39]
        [43, 44, 48, 48, 48]
        [51, 52]
        [58, 60, 61]
        [67, 68, 69]
        [73, 73, 75]
        [87, 89]
        [94, 95, 96, 98]
    ]
    */
    
    // or like
    //const ranges = getRanges(nums, 5, true)  // ranges of -5% to +5%
    
    

    therefore the more length a range has, the more important of a support/resistance area it is.

    (again: not sure if this could be classified as "Support & Resistance")

提交回复
热议问题