The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Finance::GeniusTrader::PortfolioManager - Manages a portfolio

DESCRIPTION

A PortfolioManager is an entity interacting between a Portfolio, a Trading System, money management rules and trade filters.

When it comes to starting a new position (ie submitting an order to start a position), the money management system comes in again to decide how much to put on the trade.

Filters can be applied to accept/refuse trades proposed by the various trading systems.

my $manager = Finance::GeniusTrader::PortfolioManager->new($portfolio)

Create a new portfolio manager that implements a money management strategy.

$manager->set_portfolio($portfolio)

Change the portfolio managed.

$manager->portfolio()

Returns the managed portfolio.

$order = $manager->buy_market_price($calc, $source)
$order = $manager->buy_limited_price($calc, $source, $price)
$order = $manager->buy_conditional($calc, $source, $price [, $price2])
$order = $manager->virtual_buy_at_open($calc, $source)
$order = $manager->virtual_buy_at_high($calc, $source)
$order = $manager->virtual_buy_at_low($calc, $source)
$order = $manager->virtual_buy_at_close($calc, $source)
$order = $manager->virtual_buy_at_signal($calc, $source)
$order = $manager->sell_market_price($calc, $source)
$order = $manager->sell_limited_price($calc, $source, $price)
$order = $manager->sell_conditional($calc, $source, $price [, $price2])
$order = $manager->virtual_sell_at_open($calc, $source)
$order = $manager->virtual_sell_at_high($calc, $source)
$order = $manager->virtual_sell_at_low($calc, $source)
$order = $manager->virtual_sell_at_close($calc, $source)
$order = $manager->virtual_sell_at_signal($calc, $source)

Those functions are used to create orders that may be modified and submitted later.

$manager->set_order_partial($order, $ratio)

When you want to close a position, you may want to not close it fully. With this function, you indicate how much of the initial position you want to close.

$manager->discard_all_orders($calc, $source)

Discards all orders concerning this share and this source.

$manager->submit_order($order, $i, $calc)
$manager->submit_order_in_position($position, $order, $i, $calc)

Submit the prepared order, either an order that will start a new position or as an order that will modify an existing position.

$manager->add_money_management_rule($mm_rule)
$manager->delete_all_money_management_rule()
$manager->default_money_management_rule($mm_rule)

Use a money management rule and remove all money management rules currently used.

$manager->decide_quantity($order, $i, $calc)

Apply the various money management rules and decide the size of the position.

$manager->finalize()

Finalize the setup of the manager. Calculate its name. You can get its name afterward using $manager->get_name.

$manager->get_name()

Return the name of the system.

$manager->setup_from_name($name)

Setup the portfolio manager according to the name, it will create the corresponding money management rules.