Venice 0.751beta

nz.org.venice.chart.graph
Class SupportAndResistenceGraph

java.lang.Object
  extended bynz.org.venice.chart.graph.AbstractGraph
      extended bynz.org.venice.chart.graph.SupportAndResistenceGraph
All Implemented Interfaces:
Graph

public class SupportAndResistenceGraph
extends AbstractGraph

Support and Resistence "graph". This graph draws single lines across common price occurrances. The support and resistence levels are determined by the most numerous troughs and peaks within the last year of data that have the greatest vertical separation and do not overlap. There is a new heuristic which extends the peak/trough counting by placing them into bins and counting their frequency. This improves the results for some charts. NOTE: Experimental and work in progress.

Author:
Mark Hummel

Field Summary
static int BINS
           
static int HEURISTIC
           
 
Fields inherited from interface nz.org.venice.chart.graph.Graph
TOOL_TIP_BUFFER
 
Constructor Summary
SupportAndResistenceGraph(GraphSource source)
          Create a new support and Resistence graph.
SupportAndResistenceGraph(GraphSource source, java.util.HashMap settings)
          Create a new support and Resistence graph.
 
Method Summary
 Graphable[] createSupportAndResistence(Graphable source, Graphable support, Graphable resistence, int lag, int type)
          Creates a new support and resistence based on the given data source.
 double getHighestY(java.util.List x)
          Return the highest Y value in the given X range.
 double getLowestY(java.util.List x)
          Return the loweset Y value in the given X range.
 java.lang.String getName()
          Return the name of this graph.
 java.lang.String getToolTipText(java.lang.Comparable x, int y, int yoffset, double verticalScale, double bottomLineValue)
          Get the tool tip text for the given X value and y coordinate.
 GraphUI getUI(java.util.HashMap settings)
          Returns the graph's user interface.
 boolean isPrimary()
          Return whether the graph is a primary graph.
 void render(java.awt.Graphics g, java.awt.Color c, int xoffset, int yoffset, double horizontalScale, double verticalScale, double topLineValue, double bottomLineValue, java.util.List xRange, boolean vertOrientation)
          Draw the graph.
 void setSettings(java.util.HashMap settings)
          Set the graph's user definable settings.
 
Methods inherited from class nz.org.venice.chart.graph.AbstractGraph
dataAvailable, getAcceptableMajorDeltas, getAcceptableMinorDeltas, getEndX, getSettings, getSource, getSourceName, getSourceType, getStartX, getXRange, getY, getYLabel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HEURISTIC

public static final int HEURISTIC
See Also:
Constant Field Values

BINS

public static final int BINS
See Also:
Constant Field Values
Constructor Detail

SupportAndResistenceGraph

public SupportAndResistenceGraph(GraphSource source)
Create a new support and Resistence graph.

Parameters:
source - containing the data source, typically day close.

SupportAndResistenceGraph

public SupportAndResistenceGraph(GraphSource source,
                                 java.util.HashMap settings)
Create a new support and Resistence graph.

Parameters:
source - containing the data source, typically day close.
settings - the settings of the graph
Method Detail

render

public void render(java.awt.Graphics g,
                   java.awt.Color c,
                   int xoffset,
                   int yoffset,
                   double horizontalScale,
                   double verticalScale,
                   double topLineValue,
                   double bottomLineValue,
                   java.util.List xRange,
                   boolean vertOrientation)
Description copied from interface: Graph
Draw the graph.

Parameters:
g - the Graphics object to render to
c - the colour the graph should be rendered in; override this if the graph should be drawn in a certain colour - such as a Moving Average graph
xoffset - the x offset in the graphics object where the graph starts
yoffset - the y offset in the graphics object where the graph starts
horizontalScale - horizontal scale factor; use this to convert between X value in the xRange to a cartesian coordinate x
verticalScale - vertical scale factor; use this to convert between Y value to a cartesian coordinate y
topLineValue - the Y value of the lowest line in the graph
bottomLineValue - the Y value of the lowest line in the graph
xRange - a List of Comparable that contain the X values to plot
vertOrientation - true if increasing y values mean decreasing Y values

getToolTipText

public java.lang.String getToolTipText(java.lang.Comparable x,
                                       int y,
                                       int yoffset,
                                       double verticalScale,
                                       double bottomLineValue)
Get the tool tip text for the given X value and y coordinate.

Specified by:
getToolTipText in interface Graph
Overrides:
getToolTipText in class AbstractGraph
Parameters:
x - the X value
y - the y coordinate
yoffset - y offset from top of graph
verticalScale - vertical scale factor
bottomLineValue - the Y value of the lowest line in the graph
Returns:
tool tip text containing the day low, day high and day close quotes

getHighestY

public double getHighestY(java.util.List x)
Description copied from class: AbstractGraph
Return the highest Y value in the given X range.

Specified by:
getHighestY in interface Graph
Overrides:
getHighestY in class AbstractGraph
Parameters:
x - range of X values
Returns:
the highest Y value of the default GraphSource

getLowestY

public double getLowestY(java.util.List x)
Description copied from class: AbstractGraph
Return the loweset Y value in the given X range.

Specified by:
getLowestY in interface Graph
Overrides:
getLowestY in class AbstractGraph
Parameters:
x - range of X values
Returns:
the lowest Y value of the default GraphSource

getName

public java.lang.String getName()
Return the name of this graph.

Returns:
Bar Chart

isPrimary

public boolean isPrimary()
Description copied from interface: Graph
Return whether the graph is a primary graph. Primary graphs will appear together in the top chart. Secondary graphs appear in their own charts which are added below. The day close graph is primary; while the day close graph is secondary.

Returns:
true if the graph is a primary graph

createSupportAndResistence

public Graphable[] createSupportAndResistence(Graphable source,
                                              Graphable support,
                                              Graphable resistence,
                                              int lag,
                                              int type)
Creates a new support and resistence based on the given data source.

Parameters:
source - the graph source to average
support - the data points of a support line
resistence - the data points of a resistence line Currently only the points of the most numerous peaks and troughs are used as a heuristic to determine the points of support and resistence. It's a heuristic only, and still needs work.

setSettings

public void setSettings(java.util.HashMap settings)
Description copied from class: AbstractGraph
Set the graph's user definable settings.

Specified by:
setSettings in interface Graph
Overrides:
setSettings in class AbstractGraph
Parameters:
settings - the new settings

getUI

public GraphUI getUI(java.util.HashMap settings)
Description copied from class: AbstractGraph
Returns the graph's user interface. The default action is to return null which indicates that the graph does not have a user interface. If the graph does have a user interface then it should override this method.

Specified by:
getUI in interface Graph
Overrides:
getUI in class AbstractGraph
Parameters:
settings - initial settings (ignored)
Returns:
null

Venice 0.751beta