Exemple #1
0
<?php

include "trader-functions.php";
redirect_login_pf();
draw_trader_header('history');
// Load the HTML_QuickForm module
global $db_hostname, $db_database, $db_user, $db_password;
$username = $_SESSION['username'];
$uid = $_SESSION['uid'];
$portfolio = new portfolio($_SESSION['pfid']);
$pf_id = $portfolio->getID();
$exch = $portfolio->getExch();
$pf_working_date = $portfolio->getWorkingDate();
$cash_in_hand = $portfolio->getCashInHand();
$this_page = $_SERVER['REQUEST_URI'];
try {
    $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("ERROR: Cannot connect: " . $e->getMessage());
}
function draw_performance_table($portfolio)
{
    global $pdo;
    $pf_id = $portfolio->getID();
    $pf_name = $portfolio->getName();
    $pf_opening_balance = $portfolio->getOpeningBalance();
    $pf_opening_date = $portfolio->getStartDate();
    $pf_days_traded = $portfolio->countDaysTraded();
    $pf_exchange_name = $portfolio->getExch()->getName();
    $pf_exch = $portfolio->getExch()->getID();
Exemple #2
0
<?php

include "../html/trader-functions.php";
require_once "../ChartDirector/lib/phpchartdir.php";
global $db_hostname, $db_database, $db_user, $db_password;
redirect_login_pf();
$username = $_SESSION['username'];
$uid = $_SESSION['uid'];
// make sure they're logged in"
if (isset($username)) {
    $c = new XYChart(640, 480);
    $portfolio = new portfolio($_SESSION['pfid']);
    $pf_id = $portfolio->getID();
    $pf_name = $portfolio->getName();
    $pf_working_date = $portfolio->getWorkingDate();
    $pf_exch = $portfolio->getExch()->getID();
    $symb = $_GET['symb'];
    $symb_name = get_symb_name($symb, $pf_exch);
    $endDate = chartTime2(strtotime($pf_working_date));
    if (isset($_SESSION['chart_period'])) {
        $chart_period = $_SESSION['chart_period'];
    } else {
        $chart_period = 180;
    }
    $durationInDays = (int) $chart_period;
    $startDate = $endDate - $durationInDays * 24 * 60 * 60;
    $first_date = $c->formatValue($startDate, "{value|yyyy-mm-dd}");
    $first = true;
    try {
        $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Exemple #3
0
<?php

include "trader-functions.php";
redirect_login_pf();
draw_trader_header('booty');
// Load the HTML_QuickForm module
global $db_hostname, $db_database, $db_user, $db_password;
$username = $_SESSION['username'];
$uid = $_SESSION['uid'];
$portfolio = new portfolio($_SESSION['pfid']);
$pf_id = $portfolio->getID();
$exch = $portfolio->getExch();
$pf_working_date = $portfolio->getWorkingDate();
$next_trade_day = $portfolio->getExch()->nextTradeDay($pf_working_date);
$cash_in_hand = $portfolio->getCashInHand();
$this_page = $_SERVER['REQUEST_URI'];
try {
    $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("ERROR: Cannot connect: " . $e->getMessage());
}
function stop_loss($portfolio)
{
    global $pdo;
    $pf_auto_stop_loss = $portfolio->getAutoStopLoss();
    if ($pf_auto_stop_loss) {
        $pf_id = $portfolio->getID();
        $query = "select * from holdings where pfid = '{$pf_id}' order by symb;";
        $pf_exch = $portfolio->getExch()->getID();
        $pf_working_date = $portfolio->getWorkingDate();
require_once "../ChartDirector/lib/phpchartdir.php";
global $db_hostname, $db_database, $db_user, $db_password;
redirect_login_pf();
$username = $_SESSION['username'];
$uid = $_SESSION['uid'];
// make sure they're logged in"
if (isset($username)) {
    $c1 = new XYChart(640, 180);
    $c2 = new XYChart(640, 180);
    $c3 = new XYChart(640, 180);
    $m = new MultiChart(640, 3 * 180);
    $portfolio = new portfolio($_SESSION['pfid']);
    $pf_id = $portfolio->getID();
    $pf_name = $portfolio->getName();
    $pf_working_date = $portfolio->getWorkingDate();
    $pf_exch = $portfolio->getExch()->getID();
    $pf_exch_name = $portfolio->getExch()->getName();
    $endDate = chartTime2(strtotime($pf_working_date));
    if (isset($_SESSION['chart_period'])) {
        $chart_period = $_SESSION['chart_period'];
    } else {
        $chart_period = 180;
    }
    $durationInDays = (int) $chart_period;
    $startDate = $endDate - $durationInDays * 24 * 60 * 60;
    $first_date = $c1->formatValue($startDate, "{value|yyyy-mm-dd}");
    $count = 0;
    try {
        $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
Exemple #5
0
function create_choose_form()
{
    // Instantiate a new form tp choose the portfolio to work with
    global $choose_pf_form, $pdo;
    $choose_pf_form->addElement('header', null, 'Choose a portfolio');
    $uid = $pdo->quote($_SESSION['uid']);
    $query = "select pfid, name, exch, parcel, working_date from portfolios where uid = {$uid} order by name;";
    $first_row = true;
    foreach ($pdo->query($query) as $row) {
        $pf_id = $row['pfid'];
        $portfolio = new portfolio($pf_id);
        $pf_desc = $portfolio->getName();
        $exch = $portfolio->getExch()->getID();
        $exch_name = $portfolio->getExch()->getName();
        $pf_parcel = $portfolio->getParcel();
        $pf_working_date = $portfolio->getWorkingDate();
        $pf_start_date = $portfolio->getStartDate();
        if ($first_row) {
            $choose_pf_form->addElement('radio', 'portfolio', 'Portfolios:', "{$pf_desc}<td>{$exch_name}</td> <td>{$pf_parcel}</td> <td>{$pf_start_date}</td> <td>{$pf_working_date}</td>", $pf_id);
            $choose_pf_form->addRule('portfolio', 'You must select a portfolio to trade', 'required');
            $first_row = false;
        } else {
            $choose_pf_form->addElement('radio', 'portfolio', null, "{$pf_desc}<td>{$exch_name}</td> <td>{$pf_parcel}</td> <td>{$pf_start_date}</td> <td>{$pf_working_date}</td>", $pf_id);
        }
    }
    $choose_pf_form->addElement('submit', 'choose', 'Trade with Portfolio');
    $choose_pf_form->addElement('submit', 'delete', 'Delete Portfolio', 'onclick="return confirm(\'Delete portfolio\\nAre you Sure?\')"');
}
function draw_trader_header($active_page, $allow_others = true)
{
    // dray the header with a table linking the trader pages like tabs in a notebook
    // session infomation is used to communicate between the tabs
    $active_page = strtolower($active_page);
    $active_colour = 'white';
    $inactive_colour = 'grey';
    if (!isset($_SESSION['uid'])) {
        // don't allow other page links if uid isn't set
        $active_page = 'login';
        $allow_others = false;
    } elseif (!isset($_SESSION['pfid'])) {
        // uid is set but pf id isn't. Only allowable active page is 'login' or 'portfolio'
        if ($active_page != 'login' and $active_page != 'portfolios') {
            // force to the portfolio page
            $active_page = 'portfolios';
        }
        $allow_others = false;
    }
    if (isset($_SESSION['username'])) {
        $username = $_SESSION['username'];
    } else {
        $username = '******';
    }
    if (isset($_SESSION['pfid'])) {
        $portfolio = new portfolio($_SESSION['pfid']);
        $pfid = $portfolio->getID();
        $pf_name = $portfolio->getName();
        $exch = $portfolio->getExch();
        $exch_name = $exch->getName();
        $working_date = $portfolio->getWorkingDate();
        $pf_gain = $portfolio->dayGain(1);
        $pf_CIH = $portfolio->getCashInHand();
        $pf_currency_symb = $exch->getCurrency();
        if ($pf_gain > 0) {
            $pf_gain = sprintf("%.2f", $pf_gain);
            $pf_gain = "<font color=\"green\">+{$pf_currency_symb}{$pf_gain}</font>";
        } else {
            $pf_gain = sprintf("%.2f", $pf_gain);
            $pf_gain = "<font color=\"red\">{$pf_currency_symb}{$pf_gain}</font>";
        }
        $pf_name = "{$pf_name} ({$pf_currency_symb}{$pf_CIH}/{$pf_gain})";
    } else {
        $pf_name = $exch_name = $working_date = 'N/A';
    }
    if (isset($_SESSION['sql_name'])) {
        $qid = $_SESSION['qid'];
        $query_name = $_SESSION['sql_name'];
        $query_name = "{$query_name} ({$qid})";
    } else {
        $query_name = 'N/A';
    }
    if (isset($_SESSION['chart_name'])) {
        $chid = $_SESSION['chid'];
        $chart_name = $_SESSION['chart_name'];
        $chart_name = "{$chart_name} ({$chid})";
    } else {
        $chart_name = 'N/A';
    }
    switch ($active_page) {
        case 'login':
            print "<html><title>Trader Login</title><body>\n";
            break;
        case 'portfolios':
            print "<html><title>Select or Create a Portfolio</title><body>\n";
            break;
        case 'booty':
            print "<html><title>Report Portfolio Performance</title><body>\n";
            break;
        case 'select':
            print "<html><title>Choose Securities to trade</title><body>\n";
            break;
        case 'trade':
            print "<html><title>Buy selected Securities</title><body>\n";
            break;
        case 'watch':
            print "<html><title>Watch with a view to buy</title><body>\n";
            break;
        case 'queries':
            print "<html><title>Create queries to find securities</title><body>\n";
            break;
        case 'chart':
            print "<html><title>Inspect all symbols</title><body>\n";
            break;
        case 'history':
            print "<html><title>Historical trades</title><body>\n";
            break;
        case 'docs':
            print "<html><title>Documentation of the Trader Relations</title><body>\n";
            break;
        default:
            tr_warn("[FATAL]Cannot create header, given {$active_page}\n");
            $active_page = 'login';
            $allow_others = false;
            break;
    }
    print '<table width="100%" border="0">';
    print '<table border="1" cellpadding="5" cellspacing="0" width="100%" align="center">';
    print "\n<tr><td colspan=\"100\" valign=\"bottom\" bgcolor=\"{$inactive_colour}\"><h1 style=\"font-family:verdana\">Trader DSS</h1></td></tr><tr>\n";
    if ($active_page == 'login') {
        draw_cell($active_page, '/login.php', $active_colour, true);
    } else {
        // must always be possible to choose the login page
        draw_cell('login', '/login.php', $inactive_colour, true);
    }
    if ($active_page == 'portfolios') {
        draw_cell($active_page, '/portfolios.php', $active_colour, $allow_others);
    } else {
        draw_cell('portfolios', '/portfolios.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'booty') {
        draw_cell($active_page, '/booty.php', $active_colour, $allow_others);
    } else {
        draw_cell('booty', '/booty.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'select') {
        draw_cell($active_page, '/select.php', $active_colour, $allow_others);
    } else {
        draw_cell('select', '/select.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'trade') {
        draw_cell($active_page, '/trade.php', $active_colour, $allow_others);
    } else {
        draw_cell('trade', '/trade.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'watch') {
        draw_cell($active_page, '/watch.php', $active_colour, $allow_others);
    } else {
        draw_cell('watch', '/watch.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'queries') {
        draw_cell($active_page, '/queries.php', $active_colour, $allow_others);
    } else {
        draw_cell('queries', '/queries.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'chart') {
        draw_cell($active_page, '/chart.php', $active_colour, $allow_others);
    } else {
        draw_cell('chart', '/chart.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'history') {
        draw_cell($active_page, '/history.php', $active_colour, $allow_others);
    } else {
        draw_cell('history', '/history.php', $inactive_colour, $allow_others);
    }
    if ($active_page == 'docs') {
        draw_cell($active_page, '/docs.php', $active_colour, $allow_others);
    } else {
        draw_cell('docs', '/docs.php', $inactive_colour, $allow_others);
    }
    draw_summary($username, $pf_name, $exch_name, $working_date, $query_name, $chart_name);
    print "</tr></table></table>\n";
}