# Back of the Envelope

Observations on the Theory and Empirics of Mathematical Finance

## [WP] Shiny for Finance

For those familiar with R, Shiny offers a great alternative to spreadsheets. Targeted at instructors, we have a new paper introducing Shiny for finance applications in the classroom. Here is a longish abstract:

Despite the popularity of open-source languages like R and Python in modern empirical research and the data-science industry, spreadsheet programs like Microsoft Excel remain the data analysis software of choice in much of the business-school curriculum, including at IIMA. Even if instructors are comfortable with modern programming languages, they have to pitch their courses at the level of computer literacy prevalent among students. Excel then appears to be a natural choice given its popularity, but this choice constrains the depth of analysis that is possible and requires a certain amount of dumbing-down of the subject by the instructor. Recent software advances however make the ubiquitous web browser a worthy challenger to the spreadsheet. This article introduces one such browser-based tool called Shiny for bringing finance applications to the classroom and smart phones. Fueled by the availability of high-quality R packages in finance and statistics, Shiny brings together the power of HTML with the R programming language. It naturally creates an environment for the instructor to focus on the role of parameters and assumptions in analysis without the clutter of data, and allows the instructor to go beyond the toy problems that are necessitated by the nature of spreadsheets. The learning curve is short for an interested instructor with even a rudimentary exposure to programming in any language. The article ends with the discussion of a fully-worked out example of Shiny for teaching the mean variance efficient frontier in a basic investments course.

The working paper is here. It needs a bit of fine tuning yet, but comments welcome.

Written by Vineet

April 4, 2017 at 12:30 pm

## [WP] Open access temptations

Information science isn’t exactly my area of research, but it has been fun exploring the shady side of open access. Here is the abstract:

Backlash against “megapublishers” which began in mathematics a decade ago has led to an exponential growth in open access journals. Their increasing numbers and popularity notwithstanding, there is evidence that not all open access journals are legitimate. The nature of the “gold open access” business model and increasing prevalence of “publish or perish” culture in academia has given rise to a dark under-belly in the world of scientific publishing which feeds off academics’ professional needs. Many such “predatory” publishers and journals not only seem to originate out of India but also seem to have been patronized by academics in the country. This article is a cautionary note to early-career academics and administrators in India to be wary of this “wild west” of the internet and exercise due discretion when considering/evaluating open-access journals for scholarly contributions.

The working paper is here.

Written by Vineet

April 7, 2016 at 3:14 pm

Posted in Research

Tagged with , ,

## [CompFin] Installing QuantLib and QuantLib-Python in Windows

In our recent paper introducing QuantLib, we had an appendix which described how to set both QuantLib and QuantLib-Python up for use in Ubuntu and Windows. Since I rarely use Windows these days, for instructions for Windows we mostly relied on what was available on the QuantLib website and answers to relevant questions on stackoverflow.

When I got my hands on a Windows laptop recently, to my embarrassment I realized I could not use those instructions to get QuantLib and QuantLib-Python working on a Windows 7 machine. Needless to say this needed sorting out, and now it has been.

I’ll have the paper updated on our website shortly, but in the mean time here are the instructions for installing QuantLib and QuantLib-Python in Windows. These have been tested on three different Windows machines, so we are reasonably sure they work. However, if something doesn’t work for you, do drop in a comment.

Step-by-step by instructions for installing QuantLib and QuantLib-Python in Windows

1. QuantLib requires a working C++ Environment, and for the purposes of instructions here (meant for a novice), it is recommended that the user install the free Microsoft Visual Express Desktop 2013 edition which comes with Visual C++ 12 (MSVC12).
2. QuantLib-Python requires a working Python environment, and we recommend working with the Anaconda meta-package. Instructions are available from the Anaconda install page. For our purpose here, Windows users should work with the 32-bit version of Anaconda. It is recommended to install Anaconda with all the default settings, and update it by running $\texttt{conda update conda}$ and $\texttt{conda update anaconda}$. Again, it does not matter if one installs Anaconda-2.x (with Python 2.7) or Anaconda-3.x (with Python 3), but it is recommended that the user install the Python 3 version, as that’s where the Python language seems to be headed.
3. Compiling QuantLib requires Boost C++ libraries installed. And this is where the utility of working with MSVC becomes most apparent. Pre-packaged binaries for Boost are available for specific versions of MSVC (in our case MSVC12) from its sourceforge page, and installing Boost on MSVC is no more difficult than installing any other software in Windows. (Users should download the executable for the 32-bit architecture, as the free version of MSVC does not seem to contain the necessary utilities for compiling in 64-bit. There is no such problem if you have access to a professional edition of MSVC though.)
4. After installing Boost, we need to install SWIG. Pre-packaged binaries for SWIG for Windows are available from its source page (latest version 3.0.5), and it is enough to extract the SWIG zip file in a convenient folder.
6. Launch the Visual Studio command prompt: All the commands below assume that we are working in Visual Studio command prompt (or if not, all the relevant Visual Studio related environment variables have been set). It can be launched from the Start menu (in Windows 7) or from Apps (in Windows 8). If you can’t find it, see here.
• NB: Though we haven’t encountered any issue when using MSVC12, as pointed out by Andres in comments, when working with VS 2015, it might be safest to work with x64 Native Tools Command Prompt.
7. After the above steps, installing QuantLib in Windows simply requires the following steps (mind the gaps):
 cd \path\to\QuantLib-1.6
set myboost=\path\to\boost\boost_1_58_0
msbuild /p:AdditionalLibPaths=&amp;quot;%myboost\lib32-msvc-12.0&amp;quot; /p:Configuration=Release /p:Platform=Win32 QuantLib_vc12.sln 

The last step above may take a while (on an Intel i5, Windows 7 machine with 4 GB RAM it took almost 45 minutes).

Note that throughout in this post $\texttt{\textbackslash path\textbackslash to\textbackslash someplace}$ represents the directory of $\texttt{someplace}$. For example, if $\texttt{boost\_1\_58\_0}$ is installed in $\texttt{C:\textbackslash boost}$$\texttt{\textbackslash path\textbackslash to\textbackslash boost\_1\_58\_0}$ should be taken to mean $\texttt{C:\textbackslash boost\textbackslash boost\_1\_58\_0}$.

8. One should ensure that QuantLib is correctly installed in the previous step, as what follows assume a working QuantLib. If it is correctly installed, you should see something like the following message at some stage before the installation completes:
 Tests completed in 16m 50s
Test suite &amp;quot;Master Test Suite&amp;quot; passed with:
1002021 assertions out of 1002021 assertions passed
609 test cases out of 609 passed 

And at the very end:

 Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:44:20.07
9. Although not absolutely necessary, to ensure that all is well, it is recommended to also build QuantLib in Debug mode (replace ‘Release’ by ‘Debug’ in the $\texttt{msbuild}$ command in step 7 above; and will take roughly half the time it took to build the Release version), and test the code in the QuantLib Usage section on the QuantLib install page for Windows.
10. Installing QuantLib-Python requires a few extra settings. At the Visual Studio command prompt, set the following (again, mind the gaps):
 cd \path\to\QuantLib-SWIG-1.6\Python
set PATH=\path\to\Anaconda3;\path\to\Anaconda3\scripts;\path\to\swigwin-3.0.5;\path\to\QuantLib-1.6\lib;%PATH%
set QL_DIR=\path\to\QuantLib-1.6
set VS100COMNTOOLS=%VS120COMNTOOLS%
set INCLUDE=\path\to\boost_1_58_0;%INCLUDE%
set LIB=\path\to\boost\lib32-msvc-12.0;%LIB%
echo [build] &amp;gt; setup.cfg &amp;amp;&amp;amp; echo compiler=msvc &amp;gt;&amp;gt; setup.cfg 
11. Once the environment variables have been set in step 10 above, all we need is to run the following steps:
 cd \path\to\QuantLib-SWIG-1.6\Python
python setup.py wrap
python setup.py build
python setup.py test
python setup.py install 

If you are wondering how would you know that QuantLib-Python has been installed correctly, after the $\texttt{python setup.py test}$ step, you should see a message something like this:

---------------------------------------
Ran 36 tests in 1.253s
Ok
12. To be doubly sure, you should now go to Luigi Ballabio’s QuantLib page and run the examples there.

My co-author has a more detailed post on his blog discussing this, and in addition to providing motivation for some of our choices, he also describes how to install QuantLib and QuantLib-Python using only open-source tools (for “free as in free speech”) and without using Visual Studio. Highly recommended.

Update (8th July): Paper updated with these instructions.

Written by Vineet

July 7, 2015 at 2:16 am

Posted in Computing, Research

## [WP] Are investors ethics agnostic?

My colleague, an FPM and I have a new paper looking at whether stock investors care about ethical behavior on part of top management. We use the 2013 IPL match-fixing scandal surrounding Chennai Super Kings (owned by India Cements Limited) to study this issue. Here is the abstract:

In this paper we ask if the perception investors have regarding ethical nature of the management per se influences their action. In order to check for rent seeking behaviour that could arise when there is negative perception regarding ethics, we look a single company‟s management whose actions – though not related to the performance of the company – have led to doubts regarding its ethical nature. Using event study mechanism, we find that when the action leads to a positive outcome for the company, the investors’ reaction is statistically insignificant. However, when another action did not lead to any potential positive outcome, the abnormal returns associated with the company’s stock are negative and significant. Therefore, it is possible that unethical practices, even if unrelated to company’s performance, lead to lesser trust regarding the company, thereby reducing the stock prices, which suggests rent seeking behaviour.

Update: Some press coverage here.

Written by Vineet

April 3, 2015 at 7:29 pm

Posted in Research

Tagged with , , ,