Systematic/Quantitative Trading Testing and Analysis Environment - futures io
futures io futures trading



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,084 views
    2. thumb_up 2 thanks given
    3. group 4 followers
    1. forum 5 posts
    2. attach_file 0 attachments




Welcome to futures io: the largest futures trading community on the planet, with well over 125,000 members
  • Genuine reviews from real traders, not fake reviews from stealth vendors
  • Quality education from leading professional traders
  • We are a friendly, helpful, and positive community
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts
  • We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

(If you already have an account, login at the top of the page)

 
Search this Thread
 

Systematic/Quantitative Trading Testing and Analysis Environment

(login for full post details)
  #1 (permalink)
Istanbul, Turkey
 
 
Posts: 4 since Apr 2015
Thanks: 2 given, 0 received

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

Journal Challenge February 2021 results (so far):
Competing for $1500 in prizes from Topstep
looks_oneSBtrader82 's Trading Journalby SBtrader82
(154 thanks from 29 posts)
looks_twoJust BEING a Trader: Letting Go!!by iqgod
(111 thanks from 32 posts)
looks_3Wisdom is Emptinessby Mtype
(68 thanks from 25 posts)
looks_4Deetee’s DAX Trading Journal (time based)by Deetee
(31 thanks from 16 posts)
looks_5Journal for peanuts1956by peanuts1956
(23 thanks from 13 posts)
 
 
(login for full post details)
  #3 (permalink)
Wrocław, Poland
 
Experience: Intermediate
Platform: NinjaTrader, Racket
Trading: Ockham's razor
 
gregid's Avatar
 
Posts: 651 since Aug 2009
Thanks: 320 given, 620 received


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
The following user says Thank You to gregid for this post:
 
(login for full post details)
  #4 (permalink)
Istanbul, Turkey
 
 
Posts: 4 since Apr 2015
Thanks: 2 given, 0 received


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
 
(login for full post details)
  #5 (permalink)
Istanbul, Turkey
 
 
Posts: 4 since Apr 2015
Thanks: 2 given, 0 received

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
 
(login for full post details)
  #6 (permalink)
Legendary Bought TSLA at 880
New York, NY
 
Experience: Beginner
Platform: Vanguard 401k
Broker: Yahoo Finance
Trading: Mutual funds
 
Posts: 1,127 since Jul 2012
Thanks: 764 given, 2,534 received


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
The following user says Thank You to artemiso for this post:


futures io Trading Community Platforms and Indicators > [Other]       Systematic/Quantitative Trading Testing and Analysis Environment


Last Updated on April 12, 2015


Upcoming Webinars and Events
 

NinjaTrader Indicator Challenge!

Ongoing
 

Journal Challenge w/$1500 prizes from Topstep!

February
 

Identifying Setups & Targets Using Profile Charts w/Trevor & Tradovate

Feb 25
 

Battlestations! Show us your trading desk - $1,500 in prizes!

March
     



Copyright © 2021 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
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.
no new posts