Quant::Framework::CorporateAction
Represents the corporate actions data of an underlying from database. Create new unpersistent CorporateAction can be done via:
my $ca = Quant::Framework::CorporateAction::create($storage_accessor, 'QWER', Date::Utility->new);
Obviously, it will have empty actions hash
$ca->actions; # empty hashref by default
Corporate actions can be persisted (stored in Chronicle) via save method
save
$ca->save;
Load persisted actions can be done via:
my $ca = Quant::Framework::CorporateAction::load($storage_accessor, 'QWER', Date::Utility->new);
It will return undef if there are no presisted actions in Chronicle. The date can be ommitted, than, it will try to load the most recent (last) corporate actions, i.e.
undef
my $ca = Quant::Framework::CorporateAction::load($storage_accessor, 'QWER');
To update actions, the update method should be invoked, with appropriate structure, i.e.
update
my $ca = $ca->update({ "62799500" => { "monitor_date" => "2014-02-07T06:00:07Z", "type" => "ACQUIS", "monitor" => 1, "description" => "Acquisition", "effective_date" => "15-Jul-14", "flag" => "N", }, Date::Utility->new);
The update in scalar context will return new unpersisted Corporate object. You have to presist it via save method.
In the list context it will return new unpersisted Corporate object, and two hasref for new and cancelled action.
The document, which actually incorporates all data. Can be used to get the date of corporate actions, e.g.:
$corporate_actions->document->recorded_date
my $corp_actions = Quant::Framework::CorporateAction::crate($storage_accessor, "USAAPL", Date::Utility->new)
Creates a new unsaved corporate actions.
my $corp_actions = Quant::Framework::CorporateAction::load($storage_accessor, "USAAPL", Date::Utility->new)
Loads the corporate actions for the specified symbol at the specified date. The date can be omitted, then it loads the most recent corporate actions.
Might return undef, if no actions exists in Chronicle
$corp_actions->save;
Stores corporate actions in chronicle.
my $new_corp_actions = $corp_actions->update({ "32799500" => { "monitor_date" => "2015-02-07T06:00:07Z", "type" => "DIV", "monitor" => 1, "description" => "Divided Stocks", "effective_date" => "15-Jul-15", "flag" => "N" }, }, Date::Utility->new) $new_corp_actions->save;
Takes the existing actions, applies "diff" of actions in Bloomberg format (i.e. adds new actions, or cancels exising ones), and returns new unpersisted (non-saved) CorporateAction object.
You have to invoke save method to persist new corporate actions in Chronicle.
The $date argument in mandatory.
$date
my $actions = $corp_actions->actions;
Returns hashref of actions in Bloomberg format. If there are no actions, the empty hashref is returned.
To install Quant::Framework, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quant::Framework
CPAN shell
perl -MCPAN -e shell install Quant::Framework
For more information on module installation, please visit the detailed CPAN module installation guide.