如何标记烛台触线?

时间:2016-07-21 10:18:33

标签: javascript highcharts highstock

我想在烛台接触线时标记。基本上,我可以在图表上标记一些点,所以我有疑问为什么我的代码不能用于任何点。 如果您对我的代码有任何疑问,请告诉我。

get_ohlc_intersection = function (p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {
                var p0_x = p0x;            
                var p0_y = p0y;
                var p1_x = p1x;
                var p1_y = p1y;
                var p2_x = p2x;          
                var p2_y = p2y[2];
                var p3_x = p3x;
                var p3_y = p3y[3];


                var s1_x, s1_y, s2_x, s2_y;
                s1_x = p1_x - p0_x; s1_y = p1_y - p0_y;
                s2_x = p3_x - p2_x; s2_y = p3_y - p2_y;

                var s = (-s1_y * (p0_x - p2_x) + s1_x * (p0_y - p2_y)) / (-s2_x * s1_y + s1_x * s2_y);
                var t = (s2_x * (p0_y - p2_y) - s2_y * (p0_x - p2_x)) / (-s2_x * s1_y + s1_x * s2_y);

                if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {
                    return [p0_x + (t * s1_x), p0_y + (t * s1_y)];
                }
                return false;

            }



series: [{ type: 'candlestick',
           name: 'AAPL',
           data: ohlc,
        },{ 
           type: 'line',
           name: 'EMA1', 
           data: EMA1,
        },{ 
           type: 'scatter', 
           name: 'intersect', 
           data: [],
        }]


function (chart2){
                        var s0 = chart2.series[0];
                        var s1 = chart2.series[1];
                        var s2 = chart2.series[3];
                        var n0 = s0.xData.length;
                        var n1 = s1.xData.length;
                        var i, j, isect;
                        for (i = 1; i < n1; i++) {
                            for (j = 1; j < n0; j++) {
                                if (isect = get_ohlc_intersection(s1.xData[i-1], s1.yData[i-1], s1.xData[i], s1.yData[i],
                                                    s0.xData[j-1], s0.yData[j-1], s0.xData[j], s0.yData[j])) {
                                    s2.addPoint(isect, false, false);
                                }
                            }
                        }
                        chart2.redraw();
                    }

xData是日期。   yData是数组的数组,它是open,high,low,close。 对不起,如果缺少有关代码的信息,请不要犹豫。

enter image description here

0 个答案:

没有答案