NAME
Finance::StockAccount::AccountTransaction
SYNOPSIS
my $stock = Finance::StockAccount::Stock->new({
symbol => 'FTR',
exchange => 'NASDAQ',
});
my $at = Finance::StockAccount::AccountTransaction->new({
tm => $tm,
action => 'buy',
stock => $stock,
quantity => 800,
price => 7.11,
commission => 8.95,
regulatoryFees => 0.01,
});
$at->accounted(100);
print $st->price(), "\n"; # prints number 7.11
PROPERTIES
These are the public properties of a StockAccount::Transaction object:
date # 'presumed' DateTime object. See http://datetime.perl.org/wiki/datetime/dashboard and discussion below.
action # One of module constants BUY, SELL, SHORT, COVER
stock # A Finance::StockAccount::Stock object
quantity # How many shares were bought or sold, e.g. 100 or 5.
price # Numeric representation of price, e.g. 4.65 instead of the string '$4.65'.
commission # Numeric representation of commission in same currency, e.g. 8.95 instead of the string '$8.95'.
regulatoryFees # Numeric representation of the regulatory fees, see section on "Regulatory Fees" below.
otherFees # Numeric aggregation of any other fees not included in commission and regulatory fees.
Any public property can be instantiated in the new
method, set with a method matching the name of the property, such as $st-
date($dt)>, or set with the set
method, e.g. $st-
set({date => $dt})>, as specified further in the method description below.
Public properties can also be retrieved by the same method matching the name of the property when no parameter is passed, e.g. $st-
date()>. Or by the get
method with a string naming the property, e.g. $st-
get('price')>.
All properties can also be read or written directly with a hash dereference. Some people don't consider this good object-oriented practice, but I won't stop you if that's what you want to do. E.g. $st-
{date} = $dt> or $st-
{price}>.
REGULATORY FEES
In the United States the Securities and Exchange Commission imposes regulatory fees on stock brokers or dealers. Instead of paying these with their profits, these for-profit companies often pass these fees onto their customers directly. The regulatoryFees
property could be used for similar purposes in other jurisdictions.
See http://www.sec.gov/answers/sec31.htm for more information.