The GooBot: Diary A DIY Trading Platform

Discussion in 'Journals' started by TheGoonior, Feb 19, 2010.

  1. I read a comment once about a film director who makes movies he would like to see, so I've decided to start a journal I would like to read with the thought that somebody else might find it interesting as well. It's not strictly an automated trading platform, so I though Journals might be a bit better spot than Automated Trading.

    So, here's the goal: develop my own trading platform with the end result of a trading platform/semi-automated/automated trading bot depending on how ambitious I feel. I've been working on this type of thing on and off for a few years with some various starts/stops so I thought this might force me to be a bit more structured.

    Heading off possible initial questions:

    1) WHY DO IT AT ALL:
    - I'm an engineer and I like to tinker with shit.
    - I like developing software.
    - I've coded in Windows and c# for 4-5 years and am now learning WPF so here's a nice challenging project that will keep me interested.
    - I want to improve my software design methodology and this will force me to do that to keep a decent schedule.

    2) WHY NOT NINJA/TRADESTATION/ETC, ETC, ETC?
    - I use IB, I have for over 7 years and will continue until they do me wrong.
    - Ninja costs money. I'm cheap. Yep, time is money, but only if your time is not spent having fun. Hobby time = free time IMO.

    3) WHAT ABOUT OPEN SOURCE PLATFORMS?
    - Lots out there, much in Java/C++/Python, etc. I'm using c#.
    - There's some good projects out there as well: Tradelink, Tradeproject.de, EclipseRCP. That is theirs. This is mine. I'm as interested in the development of the design process as I am in the end result.

    As for the format, update frequency, etc, it'll probably depend on how much time I can work on it...I'd like to budget an hour or 2 a day consistently. I've got a bunch of code from previous work and that might cut some dev time out. I'd like this thing to be nice and clean (from a coding sense as well as presentation). Ideally I'd like to do weekly updates with results/problems...big picture stuff. We'll see how it goes and how chatty I am feeling.

    Anyway, this post is getting a bit winded, so I'll cut it here, so I hope I can provide you with an interesting bit of reading.
     
  2. Good luck trading, I hope you'll do well !!!!
     
  3. Do you plan on making this open source?
     
  4. Sure, but hold yer horses, hoss, we ain't even out of the gate yet. :)
    I'm not going to bother with anything but open source. Let's face it, the market for something like this would not be that of Halo 3...
     
  5. CHOOSE YOUR WEAPONS:
    Before I write a bit about what I hope to accomplish, let's examine some of the tools we'll need as we go on our merry way. There's a lot of high quality open source stuff out there, so I'll make use of that when I can...even though I'm building my own house, that doesn't mean I want to make my own lumber and cast my own nails.

    Development Suite
    I use Visual Studio 2008, Professional Edition. I'm also running XP Pro at the moment and one day when I decide to upgrade my computer, I'll put Windows 7 on. For now, XP Pro rules.

    Language
    I'm a big fan of C#...it's a nice mix of the simplicity of "C" and the object oriented power of C++. I'm using the .NET 3.5 Framework and I'll be developing using the Windows Presentation Foundation (WPF). I've done lots of Windows Forms programming in the past and WPF is pretty slick. It'll be a bit of a learning curve for me, but the ability so separate the graphical interface from the back-end is pretty nice. WPF also makes it fairly easy to create graphical stuff that would be very difficult with traditional forms programming. You can also shift things over to become Silverlight web-capable applications fairly easily as well (or so I'm told). All-in-all, I'm impressed with what I've seen so far.

    Version Control
    Up until about 2.5 years ago, my version control was to copy/paste a code directory somewhere else as a backup. Then I was introduced to Subversion and TortiseSVN at work. Amazingly useful tool and open source as well. Can't imagine developing without it now.

    WPF Accessory Tools
    To really develop items easily in WPF, I'm using Expression Blend 3. It has a nice user interface built strictly for WPF that streamlines the process.

    Bug Tracking
    Code creates bugs and I need some way to track them. In the past I've simply used an Excel spreadsheet, but I'm thinking of giving Bugzilla a try...

    Documentation
    Some guys at work showed me DOxygen which allows you to always keep your documentation in sync with your code via tags in your comments. I haven't used it before, but it sounds fairly handy and I might as well try it from the beginning to see how it works.
     
  6. inet

    inet

    Do you code realtime charting?
     
  7. Yes. I currently use the IB application interface (API) to pull quote and historical data to give real-time charts. On my previous version, I just had minute charts, but for this version, I want to use tick charts and maybe range bars as well, and even though IB isn't true tick data (as opposed to something like Zen-fire), it's good enough for the moment. I don't plan on doing much with indicators, etc as I am more price-action oriented.
     
  8. inet

    inet

    Do you write chart creation code by yourself or use charting component? Thanks!

     
  9. When I first started, I wrote the charting component myself from scratch, however it was much more work than I had anticipated and so I switched to a 3rd party control called ZedGraph. It's an open source charting app and extremely well written and documented, plus it's pretty powerful once you get the hang of it.
    For this version, I'm looking at a couple of different ones including the new Microsoft chart control (which is far better than the original) as well as an open source one called Visifire. I don't want to re-invent every wheel, especially the charting control.
     
  10. BadPhill

    BadPhill

    Hi Goonior,


    Interesting thread!

    It seems like we have things in common: I'm currently working on a trading app using IB's API. My toolbox is a little old-fashioned, though: I prototyped with Delphi, and I'm currently repackaging some stuff into Active-X controls (C++).

    My primary goal is to create a graphical trading environment à la Ninja. The secondary goal is to experiment: for example see if I can get some alerts out, based on my trading style (which is price action, intraday trend, S/R).

    I will regularly read your updates!

    Good luck in trading and developing!


    Phill
     
    #10     Feb 21, 2010