Where to find a programmer to automatically backtest a system

Discussion in 'Hook Up' started by Astrevea, Apr 2, 2022.

  1. Sounds like an ideal situation. :)
     
    #61     Apr 13, 2022
    RedDuke likes this.
  2. Warren

    Warren

    Well, in this forum, I followed some guru's advice to learn coding in Python. And it surely payed off. Now, with backtrader or backtesting.py (the top two backtesting packages in python), I can tweak to test an idea within half an hour to see whether it works or not.
     
    #62     Apr 18, 2022
    ybfjax and dholliday like this.
  3. You will only know if the strategy is robust after a thorough backtest.

    Given that you are comfortable with Excel, I suggest picking up Excel VBA.
    It is not the most efficient programming language, but certainly one of the easiest to learn for a beginner. And since you are already doing some testing in Excel, Excel VBA would be a good start.

    You will most likely need to perform many backtests as you refine your strategy, explore many different measures of performance, or even test completely new strategies to augment your current one. You just don't have that flexibility if you rely on a programmer.
     
    #63     May 27, 2022
  4. As you would need to backtest your trading strategy every now and then, I think you must learn to do that on your own. You will not know if the programmer is charging just for mere formality.
     
    #64     May 31, 2022
  5. ybfjax

    ybfjax

    Depends on how much tick data you are saving. Maybe 1 min bar data isn't so bad. But ticks could add up very quickly for just 2-3 symbols.
    In the case of forex and cfds, I was helping someone who was using MetaTrader 4, and they used Tick Data Suite, which essentially plugged into the mt4 [back]tester. It stores tick data in its own database and then will generate ticks when you need them. The first time for a particular symbol, maybe 40-90 second delay to load the ticks into the proper format the tester uses. Thereafter, the tests are instant. This one plugin made life a lot easier vs the manual download methods.

    For those trading stocks or futures, either the data vendor should have a database in which you can export to csv and then the platform you using should be able to import that. Or in some cases the trading platform has a quote server/handler that can also handle historical quotes.

    Agreed here. That's quite the task to make your own trading platform. Unless you are well-capitalized or a super-programmer, best to just use the modern platforms that have built-in scripting/programming.

    Amibroker, MotiveWave, SierraChart, possibly MultiCharts if you want. In forex, the platform question was actually minimized, as MetaQuotes via MT4/MT5 pretty much cornered that market. One positive to that is that one spends less time on the "what platform do I use" question....and you can just focus on how to code strategy and see how it replays.

    In the case of futures, if you aren't going to use MT5, then use one that has coding language based off of a popular language like Java, C# / .NET, C++ . So in the event that a broker or even platform "dies" [unlikely but it can happen], you can migrate with little issues. And it should be able to plug in easily to the target broker. OP said Interactive Brokers, correct? Most popular charting platforms offer basic support to connect demo/live accts, manage historical quotes, etc.

    I don't recommend Excel, Python, et.al unless you are the coder and are experienced with just looking at numbers. You likely want a chart to visually see your results on a price chart. You may also come up with new ideas and want to see [live, historical] chart data across several symbols. I think that would be clumsy in Python especially. Even Excel....although it can produce basic graphs...is not designed primarily for the purpose of trading. Python might be more useful for auxiliary scripts that run occasionally in the background doing data manipulations that you would then be read by your trading algo, web scraping, etc. Java is really good for scraping also. But use a dedicated charting/scripting language package to do trading strategies.

    One trick for OP: You could use MT4/MT5 to code your prototype strategy initially (no platform cost to you; data is relatively free), and you have ability to also to "go live" via to forward test immediately (e.g. test live functions in a demo). Then once the strategy is proved stable, you could then migrate it to another platform. You might think this is more expensive, but it usually end up cheaper and less headache in the end as you are checking feasibility first without too much platform commitment.

    Hmmm. For a complex strategy (most end up that way, no matter how simple the OP thinks his/her idea is), you want someone who is at least familiar with trading platforms. Even if they don't trade themselves. They would need to understand things like stop limit vs market order. Or orders managed by the algo vs exchange-rested orders. What "flatten" position means....etc etc. The ideal worker is someone who programs derivatives trading systems well, but has only modest interest actually trading.

    Also knowing how to budget will have some relevance. There is a lot of temptation to pay-per-project. But hourly works out much cheaper. And you will still get what you want, even if that means it realizing either the strategy or the programmer is not suitable.

    The OP should split his project up into smaller chunks. So each trading strategy has several basic loops:
    1. entry detection method / indicator (condition that will allow algo to/not to trigger an order).
    2. order entry (1+ orders opened, possible stops/tp OCO, add positions?)
      • existing order management (e.g. sl/tp adjustment, algo crash recovery, etc)
    3. exit detection method (condition that will allow algo to/not to trigger an exit of open orders)
    4. order closure ( existing orders: reduce or exit/flatten positions )
    There may be additional loops/functions. But the state of the algo at any given time must all must feed into one of these master loops at any given time.

    So first just focus on the entry detection method / indicator only.
    • See if the programmer can get that right.
    • See how your mind/personality fits with this programmer.
    • You are also testing yourself to see how logical your instructions are.
      • How well you can explain what you want.
      • How feasible is this strategy? (self-reflection)
      • Is this scalable? (can I easily change/test variations of initial parameters later?)
    • How much patience you have/will need for what comes next.
    Once you see that you can get along with programmer well at this stage, then and only then consider moving forward with the next stages.

    Most people's strategies are bollox anyways as, according to my co-workers, they have little to do with market microstructure to justify its profitability. But the programmers job isn't to judge the strategy's profitability merits. But instead to test the proof of concept and see of the rules presented are logical....and can be coded. And then actually code it. Besides, you can always give the programmer a test set of parameters that allows you both to see if the rules are up to spec....and keep the "real" parameters [that you believe] are the holy grail to yourself].

    I will send OP some actual coders they could use. It is true a "simple" idea is essentially a series of If, then, else statements. Any serious strategy, you should be prepared to put in 1000's of hours (not all at once, spread out over several months), and take an equal amount of screenshots/ screen video to illustrate what you want/report bugs, etc. The programmer can only code what you request in logical terms (and perhaps help you put your idea into logical terms). It up to you to see how many If / then / else statements are needed to get what you want.
     
    Last edited: Jul 4, 2022
    #65     Jul 4, 2022
    Laissez Faire likes this.
  6. #66     Jul 5, 2022
  7. Sovchenko

    Sovchenko

    To find programmers you must think like a programmer:D
    But seriously, it depends on the type of programmer you are interested in.
    • You can hire freelancers on resources like Upwork, Toptal, Fiverr, Freelancer
    • In-house developers: Indeed, Glassdoor, LinkedIn, or Dice
    • Outsourcing companies: Clutch, GoodFirms, ITFirms
     
    #67     Aug 19, 2022
  8. bamboos

    bamboos

    Hi there,

    I'm new to the forum but not new to the world of trading. I am both a programmer and trader who make a living with consulting. I have developed my own back testing platform in python and, although it's not for sale or lease, I do consulting to proprietary trading firms on specific matters.

    In my experience, Excel is used for quick prototyping of ideas; then a more structured approach is employed but nothing really sophisticated since its nearly impossible to reproduce the changing conditions of live trading. When the idea is good, it's implemented in a tested framework that usually has proven to work in live conditions. Optimizations are seldom requested, although happen from time to time. As a result, you should at least suggest the live platform you are targeting for live deployment.

    if you want to discuss your needs you can contact me
     
    #68     Sep 11, 2022