NexusFi: Find Your Edge


Home Menu

 





Systematic/Quantitative Trading Testing and Analysis Environment


Discussion in Platforms and Indicators

Updated
      Top Posters
    1. looks_one kojinakata with 3 posts (0 thanks)
    2. looks_two artemiso with 2 posts (1 thanks)
    3. looks_3 Quick Summary with 1 posts (0 thanks)
    4. looks_4 gregid with 1 posts (1 thanks)
    1. trending_up 1,460 views
    2. thumb_up 2 thanks given
    3. group 4 followers
    1. forum 5 posts
    2. attach_file 0 attachments




 
Search this Thread

Systematic/Quantitative Trading Testing and Analysis Environment

  #1 (permalink)
kojinakata
Istanbul, Turkey
 
Posts: 4 since Apr 2015
Thanks Given: 2
Thanks Received: 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.
  • Incorporate slippage and commissions
  • 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.
  • 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 .

Reply With Quote

Can you help answer these questions
from other members on NexusFi?
ZombieSqueeze
Platforms and Indicators
My NT8 Volume Profile Split by Asian/Euro/Open
NinjaTrader
NexusFi Journal Challenge - April 2024
Feedback and Announcements
New Micros: Ultra 10-Year & Ultra T-Bond -- Live Now
Treasury Notes and Bonds
Deepmoney LLM
Elite Quantitative GenAI/LLM
 
  #3 (permalink)
 
gregid's Avatar
 gregid 
Wrocław, Poland
 
Experience: Intermediate
Platform: NinjaTrader, Racket
Trading: Ockham's razor
Posts: 650 since Aug 2009
Thanks Given: 320
Thanks Received: 623


You didn't say much about yourself other than being a student and the answer really depends on this. You've also mixed programming languages with trading platforms which makes it even harder to answer.

So to answer your question - you can do everything you listed in any (real) programming language but it takes time and effort. If you are to become software developer this may be an interesting exercise to build your own platform but without researching and experiencing other existing platforms it will be a never ending wheel re-invention cycle.

Existing trading platforms - most of them can do most of the things you need but since it is a generic software it will not be 100% solution tailored to your needs.

Still my recommendation is to start with existing platforms, the best if you can find the platform to be scriptable/extendable with generic programming language (C#, C++, etc.). This will give you the experience needed to properly define your needs to your own custom platform in the case you will find the existing solutions to be limiting.

You are a student and as every student you probably want to start BIG, but for your own sake, resist. Take one step at a time, learn what you need gain some experience, then take the next step.

I personally started with NinjaTrader the main reason - it was C#, was (and is) free until you go live - and as a student or someone short on cash this reason may be enticing. But as I said - it doesn't matter much which platform you choose, there is a long way ahead, so just take the first step, then if you feel you've outgrown it make the next step.

Reply With Quote
Thanked by:
  #4 (permalink)
kojinakata
Istanbul, Turkey
 
Posts: 4 since Apr 2015
Thanks Given: 2
Thanks Received: 0


gregid View Post
You didn't say much about yourself other than being a student and the answer really depends on this. You've also mixed programming languages with trading platforms which makes it even harder to answer.

What do you want to know exactly? I am not a software/computer science student, if that is what you wanted to know. The reason I have included programming languages was R is has packages like Quantstrat and Python has packages like pandas to do trading related processes. MATLAB has "Toolboxes" to do similar processes as well.

So to answer your question - you can do everything you listed in any (real) programming language but it takes time and effort. If you are to become software developer this may be an interesting exercise to build your own platform but without researching and experiencing other existing platforms it will be a never ending wheel re-invention cycle.

I am not aiming to become a software programmer, but want to use the packages available in languages like R and Python to ease things a little bit.

Existing trading platforms - most of them can do most of the things you need but since it is a generic software it will not be 100% solution tailored to your needs.

I am almost sure that existing trading platforms is not able to do the following criteria:
  • 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)
  • 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.


Still my recommendation is to start with existing platforms, the best if you can find the platform to be scriptable/extendable with generic programming language (C#, C++, etc.). This will give you the experience needed to properly define your needs to your own custom platform in the case you will find the existing solutions to be limiting.

This is something I did not think about, thank you. Can you name a few other than NinjaTrader, so I can do more thorough research?

You are a student and as every student you probably want to start BIG, but for your own sake, resist. Take one step at a time, learn what you need gain some experience, then take the next step.

I am trying to start SMALL actually . But I want the testing process of my trading systems to be as robust, reliable and easy to conduct if possible.

I personally started with NinjaTrader the main reason - it was C#, was (and is) free until you go live - and as a student or someone short on cash this reason may be enticing. But as I said - it doesn't matter much which platform you choose, there is a long way ahead, so just take the first step, then if you feel you've outgrown it make the next step.

Thank you for suggesting NinjaTrader, I will look into it, see what needs to be added to the platform to satisfy my needs.

Thanks for your answer. I really appreciate it.

Reply With Quote
  #5 (permalink)
kojinakata
Istanbul, Turkey
 
Posts: 4 since Apr 2015
Thanks Given: 2
Thanks Received: 0

Thank you for your reply @artemiso.

I think you missed the "not" in my previous reply . I am an Industrial Engineering student, so the questions you have asked would simply receive a reply of "Hmm. Nope." from me . What I aim to do is, have a good financial&trading knowledge with a lesser knowledge of computer programming. The CS knowledge I aim to gain, should let me construct basic non-HFT trading system testers with capabilities listed in the first post. So, in the end, if I can construct a methodology (explained in my first post with main points) using R/Python/C# or some other open-source platform, I would be satisfied.

When you say "there's many people out there with 10x as much CS experience and 10x as much financial knowledge waiting for you to show up and throw your money at them", are you talking about those "black-box" trading system sellers that only show optimized backtest results that overstate systems' performance? Just could not grasp what/whom you were talking about.

To have an adequate understanding of my trading systems/strategies (with my inadequate programming knowledge), the best option seems to be use already-tried-out packages in R/Python like quantstrat/pandas etc. What would your recommendations be on this path?

I seem to diverge a lot in my replies, sorry for that.

P.S.: Yes it is a lovely city if you visit only a week, however more than that is too hectic .

Reply With Quote
  #6 (permalink)
 artemiso 
New York, NY
 
Experience: Beginner
Platform: Vanguard 401k
Broker: Yahoo Finance
Trading: Mutual funds
Posts: 1,152 since Jul 2012
Thanks Given: 784
Thanks Received: 2,685


kojinakata View Post
I think you missed the "not" in my previous reply . I am an Industrial Engineering student, so the questions you have asked would simply receive a reply of "Hmm. Nope." from me .

Oops.

Then my answer still applies, there's plenty of relevant skills that you can pick up as an industrial engineer first - I know someone who has a PhD in industrial engineering and he is probably the best quantitative trader in equity options that I have come across. Without being too specific: He isn't good at a whole lot of things, but he's good at a very specific technique (that industrial engineers often come across), and he could somehow apply that framework to all of his trading.


kojinakata View Post
What I aim to do is, have a good financial&trading knowledge with a lesser knowledge of computer programming. The CS knowledge I aim to gain, should let me construct basic non-HFT trading system testers with capabilities listed in the first post. So, in the end, if I can construct a methodology (explained in my first post with main points) using R/Python/C# or some other open-source platform, I would be satisfied.

Knowledge of the above concepts are impossible to avoid if you are a 1 man shop. There are people who claim to be systematic/quantitative even when they are really not (e.g. Quantopian crowd following), who might have given you the wrong impression. Even 'partially systematic' trading firms have more developers than traders, for a reason.


kojinakata View Post
When you say "there's many people out there with 10x as much CS experience and 10x as much financial knowledge waiting for you to show up and throw your money at them", are you talking about those "black-box" trading system sellers that only show optimized backtest results that overstate systems' performance? Just could not grasp what/whom you were talking about.

There's an entire industry of people who do this type of trading. There's people with 10-30 years of work experience who have plucked the low-hanging fruit before you. Unless you're bringing some real value proposition to the table, e.g. you are one of the world's top 20 experts in a very specific technique or niche, I don't see why you'll make any money besides being lucky or being well-capitalized.


kojinakata View Post
To have an adequate understanding of my trading systems/strategies (with my inadequate programming knowledge), the best option seems to be use already-tried-out packages in R/Python like quantstrat/pandas etc. What would your recommendations be on this path?

Why don't you try both and pick whatever you like more? You can get some useful code cranked up in either language over the weekend. By then you should probably have formed some tastes and preferences.

I don't like either R or Python. You'll have a difficult time finding a production strength 'trading platform' with a R/Python API anyway.

Generally, if you're asking questions such as "which programming language?", you should probably not be wasting time thinking about that and should just start writing some code, because you are already missing the fundamental concepts for understanding what is a "good" programming language...


kojinakata View Post
I seem to diverge a lot in my replies, sorry for that.

No problem, I like to help students out and I can understand if your career direction is unclear at your age.


kojinakata View Post
P.S.: Yes it is a lovely city if you visit only a week, however more than that is too hectic .

I guess that's true!

Reply With Quote
Thanked by:




Last Updated on April 12, 2015


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts