Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Open Source in Quant Finance - xlwings

1,116 views

Published on

Published in: Software
  • Be the first to comment

Open Source in Quant Finance - xlwings

  1. 1. xlwings Open Source in Quant Finance Conference (Frankfurt/Eschborn) 5 June 2015 Felix Zumstein, CFA
  2. 2. 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
  3. 3. What’s in this talk? 3
  4. 4. The open-source Python/Excel Landscape 4 •  Pywin32 •  xlwings •  ExcelPython Read/Write Program/Interact •  xlwt/xlrd •  XlsxWriter •  OpenPyxl
  5. 5. Why xlwings? – 6 Reasons 5
  6. 6. (1) Installation 6 •  pip/conda install xlwings •  or equally easy:
  7. 7. (2) Cross-Platform 7 +
  8. 8. (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*) ArchitectureVersion Architecture *under development
  9. 9. (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)
  10. 10. (5) Works back and forth 10 >>>  wb  =  Workbook()   >>>  Range("A1").value  =  my_variable   Sub  MyFunction()    RunPython  ("import  mymodule;mymodule.myfunction()")   End  Sub  
  11. 11. (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:
  12. 12. What’s next? 12
  13. 13. What’s next? •  Add-in •  Full integration of xlwings/ExcelPython •  Add more features: matplotlib etc. •  Someday… – Google Sheets – LibreOffice/OpenOffice 13
  14. 14. 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  
  15. 15. DEMO xlwings.org 15

×