NAME

Finance::Shares::value - A line representing a constant value

SYNOPSIS

Two examples of how to specify a value line, one showing the minimum required and the other illustrating all the possible fields.

    use Finance::Shares::Model;
    use Finance::Shares::value;

    my @spec = (
	...
	lines => [
	    ...
	    minimal => {
		function => 'value',
		value    => 350,
	    },
	    full = {
		function => 'value',
		graph    => 'Stock Prices',
		gtype    => 'price',
		value    => 350,
		key      => 'Price = £3.50',
		style    => { ... },
		shown    => 1,
		order    => -99,
	    },
	    ...
	],

	samples => [
	    ...
	    one => {
		lines => ['full', 'minimal'],
		...
	    }
	],
    );

    my $fsm = new Finance::Shares::Model( @spec );
    $fsm->build();

DESCRIPTION

This module draws a horizontal line on a graph at a level specified by the user.

OPTIONS

To be any use, there must be a Finance::Shares::Model specification lines entry that has a function field declaring the module's name. Then the entry's tag must be used by a sample in some way. This may be either directly in a line field, or by referring to it within a test.

The entry must have a function field, value. The position of the line is determined by a value field, and a gtype field should be specified for any graph other than price. Unusually, there is no line field as it uses no external data.

function

Required. Must be value.

value

Required. A number usually (though not necessarily) within the range of the graph's Y axis.

graph

If present, this should be a tag declared as a charts resource. It identifies a particular graph within a chart page. A gtype is implied.

gtype

Required, unless graph is given. This specifies the type of graph the function lines should appear on. It should be one of price, volume, analysis or logic. (Default: price)

key

This provides the opportunity to identify the line in the Key panel, next to the style.

order

The entries on the graph are sorted according to this value, which defaults to the order required for calculation. A large integer will bring the line to the front and a negative number will put it behind all the rest.

Examples

-1

The line goes behind the data.

0.5

In front of the data, but only just.

999

Probably the top line.

shown

1 for the line to be shown, 0 hides it. (Default: 1)

style

This is normally a hash ref defining the data's appearance. See PostScript::Graph::Style for full details, or "Lines" in Finance::Shares::Model for an example.

BUGS

Please let me know when you suspect something isn't right. A short script working from a CSV file demonstrating the problem would be very helpful.

AUTHOR

Chris Willmot, chris@willmot.org.uk

LICENCE

Copyright (c) 2002-2003 Christopher P Willmot

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy can be found at http://www.gnu.org/copyleft/gpl.html

SEE ALSO

Finance::Shares::Overview provides an introduction to the suite, and fsmodel is the principal script.

Modules involved in processing the model include Finance::Shares::Model, Finance::Shares::MySQL, Finance::Shares::Chart. Chart and file details may be found in PostScript::File, PostScript::Graph::Paper, PostScript::Graph::Key, PostScript::Graph::Style.

Functions are invoked from their own modules, all with lower-case names such as Finance::Shares::moving_average. The nitty-gritty on how to write each line specification are found there.

The quote data is stored in a Finance::Shares::data object. For information on writing additional line functions see Finance::Shares::Function and Finance::Shares::Line. Also, Finance::Shares::Code covers writing your own tests.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 74:

Non-ASCII character seen before =encoding in '£3.50','. Assuming CP1252

Around line 153:

Expected text after =item, not a number