private void linkFractals(FractalEvent fractalEvent) { Fractal fractal = fractalEvent.fractal.getBest(); Fractal previous = fractal.getPrevious(); if (previous != null) { for (int i = previous.index + 1; i < fractal.index; i++) { highLowLink[i] = Double.NaN; } highLowLink[previous.index] = previous.value; highLowLink[fractal.index] = fractal.value; } }
private void linkLows(FractalEvent fractalEvent) { Fractal fractal = fractalEvent.fractal.getBest(); Fractal previous = fractal.getPreviousOfSameSide(); if (fractal.low && previous != null) { double lowest = Math.Min(fractal.value, previous.value); for (int i = previous.index + 1; i < fractal.index; i++) { horizontalContinuationLineLow[i] = lowest; } for (int i = fractal.index; i < fractalEvent.index; i++) { horizontalContinuationLineLow[i] = fractal.value; } } }
private void linkHighs(FractalEvent fractalEvent) { Fractal fractal = fractalEvent.fractal.getBest(); Fractal previous = fractal.getPreviousOfSameSide(); if (fractal.high && previous != null) { double highest = Math.Max(fractal.value, previous.value); for (int i = previous.index + 1; i < fractal.index; i++) { horizontalContinuationLineHigh[i] = highest; } for (int i = fractal.index; i < fractalEvent.index; i++) { horizontalContinuationLineHigh[i] = fractal.value; } } }
private void newFractalHandler(FractalEvent fractalEvent) { Fractal fractal = fractalEvent.fractal.getBest(); drawCircle(fractal); linkHighs(fractalEvent); linkLows(fractalEvent); linkFractals(fractalEvent); if (drawArrows) { plotArrow(fractal); } if (!IsRealTime) { return; } sendEmailNotification(fractal); playSoundNotification(fractal); }