79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Result, Settlement, Maturity, Rate, Yield, Redemption, Frequency, Basis
							 | 
						||
| 
								 | 
							
								// On the result line, the value is ODS's calculation.
							 | 
						||
| 
								 | 
							
								//     This agrees with Gnumeric, PhpSpreadsheet, and the published algorithm at:
							 | 
						||
| 
								 | 
							
								//https://support.office.com/en-us/article/price-function-3ea9deac-8dfa-436f-a7c8-17ea02c21b0a.
							 | 
						||
| 
								 | 
							
								// The commented-out value on the next line is Excel's result.
							 | 
						||
| 
								 | 
							
								// I do not know how best to reconcile the different results.
							 | 
						||
| 
								 | 
							
								// The problem seems restricted to basis codes 2 and 3.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								return [
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        94.60241717687768,
							 | 
						||
| 
								 | 
							
								        // 94.636564030025099,
							 | 
						||
| 
								 | 
							
								        '15-Feb-2008',
							 | 
						||
| 
								 | 
							
								        '15-Nov-2017',
							 | 
						||
| 
								 | 
							
								        0.0575,
							 | 
						||
| 
								 | 
							
								        0.065,
							 | 
						||
| 
								 | 
							
								        100,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        94.643594548258,
							 | 
						||
| 
								 | 
							
								        // 94.635174796784497,
							 | 
						||
| 
								 | 
							
								        '15-Feb-2008',
							 | 
						||
| 
								 | 
							
								        '15-Nov-2017',
							 | 
						||
| 
								 | 
							
								        0.0575,
							 | 
						||
| 
								 | 
							
								        0.065,
							 | 
						||
| 
								 | 
							
								        100,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								        3,
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        110.74436592216529,
							 | 
						||
| 
								 | 
							
								        // 110.83448359321601,
							 | 
						||
| 
								 | 
							
								        '01-Apr-2012',
							 | 
						||
| 
								 | 
							
								        '31-Mar-2020',
							 | 
						||
| 
								 | 
							
								        0.12,
							 | 
						||
| 
								 | 
							
								        0.10,
							 | 
						||
| 
								 | 
							
								        100,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        110.81970970927745,
							 | 
						||
| 
								 | 
							
								        // 110.83452855143901,
							 | 
						||
| 
								 | 
							
								        '01-Apr-2012',
							 | 
						||
| 
								 | 
							
								        '31-Mar-2020',
							 | 
						||
| 
								 | 
							
								        0.12,
							 | 
						||
| 
								 | 
							
								        0.10,
							 | 
						||
| 
								 | 
							
								        100,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								        3,
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        110.8912556,
							 | 
						||
| 
								 | 
							
								        // 110.9216934,
							 | 
						||
| 
								 | 
							
								        '01-Apr-2012',
							 | 
						||
| 
								 | 
							
								        '31-Mar-2020',
							 | 
						||
| 
								 | 
							
								        0.12,
							 | 
						||
| 
								 | 
							
								        0.10,
							 | 
						||
| 
								 | 
							
								        100,
							 | 
						||
| 
								 | 
							
								        4,
							 | 
						||
| 
								 | 
							
								        2,
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        110.9292394066714,
							 | 
						||
| 
								 | 
							
								        // 110.921732963198,
							 | 
						||
| 
								 | 
							
								        '01-Apr-2012',
							 | 
						||
| 
								 | 
							
								        '31-Mar-2020',
							 | 
						||
| 
								 | 
							
								        0.12,
							 | 
						||
| 
								 | 
							
								        0.10,
							 | 
						||
| 
								 | 
							
								        100,
							 | 
						||
| 
								 | 
							
								        4,
							 | 
						||
| 
								 | 
							
								        3,
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								];
							 |