I'm involved in trading related activities for some time/years.
Started manual trading mainly stocks, a little bit with options and CFDs.
I did direct investments in real-estates which were the most lucrative investments I ever did till now
A couple of years ago I found out about Forex: and started to trade manually but always knew that in the end I want to trade automatized.
I'm a self-thought programmer and in the last years I invested a lot of my spare time in learning MT4
starting automated trading (next to manual ect..) and developing quite a good MT4 code base for my purpose.
I have been away for some month for personal reason and discovered that Metatrade is (at least in the progress of)
introducing major changes to MT4. Whatever the outcome for backwards compatibility it made me really think.
Here is my conclusion at this point in time:
WHERE DO I STAND:
- I'm quite sufficient in my programming skills (mt4 and some others) but I'm also very much aware that there are much smarter people out there (even at FF)
- some time ago I gave up to think I need ultra fast automated systems, based on tick data ect..
I will not be able to succeed with my limited programming skills,
a moderate internet connecting and as a private person to compete with the big companies who have fast resources, ultra-fast computers, pay some of the smartest programmers ect..)
- I also concluded that for me I see only 2 ways to automated trading entries
a. random based entries
b. backtested probabilities entries (which is my preferred one)
BACKTESTED PROBABILITIES ENTRIES
- backtests will not and do not need to be 100% but (at least good enough)
because backtests are somehow anyway limited: e.g. spread differences, broker differences they do not need to be 100% but good enough to do the job
- some time ago, because of this I decided that for me I do not need tick data but 1 minute or higher bar data (depending on the system) are good enough
(I might change that in the future: e.g. for renko bars generation I believe tick data are necessary)
advantage there are more freely available long term historical data, less download time, less needed storage space but most of all less backtest time required
my current choice are dukascopy 1 minute data as the base (I did write some tools for MT4 http://www.forexfactory.com/showthread.php?t=426120)
- In the future I might also be looking into generating artificial backtest data (not sure if this has some value - never gave it much though) ANY IDEAS/INFO?
- I also concluded that it for my needs it is best to base any trade entry decision only on closed bars
GOING PLATFORM INDEPENDENT
- previously I had implemented most and more of this in MT4 (coding around some of the problems I found ect..)
Main trigger is that MT4 is changing in a way I do not like: (Not saying all are bad - but only saying there are "recently" a lot of changes in MT4 - I assume because MT5 did not take of as hoped for)
- first the automated, forced Live Updates
- many recent changes like One click trading, and the strong focus on implementing signals following options
- and now the current move to backport MT5 into MT4 http://www.forexfactory.com/showthread.php?p=7142542
The second trigger is a previous experience: I had programed an independent trading application but very broker specific (they changed some things and I was left with nothing) one reason I moved to MT4 later on
1. I do not necessarily need my backtest environment also trade live. (even-though I liked that a lot in my MT4 stuff)
many platforms/brokers seem to focus more recently on things like trade copy, signal provider ect...
- September 24, 2013 OANDA Announces Acquisition of Forex Copy Trading Network http://www.currensee.com/OANDA-Annou...rading-Network
2. In case I should continue to use MT4 I only will implement a final trading system without all the extras I did till now.
3. there is a high probability that in a future MT4 version or as such in many other platforms there are ways to pass on the most important data to an external program
- because I base all my main trading decision on closed bars I do not need too much data to pass around and ultra high speed I gave up anyhow.
e.g. Oanda my current broker they work on an OANDA REST API https://github.com/oanda/apidocs
Not sure about other brokers but I guess Tradestation, many of the java based platforms like Interactive Brokers, dukascopy ect will allow similar things
I LOOKED FOR OPTIONS AND I DECIDED TO START LOOKING INTO THIS:
- build all myself based mainly on opensource available libraries, apps
- mainly in python: with MT4 this is where I'm most sufficient and in the last years a lot of good libraries have come out.
- also mainly looking for Linux options
- data storage in : HDF5 (.h5) Hierarchical Data Format or/and database
1. main libraries:
Python Data Analysis Library — pandas: Python Data Analysis
TA-Lib (includes 200 indicators) No experience This seems to be a bit old: Version 0.4 (September 2007) but maybe it is also a good sign?
ta-lib (PyhonWrapperBasedOn Cython) This is a Python wrapper for TA-LIB based on Cython instead of default one with SWIG.
2. plotting Not sure about plotting or for a start if I output only in spreadsheet
Chaco Chaco is a Python plotting application toolkit that facilitates writing plotting applications at all levels of complexity
pyqtgraph Scientific Graphics and GUI Library for Python: see post from corrugatedit
3. Machine Learning not sure if I do later on something like this no experience at all
scikit-learn: Machine Learning Built on NumPy, SciPy, and matplotlib
PyBrain: is a modular Machine Learning Library for Python
skdata Skdata is meant to interoperate with other Python machine learning software (such as scikit-learn, PyBrain, or custom algorithms) but skdata does not aim to provide machine learning algorithms.
4. Bundled distributions
anaconda Enterprise-ready Python distribution for large-scale data processing, predictive analytics, and scientific computing.
Enthought Scientific Computing Solutions
pythonxy Scientific-oriented Python Distribution based on Qt and Spyder Windows (Not for my consideration: I want to stay on linux)
pythonxy-linux Scientific-oriented Python Distribution for GNU/Linux based on Qt and Eclipse
WinPython Portable Scientific Python 2/3 32/64bit Distribution for Windows (Not for my consideration: I want to stay on linux)
Pyzo provide a computing environment aimed at doing science and building professional applications
5. Some other related projects: who knows maybe something useful
PyTradeLib Python financial trading, research and backtesting library
ultra-finance It aims to be a fully featured event-driven based backtesting system.
PyaAlgoTrade It's coded to allow for distributed testing of strategies on Google's cloud infrastructure. It incorporates the open source TA-Lib technical analysis library.
TradeProgrammer It also uses the TA-Lib library. The package is free to use for backtesting, but its live trading version is commercial.
Zipline, a Pythonic Algorithmic Trading Library (is currently used in production as the backtesting engine powering Quantopian (https://www.quantopian.com) -- a free, community-centered platform that allows development and real-time backtesting of trading algorithms in the web browser.)
Zipline Python Opensource Backtester google group
QuantLib A free/open-source library for quantitative finance
PyQL : a new set of Python wrappers for QuantLib based on Cython original is with Swig
iTrade The iTrade project is an open source initiative to provide a charting and trading system written in Python language
ProfitPy ProfitPy is a set of libraries and tools for the development, testing, and execution of automated trading systems.
tradingmachine pandas ta-lib matplotlib (git source seems to be gone)
===== others =====
docker: https://www.docker.io/ MAYBE: looks interesting as a base block for coding
LCONF L(ight) CONF(iguration): A simple human-readable data serialization format for dynamic configuration.
Any related tips/helpful past experience are welcomed