view release on metacpan or search on metacpan
lib/App/financeta/gui.pm view on Meta::CPAN
push @addon_plot, @$bsplot_addon;
}
}
} else {
$log->warn("Unable to plot invalid buy-sell data");
}
}
$pwin->reset();
# use multiplot
$pwin->multiplot();
my %binmode = ();
if ($^O !~ /Win32/ and $Alien::Gnuplot::version < 4.6) {
$log->debug("Binary mode is set to 0 due to gnuplot $Alien::Gnuplot::version");
$binmode{binary} = 0;
}
if ($type eq 'OHLC') {
my %addon_gen = ();
if (@addon_plot) {
$addon_gen{size} = ["1, 0.7"];
$addon_gen{origin} = [0, 0.3];
$addon_gen{bmargin} = 0;
$addon_gen{lmargin} = 9;
$addon_gen{rmargin} = 2;
}
$pwin->plot({
%binmode,
object => '1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb "black" behind',
title => ["$symbol Open-High-Low-Close", textcolor => 'rgb "white"'],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
xlabel => ['Date', textcolor => 'rgb "yellow"'],
ylabel => ['Price', textcolor => 'rgb "yellow"'],
xdata => 'time',
xtics => {format => '%Y-%m-%d', rotate => -90, textcolor => 'orange', },
ytics => {textcolor => 'orange'},
label => [1, $self->brand, textcolor => 'rgb "cyan"', at => "graph 0.90,0.03"],
lib/App/financeta/gui.pm view on Meta::CPAN
{
with => 'financebars',
linecolor => 'white',
legend => 'Price',
},
$data(,(0)), $data(,(1)), $data(,(2)), $data(,(3)), $data(,(4)),
@general_plot,
);
if (@addon_plot) {
$pwin->plot({
%binmode,
object => '1',
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => '',
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lib/App/financeta/gui.pm view on Meta::CPAN
$addon_vol{size} = ["1, 0.2"]; #bug in P:G:G
$addon_vol{origin} = [0, 0];
} else {
$addon_gen{size} = ["1, 0.7"]; #bug in P:G:G
$addon_gen{origin} = [0, 0.3];
$addon_vol{size} = ["1, 0.3"]; #bug in P:G:G
$addon_vol{origin} = [0, 0];
$addon_vol{object} = '1'; # needed as otherwise the addon plot does it
}
$pwin->plot({
%binmode,
object => '1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb "black" behind',
xlabel => ['Date', textcolor => 'rgb "yellow"'],
ylabel => ['Price', textcolor => 'rgb "yellow"'],
title => ["$symbol Price & Volume", textcolor => "rgb 'white'"],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
xdata => 'time',
xtics => {format => '%Y-%m-%d', rotate => -90, textcolor => 'orange', },
ytics => {textcolor => 'orange'},
bmargin => 0,
lib/App/financeta/gui.pm view on Meta::CPAN
{
with => 'financebars',
linecolor => 'white',
legend => 'Price',
},
$data(,(0)), $data(,(1)), $data(,(2)), $data(,(3)), $data(,(4)),
@general_plot,
);
if (@addon_plot) {
$pwin->plot({
%binmode,
object => '1',
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => '',
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lmargin => 9,
rmargin => 2,
size => ["1,0.2"], #bug in P:G:G
origin => [0, 0.2],
label => [1, "", at => "graph 0.90,0.03"],
},
@addon_plot,
);
}
$pwin->plot({
%binmode,
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => ['Volume (in 1M)', textcolor => 'rgb "yellow"'],
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lmargin => 9,
lib/App/financeta/gui.pm view on Meta::CPAN
my %addon_gen = ();
if (@addon_plot) {
$addon_gen{size} = ["1, 0.7"];
$addon_gen{origin} = [0, 0.3];
$addon_gen{bmargin} = 0;
$addon_gen{lmargin} = 9;
$addon_gen{rmargin} = 2;
}
# use candlesticks feature of Gnuplot
$pwin->plot({
%binmode,
object => '1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb "black" behind',
title => ["$symbol Open-High-Low-Close", textcolor => 'rgb "white"'],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
xlabel => ['Date', textcolor => 'rgb "yellow"'],
ylabel => ['Price', textcolor => 'rgb "yellow"'],
ytics => {textcolor => 'orange'},
xdata => 'time',
xtics => {format => '%Y-%m-%d', rotate => -90, textcolor => 'orange', },
label => [1, $self->brand, textcolor => 'rgb "cyan"', at => "graph 0.90,0.03"],
lib/App/financeta/gui.pm view on Meta::CPAN
with => 'candlesticks',
linecolor => 'white',
legend => 'Price',
},
$data(,(0)), $data(,(1)), $data(,(2)), $data(,(3)), $data(,(4)),
@general_plot,
@candle_plot,
);
if (@addon_plot) {
$pwin->plot({
%binmode,
object => '1',
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => '',
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lib/App/financeta/gui.pm view on Meta::CPAN
$addon_vol{size} = ["1, 0.2"]; #bug in P:G:G
$addon_vol{origin} = [0, 0];
} else {
$addon_gen{size} = ["1, 0.7"]; #bug in P:G:G
$addon_gen{origin} = [0, 0.3];
$addon_vol{size} = ["1, 0.3"]; #bug in P:G:G
$addon_vol{origin} = [0, 0];
$addon_vol{object} = '1'; # needed as otherwise the addon plot does it
}
$pwin->plot({
%binmode,
object => '1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb "black" behind',
title => ["$symbol Price & Volume", textcolor => "rgb 'white'"],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
xlabel => ['Date', textcolor => 'rgb "yellow"'],
ylabel => ['Price', textcolor => 'rgb "yellow"'],
xdata => 'time',
ytics => {textcolor => 'orange'},
xtics => {format => '%Y-%m-%d', rotate => -90, textcolor => 'orange', },
tmargin => '',
lib/App/financeta/gui.pm view on Meta::CPAN
with => 'candlesticks',
linecolor => 'white',
legend => 'Price',
},
$data(,(0)), $data(,(1)), $data(,(2)), $data(,(3)), $data(,(4)),
@general_plot,
@candle_plot,
);
if (@addon_plot) {
$pwin->plot({
%binmode,
object => '1',
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => '',
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lmargin => 9,
rmargin => 2,
size => ["1,0.2"], #bug in P:G:G
origin => [0, 0.2],
label => [1, "", at => "graph 0.90,0.03"],
},
@addon_plot,
);
}
$pwin->plot({
%binmode,
title => '',
ylabel => ['Volume (in 1M)', textcolor => 'rgb "yellow"'],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
xtics => '',
xlabel => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lmargin => 9,
lib/App/financeta/gui.pm view on Meta::CPAN
$addon_vol{size} = ["1, 0.2"]; #bug in P:G:G
$addon_vol{origin} = [0, 0];
} else {
$addon_gen{size} = ["1, 0.7"]; #bug in P:G:G
$addon_gen{origin} = [0, 0.3];
$addon_vol{size} = ["1, 0.3"]; #bug in P:G:G
$addon_vol{origin} = [0, 0];
$addon_vol{object} = '1'; # needed as otherwise the addon plot does it
}
$pwin->plot({
%binmode,
object => '1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb "black" behind',
title => ["$symbol Price & Volume", textcolor => "rgb 'white'"],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => ['Close Price', textcolor => 'rgb "yellow"'],
xlabel => ['Date', textcolor => 'rgb "yellow"'],
xdata => 'time',
xtics => {format => '%Y-%m-%d', rotate => -90, textcolor => 'orange', },
ytics => {textcolor => 'orange'},
bmargin => 0,
lib/App/financeta/gui.pm view on Meta::CPAN
{
with => 'lines',
linecolor => 'white',
legend => 'Close Price',
},
$data(,(0)), $data(,(4)),
@general_plot,
);
if (@addon_plot) {
$pwin->plot({
%binmode,
object => '1',
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => '',
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lmargin => 9,
rmargin => 2,
size => ["1,0.2"], #bug in P:G:G
origin => [0, 0.2],
label => [1, "", at => "graph 0.90,0.03"],
},
@addon_plot,
);
}
$pwin->plot({
%binmode,
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => ['Volume (in 1M)', textcolor => 'rgb "yellow"'],
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lmargin => 9,
lib/App/financeta/gui.pm view on Meta::CPAN
$type = 'CLOSE';
my %addon_gen = ();
if (@addon_plot) {
$addon_gen{size} = ["1, 0.7"];
$addon_gen{origin} = [0, 0.3];
$addon_gen{bmargin} = 0;
$addon_gen{lmargin} = 9;
$addon_gen{rmargin} = 2;
}
$pwin->plot({
%binmode,
object => '1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb "black" behind',
title => ["$symbol Close Price", textcolor => 'rgb "white"'],
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
xlabel => ['Date', textcolor => 'rgb "yellow"'],
ylabel => ['Close Price', textcolor => 'rgb "yellow"'],
xdata => 'time',
xtics => {format => '%Y-%m-%d', rotate => -90, textcolor => 'orange', },
ytics => {textcolor => 'orange'},
label => [1, $self->brand, textcolor => 'rgb "cyan"', at => "graph 0.90,0.03"],
lib/App/financeta/gui.pm view on Meta::CPAN
{
with => 'lines',
linecolor => 'white',
legend => 'Close Price',
},
$data(,(0)), $data(,(4)),
@general_plot,
);
if (@addon_plot) {
$pwin->plot({
%binmode,
object => '1',
title => '',
key => ['on', 'outside', textcolor => 'rgb "yellow"'],
border => 'linecolor rgbcolor "white"',
ylabel => '',
xlabel => '',
xtics => '',
ytics => {textcolor => 'orange'},
bmargin => 0,
tmargin => 0,
lib/App/financeta/gui.pm view on Meta::CPAN
close_on_idle => 1,
},
chart => {
height => $cheight . "px",
yaxes_index => [sort keys(%y_axes_index)],
charts => \@charts,
title => $symbol,
},
};
my $tt = Template->new({ ABSOLUTE => 1 });
my $ret = $tt->process($ttfile, $ttconf, $html, { binmode => ':utf8' });
if ($ret) {
my $url = "file://$html";
my $ok = Browser::Open::open_browser($url, 1);
if (not defined $ok) {
message("Error finding a browser to open $url");
$log->warn("Error finding a default browser to open $url");
} elsif ($ok != 0) {
message("Error opening $url");
$log->warn("Error opening $url in default browser");
}
share/testpdljs.pl view on Meta::CPAN
## load a pre-designed Template file
my $ttcontent = do { local $/ = undef; <DATA> };
## dump it as a template file for the browser to load it
my $ttfile = path('pdlchart.tt')->realpath;
path($ttfile)->spew($ttcontent) unless -e $ttfile;
print "TTFile: $ttfile\n";
my $htmlfile = path('pdlchart.html')->realpath;
print "HTMLFile: $htmlfile\n";
my $tt = Template->new({ ABSOLUTE => 1 });
my $ret = $tt->process("$ttfile", $ttconf, "$htmlfile", { binmode => ':utf8' });
if ($ret) {
my $url = "file://$htmlfile";
print "opening $url\n";
my $ok = Browser::Open::open_browser($url, 1);
if (not defined $ok or $ok != 0) {
die "Failed to open $url in a browser. Return value: $ok";
} else {
print "Successfully opened $url in browser\n";
}
} else {