#!/usr/bin/perl
# ----------------------------------------------------------------------------
#
#  (c) Copyright 2006 TradeExtender
# 
#  This software is proprietary to and embodies the confidential technology 
#  of TradeExtender. Possession, use, duplication or dissemination of the 
#  software and media is authorized only pursuant to a valid written license 
#  from TradeExtender.
#

use strict;
use lib "/var/www/vhosts/kantelpunten.com/httpdocs/pl/lib";
use lib "lib";
BEGIN {
    delete $INC{"Kantelpunten/Helper.pm"};
    delete $INC{"Kantelpunten/Process.pm"};
#    delete $INC{"Kantelpunten/MyRobots.pm"};
    delete $INC{"Kantelpunten/MyBudy.pm"};
    delete $INC{"Kantelpunten/MyAdds.pm"};
}
use Kantelpunten::Helper;
use Kantelpunten::Process;
use Kantelpunten::MyRobots;
use Kantelpunten::MyBudy;
use Kantelpunten::MyAdds;
use POSIX qw(strftime mktime);
use Data::Dumper;

local our $stocks;
local our $data;
local our $param  = undef;
local our $page   = undef;
local our $cash   = undef;
local our $invest = undef;
local our $change = undef;

local our $min_gain  = undef;
local our $min_date  = undef;
local our $max_gain  = undef;
local our $max_date  = undef;
local our $last_gain = undef;
local our $last_val  = undef;
local our $max_my_gain  = undef;
local our $last_my_gain = undef;
local our $last_my_val  = undef;

local our $g_num_pos = undef;
local our $g_num_neg = undef;

show_porto();
exit(0);

sub show_porto()
{
	my $q = CGI->new;

	$param->{year} 		= $q->param('jaar');
	$param->{time} 		= $q->param('vanaf');
	$param->{type}		= $q->param('type');
	$param->{country}   = $q->param('land');
	$param->{invest} 	= $q->param('invest');
	$param->{mincost} 	= $q->param('mincost');
	$param->{perccost}	= $q->param('perccost');
	$param->{num_porto} = $q->param('num_porto');
	$param->{action}    = $q->param('action');
	$param->{stock}     = $q->param('aandeel');
	$param->{uid}		= $q->param('test_uid');
	$param->{calc}      = defined($q->param('calc')) ? 1 : undef;
	$param->{own}       = defined($q->param('eigen')) ? 1 : undef;
	$param->{examp}     = defined($q->param('voorbeeld')) ? 1 : undef;
	
	my $remote_ip = init_helper();
	$param->{rb} = get_robot() if (!defined($param->{rb}) || $param->{rb});
	set_robot($param->{rb});
	init_process();
	get_user_rec();
	$param->{budy} = init_budy($q->param('uitleg'));

	$change = undef;
	if (defined($param->{action}) && is_logged_in() && defined($param->{stock}))
	{
		my $stock = get_stock($param->{stock});
		my $favo = set_favorites();
		if (defined($stock) && defined($favo))
		{
			my $id = $stock->{id};
			if (($param->{action} eq 'add') && (substr($favo, $id, 1) eq '0'))
			{
				substr($favo, $id, 1) = '1';
				set_favorites($favo);
				write_user_rec();
				$change = "<span><b>$stock->{index_name}</b> toegevoegd aan uw favorieten.</span><br><br>\n";
			}
			elsif (($param->{action} eq 'remove')  && (substr($favo, $id, 1) eq '1'))
			{
				substr($favo, $id, 1) = '0';
				set_favorites($favo);
				write_user_rec();
				$change = "<span><b>$stock->{index_name}</b> verwijdert uit uw favorieten.</small><br><br>\n";
			}
		}
	}
	my $cinfo = get_porto_cookie();

	if (defined($param->{num_porto}))
	{
		$cinfo &= 0xf0;
		$cinfo |= $param->{num_porto};
		add_porto_cookie($cinfo);
	}
	else
	{
		if (defined($cinfo) && ($cinfo & 0x0f))
		{
			$param->{num_porto} = $cinfo & 0x0f;
		}
		else
		{
			$param->{num_porto} = defined($param->{own}) ? 3 : 1;
		}
	}
	$param->{type} = 2 unless defined($param->{type});
	$param->{type} = 2 if ($param->{type} != 2);  # currently only type 2!
	$param->{invest} = 5000 unless defined($param->{invest});
#	$param->{year} = strftime("%Y", localtime(time())) if (!defined($param->{year}));
	$param->{time} = undef if (defined($param->{time}) && ($param->{time} > (time()-(24*3600)*80)));
	$param->{time} = undef if (defined($param->{time}) && !is_admin_user() && ($param->{time} < (time() - ((24*3600)*370*2))));
	$param->{time} = mktime(0, 0, 0, 1, 0, $param->{year}-1900, 0, 0, -1) if (!defined($param->{time}) && defined($param->{year}));
    $param->{country} = "nl" unless defined($param->{country});
    $param->{country} = "nl" if (($param->{country} ne "nl") && ($param->{country} ne "be") && ($param->{country} ne "own"));
    
	if (!is_admin_user())
	{
		$param->{num_porto} = 1 if (($param->{num_porto} < 1) && ($param->{num_porto} > 6));
		$param->{invest} 	= 5000;
		$param->{mincost} 	= undef;
		$param->{perccost}	= undef;
		$param->{calc}      = undef;
		$param->{uid}       = undef;
	}
	
	if ($param->{type} == 1)
	{
		$param->{num_porto} = 1 if (!defined($param->{calc}));
		$page = 9950;
	}
	else
	{
		$page = 9950 + $param->{num_porto};
	}
	
	if (defined($param->{examp}))
	{
		$page = 9959;
		write_access_data($remote_ip, $page);
		make_example_html();
		return;
	}
	
	my $favorites;
	if (defined($param->{own}))
	{
#		only_allowed_for_admin_users();
		if (!is_logged_in())
		{
			$page = 9959;
			write_access_data($remote_ip, $page);
			make_not_registered_html();
			return;
		}
 		get_user_rec($param->{uid}, undef, 'true') if (defined($param->{uid}) && is_admin_user());

		$data = read_all_quote_data();
		if (!defined($data))
		{
    		print_error_doc("Probleem met het lezen van de advies data.");
    		exit(0);
		}

		if (!defined($param->{year}) && !defined($param->{time}))
		{
			$param->{year} = strftime("%Y", localtime(time()));
			$param->{time} = mktime(0, 0, 0, 1, 0, $param->{year}-1900, 0, 0, -1);
			if ($param->{time} > (time() - ((24*3600)*90)) )	# never less then 3 months!
			{
				$param->{year}--;
				$param->{time} = mktime(0, 0, 0, 1, 0, $param->{year}-1900, 0, 0, -1);
			}
		}
		$page = 9958;
		$favorites = set_favorites();
		$stocks = get_stocks_mine();
		my @stks = (keys %$stocks);
		$param->{num_stocks} = @stks;
		if (defined($param->{uid}))
		{
#			print Dumper $stocks;
		}
		$param->{type} = 2;
		$param->{calc} = 1;
		if ($param->{num_stocks} < 10)
		{
			log_problem("backtest uid: " . get_userid_cookie() . " not enough stocks: $param->{num_stocks}");
			write_access_data($remote_ip, $page);
			make_not_enough_stocks_html();
			return;
		}
	}
	elsif (!defined($param->{year}))
	{
		$page = 9957;
	}
	else
	{
		$stocks = get_stocks_market(undef, undef, "old");
	}
	
	if (($page != 9957) && ($page != 9958) && !defined($stocks))
	{
    	print_error_doc("ABP: Probleem met het lezen van de aandelen data $page.");
    	exit(0);
	}

	# change favorites for the next time. It is a chance just to iritate users to register
	if (is_trial_user() && defined($favorites))
	{
   		my $clear = ((rand(100) > 75) ? 1 : 0);
   		if ($clear)
   		{
	   		my @stks = (keys %$stocks);
	   		if (@stks)
	   		{
	   			my $id = int(rand(@stks));
	   			$id = 0 if ($id > @stks);
	   			my $fav = $favorites;
		    	substr($fav, $stocks->{@stks[$id]}->{id}, 1) = "0";
			    set_favorites($fav);
    			write_user_rec();
			}
		}
	}
	
	$invest = $param->{invest} * $param->{num_porto};
	$cash   = $invest;
	
	add_last_page_cookie($page);
	write_access_data($remote_ip, $page);
	make_porto_html($favorites);
	
	$stocks = undef;
	$data   = undef;
}
    
sub make_porto_html(@)
{
	my ($favorites) = @_;
	
   	my $menu_script = make_script() if (defined($favorites));
   	my $script = make_home_script($page) if (!defined($param->{uid}));
   	$script .= $menu_script if (defined($menu_script));
	my $title;
	my $desc;
	my $overview = 0;
	my $pop_menu;
	my $top_menu;
	if (defined($param->{own}))
	{
		$title = "Uw backtest.";
		$desc = "We hebben deze portefeuille samengesteld uit uw eigen favoriete aandelen.";
		$pop_menu = make_pop_menu(2, $page);	
		$top_menu = make_top_menu(2, $page);	
	}
	elsif ($page == 9957)
	{
		$title = "Voorbeeldportefeuilles.";
		$desc = "Overzicht van alle voorbeeldportefeuilles. Kiest U degene die u nader wilt bekijken.";
		$overview = 1;
		$pop_menu = make_pop_menu(12, $page);	
		$top_menu = make_top_menu(12, $page);	
	}
	elsif ($param->{type} == 1)
	{
		$title = "Fictieve portefeuille van $param->{year}.";
		$desc = "Deze fictieve portefeuille beleggings portefeuille had u kunnen volgen als u zelf steeds de betere adviezen had gekozen. $title.";
		$pop_menu = make_pop_menu(0, $page);	
		$top_menu = make_top_menu(0, $page);	
	}
	else
	{
		$title = ($param->{country} eq "nl") ? "Nederlandse portefeuille van $param->{year} met $param->{num_porto} * 5000" :
			 	 ($param->{country} eq "be") ? "Belgische portefeuille van $param->{year} met $param->{num_porto} * 5000" : 
				 							   "Portefeuille $param->{year} met $param->{num_porto} * 5000";
#		$title .= ($param->{num_porto} == 1) ? "reeks." : "reeksen.";
		$desc = "Zie wat u kunt bereiken met beleggen door voortdurend wisselen van aandelen. De aandelen zijn gekozen op combinatie van de advies rate en juistheid." .
				"Er werd geen enkel onderzoek gedaan naar bedrijfsnieuws of volumestijging. Ondanks het blind aankopen, zonder fundamentele analyse, worden toch leuke resultaten neergezet." .
				"Een oplettende belegger moet dus meer winst kunnen halen, dan onze portefeuilles. $title.";
		$pop_menu = make_pop_menu(0, $page);	
		$top_menu = make_top_menu(0, $page);	
	}

	print_header("+1s");
    print_pre_doc();
    print_head("Kantelpunten : $title", undef, undef, undef, $script, "portoresult", defined($param->{own}) ? "eigen" : undef, undef, $desc, undef, defined($top_menu) ? "top_script" : undef);
    print_body(defined($param->{own}) ? "eigen" : "kantel", undef, undef, undef, undef, undef, undef, "kader", undef, $pop_menu, $top_menu);
	my $ref;
	if ($overview)
	{
	    $ref = "/pl/aandeel-beleggen-portefeuille.pl?uitleg=" . ($param->{budy} ? '0' : '1');
    }
    else
	{
		$ref = "/pl/aandeel-beleggen-portefeuille.pl?land=$param->{country}&jaar=$param->{year}&num_porto=$param->{num_porto}&type=1&uitleg=" . ($param->{budy} ? '0' : '1');
    }
    print_budy($param->{budy}, $page, $ref);
    if ($overview)
    {
    	make_overzicht_porto($title);
    }
    else
    {
    	make_porto($title, $favorites);
	}
    print_body("end");
    print_post_doc();
}

sub make_porto(@)
{
	my ($title, $favorites) = @_;

    print_div("center");   

    print "<br><br>\n";
    print_h1($title);
    print <<EndOfText if (defined($favorites));
<span><small>
Test ons met uw eigen aandelen ! Vergelijk de resultaten<br>
van "Kopen&houden" met ons "wisselsysteem".<br>
<br> 
Als u ons uitprobeert, hou er dan rekening mee dat het<br>
systeem bestaat uit het doorlopend wisselen tussen aandelen.<br>
Voer al uw favorieten tegelijk in.<br>
U moet minimaal 10 aandelen selecteren.<br>
</small></span><br>
EndOfText
	print $change if (defined($change));
	
   	my $porto;
   	my $put;
   	my $last_time;
   	if (defined($param->{calc}))
   	{
	   	my $from_year = strftime("%Y", localtime($param->{time}));
	   	my $till_year = strftime("%Y", localtime(time()));
		my $kps   = read_sum_kantelpunten($from_year, undef, undef, $till_year);
		$porto = calc_porto($kps, $param->{time}, $param->{type}, $param->{num_porto}, 
					$param->{invest}, $param->{mincost}, $param->{perccost}, $favorites);
		if (defined($param->{own}) && defined($porto))
		{
			$last_time = $porto->{last_time};
			delete $porto->{last_time};
			$put = calc_stay_put($stocks, $param->{time}, $last_time, $invest, $param->{mincost}, $param->{perccost}, "all");
#			print Dumper $put;
#			exit;
		}
	}
	else
	{
		$porto = read_porto($param->{year}, $param->{num_porto}, $param->{type}, undef, $param->{country});
	}

	my $explain;
	my $header;
	if (defined($favorites))
	{
		$header  = <<EndOfText if (is_trial_user());
<span class="dred"><b><i>Let op test account uw favorieten kunnen door andere gewijzigd zijn!</i></b></span><br>
EndOfText
		
#<table>
#<tr><td><span><small>2. Indien meerdere keuzes, kiest het de hoogste advieswaarde.</small></span></td>
#<td><a class="adv adv1" title="Zo worden onze advieswaardes getoond"></a></td></tr>
#</table>

		$explain = <<EndOfText;
<span><small>
<br>
A = Aankoop.<br>    
V = Verkoop.<br>
Netto = Nettowinst. Transactiekosten afgetrokken.<br>
Max = Maximaal mogelijke winst. Bruto.<br>
<br>
<br>
De aandelen werden automatisch geselecteerd :<br>
<br>
1. Het systeem kiest het eerste kantelpunt uit uw favorieten.<br>
2. Indien meerdere keuzes, kiest het de hoogste prioriteit (= 1).<br>
3. Bij gelijke prioriteit, kiest het de grootste juistheid van het laatste jaar.<br>
<br>
<small>Bij elke handeling tonen we - ter info - de bruto maximale winst.<br>
Zo kan u inschatten wat onze adviezen waard zijn.</small><br>
<br>
</small></span>
EndOfText
	}
	elsif ($param->{type} == 1)
	{
		$header = <<EndOfText;
<span><small>Hieronder wordt onze "fictieve" portefeuille van $param->{year} getoond.<br></small></span>
EndOfText
		$explain = <<EndOfText;
<span><small>
<br>
We kochten 1 kantelpunt. Als dat verkocht was volgens de exit,<br>
kochten we hetvolgende kantelpunt.<br>
<br>
De aandelenkeuze werd bepaald door achteraf berekende waarden.<br>
<i>Vandaar "fictief" omdat we de betere eruit gekozen hebben.</i><br>
<br>
We kozen degene die de hoogste dagwinst behaald heeft.<br>
We hebben niet gekeken naar de winsten in de daarop volgende dagen.<br>
Als we dat zouden doen dan zouden de fictieve resultaten <b>nog veel</b> hoger liggen.<br>
Want dan kunnen we de verlieslatende handelingen makkelijk omzeilen.<br>
<br>
</small></span>
<span><small>
Onder elke trade ziet u de netto winst die behaald werd.<br>
Ter info, tonen we ook de theoretisch bruto maximale winst die mogelijk was.<br>
<br>
</small></span>
EndOfText
	}
	else
	{
		my $aand = ($param->{num_porto} == 1) ? "1 kantelpunt." : "$param->{num_porto} kantelpunten.";
		$header = <<EndOfText;
<span><small>Hieronder wordt een "automatische portefeuille" van $param->{year} getoond.<br></small></span>
EndOfText
		$header = undef;
		$explain = <<EndOfText;
<span><small>
<br>
A = Aankoop.<br>
V = Verkoop.<br>
Netto = Nettowinst. Transactiekosten afgetrokken.<br>
<br>
Max = Maximaal mogelijke winst. Bruto.<br>
Hier kan u zien wat onze adviezen waard zijn.<br>
<br>
De belegger die huiswerk maakt ( Nieuws ? Cijfers? Dividend? )<br>
zal meer winst maken dan onze blinde voorbeeldportefeuilles.<br>
</small></span>
EndOfText
	}
	if (0 && !defined($header) && ($param->{country} eq "own"))
	{
		$header = <<EndOfText;
<span><small>Met deze portefeuille willen we u aan het denken zetten<br>
over ons kantelpunten systeem.<br></small></span>
<br>
EndOfText
	}
   	my $result = "";
   	$min_gain  = 1000;
   	$min_date  = time();
   	$max_gain  = -100;
   	$max_date  = time();
   	$last_gain = undef;
   	$last_val  = $invest;
   	$max_my_gain  = -100;
   	$last_my_gain = undef;
   	$last_my_val  = $invest;
    if (!defined($porto))
    {
	    if (defined($favorites))
	    {
			log_porto(0, $param->{time}, 0, 0, 0, 0, $favorites) if (!defined($param->{uid}));
		    $result .= <<EndOfText;
<small><span>
<b><big>Geen resultaten.</big><br>
<br>
Er waren geen directe adviezen voor uw favoriete aandelen.</b><br> 
( <a href="/pl/ShowMain.pl?page=20142" title="Uitleg toevoegen favorieten">U heeft toch wel favoriete aandelen aangeduid ?</a> )<br>
<br>  
<b>We tonen enkel  aandelen die reeds terug verkocht zijn.<br>
M.a.w. openstaande posities worden niet vermeld.</b><br>
<br>
</span></small>
EndOfText
	    }
	    else
	    {
		    $result .= <<EndOfText;
<small><span><br>
Geen resultaten
</span></small>
EndOfText
		}
    }
    else
    {
	    my $size = "12";
	    $size = "11" if ($param->{num_porto} >= 4);
	    $size = "10" if ($param->{num_porto} == 6);
	    $result .= print_table(0, undef, 0, 0, 0, undef, "70%", "center", "font-size: ${size}px;", undef, "noprint");
        $result .= <<EndOfText;
<tr>
 <th class="kantel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Datum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
EndOfText
		for (my $i = 1; $i <= $param->{num_porto}; $i++)
		{
			$result .= <<EndOfText;
 <th class="kantell">Reeks&nbsp;$i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
EndOfText
		}
		my $add = defined($param->{own}) ? " <th class=\"kantel\">Kopen<br>&<br>&nbsp;Houden</th>" : "";
		$result .= <<EndOfText;
 <th class="kantelr">&nbsp;kosten&nbsp;</th>
 <th class="kantelr">&nbsp;waarde&nbsp;</th>
 $add
 <th class="kantelr">&nbsp;Totaal</th>
 <th class="kantel">&nbsp;&nbsp;</th>
</tr>
<tr><td>&nbsp;</td></tr>
EndOfText
#		print Dumper $porto;
#		exit;
		my $num = 1;
		my $val;
		foreach my $i (sort keys %$porto)
		{
			my $tmp;
			if (defined($param->{calc}))
			{
				$val =(defined($put) && defined($put->{0}->{$i})) ? $put->{0}->{$i} : undef; 
				$tmp = get_calc_porto_row($porto->{$i}, $i, $num, $val, $favorites);
			}
			else
			{
				$tmp = get_porto_row($porto->{$i}, $i, $num);
			}
			if (defined($tmp))
			{
				$result .= $tmp;
				$num++;
			}
		}
        $result .= print_table(0, "end", undef, undef, undef, undef, undef, undef, undef, undef, "noprint");    
    }
    
	my $stk_table = make_stock_table($favorites, $put, $last_time);
	my $onze_table = make_onze_table($param->{country}, $param->{year}) if ($param->{country} eq "own");

	print $header if (defined($header));
	print_gains($last_time, $favorites)  if (defined($last_gain));
   	print_banner_ads("main_banner", defined($param->{own}) ? "eigen" : "info", undef, defined($favorites) ? 2 : 1) if (show_adds("hoofd") && !defined($param->{uid}));
   	print $stk_table;
	print $onze_table . "<br>\n" if (defined($onze_table));
   	print make_keuze_table() if (defined($param->{own}));
   	print <<EndOfText if (defined($favorites));
<span><small><small>De aandelenkeuze gebeurde zonder fundamenteel onderzoek.<br>
Een belegger die adviezen kiest die ondersteund worden door bedrijfsnieuws,<br>
zal meer winst maken dan een blinde selectie, gedaan door een computer.<br></small></small></span>
<br>
EndOfText
   	print $result;
   	print "<br>\n$explain" if (defined($porto) && defined($favorites));
   	print "<br>\n$explain" if (!defined($favorites));

    print print_other_porto() if (!defined($param->{calc}));
  	print_banner_ads("porto_midden", defined($param->{own}) ? "eigen" : "info", 1, 1) if (show_adds("porto") && !defined($param->{uid}));
   	print_banner_ads("porto_midden", defined($param->{own}) ? "eigen" : "info", undef, 1) if (show_adds("porto") && !defined($param->{uid}));
    if (!defined($favorites))
    {
		my $klik = get_klik_button("mini", "/pl/ShowMain.pl?page=20217", "Informatie samenstelling portefeuilles");
		print <<EndOfText;
<small><span>
<br>
<br>
$klik&nbsp;&nbsp;<a href="/pl/ShowMain.pl?page=20217" title="Informatie samenstelling portefeuilles">Lees hier meer over de samenstelling van onze portefeuilles.</a><br>
</small></span>
EndOfText
    }
    print_voet_start() if (!defined($param->{uid}));
    print_empty_lines(1, 0);
    print_ads("yahoo_klein");    
    print_div("end");
}

sub print_gains(@)
{
	my ($last_time, $favorites) = @_;
	
	if (!defined($favorites))
	{
		my $deze = defined($favorites) ? "Uw" : "Deze";
		print "<small><span>\n";
		my $class = ($last_gain < 0) ? "dred" : "dgreen";
		my $winst = ($last_gain < 0) ? "verlies" : "winst";
		print "$deze portefeuille heeft <span class=\"$class\">" . sprintf("%s%.2f%%", (($last_gain < 0) ? "-" : "+"), abs($last_gain)*100) .
		  "</span> $winst.<br><br>\n";
		  
		$class = ($max_gain < 0) ? "dred" : "dgreen";
		$winst = ($max_gain < 0) ? "verlies" : "winst";
		$deze = defined($favorites) ? "had U" : "was";
		my $add .= strftime("%d-%m-%Y", localtime($max_date));
		print "Het mooiste resultaat $deze <span class=\"$class\">" . sprintf("%s%.2f%%", (($max_gain < 0) ? "-" : "+"), abs($max_gain)*100) . "</span> $winst op $add.<br>\n";

		$class = ($min_gain < 0) ? "dred" : "dgreen";
		$winst = ($min_gain < 0) ? "verlies" : "winst";
		$deze = defined($favorites) ? "had U" : "was";
		my $add .= strftime("%d-%m-%Y", localtime($min_date));
		print "Het slechtste resultaat $deze <span class=\"$class\">" . sprintf("%s%.2f%%", (($min_gain < 0) ? "-" : "+"), abs($min_gain)*100) . "</span> $winst op $add.<br>\n";

		print "<br></small></span>\n";
	}
	else
	{
		my $add = strftime("Periode : %d-%m-%Y", localtime($param->{time}));
		$add .= strftime(" tot %d-%m-%Y ( t/m laatste verkoop ).", localtime($last_time));
		my $reeks = ($param->{num_porto} > 1) ? "$param->{num_porto} reeksen" : "1 reeks";
		print <<EndOfText;
<span><small>
Gestart met $invest,-  verdeeld over $reeks.<br>
$add<br>
<br>
EndOfText

		my $stay_val   = sprintf("%0.2f ", $last_my_val);
		my $stay_perc  = sprintf("%s%.2f%%", (($last_my_gain < 0) ? "-" : "+"), abs($last_my_gain)*100);
		my $kantel_val   = sprintf("%0.2f ", $last_val);
		my $kantel_perc  = sprintf("%s%.2f%%", (($last_gain < 0) ? "-" : "+"), abs($last_gain)*100);
		log_porto($param->{num_porto}, $param->{time}, $stay_val, $kantel_val, $stay_perc, $kantel_perc, $favorites) if (!defined($param->{uid}));
	}
}

sub make_stock_table(@)
{
	my ($favorites, $put, $last_time) = @_;
	
	return "" if (!defined($favorites));

	my $text;
	$text  = "";
	
    $text .= print_table(0, undef, 0, 0, 0, undef, "70%", "center", "font-size: 12px;", undef, "noprint");
    $text .= <<EndOfText;
<tr>
 <th class="kantel"></th>
 <th class="kantelr">&nbsp;Aankoop&nbsp;</th>
 <th class="kantelr">&nbsp;Huidige&nbsp;</th>
 <th class="kantel" colspan="2"></th>
 <th class="kantelr">&nbsp;Aantal&nbsp;</th>
 <th class="kantel">&nbsp;</th>
 <th class="kantel"></th>
</tr>
<tr>
 <th class="kantel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aandeel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waarde&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waarde&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Winst&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hoogst&nbsp;</th>
 <th class="kantelr">&nbsp;adviezen&nbsp;</th>
 <th class="kantel">&nbsp;Juist%&nbsp;</th>
 <th class="kantel"></th>
</tr> 
EndOfText

	my $added = 1;
	my $class;
	my $aankoop = 0;
	my $huidig  = 0;
	my $fout    = 0;
	foreach my $id (sort keys %$stocks)
	{
		next if (substr($favorites, $id, 1) eq "0");
		next if (!defined($put->{$id}));
		
    	$class = (($added % 2) == 0) ? "even" : "odd";
    	$text .= "<tr>";
		$text .= "<td class=\"${class}l\">&nbsp;&nbsp;<a href=\"/pl/ShowStock.pl?stock=$stocks->{$id}->{stock}\" rel=\"nofollow\">" . $stocks->{$id}->{index_name} . "</a></td>";
#		$text .= "<td class=\"$class\">$put->{$id}->{buy_num}</td>";
		my $bought = $put->{$id}->{buy_num} * $put->{$id}->{buy_price};
		$text .= "<td class=\"${class}r\" " . sprintf("title=\"%d aandelen gekocht voor %0.2f kosten %0.2f\">%0.2f ", 
					$put->{$id}->{buy_num}, $put->{$id}->{buy_price}, $put->{$id}->{buy_cost}, $bought) . "&nbsp;</td>";
#		$text .= "<td class=\"$class\">$put->{$id}->{last_num}</td>";
		my $last = $put->{$id}->{last_num} * $put->{$id}->{last_price};
		$text .= "<td class=\"${class}r\" " . sprintf("title=\"%s aandelen met slot %0.2f\">%0.2f ", 
					$put->{$id}->{last_num}, $put->{$id}->{last_price}, $last) . "&nbsp;</td>";
	    my $dif = $bought ? ($last - $bought) / $bought : 0;
		my $mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
 		$text .= "<td class=\"$mclass\">". sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "&nbsp;</td>";
	    $dif = $bought ? ($put->{$id}->{high} - $bought) / $bought : 0;
		$mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
 		$text .= "<td class=\"$mclass\">". sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "&nbsp;</td>";
#	   	if ($data->{$id}->{perc_gain} < 0)
#	   	{
#		   	$text .= "<td class=\"$class\"><a class=\"nok\" title=\"lage exit-strategie " . sprintf("(%2.1f%% < 0%)", 
#			   			$data->{$id}->{perc_gain}) . "\"></a></td>";
#		}
#		else
#		{
#			$text .= "<td class=\"$class\"></td>";
#		}
	    my $num = $data->{$id}->{num_ok} + $data->{$id}->{num_nok};
		if ($num == 0)
		{
		   	$text .= "<td class=\"minr\" title=\"nog geen adviezen gehad\">&nbsp;&nbsp;</td>";
			$text .= "<td class=\"$class\"></td>";
			$fout++;
	   	}
	   	else
	   	{
		   	if ($num <= 5)
		   	{
		   		$text .= "<td class=\"minr\" title=\"Klein aantal adviezen ($num <= 5)\">$num&nbsp;&nbsp;&nbsp;&nbsp;</td>";
		   		$fout++;
		   	}
		   	elsif ($num <= 15)
		   	{
				$text .= "<td class=\"${class}r\" title=\"Normaal aantal adviezen ($num)\">$num&nbsp;&nbsp;&nbsp;&nbsp;</td>";
		   	}
		   	else
		   	{
				$text .= "<td class=\"maxr\" title=\"Veel adviezen ($num > 15)\">$num&nbsp;&nbsp;&nbsp;&nbsp;</td>";
		   	}
		   	my $perc = $data->{$id}->{num_ok} / $num * 100;
		   	my $perc_str = sprintf("%2.0f%%", $perc);
		   	my $title = "Normale juistheid ($perc_str)";
		   	$mclass = $class;
		   	if ($perc < 60)
		   	{
			   	$mclass = "min";
			   	$title = "Lage juisteheid ($perc_str < 60%)";
			   	$fout++;
		   	}
		   	elsif ($perc >= 85)
		   	{
			   	$mclass = "max";
			   	$title = "Hoge juistheid ($perc_str >= 85)";
		   	}
    		my $img = make_midi_pie_img($stocks->{$id}->{stock}, undef, $data->{$id}, 'ref');
			$text .= "<td class=\"$mclass\" title=\"$title\">$img</td>";
		}
		if (substr($favorites, $id, 1) eq "0")
		{
			$text .= "<td class=\"$class\"><a class=\"mfav_add\" rel=\"nofollow\" href=\"/pl/aandeel-beleggen-portefeuille.pl?eigen=1&action=add&aandeel=$stocks->{$id}->{stock}\" title=\"Voeg $stocks->{$id}->{index_name} toe aan mijn favorieten\">&nbsp;</a></td>";
		}
		else
		{
			$text .= "<td class=\"$class\"><a class=\"mfav_del\" rel=\"nofollow\" href=\"/pl/aandeel-beleggen-portefeuille.pl?eigen=1&action=remove&aandeel=$stocks->{$id}->{stock}\" title=\"Verwijder $stocks->{$id}->{index_name} van mijn favorieten\">&nbsp;</a></td>";
		}
		$text .= "</tr>\n";
		$added++;
	}
			   
	return "" if ($added == 1);
	
	# add the total row of stay put
   	$class = "kantel"; # (($added % 2) == 0) ? "even" : "odd";
   	$text .= "<tr>";
	$text .= "<th class=\"${class}r\">Kopen & Houden&nbsp;</th>";
	$text .= sprintf("<th class=\"${class}r\" title=\"%d,-  waarvan %0.2f  kosten en %0.2f  cash\">%d,- &nbsp;</th>",
			 $invest, $put->{0}->{cost}, $put->{0}->{money}, $invest);
    my $dif = $invest ? ($last_my_val - $invest) / $invest : 0;
	my $mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
	$text .= sprintf("<th class=\"$mclass\" title=\"%0.2f  waarvan %0.2f  cash\">%0.2f &nbsp;</th>", 
			$last_my_val, $put->{0}->{money}, $last_my_val);
 	$text .= "<th class=\"$mclass\"><b>" . sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "</b>&nbsp;</th>";
    $dif = $max_my_gain;
	$mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
 	$text .= "<th class=\"$mclass\"><b>" . sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "</b>&nbsp;</th>";
	$text .= "<th colspan=\"3\"></th>";
	$text .= "</tr>\n";

	# add the total row of kantelen
   	$class = "kantel"; # (($added % 2) == 0) ? "even" : "odd";
   	$text .= "<tr>";
	$text .= "<th class=\"${class}r\">Kantelen&nbsp;</th>";
	$text .= sprintf("<th class=\"${class}r\" title=\"%d,-  startkapitaal\">%d,- &nbsp;</th>",
			 $invest, $invest);
    my $dif = $invest ? ($last_val - $invest) / $invest : 0;
	my $mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
	$text .= sprintf("<th class=\"$mclass\" title=\"%0.2f  beschikbaar eindkapitaal alle kosten reeds inbegrepen\">%0.2f &nbsp;</th>", 
			$last_val, $last_val);
 	$text .= "<th class=\"$mclass\"><b>" . sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "</b>&nbsp;</th>";
    $dif = $max_gain;
	$mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
 	$text .= "<th class=\"$mclass\"><b>" . sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "</b>&nbsp;</th>";
	$text .= "<th colspan=\"3\"></th>";
	$text .= "</tr>\n";

	# add the verschil row
   	$class = "regir";
   	$text .= "<tr>";
	$text .= "<td class=\"$class\"><b>Verschil</b>&nbsp;</td><td class=\"$class\">&nbsp;</td>";
	my $dif_val = ($last_val - $last_my_val);
	my $sign = ($dif_val < 0) ? "-" : "+";
	my $dif_perc = $invest ? $dif_val / $invest : 0;
	my $val   = sprintf("%0.2f ", $dif_val);
	my $perc  = sprintf("%s%.2f%%", (($dif_perc < 0) ? "-" : "+"), abs($dif_perc)*100);
	$text .= "<td class=\"$class\"><b>$val</b>&nbsp;</td>";
	$text .= "<td class=\"$class\"><b>$perc</b>&nbsp;</td>";
	$text .= "<td colspan=\"4\">&nbsp;</td>";
	$text .= "</tr>\n";
	
	$text .= print_table(0, "end", undef, undef, undef, undef, undef, undef, undef, undef, "noprint");
	$text .= "<br>\n";
	if ($fout)
	{
		$param->{num_stocks} += 3;	# counts as 3 stocks
		my $waars = ($fout > 1) ? "opmerkingen die het resultaat kunnen" : "opmerking die het resultaat kan";
		$text .= <<EndOfText;
<span><small>Er zijn <b>$fout</b> $waars beοnvloeden. Zie <span class="bg_lred">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> hierboven.<br></small></span>
<br>
EndOfText
	}
	
    return $text;
}

sub make_keuze_table(@)
{
	my ($dummy) = @_;
	
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
	my $start_year = mktime(0, 0, 0, 1, 0, $year, 0, 0, -1);
	if ($start_year > (time() - ((24*3600)*90)) )	# never less then 3 months!
	{
		$year--;
		$start_year = mktime(0, 0, 0, 1, 0, $year, 0, 0, -1);
	}
	my $last_year  = mktime(0, 0, 0, 1, 0, $year-1, 0, 0, -1);
    my $cyear = $year+1900;
    my $lyear = $year+1900-1;
	my $months_3   = mktime(0, 0, 0, $mday, $mon-3, $year, 0, 0, -1);
	my $months_6   = mktime(0, 0, 0, $mday, $mon-6, $year, 0, 0, -1);
	my $months_12  = mktime(0, 0, 0, $mday, $mon, $year-1, 0, 0, -1);
	my $months_24   = mktime(0, 0, 0, $mday, $mon-24, $year, 0, 0, -1);
	my $cl1 = ($param->{num_porto} == 1) ? " class=\"odd\"" : "";
	my $cl2 = ($param->{num_porto} == 2) ? " class=\"odd\"" : "";
	my $cl3 = ($param->{num_porto} == 3) ? " class=\"odd\"" : "";
	my $cl4 = ($param->{num_porto} == 4) ? " class=\"odd\"" : "";
	my $cl5 = ($param->{num_porto} == 5) ? " class=\"odd\"" : "";
	my $cl6 = ($param->{num_porto} == 6) ? " class=\"odd\"" : "";
	my $tl1 = ($param->{time} == $months_3) ? " class=\"odd\"" : "";
	my $tl2 = ($param->{time} == $months_6) ? " class=\"odd\"" : "";
	my $tl3 = ($param->{time} == $months_12) ? " class=\"odd\"" : "";
	my $tl4 = ($param->{time} == $months_24) ? " class=\"odd\"" : "";
	my $tl5 = ($param->{time} == $last_year) ? " class=\"odd\"" : "";
	my $tl6 = ($param->{time} == $start_year) ? " class=\"odd\"" : "";
	
	my $ref = "/pl/aandeel-beleggen-portefeuille.pl?eigen=1";
	my $text;
	$text  = "<br>\n";
	$text .= make_stock_table_popup("${ref}&action=add&aandeel=", "nl");
	$text .= make_stock_table_popup("${ref}&action=add&aandeel=", "be");
    $text .= print_table(0, undef, 0, 0, 0, undef, "70%", "center", "font-size: 13px;", undef, "noprint");
    my $extra = "";
    $extra = <<EndOfText;
<tr class="bg_yellow">
<td>&nbsp;</td>
<td class="odd" align="center">Andere <a onMouseOver="ShowMenu(event,'stock_menu_nl')" onMouseOut="HideMenu(event,'stock_menu_nl')"><u>Nederlandse</u></a> of
<a onMouseOver="ShowMenu(event,'stock_menu_be')" onMouseOut="HideMenu(event,'stock_menu_be')"><u>Belgische</u></a> aandelen toevoegen?</td>
<td>&nbsp;</td>
</tr>
<tr class="bg_yellow"><td colspan="3">&nbsp;</td></tr>
EndOfText

    $text .= <<EndOfText;
<tr class="bg_yellow">
<td>&nbsp;</td><td align="center">
<span><small>
<br><br>
Wilt u meer/minder reeksen of een andere periode ? Klik op de links hieronder.<br>
<br>
</small></span>
</td><td>&nbsp;</td>
</tr>
$extra
<tr class="bg_yellow"><td>&nbsp;</td><td align="center">
EndOfText
    $text .= print_table(0, undef, 0, 0, 0, undef, "100%", "center", "font-size: 13px;", undef, "noprint");
	$text .= <<EndOfText;
<tr>
<td align="center"$cl1><a href="${ref}&vanaf=$param->{time}&num_porto=1" title="Toon uw portefeuille met 1 aandeel">1 reeks</a></td>
<td align="center"$cl2><a href="${ref}&vanaf=$param->{time}&num_porto=2" title="Toon uw portefeuille met 2 aandelen">2 reeksen</a></td>
<td align="center"$cl3><a href="${ref}&vanaf=$param->{time}&num_porto=3" title="Toon uw portefeuille met 3 aandelen">3 reeksen</a></td>
<td align="center"$cl4><a href="${ref}&vanaf=$param->{time}&num_porto=4" title="Toon uw portefeuille met 4 aandelen">4 reeksen</a></td>
<td align="center"$cl5><a href="${ref}&vanaf=$param->{time}&num_porto=5" title="Toon uw portefeuille met 5 aandelen">5 reeksen</a></td>
<td align="center"$cl6><a href="${ref}&vanaf=$param->{time}&num_porto=6" title="Toon uw portefeuille met 6 aandelen">6 reeksen</a></td>
</tr>
<tr>
<td align="center"$tl1><a href="${ref}&vanaf=$months_3&num_porto=$param->{num_porto}" title="Toon uw portefeuille afgelopen 3 maanden">3 maanden</a></td>
<td align="center"$tl2><a href="${ref}&vanaf=$months_6&num_porto=$param->{num_porto}" title="Toon uw portefeuille afgelopen 6 maanden">6 maanden</a></td>
<td align="center"$tl3><a href="${ref}&vanaf=$months_12&num_porto=$param->{num_porto}" title="Toon uw portefeuille afgelopen 12 maanden">12 maanden</a></td>
<td align="center"$tl4><a href="${ref}&vanaf=$months_24&num_porto=$param->{num_porto}" title="Toon uw portefeuille afgelopen 24 maanden">24 maanden</a></td>
<td align="center"$tl5><a href="${ref}&vanaf=$last_year&num_porto=$param->{num_porto}" title="Toon uw portefeuille sind begin vorig jaar">sinds $lyear</a></td>
<td align="center"$tl6><a href="${ref}&vanaf=$start_year&num_porto=$param->{num_porto}" title="Toon uw portefeuille sind begin dit jaar">sinds $cyear</a></td>
</tr>
EndOfText
    $text .= print_table(0, "end", undef, undef, undef, undef, undef, undef, undef, undef, "noprint");
    $text .= <<EndOfText;
<br>
</td><td>&nbsp;</td></tr>
</table>
<br>
EndOfText
	
    return $text;
}

sub make_cty_table(@)
{
	my ($dummy) = @_;
	
	
	my $ref = "/pl/aandeel-beleggen-portefeuille.pl?eigen=1";
	my $text;
	$text  = "<br>\n";
	$text .= make_stock_table_popup("${ref}&action=add&aandeel=", "nl");
	$text .= make_stock_table_popup("${ref}&action=add&aandeel=", "be");
    $text .= print_table(0, undef, 0, 0, 0, undef, "70%", "center", "font-size: 13px;", undef, "noprint");

    $text .= <<EndOfText;
<tr class="bg_yellow">
<td>&nbsp;</td><td align="center">
<span><small>
<br><br>
Voeg favorieten toe via het menu rechts of de popup menus hieronder.<br>
<br>
</small></span>
</td><td>&nbsp;</td>
</tr>
<tr class="bg_yellow">
<td>&nbsp;</td>
<td class="odd" align="center">Andere <a onMouseOver="ShowMenu(event,'stock_menu_nl')" onMouseOut="HideMenu(event,'stock_menu_nl')"><u>Nederlandse</u></a> of
<a onMouseOver="ShowMenu(event,'stock_menu_be')" onMouseOut="HideMenu(event,'stock_menu_be')"><u>Belgische</u></a> aandelen toevoegen?</td>
<td>&nbsp;</td>
</tr>
<tr class="bg_yellow"><td colspan="3">&nbsp;</td></tr>
</tbody>
</table>
EndOfText
	
    return $text;
}

sub make_overzicht_porto(@)
{
	my ($title) = @_;

	my $porto_table = print_other_porto("own");
	my $tot_porto = $g_num_pos + $g_num_neg;
	
    print_div("center");   

    print "<br><br>\n";
    print_h1($title);

   	print <<EndOfText;
<small><span>
Dit zijn automatische portefeuilles. We adviseren advies te<br>
kopen dat ondersteund wordt door goed bedrijfsnieuws. Nieuwslezen<br>
kunnen we niet automatisen met de computer. In de portefeuilles<br>
zitten dus veel aankopen die we nooit zouden kopen.<br>
<br>
Van de $tot_porto "blinde" portefeuilles zijn er $g_num_pos met winst.<br>
<br>
</span></small>
EndOfText

   	print_banner_ads("main_banner", defined($param->{own}) ? "eigen" : "info", undef, 2) if (show_adds("hoofd"));

   	print <<EndOfText;
<small><span><b>
Klik in de tabel voor details.
</b></span></small>
EndOfText

	print $porto_table;
	    
   	print_banner_ads("porto_midden", defined($param->{own}) ? "eigen" : "info", 1, 1) if (show_adds("porto"));
   	print_banner_ads("porto_midden", defined($param->{own}) ? "eigen" : "info", 1, 1) if (show_adds("porto"));
#    print print_other_porto("nl", "no");
#    print_banner_ads("porto_midden", defined($param->{own}) ? "eigen" : "info", 1, 1) if (show_adds("porto"));
#    print print_other_porto("be", "no");
	my $klik = get_klik_button("mini", "/pl/ShowMain.pl?page=20217", "Informatie samenstelling portefeuilles");
    print <<EndOfText;
<br>
<small><span>
Ter compensatie hebben we portefeuilles aangemaakt<br>
met 20 goed presterende aandelen. De gedachte is dat er bij deze<br>
goed nieuws zal geweest zijn, anders zouden ze niet stijgen.<br>
<br>
Een goede jaarprestatie van het aandeel, wil niet zeggen dat<br>
elke transactie een succes was. We kozen 20 goed presterende<br>
aandelen, maar NIET de best presterende transacties !<br>
<br>
<br>
$klik&nbsp;&nbsp;<a href="/pl/ShowMain.pl?page=20217" title="Informatie samenstelling portefeuilles">Lees hier meer over de samenstelling van onze portefeuilles.</a><br>
</small></span>
<br>
EndOfText
    print_voet_start();
    print_empty_lines(1, 0);
    print_ads("yahoo_klein");    
    print_div("end");
}

sub make_onze_table(@)
{
	my ($country, $year) = @_;
	
	my $fav = get_our_favorites($country, $year);
	my $stocks = get_stocks_mine(undef, "old", $fav);
	return "" if (!defined($stocks));
	
	
	my $text;
	$text  = "";
	
	$text .= "<br>\n";
    $text .= print_table(0, undef, 0, 0, 0, undef, "70%", "center", "font-size: 12px;", undef, "noprint");
    $text .= <<EndOfText;
<tr>
 <th class="kantel" colspan="5">De aandelen die gebruikt zijn voor deze portefeuille</th>
</tr>
EndOfText

	my $num   = 0;
	my $num_r = 0;
	my $rows  = 5;
	my $class;
	foreach my $id (sort keys %$stocks)
	{
		$text .= "<tr>" if (($num % $rows) == 0);
    	$class = (($num_r % 2) == 0) ? "even" : "odd";
		$text .= "<td class=\"${class}l\">&nbsp;&nbsp;<a href=\"/pl/ShowStock.pl?stock=$stocks->{$id}->{stock}\" rel=\"nofollow\">" . $stocks->{$id}->{index_name} . "</a></td>";
		$num++;
		if (($num % $rows) == 0)
		{
			$text .= "</tr>\n";
			$num_r++;
		}		
	}
	if (($num % $rows) != 0)
	{
	 	for (my $i = $num; $i < $rows; $i++)
	 	{
		 	$text .="<td class=\"${class}l\">&nbsp;</td>";
	 	}
	 	$text .= "</tr>\n"; 
 	}

    $text .= print_table(0, "end", undef, undef, undef, undef, undef, undef, undef, undef, "noprint");
	$text .= "<br>\n";
	
    return $text;
}

sub get_porto_row(@)
{
    my ($row, $time, $num) = @_;
 
    my $id;   
    my $stock;
    my $class = (($num % 2) == 0) ? "even" : "odd";
    my $text;
    my $ref =  "/pl/ShowStock.pl?stock=";
	my $cur;
	my $o_cur;
	my $printed = 0;
	my $dif;
	my $mclass;
	
    $text  = "<tr>";    
    $text .= "<td class=\"$class\">". strftime("%d-%m-%Y", localtime($time)) . "</td>";
    for (my $i = 0; $i < $param->{num_porto}; $i++)
    {
		if ($row->{"id_$i"} &&
			($row->{"buy_$i"} || $row->{"sell_$i"}))
		{
			$printed++;
			$id  = $row->{"id_$i"};
			if ($row->{"buy_$i"})
			{
    			$text .= "<td class=\"${class}l\">&nbsp;<a href=\"$ref$stocks->{$id}->{stock}\" rel=\"nofollow\">" . $stocks->{$id}->{index_name} . "</a><br>";
    			$text .= sprintf("A: %d ΰ %.2f ", $row->{"num_$i"}, $row->{"buy_$i"});
			}
			if ($row->{"sell_$i"})
			{
 				$dif = $row->{"close_$i"};
				$text .= $row->{"buy_$i"} ? "<br>" : "<td class=\"${class}l\">";
	    		$text .= sprintf("V: %d ΰ %.2f ", $row->{"num_$i"}, $row->{"sell_$i"}) . "<br>";
 				$mclass = (($dif < 0) ? "bg_lred" : "bg_green");
	    		$text .= "<font class=\"$mclass\">" . sprintf("Netto %s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100) . "</font>";
	    		
	    		$dif = $row->{"max_$i"};
				$mclass = (($dif >= 0.0182) ? "dgreen" : "black");
				$text .= "<br>" . sprintf("Max %s%.2f%%", (($dif <= 0) ? "-" : "+"), abs($dif)*100);
    		}
   			$text .= "</td>";
		}
		else
		{
			$text .= "<td class=\"$class\">&nbsp;</td>";
		}  
    }
    return undef if (!$printed);

	$text .= "<td class=\"${class}r\">" . sprintf("%.2f", $row->{cost}) . "&nbsp;</td>";
    $text .= "<td class=\"${class}r\">" . sprintf("%d,-", $row->{value}) . "&nbsp;</td>";
    my $dif = ($row->{value} - $invest) / $invest;
	my $mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
	if ($dif < $min_gain)
	{
		$min_gain  = $dif;
		$min_date  = $time;
	}
	if ($dif > $max_gain)
	{
		$max_gain  = $dif;
		$max_date  = $time;
	}
	$last_gain = $dif;
 	$text .= "<td class=\"$mclass\">". sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "&nbsp;</td>";
    $text .= "<td class=\"$class\"></td>";
    $text .= "</tr>\n";
	return $text;
}

sub get_calc_porto_row(@)
{
    my ($row, $time, $num, $val) = @_;
 
    my $id;   
    my $stock;
    my $class = (($num % 2) == 0) ? "even" : "odd";
    my $text;
    my $ref =  "/pl/ShowStock.pl?stock=";
	my $cur;
	my $o_cur;
	my $cost  = 0;
	my $value = 0;
	my $money;
	my $printed = 0;
	my $dif;
	my $mclass;
	
    $text  = "<tr>";    
    $text .= "<td class=\"$class\">". strftime("%d-%m-%Y", localtime($time)) . "</td>";
    for (my $i = 0; $i < $param->{num_porto}; $i++)
    {
		$o_cur = sprintf("%02d", $i);
		if (defined($row->{"$o_cur:b"}) || defined($row->{"$o_cur:s"}))
		{
			$printed++;
			if (defined($row->{"$o_cur:b"}))
			{
				$cur = "$o_cur:b";
				$id  = $row->{$cur}->{id};
    			$text .= "<td class=\"${class}l\"><a href=\"$ref$stocks->{$id}->{stock}\" rel=\"nofollow\">" . $stocks->{$id}->{index_name} . "</a><br>";
    			$text .= "A: $row->{$cur}->{stocks} ΰ " . sprintf("%.2f ", $row->{$cur}->{bought_for});
    			$cost += $row->{$cur}->{bcost};
    			$cash -= $row->{$cur}->{bcost} + $row->{$cur}->{bvalue};
			}
			if (defined($row->{"$o_cur:s"}))
			{
				$cur = "$o_cur:s";
				$id  = $row->{$cur}->{id};
 				$dif = ($row->{$cur}->{scash} - $row->{$cur}->{cash}) / $row->{$cur}->{cash};
				$text .= defined($row->{"$o_cur:b"}) ? "<br>" : "<td class=\"${class}l\">";
				$mclass = (($dif < 0) ? "bg_lred" : "bg_green");
				$text .= "V: $row->{$cur}->{stocks} ΰ " . sprintf("%.2f ", $row->{$cur}->{sold_for}) . "<br>";
				$text .= "<font class=\"$mclass\">" . sprintf("Netto %s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100) . "</font>";
	    		$cost += $row->{$cur}->{scost}; 
	    		$cash += $row->{$cur}->{svalue} - $row->{$cur}->{scost};

	    		if (defined($row->{"$o_cur:c"}))
	    		{
		    		if (defined($row->{$cur}->{sbuy}))
		    		{
	    				$dif = ($row->{"$o_cur:c"}->{high} - $row->{$cur}->{sbuy}) / $row->{$cur}->{sbuy};
    				}
    				else
    				{
	    				$dif = ($row->{"$o_cur:c"}->{high} - $row->{$cur}->{bought_for}) / $row->{$cur}->{bought_for};
    				}
					$text .= "<br>" . sprintf("Max %s%.2f%%", (($dif <= 0) ? "-" : "+"), abs($dif)*100);
				}
    		}
   			$text .= "</td>";
		}
		else
		{
			$text .= "<td class=\"$class\">&nbsp;</td>";
		}  
		
		if (defined($row->{"$o_cur:c"}) && !defined($row->{"$o_cur:s"}))
		{
			$cur = "$o_cur:c";
			$value += $row->{$cur}->{value};
		}
    }
    return undef if (!$printed);

    $value += $cash;    
	$text .= "<td class=\"${class}r\">" . sprintf("%.2f", $cost) . "&nbsp;</td>";
    $text .= "<td class=\"${class}r\">" . sprintf("%d,-", $value) . "&nbsp;</td>";

 	# kopen & houden gain
    my $dif = ($val - $invest) / $invest;
	my $mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
	$max_my_gain  = $dif if ($dif > $max_my_gain);
	$last_my_gain = $dif;
	$last_my_val  = $val;
 	$text .= "<td class=\"$mclass\">". sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "&nbsp;</td>";

    #kantelpunten gain
    my $dif = ($value - $invest) / $invest;
	my $mclass = "${class}r" . (($dif < 0) ? " dred" : " dgreen");
	if ($dif < $min_gain)
	{
		$min_gain  = $dif;
		$min_date  = $time;
	}
	if ($dif > $max_gain)
	{
		$max_gain  = $dif;
		$max_date  = $time;
	}
	$last_gain = $dif;
	$last_val  = $value;
 	$text .= "<td class=\"$mclass\">". sprintf("%s%.2f%%", (($dif < 0) ? "-" : "+"), abs($dif)*100). "&nbsp;</td>";

    $text .= "<td class=\"$class\"></td>";
 	$text .= "</tr>\n";
	return $text;
}

sub print_other_porto(@)
{
	my ($country, $no_add) = @_;
	$country = $param->{country} unless defined($country);
	
    my $sum_year = read_sum_porto_records($country);
    return if (!defined($sum_year));

    my $add_text = "";
    my $txt;
    my $text = "";
    if ($page != 9957)
    {
    	$txt = ($country eq "nl") ? "Klik hieronder om andere Nederlandse voorbeeldportefeuilles te bekijken." : 
    			  ($country eq "be") ? "Klik hieronder om andere Belgische voorbeeldportefeuilles te bekijken." : 
    			  					   "Klik hieronder om andere voorbeeldportefeuilles van ons te bekijken.";
    }    
    else
    {
    	$txt = ($country eq "nl") ? "Portefeuille met Nederlandse adviezen + Stoploss." : 
    			  ($country eq "be") ? "Portefeuille met Belgische adviezen + Stoploss." : 
    			  					   "Elke reeks start met 5000. Er werd gewisseld tussen max. 20 aandelen.<br>Per verhandeling werden er 2x 8 transactiekosten afgetrokken.";
	}
   	$add_text = <<EndOfText;
<tr><th class="kantel" colspan="8">$txt</th></tr>
EndOfText
   	$text .= <<EndOfText;
<br><br>
<table border="0" cellpadding="0" cellspacing="0" width="70%" align="center" style="font-size: 14px;">
<tbody>
$add_text
<tr>
 <th class="kantel">&nbsp;&nbsp;jaar&nbsp;&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;*&nbsp;5000&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;*&nbsp;5000&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;*&nbsp;5000&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;*&nbsp;5000&nbsp;</th>
 <th class="kantel">&nbsp;&nbsp;</th>
</tr>
<tr><td>&nbsp;</td></tr>
EndOfText

	my $class;
	my $mclass;
	my $num = 1;
	my $sum;
	$g_num_pos   = 0;
	$g_num_neg   = 0;
	foreach my $j (reverse sort keys %$sum_year)
	{
		$sum = $sum_year->{$j};
		$class = (($num % 2) == 0) ? "even" : "odd";
		$text .= "<tr>";
		$text .= "<td class=\"$class\">$sum->{year}</td>";
#		$mclass =  "${class}r" . (($sum->{p_max} < 0) ? " l_dred" : " l_dgreen");
#  		$text .= "<td class=\"$mclass\"><a href=\"/pl/aandeel-beleggen-portefeuille.pl?land=$country&jaar=$sum->{year}&type=1\" title=\"Toon de fictieve portefeuille van $sum->{year}.\">" . sprintf("%.1f %%", $sum->{p_max}) . "</a></td>";
   		for (my $i = 3; $i <= 6; $i++)
		{
			if ($sum->{"p_$i"} < 0)
			{
				$g_num_neg++;
			}
			else
			{
				$g_num_pos++;
			}
			$mclass = "${class}r" . (($sum->{"p_$i"} < 0) ? " l_dred" : " l_dgreen");
			my $aand = ($i == 1) ? "aandeel" : "aandelen";
	   		$text .= "<td class=\"$mclass\"><a href=\"/pl/aandeel-beleggen-portefeuille.pl?land=$country&jaar=$sum->{year}&type=2&num_porto=$i\" title=\"Toon de voorbeeldportefeuille van $sum->{year} met $i $aand.\">" . sprintf("%.1f %%", $sum->{"p_$i"}) . "</a></td>";
		}
		$text .= "<td class=\"$class\"></td>";
		$text .= "</tr>";
		$num++;
	}
	$text .= <<EndOfText if (!defined($no_add));
<tr><td>&nbsp;</td></tr>
<tr><th class="bg_yellow center" colspan="8"><br><a href="/pl/ShowMain.pl?page=9958" title="Geregistreerde gebruikers kunnen hun eigen favoriete aandelen testen">Klik hier om Uw eigen favoriete aandelen te testen!</a><br><br></th><th></th><th></th></tr>
EndOfText
	$text .= <<EndOfText;
</tbody>
</table>
EndOfText

	return $text;
}

sub make_not_registered_html()
{
    my $script = make_home_script($page);
	my $title = "Test uw eigen favoriete portefeuille.";
	my $desc  = "Als geregistreerde gebruiker kunt u heel eenvoudig uw eigen favorieten testen aan de hand van de adviezen en de advies-indicator." .
				"Op dit moment bent u niet ingelogd of gerigistreerd. Registreren is gratis.";

    my $pop_menu = make_pop_menu(0, $page);	
    my $top_menu = make_top_menu(0, $page);	

    print_header("+1s");
    print_pre_doc();
    print_head("Kantelpunten : $title", undef, undef, undef, $script, "kantelresult", defined($param->{own}) ? "eigen" : undef, undef, $desc, undef, "top_script");
    print_body(defined($param->{own}) ? "eigen" : "kantel", undef, undef, undef, undef, undef, undef, "kader", undef, $pop_menu, $top_menu);
    my $ref = "/pl/aandeel-beleggen-portefeuille.pl?eigen=1&uitleg=" . ($param->{budy} ? '0' : '1');
    print_budy($param->{budy}, $page, $ref);
    print_div("center");   
    print "<br>\n";
    print_h1($title);
   	print_banner_ads("main_banner", defined($param->{own}) ? "eigen" : "info", undef, 2) if (show_adds("hoofd"));
   	my $klik = get_klik_button("mini");
	print <<EndOfText;
<span><small>
U kan ons testen op 2 manieren : publiek of privι.<br>
<br>
U geeft uw favoriete aandelen op en wij berekenen direct<br>
wat het verschil zou geweest zijn tussen "kopen en houden"<br>
of het "doorlopend wisselen tussen uw favorieten". We tonen stap<br>
voor stap hoe we tot het resultaat komen, en alle transactiekosten<br>
worden afgetrokken. Bij elke gedane handling tonen we tevens de<br>
maximaal mogelijke winst, opdat u zou zien dat we over het<br>
algemeen eigenlijk nog heel veel winst laten liggen.<br>
<br>
<br>
<big><big>Test ons zonder registratie.</big></big><br>
<br> 
Dit is een publieke portefeuille die vrij kan gebruikt worden.<br>
Het kan gebeuren dat uw ingevoerde favoriete aandelen wijzigen,<br>
omdat anderen op hetzelfde moment aan het testen zijn.<br>
<br>
<a href="http://www.kantelpunten.com/pl/Register.pl?action=Inloggen&email=test\@kantelpunten.com&password=gast" target=\"register\" rel=\"nofollow\">$klik Klik hier voor de publieke backtest.</a><br>
<br>
<br>
<big><big>Testen met registratie.</big></big><br>
<br> 
Bij registratie krijgt u een eigen portefeuille.<br>
Hierin kan u uw persoonlijke favoriete aandelen bijhouden.<br>
We verwittigen u ( indien gewenst ) per email bij trendveranderingen.<br>
<a href="/pl/ShowMain.pl?page=10066" title="Mogelijkheden kantelpunten">Hier</a> kan u de voordelen van registreren nog eens nalezen.<br>
<br>
<a href="/pl/ShowMain.pl?page=10027" title="Hier kunt u zich registreren als nieuwe gebruiker.">$klik Klik hier voor registratie.</a><br>
<br>
We hebben geen interesse in uw leefomgeving.<br>
Registratie bestaat enkel uit een nicknaam en emaildadres,<br>
en u kan over een paar minuten aan de slag.<br>
<br>
EndOfText
 

	print <<EndOfText if (0);
<span><small>
Als geregistreerde gebruiker kunt U automatisch uit uw eigen<br>
favorieten een kantelpunten portefeuille laten berekenen.<br>
<br>
U kunt zelf testen of het doorlopend wisselen en verkopen van aandelen <br>
met de kantelpuntentechniek gunstig werkt met uw favorieten.<br>
<br>
<b>Helaas bent u niet geregistreerd of niet ingelogd.</b><br>
<br>
Meer informatie over registreren vind u <a href="/pl/ShowMain.pl?page=10066" title="Mogelijkheden kantelpunten">hier</a>.<br>
<br>
<b>Via ons test account kunt u wel testen!</b><br>
Echter anderen kunnen tegelijkertijd uw favorieten wijzigen<br>
Klik <a href="http://www.kantelpunten.com/pl/Register.pl?action=Inloggen&email=test\@kantelpunten.com&password=gast" target=\"register\" rel=\"nofollow\">hier</a> om naar het test account te gaan.<br>
<br>
Eventueel kunt u zich <a href="/pl/ShowMain.pl?page=10027" title="Hier kunt u zich registreren als nieuwe gebruiker.">gratis registreren</a>,<br>
zodat u toegang krijgt tot alle mogelijkheden van onze site.<br>
<br>
</small></span>
EndOfText

#   	print_banner_ads("main_banner", defined($param->{own}) ? "eigen" : "info", 2, undef) if (show_adds("hoofd"));
   	
	print <<EndOfText;
<hr>
<br>
<span><small>
Toppy,<br>
Webmaster & beursprogammeur.<br>
<a href="mailto:webmaster\@kantelpunten.com">webmaster\@kantelpunten.com</a><br>
</small></span>
EndOfText

    print_voet_start();
    print_empty_lines(1, 0);
    print_div("end");
    print_body("end");
    print_post_doc();
}

sub make_example_html()
{
    my $script = make_home_script($page);
    # tijdelijk
    $script = undef;
	my $title = "Voorbeeld test portefeuille.";
	my $desc  = "Als geregistreerde gebruiker kunt u heel eenvoudig uw eigen favorieten testen aan de hand van de adviezen en de advies-indicator." .
				"Op dit moment bent u niet ingelogd of gerigistreerd. Registreren is gratis.";

	my $pop_menu = make_pop_menu(0, $page);
	my $top_menu = make_top_menu(0, $page);
	
	print_header("+1s");
    print_pre_doc();
    print_head("Kantelpunten : $title", undef, undef, undef, $script, "kantelresult", undef, undef, $desc, undef, "top_script");
    print_body(defined($param->{own}) ? "eigen" : "kantel", undef, undef, undef, undef, undef, undef, "kader", undef, $pop_menu, $top_menu);
    my $ref = "/pl/aandeel-beleggen-portefeuille.pl?voorbeeld=1&uitleg=" . ($param->{budy} ? '0' : '1');
    print_budy($param->{budy}, $page, $ref);
    print_div("center");   
    print "<br>\n";
    print_h1($title);
   	print_banner_ads("main_banner", defined($param->{own}) ? "eigen" : "info", undef, 2) if (show_adds("hoofd"));

  	print <<EndOfText;
<span><small>
<br>
Wat was best ? "Kopen & houden" of "kantelen" ?<br>
<br>
De aandelenkeuze gebeurde zonder fundamenteel onderzoek.<br>
Een belegger die adviezen kiest die ondersteund worden door bedrijfsnieuws,<br>
zal meer winst maken dan een blinde selectie, gedaan door een computer.<br>
<br>
Gestart met 10000,-  verdeeld over 2 reeksen.<br>
Periode : 01-01-2007 tot 13-12-2007 ( t/m laatste verkoop ).<br>
<br>
</small></span>
<br>
<table  border="0" cellpadding="0" cellspacing="0" width="70%" align="center" style="font-size: 12px;">
 <tbody>
<tr>
 <th class="kantel"></th>
 <th class="kantelr">&nbsp;Aankoop&nbsp;</th>
 <th class="kantelr">&nbsp;Huidige&nbsp;</th>
 <th class="kantel" colspan="2"></th>
 <th class="kantelr">&nbsp;Aantal&nbsp;</th>
 <th class="kantel">&nbsp;</th>
 <th class="kantel"></th>
</tr>
<tr>
 <th class="kantel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aandeel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waarde&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waarde&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Winst&nbsp;</th>
 <th class="kantelr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hoogst&nbsp;</th>
 <th class="kantelr">&nbsp;adviezen&nbsp;</th>
 <th class="kantel">&nbsp;Juist%&nbsp;</th>
 <th class="kantel"></th>
</tr> 
<tr><td class="oddl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=AAL" rel="nofollow">Aalberts</a></td><td class="oddr" title="21 aandelen gekocht voor 65.60 kosten 8.00">1377.60 &nbsp;</td><td class="oddr" title="84 aandelen met slot 13.68">1149.12 &nbsp;</td><td class="oddr dred">-16.59%&nbsp;</td><td class="oddr dgreen">+32.50%&nbsp;</td><td class="oddr" title="Normaal aantal adviezen (6)">6&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="odd" title="Normale juistheid (83%)"><a class="p p17" href="/pl/ShowKantelpunten.pl?stock=AAL" title="5 juist van de 6 adviezen (83%)."></a></td><td class="odd"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=AAL" title="Verwijder Aalberts van mijn favorieten">&nbsp;</a></td></tr>
<tr><td class="evenl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=SBM" rel="nofollow">SBM Offshore</a></td><td class="evenr" title="54 aandelen gekocht voor 26.18 kosten 8.00">1413.72 &nbsp;</td><td class="evenr" title="54 aandelen met slot 22.00">1188.00 &nbsp;</td><td class="evenr dred">-15.97%&nbsp;</td><td class="evenr dgreen">+18.37%&nbsp;</td><td class="evenr" title="Normaal aantal adviezen (11)">11&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="even" title="Normale juistheid (82%)"><a class="p p16" href="/pl/ShowKantelpunten.pl?stock=SBM" title="9 juist van de 11 adviezen (82%)."></a></td><td class="even"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=SBM" title="Verwijder SBM Offshore van mijn favorieten">&nbsp;</a></td></tr>
<tr><td class="oddl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=VED" rel="nofollow">Vedior</a></td><td class="oddr" title="90 aandelen gekocht voor 15.76 kosten 8.00">1418.40 &nbsp;</td><td class="oddr" title="90 aandelen met slot 16.80">1512.00 &nbsp;</td><td class="oddr dgreen">+6.60%&nbsp;</td><td class="oddr dgreen">+47.02%&nbsp;</td><td class="oddr" title="Normaal aantal adviezen (11)">11&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="max" title="Hoge juistheid (91% >= 85)"><a class="p p18" href="/pl/ShowKantelpunten.pl?stock=VED" title="10 juist van de 11 adviezen (91%)."></a></td><td class="odd"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=VED" title="Verwijder Vedior van mijn favorieten">&nbsp;</a></td></tr>
<tr><td class="evenl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=AKZ" rel="nofollow">AKZO Nobel</a></td><td class="evenr" title="30 aandelen gekocht voor 46.31 kosten 8.00">1389.30 &nbsp;</td><td class="evenr" title="30 aandelen met slot 52.66">1579.80 &nbsp;</td><td class="evenr dgreen">+13.71%&nbsp;</td><td class="evenr dgreen">+40.36%&nbsp;</td><td class="evenr" title="Normaal aantal adviezen (12)">12&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="even" title="Normale juistheid (83%)"><a class="p p17" href="/pl/ShowKantelpunten.pl?stock=AKZ" title="10 juist van de 12 adviezen (83%)."></a></td><td class="even"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=AKZ" title="Verwijder AKZO Nobel van mijn favorieten">&nbsp;</a></td></tr>
<tr><td class="oddl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=WKL" rel="nofollow">Wolters Kluwer</a></td><td class="oddr" title="64 aandelen gekocht voor 21.93 kosten 8.00">1403.52 &nbsp;</td><td class="oddr" title="64 aandelen met slot 23.00">1472.00 &nbsp;</td><td class="oddr dgreen">+4.88%&nbsp;</td><td class="oddr dgreen">+8.48%&nbsp;</td><td class="oddr" title="Normaal aantal adviezen (12)">12&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="odd" title="Normale juistheid (67%)"><a class="p p13" href="/pl/ShowKantelpunten.pl?stock=WKL" title="8 juist van de 12 adviezen (67%)."></a></td><td class="odd"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=WKL" title="Verwijder Wolters Kluwer van mijn favorieten">&nbsp;</a></td></tr>
<tr><td class="evenl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=ASML" rel="nofollow">ASM Lithograp.</a></td><td class="evenr" title="75 aandelen gekocht voor 18.91 kosten 8.00">1418.25 &nbsp;</td><td class="evenr" title="75 aandelen met slot 23.56">1767.00 &nbsp;</td><td class="evenr dgreen">+24.59%&nbsp;</td><td class="evenr dgreen">+32.15%&nbsp;</td><td class="evenr" title="Normaal aantal adviezen (12)">12&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="max" title="Hoge juistheid (100% >= 85)"><a class="p p20" href="/pl/ShowKantelpunten.pl?stock=ASML" title="12 juist van de 12 adviezen (100%)."></a></td><td class="even"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=ASML" title="Verwijder ASM Lithograp. van mijn favorieten">&nbsp;</a></td></tr>
<tr><td class="oddl">&nbsp;&nbsp;<a href="/pl/ShowStock.pl?stock=MIT" rel="nofollow">Mittal </a></td><td class="oddr" title="44 aandelen gekocht voor 32.00 kosten 8.00">1408.00 &nbsp;</td><td class="oddr" title="44 aandelen met slot 49.82">2192.08 &nbsp;</td><td class="oddr dgreen">+55.69%&nbsp;</td><td class="oddr dgreen">+80.59%&nbsp;</td><td class="oddr" title="Normaal aantal adviezen (15)">15&nbsp;&nbsp;&nbsp;&nbsp;</td><td class="max" title="Hoge juistheid (87% >= 85)"><a class="p p17" href="/pl/ShowKantelpunten.pl?stock=MIT" title="13 juist van de 15 adviezen (87%)."></a></td><td class="odd"><a class="mfav_del" rel="nofollow" href="/pl/ShowFavorites.pl?action=remove&stock=MIT" title="Verwijder Mittal  van mijn favorieten">&nbsp;</a></td></tr>
<tr><th class="kantelr">Kopen & Houden&nbsp;</th><th class="kantelr" title="10000,-  waarvan 56.00  kosten en 115.21  cash">10000,- &nbsp;</th><th class="kantelr dgreen" title="10975.21  waarvan 115.21  cash">10975.21 &nbsp;</th><th class="kantelr dgreen"><b>+9.75%</b>&nbsp;</th><th class="kantelr dgreen"><b>+25.96%</b>&nbsp;</th><th colspan="3"></th></tr>
<tr><th class="kantelr">Kantelen&nbsp;</th><th class="kantelr" title="10000,-  startkapitaal">10000,- &nbsp;</th><th class="kantelr dgreen" title="13529.44  beschikbaar eindkapitaal alle kosten reeds inbegrepen">13529.44 &nbsp;</th><th class="kantelr dgreen"><b>+35.29%</b>&nbsp;</th><th class="kantelr dgreen"><b>+50.15%</b>&nbsp;</th><th colspan="3"></th></tr>
<tr><td class="regir"><b>Verschil</b>&nbsp;</td><td class="regir">&nbsp;</td><td class="regir"><b>2554.23 </b>&nbsp;</td><td class="regir"><b>+25.54%</b>&nbsp;</td><td colspan="4">&nbsp;</td></tr>
 </tbody>
</table>
<br>
<br>
<table  border="0" cellpadding="0" cellspacing="0" width="70%" align="center" style="font-size: 13px;">
 <tbody>
<tr class="bg_yellow"><td>&nbsp;</td><td align="center">
<span><small>
<br><br>
&nbsp;&nbsp;Wilt u meer/minder reeksen of een andere periode ? Klik op de links hieronder.&nbsp;&nbsp;<br>
<br>
</small></span>
</td><td>&nbsp;</td></tr>
<tr class="bg_yellow"><td>&nbsp;</td><td align="center">
<table  border="0" cellpadding="0" cellspacing="0" width="100%" align="center" style="font-size: 13px;">
 <tbody>
<tr>
<td align="center">1 reeks</td>
<td align="center" class="odd">2 reeksen</td>
<td align="center">3 reeksen</td>
<td align="center">4 reeksen</td>
<td align="center">5 reeksen</td>
<td align="center">6 reeksen</td>
</tr>
<tr>
<td align="center">3 maanden</td>
<td align="center">6 maanden</td>
<td align="center">12 maanden</td>
<td align="center">24 maanden</td>
<td align="center">sinds 2006</td>
<td align="center" class="odd">sinds 2007</td>
</tr>
 </tbody>
</table>
<br>
</td><td>&nbsp;</td></tr>
</table>
<br><br><br>
<table  border="0" cellpadding="0" cellspacing="0" width="70%" align="center" style="font-size: 12px;">
 <tbody>
<tr>
 <th class="kantel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Datum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantell">Reeks&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantell">Reeks&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantelr">&nbsp;kosten&nbsp;</th>
 <th class="kantelr">&nbsp;waarde&nbsp;</th>
 <th class="kantelr">&nbsp;Totaal</th>
  <th class="kantel">Kopen<br>&<br>&nbsp;Houden</th>
 <th class="kantel">&nbsp;&nbsp;</th>
</tr>
<tr><td>&nbsp;</td></tr>
<tr><td class="odd">02-01-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=AAL" rel="nofollow">Aalberts</a><br>A: 75 ΰ 66.22 </td><td class="oddl"><a href="/pl/ShowStock.pl?stock=SBM" rel="nofollow">SBM Offshore</a><br>A: 191 ΰ 26.18 </td><td class="oddr">16.00&nbsp;</td><td class="oddr">10065,-&nbsp;</td><td class="oddr dgreen">+0.66%&nbsp;</td><td class="oddr dgreen">+0.38%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">05-01-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 191 ΰ 25.05 <br><font class="bg_lred">Netto -4.61%</font><br>Max +1.15%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">9916,-&nbsp;</td><td class="evenr dred">-0.84%&nbsp;</td><td class="evenr dred">-0.98%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">15-01-2007</td><td class="odd">&nbsp;</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=MIT" rel="nofollow">Mittal </a><br>A: 151 ΰ 31.50 </td><td class="oddr">8.00&nbsp;</td><td class="oddr">10172,-&nbsp;</td><td class="oddr dgreen">+1.73%&nbsp;</td><td class="oddr dgreen">+1.67%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">22-01-2007</td><td class="evenl">V: 75 ΰ 69.68 <br><font class="bg_green">Netto +4.87%</font><br>Max +9.18%</td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">10162,-&nbsp;</td><td class="evenr dgreen">+1.62%&nbsp;</td><td class="evenr dgreen">+2.35%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">29-01-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=AAL" rel="nofollow">Aalberts</a><br>A: 74 ΰ 70.22 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">10609,-&nbsp;</td><td class="oddr dgreen">+6.09%&nbsp;</td><td class="oddr dgreen">+2.89%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">08-02-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 151 ΰ 36.06 <br><font class="bg_green">Netto +14.03%</font><br>Max +18.29%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">10904,-&nbsp;</td><td class="evenr dgreen">+9.04%&nbsp;</td><td class="evenr dgreen">+5.98%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">12-02-2007</td><td class="oddl">V: 74 ΰ 72.36 <br><font class="bg_green">Netto +2.71%</font><br>Max +6.66%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">10826,-&nbsp;</td><td class="oddr dgreen">+8.27%&nbsp;</td><td class="oddr dgreen">+5.13%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">15-02-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=MIT" rel="nofollow">Mittal </a><br>A: 143 ΰ 38.05 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">10805,-&nbsp;</td><td class="evenr dgreen">+8.06%&nbsp;</td><td class="evenr dgreen">+7.27%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">27-02-2007</td><td class="odd">&nbsp;</td><td class="oddl">V: 143 ΰ 39.12 <br><font class="bg_green">Netto +2.50%</font><br>Max +7.75%</td><td class="oddr">8.00&nbsp;</td><td class="oddr">10963,-&nbsp;</td><td class="oddr dgreen">+9.64%&nbsp;</td><td class="oddr dgreen">+6.72%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">09-03-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=AKZ" rel="nofollow">AKZO Nobel</a><br>A: 120 ΰ 46.43 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">10953,-&nbsp;</td><td class="evenr dgreen">+9.53%&nbsp;</td><td class="evenr dgreen">+4.83%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">12-03-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=SBM" rel="nofollow">SBM Offshore</a><br>A: 199 ΰ 26.88 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">11743,-&nbsp;</td><td class="oddr dgreen">+17.44%&nbsp;</td><td class="oddr dgreen">+6.99%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">14-03-2007</td><td class="evenl">V: 199 ΰ 26.01 <br><font class="bg_lred">Netto -3.52%</font><br>Max +0.11%</td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">11612,-&nbsp;</td><td class="evenr dgreen">+16.12%&nbsp;</td><td class="evenr dgreen">+3.96%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">21-03-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=VED" rel="nofollow">Vedior</a><br>A: 309 ΰ 16.77 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">11915,-&nbsp;</td><td class="oddr dgreen">+19.15%&nbsp;</td><td class="oddr dgreen">+8.12%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">10-04-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 120 ΰ 56.68 <br><font class="bg_green">Netto +21.65%</font><br>Max +24.90%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">12070,-&nbsp;</td><td class="evenr dgreen">+20.70%&nbsp;</td><td class="evenr dgreen">+11.41%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">19-04-2007</td><td class="odd">&nbsp;</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=AKZ" rel="nofollow">AKZO Nobel</a><br>A: 119 ΰ 56.84 </td><td class="oddr">8.00&nbsp;</td><td class="oddr">12127,-&nbsp;</td><td class="oddr dgreen">+21.28%&nbsp;</td><td class="oddr dgreen">+10.04%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">16-05-2007</td><td class="evenl">V: 309 ΰ 19.70 <br><font class="bg_green">Netto +17.12%</font><br>Max +21.11%</td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13138,-&nbsp;</td><td class="evenr dgreen">+31.39%&nbsp;</td><td class="evenr dgreen">+15.20%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">17-05-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=AAL" rel="nofollow">Aalberts</a><br>A: 304 ΰ 79.93 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13511,-&nbsp;</td><td class="oddr dgreen">+35.12%&nbsp;</td><td class="oddr dgreen">+16.64%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">18-05-2007</td><td class="evenl">V: 304 ΰ 20.96 <br><font class="bg_green">Netto +4.60%</font><br>Max +9.85%</td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13552,-&nbsp;</td><td class="evenr dgreen">+35.52%&nbsp;</td><td class="evenr dgreen">+17.72%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">22-05-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=VED" rel="nofollow">Vedior</a><br>A: 313 ΰ 20.35 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13651,-&nbsp;</td><td class="oddr dgreen">+36.52%&nbsp;</td><td class="oddr dgreen">+18.46%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">25-05-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 119 ΰ 59.26 <br><font class="bg_green">Netto +4.00%</font><br>Max +7.88%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13939,-&nbsp;</td><td class="evenr dgreen">+39.39%&nbsp;</td><td class="evenr dgreen">+18.54%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">05-06-2007</td><td class="oddl">V: 313 ΰ 21.83 <br><font class="bg_green">Netto +7.00%</font><br>Max +9.73%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13878,-&nbsp;</td><td class="oddr dgreen">+38.78%&nbsp;</td><td class="oddr dgreen">+20.63%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">14-06-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=VED" rel="nofollow">Vedior</a><br>A: 329 ΰ 21.40 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">13985,-&nbsp;</td><td class="evenr dgreen">+39.85%&nbsp;</td><td class="evenr dgreen">+21.38%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">15-06-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=WKL" rel="nofollow">Wolters Kluwer</a><br>A: 295 ΰ 23.11 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">14241,-&nbsp;</td><td class="oddr dgreen">+42.41%&nbsp;</td><td class="oddr dgreen">+23.01%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">21-06-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 329 ΰ 22.27 <br><font class="bg_green">Netto +3.83%</font><br>Max +7.24%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13995,-&nbsp;</td><td class="evenr dgreen">+39.96%&nbsp;</td><td class="evenr dgreen">+23.13%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">25-06-2007</td><td class="oddl">V: 295 ΰ 22.40 <br><font class="bg_lred">Netto -3.30%</font><br>Max +0.43%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13922,-&nbsp;</td><td class="oddr dgreen">+39.23%&nbsp;</td><td class="oddr dgreen">+22.48%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">29-06-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=VED" rel="nofollow">Vedior</a><br>A: 328 ΰ 22.27 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">13895,-&nbsp;</td><td class="evenr dgreen">+38.95%&nbsp;</td><td class="evenr dgreen">+22.50%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">11-07-2007</td><td class="odd">&nbsp;</td><td class="oddl">V: 328 ΰ 21.82 <br><font class="bg_lred">Netto -2.23%</font><br>Max +4.31%</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13759,-&nbsp;</td><td class="oddr dgreen">+37.59%&nbsp;</td><td class="oddr dgreen">+24.53%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">17-07-2007</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=ASML" rel="nofollow">ASM Lithograp.</a><br>A: 313 ΰ 21.05 </td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13798,-&nbsp;</td><td class="evenr dgreen">+37.98%&nbsp;</td><td class="evenr dgreen">+25.96%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">30-07-2007</td><td class="oddl">V: 313 ΰ 21.61 <br><font class="bg_green">Netto +2.41%</font><br>Max +7.08%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13918,-&nbsp;</td><td class="oddr dgreen">+39.19%&nbsp;</td><td class="oddr dgreen">+18.02%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">07-08-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=WKL" rel="nofollow">Wolters Kluwer</a><br>A: 329 ΰ 21.74 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">13742,-&nbsp;</td><td class="evenr dgreen">+37.43%&nbsp;</td><td class="evenr dgreen">+16.30%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">16-08-2007</td><td class="odd">&nbsp;</td><td class="oddl">V: 329 ΰ 21.15 <br><font class="bg_lred">Netto -2.93%</font><br>Max +3.22%</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13708,-&nbsp;</td><td class="oddr dgreen">+37.09%&nbsp;</td><td class="oddr dgreen">+5.64%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">23-08-2007</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=ASML" rel="nofollow">ASM Lithograp.</a><br>A: 318 ΰ 21.21 </td><td class="evenl"><a href="/pl/ShowStock.pl?stock=AKZ" rel="nofollow">AKZO Nobel</a><br>A: 123 ΰ 56.37 </td><td class="evenr">16.00&nbsp;</td><td class="evenr">13653,-&nbsp;</td><td class="evenr dgreen">+36.53%&nbsp;</td><td class="evenr dgreen">+12.12%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">07-09-2007</td><td class="odd">&nbsp;</td><td class="oddl">V: 123 ΰ 56.09 <br><font class="bg_lred">Netto -0.73%</font><br>Max +3.46%</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13964,-&nbsp;</td><td class="oddr dgreen">+39.65%&nbsp;</td><td class="oddr dgreen">+11.45%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">12-09-2007</td><td class="evenl">V: 318 ΰ 22.16 <br><font class="bg_green">Netto +4.23%</font><br>Max +9.34%</td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13944,-&nbsp;</td><td class="evenr dgreen">+39.44%&nbsp;</td><td class="evenr dgreen">+11.31%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">14-09-2007</td><td class="odd">&nbsp;</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=MIT" rel="nofollow">Mittal </a><br>A: 139 ΰ 49.28 </td><td class="oddr">8.00&nbsp;</td><td class="oddr">13919,-&nbsp;</td><td class="oddr dgreen">+39.20%&nbsp;</td><td class="oddr dgreen">+11.12%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">21-09-2007</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=ASML" rel="nofollow">ASM Lithograp.</a><br>A: 315 ΰ 22.45 </td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">14715,-&nbsp;</td><td class="evenr dgreen">+47.16%&nbsp;</td><td class="evenr dgreen">+15.98%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">03-10-2007</td><td class="odd">&nbsp;</td><td class="oddl">V: 139 ΰ 54.55 <br><font class="bg_green">Netto +10.38%</font><br>Max +14.63%</td><td class="oddr">8.00&nbsp;</td><td class="oddr">15015,-&nbsp;</td><td class="oddr dgreen">+50.15%&nbsp;</td><td class="oddr dgreen">+17.78%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">04-10-2007</td><td class="evenl">V: 315 ΰ 23.02 <br><font class="bg_green">Netto +2.31%</font><br>Max +8.11%</td><td class="even">&nbsp;</td><td class="evenr">8.00&nbsp;</td><td class="evenr">14824,-&nbsp;</td><td class="evenr dgreen">+48.24%&nbsp;</td><td class="evenr dgreen">+17.51%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">10-10-2007</td><td class="odd">&nbsp;</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=MIT" rel="nofollow">Mittal </a><br>A: 133 ΰ 55.40 </td><td class="oddr">8.00&nbsp;</td><td class="oddr">14829,-&nbsp;</td><td class="oddr dgreen">+48.30%&nbsp;</td><td class="oddr dgreen">+19.47%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">17-10-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 133 ΰ 53.41 <br><font class="bg_lred">Netto -3.79%</font><br>Max +3.12%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">14543,-&nbsp;</td><td class="evenr dgreen">+45.44%&nbsp;</td><td class="evenr dgreen">+20.94%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">18-10-2007</td><td class="oddl"><a href="/pl/ShowStock.pl?stock=ASML" rel="nofollow">ASM Lithograp.</a><br>A: 298 ΰ 24.96 </td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">14452,-&nbsp;</td><td class="oddr dgreen">+44.52%&nbsp;</td><td class="oddr dgreen">+20.00%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">26-10-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=MIT" rel="nofollow">Mittal </a><br>A: 126 ΰ 55.84 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">14261,-&nbsp;</td><td class="evenr dgreen">+42.62%&nbsp;</td><td class="evenr dgreen">+16.23%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">30-10-2007</td><td class="oddl">V: 298 ΰ 24.42 <br><font class="bg_lred">Netto -2.38%</font><br>Max +2.36%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">14344,-&nbsp;</td><td class="oddr dgreen">+43.45%&nbsp;</td><td class="oddr dgreen">+15.78%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">01-11-2007</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=AKZ" rel="nofollow">AKZO Nobel</a><br>A: 127 ΰ 57.45 </td><td class="evenl">V: 126 ΰ 53.05 <br><font class="bg_lred">Netto -5.18%</font><br>Max +4.33%</td><td class="evenr">16.00&nbsp;</td><td class="evenr">13871,-&nbsp;</td><td class="evenr dgreen">+38.72%&nbsp;</td><td class="evenr dgreen">+14.93%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">08-11-2007</td><td class="oddl">V: 127 ΰ 54.51 <br><font class="bg_lred">Netto -5.32%</font><br>Max +1.67%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13609,-&nbsp;</td><td class="oddr dgreen">+36.10%&nbsp;</td><td class="oddr dgreen">+13.05%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">09-11-2007</td><td class="even">&nbsp;</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=WKL" rel="nofollow">Wolters Kluwer</a><br>A: 307 ΰ 21.78 </td><td class="evenr">8.00&nbsp;</td><td class="evenr">13377,-&nbsp;</td><td class="evenr dgreen">+33.78%&nbsp;</td><td class="evenr dgreen">+10.42%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">22-11-2007</td><td class="odd">&nbsp;</td><td class="oddl">V: 307 ΰ 21.01 <br><font class="bg_lred">Netto -3.77%</font><br>Max +2.16%</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13357,-&nbsp;</td><td class="oddr dgreen">+33.57%&nbsp;</td><td class="oddr dgreen">+0.09%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">28-11-2007</td><td class="evenl"><a href="/pl/ShowStock.pl?stock=AKZ" rel="nofollow">AKZO Nobel</a><br>A: 134 ΰ 51.30 </td><td class="evenl"><a href="/pl/ShowStock.pl?stock=ASML" rel="nofollow">ASM Lithograp.</a><br>A: 279 ΰ 23.11 </td><td class="evenr">16.00&nbsp;</td><td class="evenr">13451,-&nbsp;</td><td class="evenr dgreen">+34.51%&nbsp;</td><td class="evenr dgreen">+4.16%&nbsp;</td><td class="even"></td></tr>
<tr><td class="odd">12-12-2007</td><td class="oddl">V: 134 ΰ 53.01 <br><font class="bg_green">Netto +3.08%</font><br>Max +7.27%</td><td class="odd">&nbsp;</td><td class="oddr">8.00&nbsp;</td><td class="oddr">13609,-&nbsp;</td><td class="oddr dgreen">+36.10%&nbsp;</td><td class="oddr dgreen">+11.77%&nbsp;</td><td class="odd"></td></tr>
<tr><td class="even">13-12-2007</td><td class="even">&nbsp;</td><td class="evenl">V: 279 ΰ 23.02 <br><font class="bg_lred">Netto -0.63%</font><br>Max +4.41%</td><td class="evenr">8.00&nbsp;</td><td class="evenr">13529,-&nbsp;</td><td class="evenr dgreen">+35.29%&nbsp;</td><td class="evenr dgreen">+9.75%&nbsp;</td><td class="even"></td></tr>
 </tbody>
</table>
<br>
<span><small>
<br>
A = Aankoop.<br>    
V = Verkoop.<br>
Netto = Nettowinst. Transactiekosten afgetrokken.<br>
Max = Maximaal mogelijke winst. Bruto.<br>
<br>
<br>
De aandelen werden automatisch geselecteerd :<br>
<br>
1. Het systeem kiest het eerste kantelpunt uit uw favorieten.<br>
2. Indien meerdere keuzes, kiest het de hoogste prioriteit (= 1).<br>
3. Bij gelijke advieswaarden, kiest het de grootste juistheid van het laatste jaar.<br>
<br>
<small>Bij elke handeling tonen we - ter info - de bruto maximale winst.<br>
Zo kan u inschatten wat onze adviezen waard zijn.</small><br>
<br>
</small></span>
<hr>
Meer informatie over registreren vind u <a href="/pl/ShowMain.pl?page=10066" title="Mogelijkheden kantelpunten">hier</a>.<br>
<hr>
<br>
<span><small>
Toppy,<br>
Webmaster & beursprogammeur.<br>
<a href="mailto:webmaster\@kantelpunten.com">webmaster\@kantelpunten.com</a><br>
</small></span>
EndOfText
}

sub make_not_enough_stocks_html()
{
	$param->{y} = 120;		# small hack to prevent upgrade problems as make_script has no param.
	
   	my $menu_script = make_script();
   	my $script = make_home_script($page);
   	$script .= $menu_script if (defined($menu_script));

  	my $title = "Test uw eigen favoriete portefeuille.";
	my $desc  = "Als geregistreerde gebruiker kunt u heel eenvoudig uw eigen favorieten testen aan de hand van de adviezen en de advies-indicator." .
				"Op dit moment heeft u niet genoeg favoriete aandelen.";

    my $pop_menu = make_pop_menu(2, $page);
    my $top_menu = make_top_menu(2, $page);
    
	print_header("+1s");
    print_pre_doc();
    print_head("Kantelpunten : $title", undef, undef, undef, $script, "portoresult", defined($param->{own}) ? "eigen" : undef, undef, $desc, undef, "top_script");
    print_body(defined($param->{own}) ? "eigen" : "kantel", undef, undef, undef, undef, undef, undef, "kader", undef, $pop_menu, $top_menu);
    my $ref = "/pl/aandeel-beleggen-portefeuille.pl?eigen=1&uitleg=" . ($param->{budy} ? '0' : '1');
    print_budy($param->{budy}, $page, $ref);
    print_div("center");   
    print "<br>\n";
    print_h1($title);
	print <<EndOfText;
<span><small>
Test ons met uw eigen aandelen ! Vergelijk de resultaten<br>
van "Kopen&houden" met ons "wisselsysteem".<br>
<br> 
Als u ons uitprobeert, hou er dan rekening mee dat het<br>
systeem bestaat uit het doorlopend wisselen tussen aandelen.<br>
Voer al uw favorieten tegelijk in.<br>
<b>U moet minimaal 10 aandelen selecteren.</b><br>
</small></span><br>
EndOfText

	print $change if (defined($change));

   	print_banner_ads("main_banner", defined($param->{own}) ? "eigen" : "info", undef, 2) if (show_adds("hoofd"));

	print <<EndOfText;
<span>U heeft momenteel $param->{num_stocks} favoriete aandelen geselecteerd.<br>
U moet minstens 10 aandelen kiezen om te kunnen backtesten.<br>
Ons systeem bestaat uit het wisselen tussen uw aandelen.<br>
</span>
EndOfText

   	print make_cty_table();

    print_voet_start();
    print_empty_lines(1, 0);
    print_div("end");
    print_body("end");
    print_post_doc();
}

sub make_script()
{
	my $y = 350 + $param->{num_stocks}*16;
	$y = 100 if ($param->{num_stocks} == 0);
	$y = $param->{y} if (defined($param->{y}));
	
	my $script = <<EndOfText;
<script language="JavaScript1.2">
	// show urls ?
	var display_url=0;
	
	var ie5=document.all&&document.getElementById;
	var ns6=document.getElementById&&!document.all;
	
	var delayhide;
	var activemenu;

	function ShowMenu(e, menu)
	{
		if (delayhide) clearTimeout(delayhide);
		if (activemenu) hidemenu(activemenu);
		
		var menuobj=document.getElementById(menu);
		var middlex = ie5? document.body.clientWidth/2 : window.innerWidth/2;
		middlex -= menuobj.offsetWidth/2;
		middlex = (middlex < 0) ? 0 : middlex;
		menuobj.style.left = middlex;
		menuobj.style.top  = $y;
		menuobj.style.visibility="visible";
		activemenu=menu;
	}

	function HideMenu(e, menu){
		delayhide=setTimeout("hidemenu('" + menu + "')",500);
	}

	function HighLight(e){
		
		if (delayhide) clearTimeout(delayhide)
		
		var firingobj=ie5? event.srcElement : e.target
		if (firingobj.className=="stockitems"||ns6&&firingobj.parentNode.className=="stockitems"){
			if (ns6&&firingobj.parentNode.className=="stockitems") 
				firingobj=firingobj.parentNode; //up one node
			
			firingobj.style.backgroundColor="#77FF77";
			
			if (display_url==1)
				window.status=event.srcElement.url;
		}
	}

	function LowLight(e){
		var firingobj=ie5? event.srcElement : e.target
		if (firingobj.className=="stockitems"||ns6&&firingobj.parentNode.className=="stockitems"){
			if (ns6&&firingobj.parentNode.className=="stockitems") 
				firingobj=firingobj.parentNode; //up one node
				
			firingobj.style.backgroundColor="";
			window.status="";
		}
	}

	function JumpTo(e){
		var firingobj=ie5? event.srcElement : e.target
		if (firingobj.className=="stockitems"||ns6&&firingobj.parentNode.className=="stockitems"){
			if (ns6&&firingobj.parentNode.className=="stockitems")
				firingobj=firingobj.parentNode;
				
			if(firingobj.getAttribute("url").length > 0)
				if (firingobj.getAttribute("target"))
					window.open(firingobj.getAttribute("url"),firingobj.getAttribute("target"));
				else
					window.location=firingobj.getAttribute("url");
		}
	}
		
	function hidemenu(menu){
		var menuobj=document.getElementById(menu);
		if (menuobj) {
			menuobj.style.visibility=(ie5||ns6)? "hidden" : "hide";
			activemenu=0;
		}
}

</script>
EndOfText

	return $script;
}
