Question about Automated Trading Development Scenarios.

Discussion in 'Automated Trading' started by NetTecture, Jul 29, 2009.

  1. Hello,

    I am slowly moving my setups over to NinjaTrader (fighting tons of bugs there).

    Anyhow, I start thinking that the hole approach that the automatism platforms take is pretty much borked (sorry). It is different from what a trader takes. Anyone else had that idea?

    Here is my "problem". Automated trading systems - like Ninja, but this really is just an example - have strategies that you code.

    Traders work different. You have there:
    * Filters
    * Setups
    * Triggers
    * And finally the trade.

    if a programming system would allow the same scenario, it would be more flexible to test different combinations. This is different from simlply testing different parameters.

    Example, a simple "buy pullback to a X moving average".
    * Various filters could be tried out - to find out that only works in a trending market. WHen is a market trending?
    * The setup would be "pullback to moving average". Various approaches could be tested here - possibly a small bollinger or keltner channel is best here (to see it comes close).
    * Trigger would likely be a bar going away.
    * Most tricky, though, a collection of trade managers could handle various approaches then. Static targets (based on volatility? Or trailing stop? Multiple entries when possible?

    This module approach would allow for pretty fast analysis of many combinations. Mostly because if you take the setup / trigger pair, then those can be predertermined in backtesting. Various trade manger settings can be tested and various filters can be tested without touching those predetermined trigger points gain.

    Just thinking here. I just realize all the stuff I integrate into my strategies would possibly be more usefull in a different approach that more models how traders work.

    That being said, another problem I find with software like NinjaTrader is that they assume trades are extremely trivial in their handling. Basically, performance is measured by entry/exit signal combinations. This breaks apart when one is running a more complicated trading scenario. I have one strategy that may do 4-6 signals for one trade. While I like an analysis of the trade per signal at times, I am more interested in the win/loss/drawdown/maxrisk scenario of the complete TRADE - this means from the first entry into a position until the moment the system is flat again. All interim elements are not primarily of importance. Especially things like "first target signals" (subtrades that go for a specific profit target that gets hit often) - sorry, but "max profit per trade" is not relevant at all for me for those, I know it. But i would love to know if I move the profit target - what happens to the complete trade?

    In addition, I can not possibly have the same signal multiple times. That makes it hard to have certain scenarios where one allows a second setup to trade, WHILE THE FIRST IS STILL ACTIVE (possibly mostly un runaway markets where the first may be on a profit trailing stop with a part of the position, and the new entry would get "normal stop treatment" for the start.

    Anyone else found the approaches taken by toolsets LIKE Ninja (but that really seems to apply to all others) to be too focused on individual orders and unable to deal with an analysis of more complex strategies?

    Really asking for opinions here. I am starting to think I will ahve to program my own framework to get the results I want ;)
  2. You need to built a trade processor to process the order / execution files. Brokers do FIFO , and trading programs mimic that.
  3. Wow. It's very exciting to read another trader who really thinks exactly that same as I do. Especially, when you mention that you might write your own platform it shows why.

    It's because, since you're a programmer yourself so you "think" like an object-oriented programmer in "seeing" better ways to trade.

    Obviously, you're a real trader also--been in the trenches so you "think" like an "object oriented trader".

    Anyway, I have comments mixed in below of because I have been down your exact same path and have an amazing point to share.

    Excellent, excellent. Note. that's how trading works on my platform. The list goes on...

    Add to that...

    MoneyManagement (Exits)
    Performance Stats

    Interestingly, TickZoom makes you're way of "seeing" things easy. But, alas, none of the current users of TickZoom "thinks" like you do. The mass of traders always wants to convert over some easy language entire strategy as one "object". But hey, they're making serious money with their strategies so who can knock them? If you're winning, you're winning.

    By the way, as an analyst youself, you see how a system like you describe can easily accomodate both ways of thinking.

    In fact, the new users have jumped at the idea of separating out MoneyManagement and PositionSizing from the main strategy code.

    It's fun to hear them remind me to be careful not to "break" the separate Money Management steps since it prevents the feedback loop in other platforms which make stops and limit orders harm otherwise good strategies.

    But separating out filters, setups, and triggers is a different matter and takes more convincing.

    So true. In tickzoom, you could make a parameter represent an enum of different "trigger" objects to test since you a switch statement.

    In fact, since TickZoom does this polymophically and considers all the setups, triggers, filters, strategies, indicators, etc to be "Model" objects, it would be easy to make the optimizer accept a parameter of a list of object names to test and so it could set a property with an instance of each object. Hmmm. That never occurred to me till now. I just test different combinations manually.

    Exactly! That's was one of the primary goals of tickzoom originally when it was only for myself. That is, to have many different strategies all simultaneously trading on the same symbol.

    That part works very nicely.

    So true.

    Agreed. Although, NinjaTrader is an excellent product. No product, including tickzoom is perfect. TickZoom is really focused on this type of advanced multi-strategy multi-symbols high speed portfolio trading users like yourself.

    In tickzoom we can a flat to flat trade a "ComboTrade". TickZoom gives exactly the same complete stats on both Trades and ComboTrades.

    It really makes a big difference when you're working variable trade sizes to have the platform do all the work of combining them.

    Amazingly some people (non-programmer) use the platforms out there to do this kind of testing and then hall the results into Excel and rework it to combine all the ComboTrades and calculated the results. Whew! it's so much quicker and easier in tickzoom.

    The real "problem" you have is that, just like all programmer, and just like myself, you can't stand to do any repetitive manual work. You would prefer to spend time writing a program to automate it.

    Most non-programmers who are advanced traders do what you do but they run everything separately and combine them using excel.

    As a programmer it's unfathomable. As my trading knowledge and skill grew it over 15 years became increasingly clear that trading software was still mostly in the dark ages compared to other industries. If you relatively compare the different trading platforms to something software in other industries.

    I think the problem is that this is just a niche market with so few potential users compared to Word Processors or Operating Systems.

  4. We have ran into a similar problem over 5 years ago. Obviously there are more options now, but the crux of the problem is the same.

    In order to build an automated system that is based on real-time tick data (and not on bars, etc), it is almost impossiible to use any out-of the box platform, nor is it feasible to create your own. Each strategy requires a great deal of versatility in its application that building something that will be universal is a nightmare.

    The solution that we found is the following: we design each of our automated strategies to spec. None of us a developers, but we contract a development company, that actually does the coding.
    We have built a simple framework (for risk management, quote handlers, order handlers), and the rest is built upon this frame.

    And yes, we start out by creating a filter, then grey box, then black box.
  5. xiaohu


    this thread is quite funny :)
  6. Yeah. I like how TickZoom tries to put marketing talk into the thread. There are some nice truths in it, though. It seems really like everyone and his mother (obviosuly with some exceptions, like me and TickZoom) seem to get everything into "as easy as possible, and heck, please easy language". I find that amusing.
  7. Well, frankly, easy language has some powerful advantages that can't be ignored even to object oriented engineers.

    For example, it eliminates the need to boundary check every time to use high[5] or low[3], etc.

    Plus, object oriented code tends to be "dispersed" so it takes more comprehensive thinking to see the "whole picture" of what's happening.

    Additionally, if you ever read magazines or articles about some trading ideas or concepts it will invariably be described in EasyLanguage.

    For that reason especially, I originally added all those most important features of EL into C# in tickzoom and imitated much of the naming.

    So there's examples on the site to show how straightforward it is to take an EL strategy or indicator and directly convert it to a strategy in tickzoom and see it work and compare to get exact same results to TS or MS, etc.

    So we can't knock easylanguage really. I, for one, cut my trading teeth on easylanguage because it really is easy even though you tend to outgrow it.

    By the way, a hedge fund using TickZoom wrote a EL parser and they're making it directly run EL scripts on TickZoom. Horror of horrors! *smile* Unfortunately, for the rest, just like all hedge funds, they won't share this, even for money. It's all in-house.

    Also, I can't figure out how to avoid the "marketing" sounds of my posts because I really did build this platform for myself and use it in trading so it's what I talk about.

    If only it made since to give it away for free then nobody would treat my comments as "marketing".

    But as soon as money gets involved, I recognize, it changes things.

  8. I am sure the inventors of automatic bounadry checking would not agree that this is an EasyLanguage feature. It is common in most strong typed langauges.

    Would you pease stop turning this serious thought thread into a marketing ploy for TickZoom? I mean, before I complain about the behavior of Sponsors to the owners of this forum. You constant marketing stuff is seriously going on my nerves. Even free you simply seem to be some kind of robot desperatly tying to turn every second sentence into "and that is why TickZoom is great". This seriously sucks. If you could turn that down like 5 degrees, you would achieve more.
  9. Isn't C# a strong typed language? Maybe we misunderstand each other. C# doesn't automate that. It will throw an exception.

    EL never gives an error on that. "It just works."

    You're right. I guess replying about EasyLanguage was off topic. Sorry.

    I didn't mean for my original message to sound like marketing either.

    As I said you have a similar vision to mine so I was interested in somehow partnering with you.

    Sorry. I thought your original question directly was:

    And so my concise answer is, Yes. Definitely, maybe I neglected to mention I was a NinjaTrader user and loved it in general except the stuff you mentioned.

    But my point of my original post was that I had all the same issues with Ninja.

    But rather than bash other great products like Ninja, I was hoping to make a positive recommendation that might better suit your needs.

    I spent weeks or maybe months downloading and trying products to solve the problems you state.

    Used several others popular ones (won't name names) tried open source stuff and ran into the same problems.

    I was trying to explain to you why that is the case with the platform also because you seemed to find it strange all the platforms behave that way.

    Again, it's because the largest market all the vendors go after want the simple features. I am learning that the other savvy market generally has money and they want things done their way so it means more "customized" development.

    These bigger users like funds and really successful traders express frustration that they wanted features added (they're not programmers) to the popular platforms but those platforms turned them down, even though they offer to pay for the new features.

    That's no real negative thing. It's just that advanced users like you and I want features that the majority either don't need or don't understand so the vendors aren't interested in developing those. They prefer to focus on the greater majority of potential users.

    So most of the automated trading or sophisticated back testing like you discuss is done by a lot of manual steps or institutions or individuals who just build their own custom platform with control to make it exactly how they want it but they realize the time and expense that doing so entails so they try to leverage anything open source that they can as piece together a system.

    What's your feedback. Is this better, following your advice?

  10. This is a post I agree with.

    Seriously, though, especially if I look at Ninja....
    ...the things get a lot more comical. The UI of Ninja is in large parts so damn cumbersome it is not even funny anymore. Tthis is not about easy features, it is about "programmer art".

    They even violate the basics of windows UI style guide - example, in their list of open strategies you have to stop and remove them one by one. No idea to mark multiple. I seriously find that disturbing. Whenever I did UI work, people would have slapped me for something that stupid. Goes a long way further.

    Want another example - why the heck do they actually put in dozens of windows instead of allowing controls on one? Half based implementation.

    NT7 - great features. Here is one dump one: Strategies coming online synchronize their open positions (that they should have) - by entering market orders. This is plain dump. Just because the strategy wanted to go long half an hour ago (but could not).... it does not mean it wants the crap NOW at the a lot higher price. I have no idea who even got a stupid idea like that. Running behind trades called as new strategies come on is pretty much stupid. Have to say saying that in their forums got me a nice feedback from their CEO to tone down my language. Does not make a dump decicion better, though.

    You are seriously right in a market for advanced features. I actually think whether it may make sense to come up and put some resources into my own platform, too - not necessarily (only) for the automatism side, but I seriously want an a lot lot lot better user interface. One that flows.
    #10     Jul 29, 2009