Should I avoid not invented here syndrome, or do it myself?

Discussion in 'Automated Trading' started by nooby_mcnoob, Dec 28, 2017.

  1. Here is my situation:

    * Hey, I have an an algo that works great in backtests, let me set it up live!
    * Oh, I need to twist this knob first to make sure I only get completed bars
    * OK, I need to twist that knob to make sure it doesn't crash on missing data
    * Oh... The connection randomly drops, how do I fix it?

    How much of what you do is avoiding NIH syndrome vs DIY? The value of DIY is that you understand everything, the value of avoiding NIH syndrome is that you get the work of other people.

    I feel as if DIY compounds much better than using other people's code, but in the beginning, your productivity is significantly hampered.

    I could, for example, "fix" the current problem above by using NinjaTrader/MT or any of the other fine automated trading platforms. But then I'd have to deal with their issues instead of my own.

    Any thoughts?
  2. fan27


  3. Simples


    Can a platform suit your current and future needs (avoiding NIH)?
    Are you willing and able to invest in DIY code?
    Starting out with DIY from nothing can drain too much resources, but after a while, you may find nothing else really fits your specific requirements.

    People often act like there's only one choice, when you can do both, and probably will need to!
  4. djames


    The approach I took was incremental building, using as much open source as possible, lifting bits outright or using as template - pysystemtrade was useful here. Now I'm receiving systematically produced trades via email and executing manually. Execution algorithm is in pipeline
  5. Thank you for your feedback posters. It's good to know your experience tends towards a healthy mix.

    I think I am hitting upon a mix for sure. It's frustrating thinking the grass is greener when I have years of experience knowing that my code pays dividends well into the future.

    So, let's say I lean more towards DIY. What would you guys use to monitor your trades in real time? Just what's offered by your broker? Or is there a dashboard?
  6. algofy


    Watch out, Ninjatrader has if statements :D
    i960, fan27 and nooby_mcnoob like this.
  7. sle


    Start with mostly commercial/free products and slowly replace them with DIY products whenever you find the current stack is somehow insufficient.

    In general, you want to increase the complexity of your process only when needed. That’s especially true when running a strategy at the beginning of its lifecycle. This way you can check if it works, make tweaks as needed and know that any failures are due to the strategy, not the process
    algofy likes this.
  8. This SEEMS logical, but to me, adding a commercial product adds another layer of complexity in that I am dependent on them to be timely with my support and updates.

    Open source is a good in-between but there aren't really very many good open source tools for this that I liked very much, unless you have suggestions.

    My strategy would be live trading if it wasn't for this disconnect issue. It isn't insurmountable, but it'll take a good week to solve correctly. And that really makes me sad because it signalled last night for a YUGE profit :(
  9. sle


    Well, think of it. It’s your first live strategy, you are still uncertain if it works (and will be uncertain for a while). Most of the work at this stage is figuring out bugs in the process.

    Get something together that will get the job done initially. Maybe not an MVP, but something viable yet imperfect. Since you are a good developer (better than myself, for sure), you can find ways to make swapping components fairly straight forward.

    PS. open source > free but commercial > paid software in this case. There are so many products where the fees (especially if they charge an ongoing fee) are not worth the value that product provides. One of the key things in automated trading is controlling your costs.
  10. Yeah, you're right.
    #10     Dec 28, 2017