Difference between revisions of "TDSM 3.3"

From The Data Science Design Manual Wikia
Jump to: navigation, search
(Created page with "{| class="wikitable " style ="text-align :centre" ! !! Python !! R !! Matlab |- | Pros || End To End development to execution (some brokers packages allows execution, IB) Ope...")
 
 
Line 1: Line 1:
{| class="wikitable " style ="text-align :centre"
+
I like Python.
!  !! Python !! R !! Matlab
+
 
|-
+
Python
| Pros || End To End development to execution (some brokers packages allows execution, IB)
+
PROS:
 +
End To End development to execution (some brokers packages allows execution, IB)
 
Open source packages( Pandas, Numpy, scipy)  
 
Open source packages( Pandas, Numpy, scipy)  
 
Trading Packages(zipline, pybacktest, pyalgotrade)
 
Trading Packages(zipline, pybacktest, pyalgotrade)
 
best for general programming and application development
 
best for general programming and application development
 
can be a "glue" language to connect R, C++ and others (cython, Rpy etc)
 
can be a "glue" language to connect R, C++ and others (cython, Rpy etc)
Fastest general speed especially in iterative loops || End To End development to execution (some brokers packages allows execution, IB)
+
Fastest general speed especially in iterative loops
 +
 
 +
CONS:
 +
immature packages especially trading packages
 +
some packages are not compatible with others or contain overlap
 +
smaller community than R in finance
 +
More code required for same operations vs R or Matlab
 +
Silent errors that can take a very long time to track down (even with visual debuggers / IDE)
 +
 
 +
--------
 +
 
 +
 
 +
R
 +
PROS:
 +
End To End development to execution (some brokers packages allows execution, IB)
 
Rapid development speed (60% less lines vs python, ~500% less than C)
 
Rapid development speed (60% less lines vs python, ~500% less than C)
 
Large number of Open Source Packages
 
Large number of Open Source Packages
 
Mature quantitative trading packages( quantstrat, quantmod, performanceanalyitics, xts)
 
Mature quantitative trading packages( quantstrat, quantmod, performanceanalyitics, xts)
 
Largest Community
 
Largest Community
Can integrate into C++/C with rcpp || Fastest mathematical and computational platform especially vectorized operations/ linear matrix algebra
+
Can integrate into C++/C with rcpp
 +
 
 +
Cons:
 +
Slow vs Python especially in iterative loops and non vectorized funtions
 +
Worse plotting than matlab and difficult to implement interactive charts
 +
Limited capabilities in creating stand alone applications
  
 +
 +
-----------
 +
 +
MATLAB
 +
 +
PROS:
 +
Fastest mathematical and computational platform especially vectorized operations/ linear matrix algebra
 
Commercial level packages for all fields of mathematics and trading
 
Commercial level packages for all fields of mathematics and trading
 
Very short scripts considering high integration of all packages
 
Very short scripts considering high integration of all packages
Line 20: Line 47:
 
Easy to manage multithreaded support and garbage collection
 
Easy to manage multithreaded support and garbage collection
 
Best debugger
 
Best debugger
|-
+
 
| Cons || immature packages especially trading packages
+
CONS:
some packages are not compatible with others or contain overlap
+
Can not execute - must be translated into another language
smaller community than R in finance
 
More code required for same operations vs R or Matlab
 
Silent errors that can take a very long time to track down (even with visual debuggers / IDE) || Slow vs Python especially in iterative loops and non vectorized funtions
 
Worse plotting than matlab and difficult to implement interactive charts
 
Limited capabilities in creating stand alone applications || Can not execute - must be translated into another language
 
 
Expensive ~1000 per license and 50+ per additional individual package
 
Expensive ~1000 per license and 50+ per additional individual package
 
Can not integrate well with other langauages
 
Can not integrate well with other langauages
Line 33: Line 55:
 
Worst performance for iterative loops
 
Worst performance for iterative loops
 
Can not develop stand alone applications at all.
 
Can not develop stand alone applications at all.
|}
 

Latest revision as of 05:22, 9 December 2017

I like Python.

Python PROS: End To End development to execution (some brokers packages allows execution, IB) Open source packages( Pandas, Numpy, scipy) Trading Packages(zipline, pybacktest, pyalgotrade) best for general programming and application development can be a "glue" language to connect R, C++ and others (cython, Rpy etc) Fastest general speed especially in iterative loops

CONS: immature packages especially trading packages some packages are not compatible with others or contain overlap smaller community than R in finance More code required for same operations vs R or Matlab Silent errors that can take a very long time to track down (even with visual debuggers / IDE)



R PROS: End To End development to execution (some brokers packages allows execution, IB) Rapid development speed (60% less lines vs python, ~500% less than C) Large number of Open Source Packages Mature quantitative trading packages( quantstrat, quantmod, performanceanalyitics, xts) Largest Community Can integrate into C++/C with rcpp

Cons: Slow vs Python especially in iterative loops and non vectorized funtions Worse plotting than matlab and difficult to implement interactive charts Limited capabilities in creating stand alone applications



MATLAB

PROS: Fastest mathematical and computational platform especially vectorized operations/ linear matrix algebra Commercial level packages for all fields of mathematics and trading Very short scripts considering high integration of all packages Best visualization of plots and interactive charts Well tested and supported due to it being a commercial product Easy to manage multithreaded support and garbage collection Best debugger

CONS: Can not execute - must be translated into another language Expensive ~1000 per license and 50+ per additional individual package Can not integrate well with other langauages Hard to detect biases in trading systems (it was built for math and engineering simulations) so extensive testing may be required. EG. look ahead bias Worst performance for iterative loops Can not develop stand alone applications at all.