Systematic/Quantitative Trading Testing and Analysis Environment

kojinakata

Newbie
Messages
9
Likes
0
Hi everyone,

I aim to be a systematic trader, however I cannot decide which software/programming language to choose for my purpose. I am looking forward to your advice.

Let's say I have a MACD Crossover system in hourly graphs with a higher Time Frame filter. I also do risk management with like trailing stops and moving stop losses to specific points if certain conditions are met. Also position-sizing methods are incorporated to the system as well.

With this type of system (once-a-day/swing trading), I want to be able to:


  • Do Backtests (BT) with multiple time frame analysis (to incorporate higher time frame filter and maybe a lower time frame to decide entry points)
  • Do BT with and without position-sizing method that I choose
  • Do BT with trailing stops, and move stop-losses when a position is open (to breakeven point, for example).
  • Review every trade in BT from the generated pictures of all time frames taken just before entering a position and just after closing that position.
  • Optimize parameters of certain indicators such as the MACD in H1, to optimize the parameter I choose (net profit or something else)
  • Generate 2D/3D graphs to see nearby values of the value chosen for the parameter after optimization (to avoid choosing a value from a peak, rather than a plateau-like space)
  • Do BT with optimized indicators and parameters.
  • Incorporate slippage and commissions
  • Generate reports (with net profit values, average gain per trade , account equity etc.) for before-optimization BT and after-optimization BT.
  • Do Monte Carlo Simulation and consequent analysis on the optimized system.
  • Do Walk Forward Analysis (rolling, preferably) with reports (similar to reports generated from backtesting)
  • Do Paper Trading (Incubation/Live Forward Testing, whatever it is called), and generate reports from that as well.
  • Do Portfolio Optimization, Testing and etc. (Don't know much about this topic, but I want to be able to manage trading in multiple instruments if I ever earn the money to be able to)

So my question is ,

What software/programming environment will allow these actions?
R, Python, MATLAB, Amibroker, tradestation or something else?

Also, just to make things harder, I am an university student so money is an issue .

Any input, help or comment is appreciated on my methodology of building a trading system or software/programming environment to choose.

Also, if you did not understand any part that I wrote, please ask, and I will make it clearer.

Thanks and I wish everyone highly profitable systems :).
 
Last edited:
I am also interested in the response to this question.

R will be good for initial analysis. I am sure this will be the same with Python. With these the data will have to be fed and and then generated. unless they are integrated with the software there will be a lag. This may be ok for you as a swing trader

For the initial model generation you will have to train the model and backtest it using out of sample data.

I have not used Mathlab for this but I know it is very good for signal generation.

I am in the process of opening a tradestation account I have not used them before.

I am looking to automate my strategies.

Often times you will find that it is the simple things that work


Hope this helps.
 
Hi everyone,

I aim to be a systematic trader, however I cannot decide which software/programming language to choose for my purpose. I am looking forward to your advice.

Let's say I have a MACD Crossover system in hourly graphs with a higher Time Frame filter. I also do risk management with like trailing stops and moving stop losses to specific points if certain conditions are met. Also position-sizing methods are incorporated to the system as well.

With this type of system (once-a-day/swing trading), I want to be able to:


  • Do Backtests (BT) with multiple time frame analysis (to incorporate higher time frame filter and maybe a lower time frame to decide entry points)
  • Do BT with and without position-sizing method that I choose
  • Do BT with trailing stops, and move stop-losses when a position is open (to breakeven point, for example).
  • Review every trade in BT from the generated pictures of all time frames taken just before entering a position and just after closing that position.
  • Optimize parameters of certain indicators such as the MACD in H1, to optimize the parameter I choose (net profit or something else)
  • Generate 2D/3D graphs to see nearby values of the value chosen for the parameter after optimization (to avoid choosing a value from a peak, rather than a plateau-like space)
  • Do BT with optimized indicators and parameters.
  • Incorporate slippage and commissions
  • Generate reports (with net profit values, average gain per trade , account equity etc.) for before-optimization BT and after-optimization BT.
  • Do Monte Carlo Simulation and consequent analysis on the optimized system.
  • Do Walk Forward Analysis (rolling, preferably) with reports (similar to reports generated from backtesting)
  • Do Paper Trading (Incubation/Live Forward Testing, whatever it is called), and generate reports from that as well.
  • Do Portfolio Optimization, Testing and etc. (Don't know much about this topic, but I want to be able to manage trading in multiple instruments if I ever earn the money to be able to)

So my question is ,

What software/programming environment will allow these actions?
R, Python, MATLAB, Amibroker, tradestation or something else?

Also, just to make things harder, I am an university student so money is an issue .

Any input, help or comment is appreciated on my methodology of building a trading system or software/programming environment to choose.

Also, if you did not understand any part that I wrote, please ask, and I will make it clearer.

Thanks and I wish everyone highly profitable systems :).



I am using R, not sure about other languages. I chose R because I initially began with excel. R allows similar functions to be used in better conditions with better execution. I am at the backtesting stage and will incorporate the live environment next.
 
R is a great environment for data exploration, strategy prototyping, back-testing, for live automated trading I would go with a programming language that would allow you to better test your code , use object-oriented design, and parallelize processing, Python can do some of these things to a degree and is a good choice for most small-scale traders, but if you plan to scale up to many instruments and care speed and maintainability of your code base you may need to move up to Java or C# .

Another point is, even if you prototype and back-test in R and then switch to Python or Java /C# - you should still plan on implementing back-tests in your new language, since you'll need to work out the bugs in the new program and prove that it executes the same algo as R.
 
Top