open source in quant finance - xlwings
TRANSCRIPT
xlwings Open Source in Quant Finance Conference
(Frankfurt/Eschborn)
5 June 2015 Felix Zumstein, CFA
About me • Startup (2014, Zurich): – Mainly Python for Finance – Web based trading solutions (Interactive Brokers) – Lots of Excel – Open-source: xlwings/ExcelPython • Previously: 9yrs in Banking /Asset Mgmt • Background in Finance & Economics
2
What’s in this talk?
3
The open-source Python/Excel Landscape
4
• Pywin32 • xlwings • ExcelPython
Read/Write Program/Interact • xlwt/xlrd • XlsxWriter • OpenPyxl
Why xlwings? – 6 Reasons
5
(1) Installation
6
• pip/conda install xlwings • or equally easy:
(2) Cross-Platform
7
+
(3) Flexibility
8
Version
2.6 2.7 3.1 3.2 3.3 3.4
32-bit 64-bit
32-bit 64-bit
2003 2010 2011 (Mac) 2013 2016 (Win + Mac*)
Architecture Version Architecture
*under development
(4) Simplicity
9
>>> from xlwings import Workbook, Range
>>> wb = Workbook() >>> Range("A1").value = my_variable
• Strings • Numbers • DateTime • Lists (nested) • NumPy arrays • Pandas DataFrames • Blaze Data container (planned)
(5) Works back and forth
10
>>> wb = Workbook() >>> Range("A1").value = my_variable
Sub MyFunction() RunPython ("import mymodule;mymodule.myfunction()") End Sub
(6) ExcelPython for UDFs (Windows only)
11
from xlpython import xlfunc import numpy as np
@xlfunc def matrix_mult(x, y): x = np.atleast_2d(np.array(x)) y = np.atleast_2d(np.array(y)) return x.dot(y)
{=matrix_mult(A1:B2,D1:E2)}
Access from Excel via Array Formula:
Write User Defined Functions in Python:
What’s next?
12
What’s next?
• Add-in • Full integration of xlwings/ExcelPython • Add more features: matplotlib etc. • Someday… – Google Sheets – LibreOffice/OpenOffice
13
julia> using PyCall julia> @pyimport xlwings as xw julia> xw.Workbook() julia> xw.Range("A1", asarray=true)[:table][:value]
Use xlwings from Julia
14
>>> from xlwings import Workbook, Range
>>> wb = Workbook() >>> Range("A1", asarray=True).table.value
DEMO xlwings.org
15