Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

A modest proposal

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    A modest proposal

    I just came out of a work meeting where the following observation was made – “I’d rather have a lot of ability and little motivation than a lot of motivation but little ability.” That got me thinking about NT and these forums – I can objectively assess that I am in the latter group, and that there are lots of people there with me. I also can tell that there are a lot of people in that more desirable former group that are really not all that inclined to put their talents to work on problems of interest to others but not to them.

    There's a third group as well. The NinjaTrader Customer Service folks, who are both talented and motivated to help, but are not usually allowed to write code on request. Despite their skills and probable willingness to do so, they usually refer requests to either the help files or to a certified Ninjascript consultant.

    As a result, many newbies get frustrated. I think everyone would agree that the learning curve for C# is steep, and many start out only to give up shortly thereafter. What I would love to see would be a more collaborative effort to create code that benefits everyone, and does more than just answer a narrowly defined need. For example, NT has the ability to be a fully automated trading program - quietly running nightly scans and using the results to trade the next day, all with little or no user involvement. The problem is that the pieces have not been assembled to do this, sort of like having a Porsche in the garage with half of its engine spread out on the floor. If a few people took the time to put the pieces together, the end result would be much more useful and valuable.

    What would be very helpful for most users would be if there were flexible templates into which user-defined code could be placed that would make sure that the code worked correctly. As an example:

    1. I might want to run an optimization on a specific strategy each weekend, and have the optimized variables automatically updated in my trading strategy and ready for the opening bell on Monday.
    2. I might want to use a user-defined stock screen each night at 8 PM, and have the selected stocks update a predefined instrument list. I can write my specific screening criteria and just insert it into the right spot in the templates and – viola – it works.

    For me, this type of code framework would be tremendously helpful, and I think a lot of it might require C# code not included in the standard NT documentation. I think this can really only come from a group effort to continuously improve and develop new tools.

    If there is sufficient interest from the forum members, I propose that a collaborative effort be started to develop the code necessary to get the various pieces of NT (MA, Optimizer, Strategy, and Charting) to work together seamlessly and drive a truly autonomous trading system. The process will be open, the code freely shared with all members, and hopefully the end result is worthwhile to all who participate.

    If you are interested in helping develop something like this, please let me know. This offer is to everyone here, from absolute beginner to experts and the NT support staff as well, if you are able to do so.

    Thanks,

    Kevin
    Last edited by Kevin_in_GA; 06-10-2012, 02:25 PM.

    #2
    Here are some initial thoughts about developing truly automated trading systems, not just strategies that can execute trades during market hours. A really autonomous trading system should be able to quietly run continuously, with a set of scheduled events that occur nightly/weekly/etc.

    As an example, I might want to run an optimization every night on the last N bars of data (N here might be EOD, minute, whatever time frame one wants). The Optimizer results are used to update my trading strategy prior to the next day’s open. The same updated settings are also passed on to the Market Analyzer, which uses them to select stocks that are good candidates for profitable trades. Those stocks are then used to update an existing instrument that is used by the Trading Strategy. In this way, a trading system is constantly adapting to the market, and adjusting on your behalf to maximize profit, reduce drawdown, or improve entry/exit efficiencies.

    My thinking on this is depicted graphically below. The arrows show the flow of data and information into and out of each module.



    What apparently is lacking is this level of interoperability, or the ability to seamlessly pass important data from one NT module to another. Frankly I find this surprising, as well as the lack of being able to schedule these types of events. To me, these sort of capabilities are as or more important than an individual strategy, and would be of value to all forum members if they can be coded.

    I will be working on each of these over the next few months, and will post all of my code here for anyone to use. I am hopeful that other more experienced coders will critique and improve, or actively help to write this for everyone’s benefit. Think open source code development here …

    Hopefully the NT support staff can participate, if not in writing code at least in identifying resources and suggestions on how to improve the effort.

    Please keep checking back here, and any help is welcomed.

    Kevin

    Comment


      #3
      I was hoping that someone would have responded to this by now, especially with 120 views over the last two weeks. Nevertheless I want to keep working on this, to see if there is interest in taking this on with others here in the NT community.

      I also want to ask any of the NT programming consultants who might have been thinking along these lines to chime in here on two areas:

      1) Is this doable? Does NT currently have the ability to be scripted in this manner, or is this simply not an option?

      2) Would they be able to execute this and at what cost? I would love to see an open bid process here, or at least some sense of costs to have this coded professionally.

      I have been looking at quartz.net (www.quartznet.sourceforge.net), thinking it could be used to schedule MA or an optimization within NT. This is the first element that needs to be in place, but if I’m correct it will need to be run outside of NT, calling specific NT modules to accomplish tasks at a prescribed time each night. I’d like to start this as a discussion topic for this thread – how can we get NT optimizer or MA to be scheduled in this manner?

      As always, everyone is invited to contribute and hopefully all will benefit from the collaboration.

      Kevin

      Comment


        #4
        Originally posted by Kevin_in_GA View Post
        I was hoping that someone would have responded to this by now, especially with 120 views over the last two weeks. Nevertheless I want to keep working on this, to see if there is interest in taking this on with others here in the NT community.

        I also want to ask any of the NT programming consultants who might have been thinking along these lines to chime in here on two areas:

        1) Is this doable? Does NT currently have the ability to be scripted in this manner, or is this simply not an option?

        2) Would they be able to execute this and at what cost? I would love to see an open bid process here, or at least some sense of costs to have this coded professionally.

        I have been looking at quartz.net (www.quartznet.sourceforge.net), thinking it could be used to schedule MA or an optimization within NT. This is the first element that needs to be in place, but if I’m correct it will need to be run outside of NT, calling specific NT modules to accomplish tasks at a prescribed time each night. I’d like to start this as a discussion topic for this thread – how can we get NT optimizer or MA to be scheduled in this manner?

        As always, everyone is invited to contribute and hopefully all will benefit from the collaboration.

        Kevin
        Therein lies the real issue. NT has a pretty well exposed API, but not a completely exposed one, as it would if it were open source, which it is not.

        From observation of how NT works, it is a pretty well designed modular framework The problem lies in the fact that the internal methods of the framework have never really been exposed, and without knowing the details of how the objects handle and pass data, there is no real way to pass data between the modules so as to make one module drive another.

        NT is in stiff competition with other vendors, and in fact, in my opinion has the most liberal policy of any code house that I have ever dealt with, including the ones for whom I used to work. That very competitive edge that NT has is why I doubt very much that they will expose the data necessary for your project.

        Can a clean room reverse engineering effort on NT succeed? Probably, but it would take an awful lot of work, and I doubt if anybody really wants to take it on.

        Comment


          #5
          1. You get a "THANKS" from me for being the only person to respond so far, and with a well-informed contribution. Much appreciated.

          2. I realized immediately that this endeavor was way beyond what I could learn to do on my own, hence the focus on collaboration in code development. I recognize the openness and help that NT offers, and the underlying potential of the program. If they really want to maintain a competitive advantage, this should be on their development timeline. Once this is a truly autonomous trading platform (whether the code is open or not) it will stand above the competition and likely be worth the time and resources invested.

          Comment


            #6
            Originally posted by Kevin_in_GA View Post
            I was hoping that someone would have responded to this by now, especially with 120 views over the last two weeks. Nevertheless I want to keep working on this, to see if there is interest in taking this on with others here in the NT community.

            I also want to ask any of the NT programming consultants who might have been thinking along these lines to chime in here on two areas:

            1) Is this doable? Does NT currently have the ability to be scripted in this manner, or is this simply not an option?

            2) Would they be able to execute this and at what cost? I would love to see an open bid process here, or at least some sense of costs to have this coded professionally.

            I have been looking at quartz.net (www.quartznet.sourceforge.net), thinking it could be used to schedule MA or an optimization within NT. This is the first element that needs to be in place, but if I’m correct it will need to be run outside of NT, calling specific NT modules to accomplish tasks at a prescribed time each night. I’d like to start this as a discussion topic for this thread – how can we get NT optimizer or MA to be scheduled in this manner?

            As always, everyone is invited to contribute and hopefully all will benefit from the collaboration.

            Kevin

            Coming back to this specific request for input from any NinjaScript consultants - I am a bit surprised that there is not more input from them here, where they are almost certain to reach their core customers.

            To this particular point on interoperability between NT modules ... with now over 200 views for this thread and only 1 response indicating it would be difficult, I am hoping that there is sufficient interest and technical ability from one or more of the NT consultants.

            I did try to contact one or two of them directly but heard nothing back, which frankly surprised me. My thinking is that there is nothing out there that fully meets this need, but being based on C# this could be done most easily with NT.

            If this can't be done within a reasonable time frame and budget, then I think I'll probably move on to another option for automated trading since there are other platforms that are more easily learned that can do basic intraday automated trading (Strategy Desk and Prodigio, for example).

            Thanks to those who have been following this thread so far and to the NT support staff.

            Kevin

            Comment


              #7
              You might want to take a look at the ADL (Algo Design Lab) module of X_Trader trading platform. It is available, but unfortunately not fully developed (no direct support for technical indicators yet; can use MS Excel spreadsheet data). It would do what you're after, and with rapid development.

              It must be that systematic trading and automated trading platforms currently have a very small user base, thus technical support is limited. NT seems better suited and developed mostly for the discretionary trader.

              Comment


                #8
                That looks interesting, but there is no real user base and a complete lack of pricing information on their web site. I am currently looking at Prodigio (www.prodigiorts.com) which is similar to ADL but quite intuitive to program and use, as well as Strategy Desk from TD Ameritrade (https://www.tdameritrade.com/forms/TDA9241.pdf) - this is a link to the user’s manual. The code here is quite simple to develop and it trades automatically for you if you have an account with TDA.

                I'm not trying to steer people away from NT by mentioning these other products, but simply highlighting other automated trading platforms to consider. Note that none of these currently can do what I have been suggesting here in this thread, and thus if it can be done it will most likely be NT that gets there first.

                Kevin

                Comment


                  #9
                  Perhaps you need a closer look at X_Trader's ADL There are some videos on YouTube and the user manual is online. Anyway, it's not fully developed yet and only recently released to retail traders. If you look close, you'll see that it has some powerful semi-automated features for market makers and commodities traders.

                  I've looked at Prodigio Wizard Lab. At first first glance, it looks pretty slick. Especially nice for trade management with drag and drop features. Unfortunately, you are limited to the number of tools that they provide. I didn't see any way to develop custom mathmatical conditional tests. I could be wrong, but If you look at the forum, It seems to be loosing momentum.

                  I'm an expert programmer in TDAMERITRADE's StrategyDesk scripting language. I currently use StrategyDesk for my automated trading of ETFs with a very complex trading system. StrategyDesk provides rapid system development and is very powerful. Some complain that the backtesting is too slow, but I've found ways to work around that. Nice part is, you only need to program the trade logic, as all order entry and most trade management is done through wizards. Unfortunately, except for simple (losing) trade logic, the scripting language is tool difficult to program for most traders. TDA no longer promotes StrategyDesk and there hasn't been any new releases in quite some time. TDA might be developing some kind of automated trading tools/scripting language for ThinkOrSwim platform but they haven't announced any plans.

                  You might also want to look at third party SharkIndicators Bloodhound visual programming utility for NinjaTrader. It is also a new product and not fully developed, but a good tool for rapid system development.
                  Last edited by borland; 06-27-2012, 03:28 PM.

                  Comment


                    #10
                    Don't let the lack of activity in the Prodigio forum fool you - although I made the same assessment re: ADL. Their support is fantastic and will help you with code development. I am already running a strategy using their real-time paper trading account and it took me only about an hour to script the whole thing (a nice simple set of conditions that yield consistent small gains on multiple trades each day). I still need to update it manually with new candidates but it is letting me test my concepts using real-time data for free. Loving it.

                    Glad to hear that you are using Strategy Desk. I like the ease with which code can be developed, but without a TD Amertrade account you can't play around with it. I also noticed that they put essentially no advertisement against this, and there has not been a upgrade in what looks to be about three years.

                    For me, the goal is trading, not becoming an expert in C#. I want to fully understand the platform I'm using and know how to tweak things if needed but the real goal for everyone here is the same - make money. The platform need to be robust and reliable, not an intellectual mountain to be climbed.

                    Comment


                      #11
                      Just saying, you’re at the mercy of the platform provider. You can spend enormous amounts of time developing complex automated trading systems and have the platform provider get bought out or go defunct. Best to have a plan for porting to another platform, just in case.
                      I’ve been automated trading for over 5 years now. It takes months to implement and years to fully develop a comprehensive trading system. Most lack technical background/skills to get it done. Take a look at the systems on Collective2, almost all sooner or later blow up.
                      Don’t let greed rule patience, let the trades come to you.

                      Comment


                        #12
                        Agreed. The risk of a platform provider being bought or going out of business is shared by all platforms. I see it as the cost of playing in the game. I am a little concerned that Prodigio might have a higher risk than others for this happening, but at the same time I am validating my trading systems at no cost or risk right now.

                        As to portability, I have already written chunks of my system code in Ninjascript. It's not that I don't want to put in any effort to do this (it's already ongoing), but rather that there are other options that are more user-friendly.

                        I'd love to continue this discussion off line - feel free to PM me if you want. Thanks again for your insights on this. I don't think what I was trying to do in this thread will ever get off the ground, but hopefully NT was listening and now has this type of enhanced interoperativity on its development timeline.

                        Comment


                          #13
                          Just read the thread and think it's a great idea. I had a similar idea to create an open source "strategy framework" to standardize the behaviour of strategies, e.g. for error checking and handling, position sizing, external data, unmanaged order handling...
                          But there is simply not enough time to pull this of alone.

                          Also my guess is that most of the NT users are not willing to share code which they created. If someone codes useful stuff they rather make money of it than sharing it with the community. As with most things involving money you can't get enough of it...

                          Comment


                            #14
                            Thanks for the response. I admit that I'm surprised there was not a stronger response to this concept. I would have thought that it would be a great way for some of the Ninjascript consultants to show off their talents and to build recognition and a larger client base. Guess not.

                            If there are folks who want to do this, post here and let's see if this can be done. Any support is welcomed!

                            Comment

                            Latest Posts

                            Collapse

                            Topics Statistics Last Post
                            Started by Option Whisperer, Today, 09:55 AM
                            1 response
                            11 views
                            0 likes
                            Last Post bltdavid  
                            Started by port119, Today, 02:43 PM
                            0 responses
                            1 view
                            0 likes
                            Last Post port119
                            by port119
                             
                            Started by Philippe56140, Today, 02:35 PM
                            0 responses
                            3 views
                            0 likes
                            Last Post Philippe56140  
                            Started by 00nevest, Today, 02:27 PM
                            0 responses
                            2 views
                            0 likes
                            Last Post 00nevest  
                            Started by Jonafare, 12-06-2012, 03:48 PM
                            5 responses
                            3,988 views
                            0 likes
                            Last Post rene69851  
                            Working...
                            X