App-Chart

 view release on metacpan or  search on metacpan

doc/chart.texi  view on Meta::CPAN

To draw a line press and hold mouse @key{Button-2} at the starting point, and
drag to the end.  On a two-button mouse @key{Button-2} usually means pressing
both buttons at the same time.

@cindex @key{H}
@cindex @key{Escape}
@cindex @key{D}
While drawing, press @key{H} to toggle between a sloping line (the default)
and a horizontal line.  Press the spacebar to swap to move the opposite end of
the line.  An existing line can be repositioned by pressing and dragging
@key{Button-2} near an endpoint.  Press @key{Escape} to abort an edit.  To
delete a line press @key{D} while dragging it.

@section Alert Levels
@cindex Alert levels
@cindex Alert list
@cindex Edit alert levels

Alert levels can be set if you want to know when a stock trades (or has a
bid/offer) above or below some price.  Symbols which have gone past an alert
level are put into the Alerts list.

lib/App/Chart/Gtk2/Ex/LineClipper.pm  view on Meta::CPAN

circular if the pixels aren't square, well, yes, but the same is true of the
line drawing.  The single width used vertically and horizontally for the
line segments makes them appear wider or narrower according to their angle.

=item C<< $linedrawer->add ($gc, $x, $y) >>

Add a point to C<$linedrawer>.  The points accumulated will have connected line
segments drawn from each to the next, in the order they're added.

C<$gc> is a C<Gtk2::Gdk::GC> for the new segment, ie. from the current
endpoint to the new C<$x>,C<$y>.  Different GCs can be used for different
segments and the LineClipper takes care of passing runs of the same GC to
C<clipped_draw_lines>.

=item C<< $linedrawer->end() >>

Draw the line segments accumulated, if any, and set C<$linedrawer> back to
empty, ready to start a new completely separate sequence of points.

You can use this to force a gap between points, ie. draw everything
accumulated so far and make subsequent points a new run.

lib/App/Chart/Series/Derived/Adjust.pm  view on Meta::CPAN

sub Alerts_arrayref {
  my ($self) = @_;
  my $parent = $self->{'parent'};
  if (my $func = $parent->can('Alerts_arrayref')) {
    return $parent->$func;
  } else {
    return [];
  }
}

# FIXME: Adjust endpoints per display
sub AnnLines_arrayref {
  my ($self) = @_;
  my $parent = $self->{'parent'};
  if (my $func = $parent->can('AnnLines_arrayref')) {
    return $parent->$func;
  } else {
    return [];
  }
}

lib/App/Chart/Series/Derived/EPMA.pm  view on Meta::CPAN

use Locale::TextDomain ('App-Chart');

use base 'App::Chart::Series::Indicator';
use App::Chart::Series::Calculation;
use App::Chart::Series::Derived::SMA;


# As EPMA:
#
# http://www.linnsoft.com/tour/techind/movAvg.htm
#     Formulas LSMA as endpoint, and EPMA as weightings "3*i-n-1".
#     Sample Nasdaq 100 (symbol QQQ, yahoo now ^IXIC) from 2001 of both
#     (they come out the same).
#
# http://www.traders.com/Documentation/FEEDbk_docs/Archive/062001/Letters/Letters.html
#     TASC letters June 2001, Don Kraska on the equivalence of his "3j-m-1"
#     (j=1 to j=m where price[m] latest), with what John Bellantoni
#     described in April 2001 letters.
#
# http://www.traders.com/Documentation/FEEDbk_docs/Archive/0198/Abstracts_new/TILLSON/Tillson9801.html
#     Excerpt from TASC January 1998.  Sample chart of EPMA (and IE/2) on

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.552 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )