Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
128 lines (92 sloc) 3.96 KB
Finance::FITF - Fast Intraday Transaction Format
use Finance::FITF;
my $day = Finance::FITF->new_from_file('XTAF.TX-2010-11-19.fitf');
warn $day->header->{start}[0]; # start of the first session
warn $day->header->{end}[0]; # end of the first session
warn $day->header->{bar_seconds}; # number of seconds per bar
# last bar in the file. you can get open/high/low/close/volume from $bar
my $bar = $day->bar_at($day->header->{end}[0]);
# run the ticks in the last bar with the given callback
$day->run_ticks($bar->{index}, $bar->{index}+$bar->{ticks}-1,
sub { my ($time, $price, $volume) = @_; });
Finance::FITF provides access to the FITF format, an efficient storage
format for intraday trading records.
The FITF format consists 3 parts:
The header defines the name, date, and sessions of the transactions
that the file is describing.
The fields and packing format of FITF header are:
magic a2
magic for FITF files should be "\x1f\xf1".
version n
FITF format version
date a8
YYYYMMDD string of the trading day
time_zone Z31
Long time zone name. For example: America/Chicago, Asia/Taipei.
start N:3
start timestamp of each session
end N:3
end timestamp of each session
records N
number of tick records
bar_seconds n
number of seconds per bar
format N
flags for bar and tick sizing and format
divisor N
the number that the all prices in this file should be divided by
name Z47
free form name
The number of bars in the file is determined by the total seconds in
the sessions defined in the header, divided by "bar_seconds" defined
in the header. The first bar denotes trading transaction between the
start of the session, until and excluding "bar_seconds" past the
start of the session.
Each bar contains the "open", "high", "low", and "close" prices
information of the given period, as well as "volume" and "ticks".
The "index" field points to the start of the tick records of the
period of the current bar.
The number of ticks in the file is determined by the "records" field
in the header. Each record contains "price" and "volume" for the
transaction. The time of the transaction is determined by
"offset_min" and "offset_msec", which are time offset in minutes and
milliseconds from the start of the *first session*, respectively.
Returns Finance::FITF object for the given FITF-formatted file at
Returns the bar hash located at $ts. The bar represents trades
within the "bar_seconds" before and excluding the epoch timestamp
Returns the index of the bar located $ts.
$self->run_ticks($start, $end, $cb)
Iterate the ticks indexed by $start and $end for the callback $cb.
the callback takes timestamp, price, and volume as argument.
$self->run_bars($start, $end, $cb)
Iterate the bars indexed by $start and $end for the callback $cb.
the callback takes the bar hash.
$self->run_bars_as($bar_seconds, $offset, $cb)
Aggregate bars into $bar_seconds-bars for the callback $cb. The
callback takes timestamp of the bar and the bar hash.
A faster helper to format timestamp as "%F %T" in the
Chia-liang Kao <>
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
Jump to Line
Something went wrong with that request. Please try again.