HighLowChart
Modified in version 5.0
HighLowChart ( appearanceConst ; doShiftIntervals ; highLowChartType ; highTickMarkLength ; highTickMarkAlignment ; lowTickMarkLength ; lowTickMarkAlignment ; closeTickMarkLength ; closeTickMarkAlignment ; openTickMarkLength ; openTickMarkAlignment )
Argument | Type | Range | Default | Note |
---|---|---|---|---|
appearanceConst | int | 0..127 | default | |
doShiftIntervals | int | 0..1 | off | |
highLowChartType | int | 1..3 | highLow | |
highTickMarkLength | num | 0..200 | 25 | % of interval width |
highTickMarkAlignment | int | 1..3 | center | |
lowTickMarkLength | num | 0..200 | 25 | % of interval width |
lowTickMarkAlignment | int | 1..3 | center | |
closeTickMarkLength | num | 0..200 | 25 | % of interval width |
closeTickMarkAlignment | int | 1..3 | center | |
openTickMarkLength | num | 0..200 | 25 | % of interval width |
openTickMarkAlignment | int | 1..3 | center |
Examples
Description
The HighLowChart() function makes it possible to depict value ranges in a variety of ways. At least two data series are necessary to define the range limits. The highest values are entered in the ChartData() function as the 1st data series, the lowest values as the 2nd data series.
| HIGH_LOW_CHART_01 |
1 | OpenDrawing(250;150) |
2 | ChartData(26 19 19 24 15 15 6; /* High-values. */ |
3 | 18 12 10 15 11 6 2) /* Low-values. */ |
4 | |
5 | /* Set up styles. */ |
6 | LineStyle(1;;0.75;#4682b4) |
7 | /* Set up axes. */ |
8 | |
9 | AxisMajorTicks(all;0) |
10 | /* Set up grid. */ |
11 | MajorGridLineWidths(x;y;0.25) |
12 | MajorGridLineWidths(y;x;0) |
13 |
As an option, by using the 3rd argument highLowChartType, three values (highLowChartType = highLowClose) or even four values (highLowChartType = highLowCloseOpen) can be entered in addition to the two default values (highLowChartType = highLow). Since this type of chart is frequently used for stock market prices, the four values are referred to as highest, lowest, closing and opening price. In ChartData() the closing prices are entered as the 3rd data series and the opening prices as the 4th data series. Furthermore, it is possible to move the range lines half an interval width so that they do not lie on the interval borders but rather in the middle of the intervals. This can be done by activating the 2nd argument doShiftIntervals = on.
| HIGH_LOW_CHART_02 |
1 | OpenDrawing(250;150) |
2 | ChartData(118 122 118 116 118 121 123; /* High-values. */ |
3 | 102 105 104 104 110 111 113; /* Low-values. */ |
4 | 104 119 118 108 115 118 113) /* Close-values. */ |
5 | |
6 | /* Set up styles. */ |
7 | LineStyle(1;;0.75;#4682b4) |
8 | /* Set up axes. */ |
9 | |
10 | AxisMajorTicks(all;0) |
11 | /* Set up grid. */ |
12 | MajorGridLineWidths(x;y;0.25) |
13 | MajorGridLineWidths(y;x;0) |
14 |
The alignment of the markers — the markers for the lowest and opening prices are normally aligned to the left, the markers for the highest and closing prices to the right — is defined by using the arguments highMarkerAlignment, lowMarkerAlignment, closeMarkerAlignment and openMarkerAlignment. All markers can either be placed on the left, on the right or in the center (default). The length of the markers can be controlled by the arguments highMarkerLength, lowMarkerLength, closeMarkerLength and openMarkerLength and should be entered in percent of the interval width.
| HIGH_LOW_CHART_03 |
1 | OpenDrawing(250;150) |
2 | ChartData(26 19 19 24 15 15 6; /* High-values. */ |
3 | 18 12 8 15 11 6 2) /* Low-values. */ |
4 | HighLowChart(;on;highLow;;right;;left) |
5 | /* Set up styles. */ |
6 | LineStyle(1;;0.75;#4682b4) |
7 | /* Set up axes. */ |
8 | |
9 | AxisMajorTicks(all;0) |
10 | /* Set up grid. */ |
11 | MajorGridLineWidths(x;y;0.25) |
12 | MajorGridLineWidths(y;x;0) |
13 |
| HIGH_LOW_CHART_04 |
1 | OpenDrawing(250;150) |
2 | ChartData(118 122 118 116 118 121 123; /* High-values. */ |
3 | 102 105 104 104 110 111 113; /* Low-values. */ |
4 | 104 119 118 108 115 118 113; /* Close-values. */ |
5 | 113 121 114 112 118 121 121) /* Open-values. */ |
6 | HighLowChart(;on;highLowCloseOpen;0;;0;;;right;;left) |
7 | /* Set up styles. */ |
8 | LineStyle(1;;0.75;#4682b4) |
9 | /* Set up axes. */ |
10 | |
11 | AxisMajorTicks(all;0) |
12 | /* Set up grid. */ |
13 | MajorGridLineWidths(x;y;0.25) |
14 | MajorGridLineWidths(y;x;0) |
15 |
| HIGH_LOW_CHART_05 |
1 | OpenDrawing(250;150) |
2 | ChartData(118 122 118 116 118 121 123; /* High-values. */ |
3 | 102 105 104 104 110 111 113; /* Low-values. */ |
4 | 104 119 118 108 115 118 113; /* Close-values. */ |
5 | 113 121 114 112 118 121 121) /* Open-values. */ |
6 | HighLowChart(;on;highLowCloseOpen;0;;0;;;right;;left) |
7 | /* Set up styles. */ |
8 | LineStyle(1;;0.75;#4682b4) |
9 | /* Set up axes. */ |
10 | |
11 | |
12 | AxisMajorTicks(all;0) |
13 | AxisMajorTickLabelTexts(x;"20.10";"21.10";"22.10";"23.10";"26.10";"27.10";"28.10") |
14 | AxisMajorTickLabelStyle(x;"Arial";9;plain;black;;-90) |
15 | /* Set up grid. */ |
16 | MajorGridLineWidths(x;y;0.25) |
17 | MajorGridLineWidths(y;x;0) |
18 |
The 1st argument appearanceConstants makes it possible to rotate the chart 90 degrees (appearanceConstants = horizontal) to add symbols (appearanceConstants = symbol), shadow (appearanceConstants = shadow) and labels (appearanceConstants = label) to the range lines. All options can be combined by using a plus sign "+". The lines, symbols and shadows can be varied by using the style functions LineColorScheme() , LineStyle() , SymbolColorScheme() , SymbolStyle() and ShadowStyle() and the labels by using the five style functions LabelTexts() , LabelStyle() , LabelBackground() , LabelBackgroundOptions() and LabelOptions() .
| HIGH_LOW_CHART_06 |
1 | OpenDrawing(250;150) |
2 | ChartData(26 19 19 24 15 15 6; /* High-values. */ |
3 | 18 12 10 15 11 6 2) /* Low-values. */ |
4 | HighLowChart(shadow+symbol;on;;0;;0) |
5 | /* Set up styles. */ |
6 | LineStyle(1;;0.75;#4682b4) |
7 | SymbolStyle(1;bullet;4;1;#4682b4;shaded) |
8 | ShadowStyle(1;2 2 3) |
9 | /* Set up axes. */ |
10 | |
11 | AxisMajorTicks(all;0) |
12 | /* Set up grid. */ |
13 | MajorGridLineWidths(x;y;0.25) |
14 | MajorGridLineWidths(y;x;0) |
15 |
| HIGH_LOW_CHART_07 |
1 | OpenDrawing(250;150) |
2 | ChartData(27 20 17 24 20; /* High-values. */ |
3 | 18 12 10 15 11) /* Low-values. */ |
4 | |
5 | /* Set up styles. */ |
6 | LineStyle(1;;1;#4682b4) |
7 | SymbolStyle(1;bullet;16;1;#4682b4;shaded) |
8 | ShadowStyle(1;2 2 3) |
9 | LabelStyle(1;Arial;10;bold;white) |
10 | LabelOptions(1;centerCenter;;-1) |
11 | /* Set up axes. */ |
12 | ScalingOptions(y;on) /* y-scale top to bottom. */ |
13 | |
14 | AxisMajorTicks(all;0) |
15 | AxisMajorTickLabelOptions(x;;;8) |
16 | AxisMajorTickLabelOptions(y;;-8) |
17 | /* Set up grid. */ |
18 | MajorGridLineWidths(x;y;0) |
19 | MajorGridLineWidths(y;x;0.25) |
20 |
| HIGH_LOW_CHART_08 |
1 | OpenDrawing(250;150) |
2 | ChartData(27 20 17 24 20 15; /* High-values. */ |
3 | 18 12 5 15 11 6) /* Low-values. */ |
4 | |
5 | /* Set up styles. */ |
6 | LineStyle(1;;1.5;#4682b4) |
7 | LabelStyle(1;Arial;10;bold;white) |
8 | LabelBackground(1;#4682b4;;1;#4682b4) |
9 | |
10 | /* Set up axes. */ |
11 | |
12 | AxisMajorTicks(all;0) |
13 | /* Set up grid. */ |
14 | MajorGridLineWidths(x;y;0.25) |
15 | MajorGridLineWidths(y;x;0) |
16 |
| HIGH_LOW_CHART_09 |
1 | OpenDrawing(250;150) |
2 | ChartData(10 10 10 10 10; /* Max-values. */ |
3 | 0 0 0 0 0; /* Min-values. */ |
4 | 5 3 8 3 1) /* Closing-values. */ |
5 | |
6 | /* Set up styles. */ |
7 | LineStyle(1;;1;#4682b4) |
8 | LabelStyle(1;Arial;10;bold;#4682b4) |
9 | LabelBackground(1;white;;0;;;2 2 3) |
10 | |
11 | /* Set up axes. */ |
12 | ScalingOptions(y;on) /* y-scale top to bottom. */ |
13 | AxisOptions(x;none) /* Hide x-axis. */ |
14 | |
15 | AxisMajorTicks(y;0) |
16 | AxisMajorTickLabelOptions(y;;-10) |
17 | /* Set up grid. */ |
18 | MajorGridLineWidths(all;all;0) |
19 |
| HIGH_LOW_CHART_10 |
1 | OpenDrawing(250;150) |
2 | ChartData(50 30 40 40; /* 1st series (max-values) */ |
3 | 0 0 10 0; /* 1st series (min-values) */ |
4 | 120 120 110 120; /* 2nd series (max-values) */ |
5 | 80 85 70 60) /* 2nd series (min-values) */ |
6 | HighLowChart(label+horizontal+symbol;;;0;;0) |
7 | /* Set up styles. */ |
8 | LineStyle(1;;1;#4682b4) |
9 | LineStyle(2;;1;#fdb910) |
10 | SymbolStyle(1;bullet;16;1;#4682b4;shaded) |
11 | SymbolStyle(2;none) |
12 | LabelStyle(1;Arial;10;bold;white) |
13 | LabelOptions(1;centerCenter;;-1) |
14 | LabelStyle(2;Arial;10;plain) |
15 | LabelBackground(2;#fdb910;;1;#fdb910) |
16 | |
17 | /* Set up axes. */ |
18 | ScalingOptions(y;on) /* y-scale top to bottom. */ |
19 | AxisOptions(x;none) /* Hide x-axis. */ |
20 | |
21 | AxisMajorTicks(y;0) |
22 | AxisMajorTickLabelOptions(y;;-10) |
23 | /* Set up grid. */ |
24 | MajorGridLineWidths(all;all;0) |
25 |
| HIGH_LOW_CHART_11 |
1 | OpenDrawing(250;150) |
2 | ChartData(10 10 10 10 10; /* Max-values. */ |
3 | 0 0 0 0 0; /* Min-values. */ |
4 | 5 3 8 3 1; /* Closing-values. */ |
5 | 2 9 7 5 1) /* Opening-values. */ |
6 | |
7 | 0;; /* Max */ |
8 | 0;; /* Min */ |
9 | 50;left; /* Close */ |
10 | 25;right) /* Open */ |
11 | /* Set up styles. */ |
12 | LineStyle(1;;2;#4682b4) |
13 | /* Set up axes. */ |
14 | ScalingOptions(y;on) /* y-scale top to bottom. */ |
15 | |
16 | AxisMajorTicks(all;0) |
17 | AxisMajorTickLabelOptions(y;;-3) |
18 | /* Set up grid. */ |
19 | MajorGridLineWidths(x;y;0) |
20 | MajorGridLineWidths(y;x;0.25) |
21 |
See also HighLowChartoptions() .c