App-Chart

 view release on metacpan or  search on metacpan

devel/makefile-to-debs.pl  view on Meta::CPAN

  ### $perl_version
  if (defined $perl_version) {
    $perl_version = version->new($perl_version);
    if ($perl_version > $minimum_perl_version) {
      # my $filename = Module::Util::module_path ($module);
      # ### $filename
      my $file = $module;
      $file =~ s{::}{/}g;
      $file .= '.pm';
      my $deb = file_to_deb ($file);
      print "$module $module_version builtin since $perl_version, drop to guess $deb\n";
      return $deb;
    }
    print "$module $module_version builtin since $perl_version\n";
  }

  my $file = $module;
  $file =~ s{::}{/}g;
  $file .= '.pm';
  return file_to_deb ($file);
}

lib/App/Chart/Finance/Yahoo/Exchanges.pm  view on Meta::CPAN

  my $delay = $h->{$suffix};

  if (! defined $delay) {
    if (my $elem = List::Util::first { $_->[0]->match ($symbol) }
        @quote_delay_aliases) {
      $suffix = $elem->[1];
      $delay = $h->{$suffix};
    }
  }
  if (! defined $delay) {
    # guess default 20 minutes
    $delay = 20;
  }
  return $delay;
}

1;
__END__

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


  return $class->SUPER::new
    (parent     => $parent,
     parameters => [ $N ],
     arrays     => { values => [] },
     array_aliases => { });
}

sub warmup_count {
  my ($self_or_class, $N) = @_;
  # extreme worst case guess, ends up about $N+687
  return $N + App::Chart::Series::Derived::EMA->warmup_count
    (App::Chart::Series::Derived::EMA::alpha_to_N(0.01));
}
### FRAMA warmup_count(): __PACKAGE__->warmup_count(0)

sub warmup_count_for_position {
  my ($self, $lo) = @_;
  my $parent = $self->{'parent'};
  my $p = $parent->values_array;
  my $ph = $parent->array('highs') || $p;

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

  $N_slow //= parameter_info()->[1]->{'default'};
  ($N_slow > 0) || croak "VIDYA bad N_slow: $N_slow";

  return $class->SUPER::new
    (parent     => $parent,
     parameters => [ $N_fast, $N_slow ],
     arrays     => { values => [] },
     array_aliases => { });
}

# warmup_count() gives a fixed amount, based on a guessed EMA alpha 0.1
# (giving GUESS_EMA_WARMUP==65), which is probably slower than occurs in
# practice.
#
# warmup_count_for_position() calculates a value on actual data, working
# backwards.  In practice it's as little as about 100.
#
use constant GUESS_EMA_WARMUP =>
  App::Chart::Series::Derived::EMA->warmup_count
  (App::Chart::Series::Derived::EMA::alpha_to_N
   (0.1));

lib/App/Chart/Suffix/BEN.pm  view on Meta::CPAN

		(first row-list)
	      ;; most recent first in list, so reverse for sessions
	      (list #:tdate     (d/m/y-str->tdate date)
		    #:commodity commodity
		    #:sessions  (reverse! (map second row-list))
		    #:volume    (apply + (map! string->number-err
					       (map first row-list))))))
	  (partition-equal-adjacent third row-list)))))

;; latest download data available
;; guess today available from 6pm
;;
(define (bendigo-available-tdate)
  (tdate-today-after 18 0 (timezone-melbourne)))

(define (bendigo-download symbol-list)
  (for-each
   (lambda (symbol)
     (download-status (_ "BSX") (_ "data") symbol)

     (let ((option (symbol->option symbol)))

lib/App/Chart/Suffix/TGE.pm  view on Meta::CPAN

  #     # 10 business days prior to the last business day of
  #     # the delivery month
  #     #     (- (mdate->tdate (1+ mdate)) 11)
  #   }
  #   when ('SG') {
  #     # raw sugar
  #     # last business day two months prior to delivery month
  #     #    (1- (mdate->tdate (1- mdate))))
  #   }
  #   default {
  #     # unknown, lets guess the last day of the contract month,
  #     # this won't be right but at least won't be early
  #     #       (1- (mdate->tdate (1+ mdate))))))
  #   }
  # }

  # FIXME:
  return undef;
}

# see table in http://www.tge.or.jp/japanese/price/prisel.js.php

lib/App/Chart/Suffix/VX.pm  view on Meta::CPAN


use App::Chart;
use App::Chart::Sympred;
use App::Chart::Suffix::SW;
use App::Chart::Yahoo;

my $pred = App::Chart::Sympred::Suffix->new ('.VX');
$App::Chart::Suffix::SW::timezone_switzerland->setup_for_symbol ($pred);

# .VX not listed in http://finance.yahoo.com/exchanges as of July 2008,
# guess same as .SW
App::Chart::Yahoo::setup_quote_delay_alias ($pred, '.SW');


#------------------------------------------------------------------------------
# weblink - only the home page for now ...
#
# virt-x.com company info pages are based on ISIN codes, not the symbol,
# would need to extract that to do web links (if haven't already got it in
# the database info)
#

lib/App/Chart/Yahoo.pm  view on Meta::CPAN

  my $delay = $h->{$suffix};

  if (! defined $delay) {
    if (my $elem = List::Util::first { $_->[0]->match ($symbol) }
        @quote_delay_aliases) {
      $suffix = $elem->[1];
      $delay = $h->{$suffix};
    }
  }
  if (! defined $delay) {
    # guess default 20 minutes
    $delay = 20;
  }
  return $delay;
}

# exchanges_data() return a hashref of exchange delay data like
#   { '.AX' => 20, '.BI' => 15 }
# which means .AX quotes are delayed by 20 minutes.
#
sub exchanges_data {

unused/Yahoo-v7.pm  view on Meta::CPAN

  my $delay = $h->{$suffix};

  if (! defined $delay) {
    if (my $elem = List::Util::first { $_->[0]->match ($symbol) }
        @quote_delay_aliases) {
      $suffix = $elem->[1];
      $delay = $h->{$suffix};
    }
  }
  if (! defined $delay) {
    # guess default 20 minutes
    $delay = 20;
  }
  return $delay;
}

# exchanges_data() return a hashref of exchange delay data like
#   { '.AX' => 20, '.BI' => 15 }
# which means .AX quotes are delayed by 20 minutes.
#
sub exchanges_data {



( run in 0.436 second using v1.01-cache-2.11-cpan-702932259ff )