<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Financial Network Analysis &#187; Tools and software</title>
	<atom:link href="http://www.financialnetworkanalysis.com/category/tools-and-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.financialnetworkanalysis.com</link>
	<description></description>
	<lastBuildDate>Mon, 02 Jan 2012 12:54:20 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Financial Network Analyzer update</title>
		<link>http://www.financialnetworkanalysis.com/2011/02/23/financial-network-analyzer-update/</link>
		<comments>http://www.financialnetworkanalysis.com/2011/02/23/financial-network-analyzer-update/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 19:21:59 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[Tools and software]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=735</guid>
		<description><![CDATA[
			
				
			
		
As many of you know, Financial Network Analyzer is the program that I have been developing for the past year and a half. Its currently mainly used by central banks for the analysis of financial microdata and for the simulation of payment systems.
After major rewrite of much of the application and thorough testing, FNA 1.3 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2011%2F02%2F23%2Ffinancial-network-analyzer-update%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2011%2F02%2F23%2Ffinancial-network-analyzer-update%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>As many of you know, <a title="Financial Network Analyzer" href="http://www.financialnetworkanalyzer.com">Financial Network Analyzer </a>is the program that I have been developing for the past year and a half. Its currently mainly used by central banks for the analysis of financial microdata and for the simulation of payment systems.</p>
<p>After major rewrite of much of the application and thorough testing, <a href="http://financialnetworkanalyzer.com" target="_blank">FNA 1.3</a> is finally available. Its still in &#8220;beta&#8221; but most of it should work quite nicely already. Let me know if you try it and encounter any trouble. The program has three major components: financial network analysis, tools for working with large CSV based datasets, and a payment systems simulator.</p>
<p>The most important improvement, however, is the <a title="FNA 1.3 Maual" href="http://financialnetworkanalyzer.com/fna/" target="_blank">Manual </a>with plenty of examples for each command that should enable users to quickly jump into using the program.  The program now also has its own website and blog at <a title="FNA website" href="http://financialnetworkanalyzer.com" target="_blank">financialnetworkanalyzer.com</a>. The program&#8217;s blog will be the main source of updates on the program while this blog will continue to focus on financial network research.</p>
<p>A recent article in FNA blog looks into the <a href="http://www.financialnetworkanalyzer.com/2011/02/06/developing-fna-2-0-visualization-tools/" target="_blank">visualization </a>of financial networks. Visualisations will be the major update for the <a href="http://www.financialnetworkanalyzer.com/2011/02/23/planned-features-for-fna-2-0/">next version of FNA </a>for which work has already started. The other major change is that version 2.0 will move FNA into a  client-server architecture allowing a more scalable environment for large-scale modeling and simulations. You can browse the <a title="FNA 2.0 Specifications" href="http://www.financialnetworkanalyzer.com/fna/specs2.0.html">specifications </a>for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2011/02/23/financial-network-analyzer-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Systemically important banks get better terms for their overnight borrowing</title>
		<link>http://www.financialnetworkanalysis.com/2010/07/02/systemically-important-banks-get-better-terms-for-their-borrowing/</link>
		<comments>http://www.financialnetworkanalysis.com/2010/07/02/systemically-important-banks-get-better-terms-for-their-borrowing/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 14:20:47 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Tools and software]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=489</guid>
		<description><![CDATA[
			
				
			
		
A new paper by Farooq Akram and Casper Christophersen entitled &#8220;Interbank overnight interest rates &#8211; gains from systemic importance&#8221; analyses the Norwegian overnight interbank interest rates paid by banks. They find that during the Financial crisis, the interest rates were substantially below indicative quotes of interest rates provided by major banks. The interest rate variation [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2010%2F07%2F02%2Fsystemically-important-banks-get-better-terms-for-their-borrowing%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2010%2F07%2F02%2Fsystemically-important-banks-get-better-terms-for-their-borrowing%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>A new paper by Farooq Akram and Casper Christophersen entitled &#8220;<a href="http://www.norges-bank.no/upload/english/publications/working%20papers/2010/norges_bank_working_paper_2010_11.pdf" target="_blank">Interbank overnight interest rates &#8211; gains from systemic importance</a>&#8221; analyses the Norwegian overnight interbank interest rates paid by banks. They find that during the Financial crisis, the interest rates were substantially below indicative quotes of interest rates provided by major banks. The interest rate variation is explained by the relative size and connectedness of the banks, implying favorable terms for banks of systemic importance.</p>
<p>Moreover, interest rates are found to depend not only on overall liquidity in the interbank market, but possibly on its distribution among banks as well, suggesting exploitation of market power by banks with surplus liquidity. They also find evidence of stronger effects on interest rates of systemic importance, credit ratings and liquidity demand and supply since the start of the current financial crisis.</p>
<p>An open-source implementation of the algorithm for uncovering the interbank loans was developed as part of this project. The algorithm is available as part of the <a href="http://www.financialnetworkanalyzer.com">Financial Network Analyzer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2010/07/02/systemically-important-banks-get-better-terms-for-their-borrowing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Financial Network Analyzer v1.0 beta released</title>
		<link>http://www.financialnetworkanalysis.com/2009/12/28/financial-network-analyzer-v1-0-beta-released/</link>
		<comments>http://www.financialnetworkanalysis.com/2009/12/28/financial-network-analyzer-v1-0-beta-released/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 20:46:39 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[Tools and software]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=337</guid>
		<description><![CDATA[
			
				
			
		
After a little over a month of development, beta version 1.0 of the tool is now ready. It is an open source project sponsored by Norges Bank. The code is available at Google Code (get in touch with me to participate) and the documentation on Google docs. Currently the tool has a command line user [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F12%2F28%2Ffinancial-network-analyzer-v1-0-beta-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F12%2F28%2Ffinancial-network-analyzer-v1-0-beta-released%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>After a little over a month of development, beta version 1.0 of the tool is now ready. It is an open source project sponsored by <a title="Norges Bank - sponsor of Financial Network Analyzer" href="http://www.norgesbank.no" target="_blank">Norges Bank</a>. The code is available at <a title="Fianancial Network Analyzer at SourceForge" href="http://code.google.com/p/financial-network-analyzer/" target="_blank">Google Code </a>(get in touch with <a title="Kimmo Soramaki" href="http://soramaki.net" target="_blank">me </a>to participate) and the <a title="Financial Network Analyzer documentation" href="http://docs.google.com/View?id=ddp93wph_14cp3j8wch" target="_blank">documentation</a> on Google docs. Currently the tool has a command line user interface and its main features include:</p>
<ul>
<li>Construction of networks from payment/trade data where an arc (link) is established if a payment/trade takes place between the banks. Further payments/trades add to the weight of the arc. Aggregation interval can be based on the number of payments/trades, on their value or on their timing (e.g. daily networks)</li>
<li>The networks generated can be edited (transposed, made symmetric) and vertices (nodes) can be dropped based on any of their properties that are calculated (e.g. all nodes without outgoing links or smaller than some threshold value)</li>
<li>A number of statistics can be calculated for the vertices and arcs, e.g. betweenness centrality, random walk betweenness, eigenvector centrality, PageRank, HITS, average shortest paths, reciprocity, eccentricity, strength, loops and degree. Strong and weak components of the network can be identified.</li>
<li>Networks, vertices and arcs and their properties can be viewed on screen</li>
<li>Networks can be saved as vertex/arclists or in <a title="Pajek" href="http://pajek.imfm.si/doku.php" target="_blank">Pajek </a>format to f ile for further analysis.</li>
</ul>
<p>To install the tool simply <a href="http://code.google.com/p/financial-network-analyzer/downloads/list">download </a>the latest version and copy the contents of the .zip file to some directory. You start the program from start.bat. You can try that it works by typing:</p>
<p><em>run -file data/script.txt</em></p>
<p>it runs script.txt file (in /data folder) which contains some commands to build and analyze networks created from example data (also under the /data folder).  Please let me know of any bugs or needs for improvement.</p>
<p>For other similar tools, see the <a href="http://en.wikipedia.org/wiki/Social_network_analysis_software">Social network analysis software</a> article on wikipedia</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2009/12/28/financial-network-analyzer-v1-0-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Financial Network Analyzer project begins</title>
		<link>http://www.financialnetworkanalysis.com/2009/11/24/financial-network-analyzer-project-begins/</link>
		<comments>http://www.financialnetworkanalysis.com/2009/11/24/financial-network-analyzer-project-begins/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 12:08:20 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[Tools and software]]></category>
		<category><![CDATA[sna networks finance]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=281</guid>
		<description><![CDATA[
			
				
			
		
I started a project with Norges Bank to develop an easy and comprehensive tool specifically geared towards creating and analysing financial networks constructed of trade or payment data. Its is an open source project and the program and code will be available at fna.sourceforge.net already during the development phase. The first phase of development for [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F11%2F24%2Ffinancial-network-analyzer-project-begins%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F11%2F24%2Ffinancial-network-analyzer-project-begins%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I started a project with Norges Bank to develop an easy and comprehensive tool specifically geared towards creating and analysing financial networks constructed of trade or payment data. Its is an open source project and the program and code will be available at <a title="Financial Network Analyzer at SourceForge.net" href="http://fnas.sourceforge.net" target="_blank">fna.sourceforge.net</a> already during the development phase. The first phase of development for a command line utility is expected to be completed within this year. <a title="Financial Network Analyzer Specifications" href="http://docs.google.com/View?id=ddp93wph_14cp3j8wch" target="_blank">Specifications </a>for the project are available as a Google document. All feedback and contributions to the project are welcomed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2009/11/24/financial-network-analyzer-project-begins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Receipt reactive gross settlement simulator</title>
		<link>http://www.financialnetworkanalysis.com/2009/09/13/receipt-reactive-gross-settlement-simulator/</link>
		<comments>http://www.financialnetworkanalysis.com/2009/09/13/receipt-reactive-gross-settlement-simulator/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:19:23 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Tools and software]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=122</guid>
		<description><![CDATA[
			
				
			
		
The Receipt Reactive Gross Settlement (RRGS) method was proposed by Jamie McAndrews in Johnson-McAndrews and Soramaki (2004) as a new, incentive compatible liquidity saving mechanism. The basic idea of RRGS is that banks are sure to use only incoming funds to settle their less urgent payments. Each bank has the incentive to submit payments to [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F09%2F13%2Freceipt-reactive-gross-settlement-simulator%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F09%2F13%2Freceipt-reactive-gross-settlement-simulator%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>The Receipt Reactive Gross Settlement (RRGS) method was proposed by <a title="Jamie McAndrews" href="http://www.newyorkfed.org/research/economists/mcandrews/index.html" target="_blank">Jamie McAndrews</a> in <a title="Economizing on liquidity with deferred settlement mechanisms" href="http://www.newyorkfed.org/research/epr/04v10n3/0412mcan.html" target="_blank">Johnson-McAndrews and Soramaki (2004)</a> as a new, incentive compatible liquidity saving mechanism. The basic idea of RRGS is that banks are sure to use only incoming funds to settle their less urgent payments. Each bank has the incentive to submit payments to the RRGS queue as costly liquidity is consumed only when the bank receives funds from other banks.</p>
<p>This simulator allows simulations of one version of RRGS with historical payment data. It is easy to use and efficient, being able to simulate a day with half a million payments in less than 60 seconds. The fast speed of the simulations and quick set-up allows one to test many alternative scenarios easily.</p>
<p><img class="alignnone size-full wp-image-261" title="rrgssimulator1.3" src="http://www.financialnetworkanalysis.com/wp-content/uploads/2009/09/rrgssimulator1.3.jpg" alt="rrgssimulator1.3" width="450" height="570" /></p>
<p>Read the rest of the entry for instructions on downloading and using this application. You are welcome to get in touch with me for any questions.</p>
<p><span id="more-122"></span><strong>Input files<br />
</strong></p>
<p>Payment data file</p>
<p>The data must have the following fields in the following order:<em> id, date, time, value, sender, receiver, priority</em>. NOTE: payments must be ordered ascending by date and time. The file can contain multiple days of data. If the time field is shorter than the expected format, a leading zero is added to the beginning (e.g. to fix a time string 55959 to 055959 &#8211; one second to 6am). The priority must be 1 (high) or 2 (low). The field and decimal separators used in the file are defined in Input parameters.</p>
<p>Funds data file</p>
<p>The data must have the following fields in the following order: <em>date, bank, balance. </em>The &#8216;bank&#8217; field must match the &#8217;sender&#8217; and &#8216;receiver&#8217; fields in the payment data. It must be ordered by date. A balance is used for subsequent days until a new balance is defined in the file. The field and decimal separators used in the file are defined in Input parameters.</p>
<p><strong>Input parameters</strong></p>
<ul>
<li>&#8216;Payments file&#8217;: Select the file with the payment data</li>
<li>&#8216;Funds file&#8217;: Select the file with the opening balances for each day.</li>
<li>&#8216;Overdrafts file&#8217;: Select the file with overdraft limits per bank for each day. A value of e.g. 100 means that the balance of the bank can go up to -100.</li>
<li>&#8216;Date format&#8217;: date format in <strong>both</strong> Payment data and Funds data files, see <a title="Possible date formats" onclick="javascript:pageTracker._trackPageview('/outbound/article/java.sun.com');" href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">possible formats</a>.</li>
<li>&#8216;Time format&#8217;: time format used in &#8216;Payment data file&#8217;, see <a title="Possible date formats" onclick="javascript:pageTracker._trackPageview('/outbound/article/java.sun.com');" href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">possible formats</a>.</li>
<li>&#8216;Opening time&#8217;: Opening time of the system. The simulator will throw an error in case payments before opening time are encountered. Format as given by &#8216;Time format&#8217;.</li>
<li>&#8216;Closing time&#8217;: Closing time of the system. The simulator will throw an error in case payments after closing time are encountered. Format as given by &#8216;Time format&#8217;.</li>
<li>&#8216;Do queue optimization&#8217;: Optimizes the RTGS queue (if &#8216;Settlement method&#8217; = RTGS) and RRGS queue (if &#8216;Settlement method&#8217; = RRGS).</li>
<li>&#8216;Allow negative balance&#8217;: Allows balance in RTGS or RRGS to become negative.</li>
<li>&#8216;Settlement method&#8217;: RTGS or RRGS, see above.</li>
<li>&#8216;Splitting method&#8217;: &#8216;Threshold&#8217; refers to value above which payments are split into equal sizes each under the given threshold value. &#8216;Liquidity&#8217; method will split the original payment into two: one worth the available liquidity by the bank, and one worth the rest of the value. In both methods payments are split only if liquidity for settling them in whole is not available. In &#8216;liquidity&#8217; method the liquidity available must also be above the minimum value given as a parameter.</li>
<li>&#8216;Field separator&#8217;: field separator used in Payments and Rates files, usually &#8216;;&#8217; or &#8216;,&#8217;</li>
<li>&#8216;Decimal separator&#8217;: decimal separator used in Payments and Rates files, usually &#8216;,&#8217; or &#8216;.&#8217;</li>
<li>&#8216;Load parameters&#8217; and &#8216;Save parameters&#8217;: loads/saves parameters onscreen from/to a file</li>
</ul>
<p><strong>Operation</strong></p>
<p>1) Settlement by RTGS</p>
<p>In RTGS settlement a payment is settled immediately if there are sufficient funds. In case there are not sufficient funds to cover the payment, the payment is queued &#8211; and released immediately as sufficient funds become available from incoming payments. The RTGS balance is reduced by outgoing payments, and increased by incoming payments.</p>
<p>2) Settlement by RRGS</p>
<p>In RRGS payments marked with priority 1 are settled immediately, irrespective of available liquidity. Payments marked with priority 2 are settled by RRGS against the balance in RRGS. The RRGS balance is reduced by outgoing priority 2 payments, and increased by incoming priority 1 and priority 2 payments.</p>
<p>3) Queue optimization</p>
<p>The queue optimization is run at the defined intervals. Any payments submitted at that time are settled before the optimization is run. An optimization is run before end of day procedures are begun. Queue optimization can be used to optimize either the RTGS queue, or the RRGS queue. Optimization is done according to algorithm in <a title="Morten L. Bech â€“ Kimmo SoramÃ¤ki: Gridlock Resolution in Interbank Payment Systems" href="http://www.bof.fi/NR/rdonlyres/EA74131F-6922-475A-AFA4-134234D6F4E1/0/0109mb.pdf" target="_blank">Bech and Soramaki (2001)</a>.</p>
<p>4) Splitting</p>
<p>When a payment is split the elements to be queued are put in the queue before the payment that can be processes is settled. This way a chain of events can cause the immediate settlement of the queued parts as well. For details of splitting, see <a title="Harry Leinonen â€“ Kimmo Soramaki: Optimizing Liquidity Usage and Settlement Speed in Payment Systems" href="http://www.bof.fi/NR/rdonlyres/AE9600EC-34AD-433A-88DC-6763C5D24DDA/0/9916hl.pdf" target="_blank">Leinonen and Soramaki (2001)</a>.</p>
<p>5) End of day procedures</p>
<p>In end of day procedures all pending payments are settled not taking into account any constraints.</p>
<p><strong>Output</strong></p>
<p>-out.txt contains statistics on all individual payments<strong><br />
</strong></p>
<ul>
<li>[the same fields as in the input data]</li>
<li>&#8217;settlement_time&#8217;: time the payment was settled</li>
<li>&#8216;delay&#8217;: (in seconds)</li>
<li>&#8217;senderbalance&#8217;: balance of sending bank after settlement of payment</li>
<li>&#8216;receiverbalance&#8217;: balance of receiving bank after settlement of payment</li>
<li>&#8216;bilateralbalance&#8217;: bilateral balance from sender&#8217;s perspective (positive if received more than sent)</li>
<li>&#8217;settlement_method&#8217;: method by which the payment was settled: rrgs (immediately by RRGS), rtgs (immediately by RTGS), rrgs_queue (released from RRGS queue), rtgs_queue (released from RTGS queue), rrgs_opt (released by optimization algorithm from RRGS queue), rtgs_opt (released by optimization algorithm from RTGS queue), rtgs_eod (settled by end of day procedures from RTGS queue), rrgs_eod (settled in end of day procedures from RRGS queue)</li>
</ul>
<p>-stat.txt contains statistics on each bank</p>
<ul>
<li>&#8216;day&#8217;: date</li>
<li>&#8216;id&#8217;: bank id</li>
<li>&#8216;value_as_recipient&#8217;: value of payments in input data where the bank is a receiver</li>
<li>&#8216;number_as_recipient&#8217;: number of payments in input data where the bank is a receiver</li>
<li>&#8216;value_as_sender&#8217;: value of payments in input data where the bank is a sender</li>
<li>&#8216;number_as_sender&#8217;: number of payments in input data where the bank is a sender</li>
<li>&#8216;number_submitted&#8217;: number of payments submitted for settlement</li>
<li>&#8216;value_settled&#8217;: value of payments settled during the operation hours</li>
<li>&#8216;number_settled&#8217;: number of payments settled during the operation hours. Due to split payments may be higher than number_submitted.</li>
<li>&#8216;value_settled_eod&#8217;: value of payments settled in end of day procedures</li>
<li>&#8216;number_settled_eod&#8217;: value of payments settled in end of day procedures. Due to split payments may be higher than number_submitted.</li>
<li>&#8216;opening_balance&#8217;: balance at the beginning of the day</li>
<li>&#8216;overdraft&#8217;: overdraft limit for the bank</li>
<li>&#8216;minbalance&#8217;: minimum balance during the day (also including end-of-day procedures)</li>
<li>&#8216;maxbalance&#8217;: maximum balance during the day (also including end-of-day procedures)</li>
<li>&#8216;avgbalance&#8217;: average balance during the day</li>
<li>&#8216;eod_balance&#8217;: end of -day balance</li>
<li>&#8216;minbilateral&#8217;: minimum bilateral balance against across all other banks</li>
<li>&#8216;maxbilateral&#8217;: maximum bilateral balance against across all other banks</li>
<li>&#8216;avgsubmissiontime_received&#8217;: average submission time of payments received (unweighted)</li>
<li>&#8216;avgsubmissiontime_sent&#8217;: average submission time of payments sent (unweighted)</li>
<li>&#8216;avgsettletime_received&#8217;: average settlement time of payments received (unweighted)</li>
<li>&#8216;avgsettletime_sent&#8217;: average settlement time of payments sent (unweighted)</li>
<li>&#8216;avgsubmissiontime_received_weighted&#8217;: average submission time of payments received (weighted by value)</li>
<li>&#8216;avgsubmissiontime_sent_weighted&#8217;: average submission time of payments sent (weighted by value)</li>
<li>&#8216;avgsettletime_received_weighted&#8217;: average settlement time of payments received (weighted by value)</li>
<li>&#8216;avgsettletime_sent_weighted&#8217;: average settlement time of payments sent (weighted by value)</li>
<li>&#8216;avgdelay&#8217;: average delay for a delaying payments, sum of delays divided by the number of all payments. In seconds.</li>
<li>&#8216;avgdelayweighted&#8217;: value weighed delay for a delaying payments, in seconds</li>
<li>&#8216;maxqueuesize&#8217;: maximum number of queued payments at any given time</li>
<li>&#8216;maxqueuevalue&#8217;: maximum value of queued payments at any given time</li>
<li>&#8216;number_queued&#8217;: number of payments queued</li>
<li>&#8216;value_queued&#8217;: value of payments queued</li>
<li>&#8216;number_split&#8217;: number of payments split</li>
<li>&#8216;generated_payments&#8217;: number of payments generated by splitting</li>
</ul>
<p><strong>Download, installation and running</strong></p>
<p>Simply copy and extract this file (<a href="http://www.financialnetworkanalysis.com/wp-content/uploads/2009/09/rrgssimulator1.3.zip">rrgssimulator1.3</a>) to a folder that you create. Double click run.bat to launch the application. The package contains example files payments.txt, overdrafts.txt and funds.txt files (in the /data folder) and a parameters.txt file that you can load into the application and test the example data (change the paths to the correct files in the /data folder before starting the simulation).</p>
<p><strong>Credits &amp; Usage</strong></p>
<p>I would like to thank John Jackson, Joanne McLafferty and Edward Denbee andÂ <a onclick="javascript:pageTracker._trackPageview('/outbound/article/www.godeny.info');" href="http://www.godeny.info/" target="_blank">Balazs Godeny</a> for their contributions to specifying and implementing this application.</p>
<p>You are free to use the program for any purpose. The .zip file contains the source code as well. Please make a reference to this blog entry in case you use the application for any research.</p>
<p>(updated 29 October 2010 with version 1.3 of the software and updates to documentation)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2009/09/13/receipt-reactive-gross-settlement-simulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software for identifying interbank loans from payment data</title>
		<link>http://www.financialnetworkanalysis.com/2009/08/21/software-for-identifying-interbank-loans-from-payment-data/</link>
		<comments>http://www.financialnetworkanalysis.com/2009/08/21/software-for-identifying-interbank-loans-from-payment-data/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 21:05:32 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Tools and software]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=78</guid>
		<description><![CDATA[
			
				
			
		
In 1999 Craig Furfine published the article &#8220;Interbank exposures: quantifying the risk of contagion&#8221; (BIS Working paper, No. 70) where he for the first time used data on individual payments settled in the interbank payment system to construct a time series of the unsecured overnight loan market. The methodology has since been duplicated by numerous [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F08%2F21%2Fsoftware-for-identifying-interbank-loans-from-payment-data%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F08%2F21%2Fsoftware-for-identifying-interbank-loans-from-payment-data%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In 1999 <a title="Craig Furfine" href="http://www.kellogg.northwestern.edu/Faculty/Directory/Furfine_Craig.aspx" target="_blank">Craig Furfine</a> published the article &#8220;<a title="Interbank exposures: quantifying the risk of contagion" href="http://www.bis.org/publ/work70.pdf" target="_blank">Interbank exposures: quantifying the risk of contagion</a>&#8221; (BIS Working paper, No. 70) where he for the first time used data on individual payments settled in the interbank payment system to construct a time series of the unsecured overnight loan market. The methodology has since been duplicated by numerous studies (see e.g. Bech and Atalay (2008), Bech and Rordam (2008), Iori et al. (2008), Wetherilt et al (2009) under &#8220;<a title="Links to research on interbank funds markets" href="http://www.financialnetworkanalysis.com/links-to-research/">Links to research</a>&#8220;) and is informally referred to as the &#8220;Furfine algorithm&#8221;. Loan data of this granularity is generally not available from other sources and the data sets generated with this algorithm can be used to e.g. analyze the topology and contagion in interbank markets. Also the recent crisis has made this type of data more desirable for financial stability and macroprudential supervision purposes (see earlier <a title="Hedge Funds, Systemic Risk, and the Financial Crisis of 2007â€“2008" href="http://www.financialnetworkanalysis.com/2008/12/01/hedge-funds-systemic-risk-and-the-financial-crisis-of-2007%e2%80%932008/" target="_self">post</a>).</p>
<p class="MsoNormal"><span lang="EN-US">At its simplest, the algorithm looks for two payments: first a payment of value <em>v</em> from bank <em>A</em> to bank <em>B</em> on day <em>t</em>, and second, a payment of value <em>v + interest</em> on day <em>t+1</em> from bank <em>B</em> to bank <em>A</em>. As the interest rate may be unknown and due to the fact that some systems have hundreds of thousands of payments per day, random matches are also possible. To reduce such errors, a number of additional criteria can be used. The following small software application can be used to match trades of any length. The program has many additional filtering criteria that can be used.</span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="http://www.financialnetworkanalysis.com/wp-content/uploads/2009/08/furfine-algorithm.png"><img class="alignnone size-full wp-image-152" title="furfine-algorithm" src="http://www.financialnetworkanalysis.com/wp-content/uploads/2009/08/furfine-algorithm.png" alt="furfine-algorithm" width="450" height="674" /></a><br />
</span></p>
<p>Read the rest of the entry for instructions on downloading and using this application. You are welcome to get in touch with me for any questions.</p>
<p><span id="more-78"></span></p>
<p><strong>Parameters</strong></p>
<p>&#8216;Payments file (Pass 1 input)&#8217;: location of the file with payment data. Fields must be in order: id, date, time, value, sender, receiver, [priority: optional]. The date format is defined below. The value field must be numeric and the sender and receiver fields must be integers. A line starting with # is considered a comment line. Empty lines are ignored.</p>
<p>&#8216;Pass 2 input&#8217;: this file contains the trades identified by Pass 1 (see below), and is input for Pass 2.</p>
<p>&#8216;Pass 3 input&#8217;: this file contains the trades identified by Pass 2 (see below), asn is input for Pass 3.</p>
<p>&#8216;Run ID&#8217;: This run identifier is appended to result file names.</p>
<p>&#8216;Define reference rates&#8217;: option to use reference rates (e.g. deposit rate or interbank rate). The algorithm will then search for trades that are within the given bounds (lower and upper) from this reference rate.</p>
<p>&#8216;Rates file&#8217;: File for reference rates. Format: date, rate. (E.g. &#8220;1/1/2009, 5%&#8221;). A line starting with # is considered a comment line. Empty lines are ignored.</p>
<p>&#8216;Date format&#8217;: date format in <strong>both</strong> Payments and Rates files, see <a title="Possible date formats" href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">possible formats</a>.</p>
<p>&#8216;Field separator&#8217;: field separator used in Payments and Rates files, usually &#8220;;&#8221; or &#8220;,&#8221;</p>
<p>&#8216;Decimal separator&#8217;: decimal separator used inÂ Payments and Rates files, usually &#8220;,&#8221; or &#8220;.&#8221;</p>
<p>&#8216;Maximum duration&#8217;: the maximum length of overnight loans searched for. It is usually best to start with short durations and go for longer ones after shorter ones are established. For overnight loans, set to 1.</p>
<p>&#8216;Trade value tick&#8217;: the &#8220;denomination&#8221; at which trades are made. Looks for round numbers such as 1.000 or 10.000 (only trades fully divisible by 1.000 or 10.000 are eligible)</p>
<p>&#8216;Rate lower margin&#8217;: the margin setting together with the interest rate in the &#8220;Rates file&#8221; the lower bound for interest rates allowed, i.e. lower bound=&#8217;Daily interest rate in Rates file&#8217; &#8211; &#8216;Rate lower margin&#8217;</p>
<p>&#8216;Rate upper margin&#8217;: the margin setting together with the interest rate in the &#8220;Rates file&#8221; the upper bound for interest rates allowed, i.e. upper bound=&#8217;Daily interest rate in Rates file&#8217; + &#8216;Rate upper margin&#8217;</p>
<p>&#8216;Rate tick&#8217;: interest rates on overnight and term loans are often agreed in round numbers, e.g. 4.0% or 4.25%. This parameter filters out other possible trades. The unit is in basis points (100bp=1%).</p>
<p>&#8216;Rate tick margin&#8217;: due to rounding errors the rate ticks are not always exactly as the Rate tick parameter would prescribe. This parameter allows you to set a tolerance around the rate tick. For example a tolerance of 1 would consider anything between 3.99% and 4.01% to be within the rate of 4.0%. The unit is in basis points (100bp=1%).</p>
<p><strong>Operation</strong></p>
<p>The applications looks for trades in three &#8216;passes&#8217;.</p>
<p>Pass 1 is a rough rule that identifies possible trade candidates which fulfill the following criteria:</p>
<ul>
<li>&#8217;sender of advance&#8217; = &#8216;receiver of return&#8217; (advance is the payment made to deliver the loan to the borrower, and return is its repayment back to the lender)</li>
<li>&#8216;date of return&#8217; &gt; &#8216;date of advance&#8217;</li>
<li>&#8216;date of return&#8217; &lt;= &#8216;date of advance&#8217; + &#8216;maximum duration&#8217;</li>
<li>&#8216;value of return&#8217; &gt; &#8216;value of advance</li>
<li>(&#8217;value of return&#8217; / &#8216;value of advance&#8217; &#8211; 1) * 365 / days &lt;= &#8216;max rate&#8217;</li>
<li>&#8216;value of advance&#8217; is a round number as specified by value tick</li>
</ul>
<p>Pass 2 filters the &#8220;candidates&#8221; according to the following criteria:</p>
<ul>
<li>Calculate &#8216;interest rate&#8217;s for possible trades in 1: &#8216;duration&#8217; = &#8216;date of return&#8217; &#8211; &#8216;date of advance&#8217;, &#8216;rate&#8217; = ((1-&#8217;value of return&#8217;/'value of advance&#8217;)*365)/&#8217;duration&#8217;</li>
<li>Calculate &#8216;lower bound&#8217; and &#8216;upper bound&#8217; for acceptable interest rates: &#8216;lower bound&#8217; = &#8216;deposit rate&#8217; &#8211; &#8216;Rate lower margin&#8217;, &#8216;upper bound&#8217; = &#8216;deposit rate&#8217; + &#8216;Rate upper margin&#8217;</li>
<li>Select payments where: &#8216;interest rate&#8217; is between &#8216;lower bound&#8217; and &#8216;upper bound&#8217; and &#8216;interest rate&#8217; is with given &#8216;rate tick margin&#8217; around the &#8216;rate tick&#8217;</li>
</ul>
<p>Pass 3 selects the most likely loan from the possible &#8216;matches&#8217; above by the following rules.</p>
<ul>
<li>In case multiple matches (1-many, many-1, many-many) select  trade that has an interest rate closest to base rate on the date of the first  leg. The rate is rounded to the closest rate tick before making this comparison.</li>
<li>If the interest rate is the same for many trades then among  these: in case 1-many relationship (1 advance is matched  with many returns or vice versa), match latest advance and earliest repayment. In case many-many relationship, order advances and  repayments and match them in order. Say  there are M advances and N repayments. If M&gt;N, then discard the  (M-N) earliest advances. If M&lt;N, then discard the (N-M) latest  repayments. We now have equal-sized sets of advances and  repayments. Match the payments in time order e.g. the earliest  advance goes with the earliest repayment, the second goes with the  second etc.</li>
</ul>
<p><strong>Output</strong></p>
<p>The application creates three files (pass1_[run id], pass2_[run id], and pass3_[run id]) at selected locations:</p>
<ul>
<li>&#8216;advance_date&#8217;: date of advance (first leg)</li>
<li>&#8216;return_date&#8217;: date of return (second leg)</li>
<li>&#8217;sender&#8217;: sender of advance / receiver of return</li>
<li>&#8216;receiver&#8217;: receiver of advance / sender of return</li>
<li>&#8216;advance_value&#8217;: value of advance payment</li>
<li>&#8216;return_value&#8217;: value of return payment (advance value + interest)</li>
<li>&#8216;advance_id&#8217;: id of payment (in input data) matched as an advance</li>
<li>&#8216;return_id&#8217;: id of payment (in input data) matched as a return</li>
<li>&#8216;advance_time&#8217;: time advance was made</li>
<li>&#8216;return_time&#8217;: time return was made</li>
<li>&#8216;loan term&#8217;: term of loan in calendar days</li>
<li>&#8216;loan_term_business_days&#8217;: term loan in business days (e.g. Friday-&gt;Monday equals 1) &#8211;  a business day is defined as a day with at least one payment made)</li>
<li>&#8216;rate&#8217;: interest rate in % (e.g. 4 equals 4%). This field is reported for Pass 2 and 3 only.</li>
</ul>
<p><strong>Download, installation and running</strong></p>
<p>Simply copy and extract this <a href="http://www.financialnetworkanalysis.com/wp-content/uploads/2009/08/furfine3.2.zip">Furfine-algorithm application</a> to a folder that you create for it. Double click run.bat to launch the application. You need to have <a title="JRE 1.5 download" href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">JRE1.5</a> installed (usually you do have it already). The package contains a file test-payments.txt and test-rates.txt files (in the /data folder) and an test-parameters.txt file that uses them. You can load that parameter file into the application and test the example data. It identifies one trade (in Pass 3) from the payments in the example.</p>
<p><strong>Credits &amp; Usage</strong></p>
<p>I would like to thank <a href="http://www.bankofengland.co.uk/research/staff/peter_zimmerman.htm" target="_blank">Peter Zimmerman</a>, Casper Chistophersen and <a href="http://www.godeny.info" target="_blank"><em style="font-weight: bold; font-style: normal;">Balazs Godeny</em></a> for their contributions to this application.</p>
<p>You are free to use the program for any purpose. The .zip file contains the source code as well. Please make a reference to this blog entry in case you use the application for any written works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2009/08/21/software-for-identifying-interbank-loans-from-payment-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genetic algorithms in Java</title>
		<link>http://www.financialnetworkanalysis.com/2009/03/26/genetic-algorithms-in-java/</link>
		<comments>http://www.financialnetworkanalysis.com/2009/03/26/genetic-algorithms-in-java/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 15:35:21 +0000</pubDate>
		<dc:creator>Kimmo Soramäki</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Tools and software]]></category>

		<guid isPermaLink="false">http://www.financialnetworkanalysis.com/?p=28</guid>
		<description><![CDATA[
			
				
			
		
As part of another project I revisited some Java code for developing genetic algorithms (GA). I had programmed them earlier as part of our Agent-based simulations where banks&#8217; decision making evolved through the use of genetic algorithms. I decided to make the general purpose GA code available in case someone finds a use for it. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F03%2F26%2Fgenetic-algorithms-in-java%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.financialnetworkanalysis.com%2F2009%2F03%2F26%2Fgenetic-algorithms-in-java%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>As part of another project I revisited some Java code for developing genetic algorithms (GA). I had programmed them earlier as part of our Agent-based simulations where banks&#8217; decision making evolved through the use of genetic algorithms. I decided to make the general purpose GA code available in case someone finds a use for it. The Javadoc and source files are available <a href="http://www.financialnetworkanalysis.com/ga/">here</a>. There is also an example for the iterated Prisoner&#8217;s Dilemma. I&#8217;m happy to answer any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.financialnetworkanalysis.com/2009/03/26/genetic-algorithms-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

