PowerST: The Power System Tester
"Serious Trading Strategy Testing Software"
Table of Contents
Home
Product Overview
About PowerST
Risk Disclosure
Mailing List

Product Overview

Product Overview Topics
Introduction
PowerST: A complete software solution for CTAs and hedge funds
Simple C++
PowerST Features Summary
Calculation Engine Source Code Product
Conclusion


PowerST is more advanced and more specialized than most trading software packages:

PowerST is a backtesting software product for researching trading strategies and generating forward trade signals based upon systematic trading strategies.

Advanced testing environment directed towards the advanced systems researcher:

PowerST is generally not for someone new to systems trading. Rather, it is for the systems researcher who has already become proficient with an entry level trading software package and is now looking for a more advanced platform.

Specialized for position trading:

PowerST is specialized to the needs of end of day (EOD) position trading of futures and stocks.

By concentrating on a specialty, PowerST has been able to progress into more advanced levels of support for the specialty. The software needs of a position trader are different than a day trader. For example, PowerST is very strong in portfolio level strategy testing, with an emphasis on the advanced portfolio level money management strategies that position trading can benefit from.

For example, for a trend follower the goal is not only doing well in trending markets. It is also necessary to manage risk in non-trending markets. One of the particular strengths of PowerST is advanced portfolio level testing capabilities to support research of specific risk management strategies.


PowerST: A complete software solution for CTAs and hedge funds:

PowerST is a complete strategy research and trading software solution for CTAs and hedge funds. This does not mean individual traders will not be interested in PowerST also. However, PowerST provides a unique combination of capabilities and product offerings that are particularly well suited for CTAs and hedge funds:

  • Trading rules programming is based upon C++, but in a simplified form designed for non-programmer traders. This has all of the advantages of C++, and strategy research can be done by strategy researchers themselves the same as with products based upon proprietary languages.

    Or for more complex strategies, the full C++ language is available along with extensive programming environment access to the internals of the strategy testing engine. This is a core aspect of the PowerST product design. The entire product is oriented around this concept of simple to complex strategies being a gradual progression from simplified C++ to more complex C++ to any level of full C++ that is needed.

  • High end strategy testing capability that matches and exceeds any other commercial product:

    • PowerST addresses the high end of the product spectrum with a product firmly oriented towards programability, customizability and extendibility.

    • Based upon C++, there will never be any language restrictions.

    • Very strong native strategy testing features.

  • Robust business level product offering:

    • Availability of 100% full C++ source code for the strategy testing Calculation Engine. This source code product could be for a larger business that wants to hire their own programming staff to enhance the software themselves. However, more commonly the desire for source code is as an insurance policy. It is an insurance policy to assure that you will be able to continue your daily trade signal generation operations and your ongoing strategy research. It assures that you can continue to benefit from your investment in the product forever, and independent of any outside software company, no matter what happens in the future.

    • As a higher priced specialized product, PowerST offers business level support including direct access to the product developer. Also, there is more ability to affect product direction for new product features than with a more mass market product.

    • For someone who might have a more complex strategy or more specialized needs, custom programming services are available as an alternative to or in addition to hiring programming staff.

The above topics are discussed in more detail in the rest of this Product Overview below.

PowerST finally is the product that eliminates any reason for a trading business to consider hiring programmers to develop custom strategy testing and trade signal generation software from scratch:

  • First, the basic PowerST product is extremely powerful and flexible. It is unlikely that a trading business would need capabilities beyond what the basic product offers.

  • Second, for continuity concerns (not being dependent on a product vendor, and control of the source code) the PowerST Calculation Engine source code product is available.

  • Third, for the case of someone who does have a specialized or advanced need that requires enhancement to the basic PowerST product, it is much more cost effective to start from the PowerST Calculation Engine source code rather than from scratch. Those who have been involved with the development of proprietary custom software know that it requires a long term commitment of employing programming staff, and whether the effort will ultimately result in useful software is uncertain. Instead, the PowerST Calculation Engine is a mature and well documented product with over 10 programmer years of development invested, and it is available at a cost that is a fraction of what it would cost develop this capability from scratch. By starting from this mature and stable base, a final custom proprietary software will be completed years more quickly and for much lower cost than starting from scratch.


Simple C++:

PowerST has a unique design based upon C++, but with trading rules programming in a simplified subset of C++ that has been specifically designed for use by non-programmer traders. Most PowerST customers are traders whose previous programming experience was only with other trading software packages.

How is that? From a programming perspective, trading strategies are comparatively easy programming. The logic of trading strategies can become very complex, but that is an issue no matter what language is used to specify the rules of the strategies. However, as far as the actual programming language constructs needed to specify the rules of trading strategies, only basic language constructs are needed, and the quantity of programming code to specify the rules of a trading strategy is generally small.

C++ is a big language directed towards professional programmers. However, the PowerST trading rules specification environment was intentionally designed to use only a simple subset of the C++ programming language that PowerST calls "Simple C++". Trading rules programming in PowerST is done using the same full featured C++ language compiler product that is used to develop the PowerST software itself. However, trading rules specification uses only a subset of the C++ language features. View it as taking a checklist of C++ language features, and the PowerST developer went down that list checking off what language features are needed for trading rules programming and what language features are not needed. The checked items became the Simple C++ subset, and then the entire trading rules specification environment was built from the ground up to support specification of trading rules using only this simplified subset of C++.

Furthermore, to support this the PowerST documentation starts from the beginning assuming no prior programming experience. The initial feedback from people who go through the introduction to C++ documentation materials is that the C++ language aspect is not as difficult as they assumed it would be. Then, the later response is delight at the power and flexibility that is inherent in using C++ in this manner.

In exchange for learning a subset of C++, the payoff is a much higher ceiling of what can be accomplished without software limitations. There are many advantages to this approach of a product based upon real programming language. This design of user programming in the same C++ language that the PowerST software itself is written in leads to PowerST being a serious product with more extensive customization capability and a higher level of programmability. This is one of the major power aspects of PowerST (where the other major classification of power aspects is the native testing capabilities such as portfolio level testing capabilities, advanced optimization capabilities, etc., as discussed in the PowerST Features Summary section below).

In summary, here are some the advantages this design based upon C++:

  • Power:

    C++ is a powerful full featured language. Programming of trading rules and money management strategies requires only a subset of C++. However, that is not restrictive. The full C++ language is available, so there will never be any language restrictions.

  • Speed!

    C++ is the benchmark against which the speed of other languages is compared. Nothing is faster than C++. In PowerST, both the PowerST software itself and the rules of trading strategies and indicators are written in pure, raw C++. This makes PowerST hugely fast.

  • Extendibility:

    In PowerST, there is more programming environment access to the internals of the strategy testing engine than would be possible if user programming was not done in the same C++ language that the programming environment is written in. Along with the availability of the full C++ language, this supports extendibility and researching of more complex and unusual trading strategies.

Why specifically C++? Actually, it is not specifically about the C++ language itself. Rather, the critical issues are that it is a "real" programming language and that it is the same language that the PowerST software itself is written in. That is what leads to the advantages discussed above and throughout this web site.

With the concept of trading rules programming in a simplified subset of a real language, the issue is not the specific language because trading rules programming is done in a high level environment that is going to be largely the same with any language. Then, given that the specific language is not the issue, C++ is an excellent choice for the fast processing speed of C++. No programming language is faster than C++ and processing speed is important for backtesting software.


PowerST Features Summary:

The strength of PowerST isn't only from the use of C++. The other strength of PowerST is native strategy testing capabilities:
  • Single step fully integrated testing of portfolios, including the ability to test portfolios composed of multiple markets and multiple systems. The portfolio level testing capabilities are powerful, fast, and unlimited.

  • Unprecedented flexibility in portfolio level testing, including true portfolio level money management testing capabilities. Fully programmable money management strategies for position sizing and risk control on a portfolio basis. Tracking of open risk per portfolio, per sector, per market, per system and per trade, and the ability to make position sizing decisions to constrain risk for any or all of these factors.

  • User definable risk measurements.

  • The ability to scale trades based upon portfolio level considerations. In other words, adding or subtracting additional contracts or shares to and from open positions.

    For example, if the open risk of a trade drifts beyond a percent of portfolio equity threshold, to scale down (i.e. exit part of the open position) to a smaller percent of combined portfolio equity. Also, if the combined risk for a sector or the entire portfolio drifts too high, to scale back all open trades in the sector or all open trades in the portfolio.

    Another example: Say total portfolio risk is reduced because a trade (or multiple trades) have exited in a different market / system in the portfolio. Say there are open trades whose original position size was constrained by total portfolio risk limits. Those open trades can now be scaled up to larger position sizes now that total portfolio risk has been reduced from the exited trades.

    Another example: Say one system has an open position in a market that is already at the maximum risk threshold for that market when a new trade occurs in another system trading that same market (or possibly the same system trading the same market with a different time frame). It could be decided to scale down the position size for the open trade to allow the new trade to be taken. In other words, to split the risk between the two trades rather than skipping the new trade.

  • Money management position sizing decisions are made with full knowledge of the trading status of all markets and system in the portfolio, including the following:

    Status of each individual market system: The market being traded, the system being traded, the sector assignment for the market. The current position, long, short or flat. If there is an open trade, the trade entry date, position size, entry price and the number of bars the trade has been open. P&L for the open trade, and current risk of the open trade. What the estimated risk of the current trade was calculated as after the close of the bar before the trade entry. Cumulative open equity, drawdown, etc. for the market system. Whether there is a potential new trade for the next bar, and if so the risk of that new trade. The history of past trades for this market system. If an open trade as been resized to add or subtract contracts or shares during the trade, the exact history of the past scale ups and scale downs including the ability to exit the scale ups in any user programmable sequence. When applying money management, the non money management influenced single trading unit performance is tracked side by side with the money management influenced performance.

    Status of other market systems: Significantly, the position sizing for each market system has access to all of the above information for all other markets systems in the portfolio.

    Combined portfolio status: Current combined portfolio open equity (i.e. account size), drawdown, etc.. Current total portfolio open risk for all open trades in the portfolio.

    Composite groupings status: Current open risk and potential new trades and new trade risk grouped by sector, a specific market, and a specific system when trading multiple systems.

    User programmable per market system variables: For example, possibly a relative strength or indicator value for comparative ranking of the markets and/or systems in the portfolio.

  • Extremely flexible optimization (i.e. parameter stepping) feature with programmable control over the optimization loops. The ability to customize the contents of the optimization report including user defined individual market or combined portfolio performance statistics.

  • Portfolio level optimization can iterate parameters across a basket of markets and reports combined portfolio results for each parameter set. Also, portfolio level optimization supports optimization of money management strategy parameters.

  • Forward trading support for generating trade signals for new trades based upon actual market positions, including automatic calculation of position sizes based upon the rules of the money management strategy. Also, the ability to support multiple forward trading portfolios, for example for generating trade signals for multiple managed accounts.

  • Extensive reporting. Detailed, highly programmable, highly interactive charting. The ability to drill down entry, exit and position sizing decisions, from portfolio level down to individual markets. Also, facilities for users to create their own custom results reports.

  • Powerful trading rules and portfolio level money management strategy programming environments based upon the industry standard C++ language.

  • Speed! In PowerST, both the PowerST software itself and the user programming of trading strategies rules is all pure, raw compiled C++. This makes PowerST hugely fast. In PowerST, single market tests complete in the blink of an eye. Significant sized portfolios in a few seconds. Blindingly fast optimizations.

    As a rough benchmark, a customer recently did some comparisons between the optimization speed of his previous testing platform and PowerST. PowerST was almost a full 10 times faster. This is significant. Instead of waiting 20 minutes for an optimization to complete, it will be finished in around 2 minutes.

    Also, PowerST is generally fast in general use. For example, change a parameter, re-run a portfolio of markets and systems, apply portfolio money management, view the revised combined portfolio results. This all happens with a single mouse click, and within only seconds a progress dialog reports that the calculation is finished. One more mouse click and in the blink of an eye all of the reports you have open are updated to display the revised test results.

  • Very high capacity. A futures trader customer tested a portfolio asset allocation strategy composed of 19,000 market system combinations. Stock trading PowerST customers that use PowerST to test strategies against the universe of all U.S. stocks past and present, which is about 24,000 stocks. While many PowerST customers will not need this much capacity, it is good to know that capacity will be available for whatever you end up needing.

  • Flexible and extendible, with depth and a high ceiling.

    Core to the design of PowerST is that the environment for composing trading rules systems and money management strategies uses the same C++ programming language that the PowerST software itself is written in. This orientation around C++ make PowerST a serious product with a high ceiling of what can be accomplished without software limitations.

    Many things that are fixed and unchangeable in other software can in PowerST be modified and customized by PowerST users. For example, a programming environment for users to create new performance statistics that are then automatically calculated for individual market and combined portfolio results. Also, most of the reports within the software can be fully customized by users.

  • As a more advanced feature, user programming using the same C++ language that the product itself is written in supports providing the source code for specific parts of the programming environment. This can be for "under the hood" viewing the exact code for how something is done, and even modification of a programming environment feature. For example, some of the libraries that support money management programming are provided in source code. The source code for data time frame conversions (for example, constructing weekly bars from daily bars) is provided.

  • In addition to strategy testing, PowerST also supports development of spreadsheet and database type standalone programs. For example, the types of programs that system developers and trading businesses might otherwise develop in Excel or Access. Typical applications might be for some advanced strategy testing extension, or for the type of spreadsheet / database sorting, merging, formatting of data and report generation programs that trading businesses tend to develop on their own to automate daily operations.

    This capability is similar to an application written in Excel, but with the speed and unlimited capacity of C++, and with the full C++ language available. This facility is also highly suitable for database type applications that process small to medium quantities of data.

    This spreadsheet / database facility uses the same Simple C++ concept as trading rules programming. Programming is done in a simplified C++ environment, but the full C++ language is available if needed. Furthermore, this facility is within the same environment as trading rules programming. It is a way of picking up C++ power for spreadsheet and small database applications within the same environment and same learning curve as strategy testing. This makes a lot of sense, with one software product and one learning curve for both strategy testing and spreadsheet / database programs.

PowerST is more than just strategy testing. PowerST is a whole programmable environment that even the most advanced trading strategy researcher will not outgrow.


Calculation Engine Source Code Product

The Calculation Engine source code product is for businesses who require complete control of their strategy testing and trade signal generation software for assurance of continuity. This is an optional separate product for a business that wants the ability to hire their own staff to maintain the software, rather than or in addition to using the standard PowerST product. This section explains this unique and unusual product offering.

What is the Calculation Engine? The Calculation Engine is the actual number crunching core of the PowerST strategy testing software. The Calculation Engine applies system rules and system parameters to price data to simulate trading, combine results into portfolios, and apply position sizing. From this comes reports showing trades, bar by bar indicator values, and overall per market and combined portfolio performance. Also from this comes the the next day's trade signals including the position sizes determined by the money management strategy. All of this is the function of the Calculation Engine.

The other key PowerST component is the user interface. The user interface is the Windows program that has menus, and forms for entering setup options, and displays showing charts and reports.

Part of the design of the PowerST software from the beginning was a separation of the user interface from the Calculation Engine, for the specific purpose of being able to offer the Calculation Engine source code as a standalone product.

Why would someone want the Calculation Engine source code product? With trading software companies constantly being bought out, changing their product offerings, or going out of business, there is concern about continuity. For example, consider a trading business that is running a fund based upon trades signals being generated by a software product. If that product was to disappear it could be a serious problem for ongoing daily operations of the fund. This is a concern that has been raised repeatedly, which led to the decision to offer this Calculation Engine source code product.

Also, the Calculation Engine source code yields the ability to add enhancements independent of the software vendor. Furthermore, since the Calculation Engine source code is completely generic C++ code, there is even the possibility of moving the Calculation Engine to another platform such as UNIX or Linux.

The Calculation Engine source code product is the full 100% C++ source code for the PowerST backtesting number crunching and trade signal generation. This gives 100% control. When you have the source code you are immune to product changes. You can instead function completely independently from the software vendor by hiring a C++ programmer, under your control, to maintain the product for you. Probably most purchasers of this source code product will never actually hire a C++ programmer because the standard PowerST product will serve their needs. However, and very importantly, it gives this option as a form of insurance policy.

Furthermore, hiring a programmer to pick up support of the Calculation Engine source code is a reasonable sized project for a single programmer. The Calculation Engine is strictly trading rules calculation, and PowerST trading rules programming is thoroughly documented in a detailed, logically organized, and extensively cross referenced 450 page manual. Since everything in PowerST is in the same C++ language, this extensive documentation also applies to the Calculation Engine since the Calculation Engine is the programming environment underneath the end user trading rules programming environment.

On the other hand, Windows user interface programming can be very complex, and the user interface part of the program would not have the same level of documentation available. To hire a programmer to pick up support for a full Windows program including user interface would take a year for a programmer to become productive. Then, given that long learning curve it would be good practice to hire multiple programmers to ensure continuity in the event that a programmer quits his job, to guard against the possibility of another full years gap without support while a new programmer is coming up to speed. On the other hand, the more self contained Calculation Engine only source code is something that a competent C++ programmer should be able to pick up and become productive in around 4 months. With this short learning curve there is less expense to getting someone up to speed, and less concern about what would happen if the programmer quits his job.

In summary, the PowerST software was designed from the ground up to support this ability to offer the calculation engine source code separate from the user interface. Couple this with that in PowerST user trading rules programming is a direct application of the Calculation Engine environment, with trading rules programming and the underlying Calculation Engine based upon the same well documented C++ libraries and data structures. Together it is a unique product offering. Furthermore, since the Calculation Engine is only the number crunching component, separate from the user interface, it is a manageable amount of code.

Also, as a completely C++ based product the PowerST Calculation Engine is an object oriented program written for flexibility and extension. It isn't only the availability of the source code and the documentation. It is also that the Calculation Engine code is structured for maintenance and extension.

Sum total this is a complete solution for a trading businesses that requires full source code for their core strategy testing and trade signal generation software environment. The PowerST software is a full featured and stable product with 10+ programmer years of investment in the Calculation Engine source code, plus it has the proven maturity of a product that has been used intensively by a wide variety of real customers over many years. Furthermore, this is all available now, years ahead of what could be attained with custom software development, and with the same control and assurance of continuity as custom software.


Business level software:

Business level software does not mean individual traders will not be interested. After all, trading is a business for individuals also. However, the higher price of PowerST is obviously directed more towards trading businesses, funds, and larger individual traders.

Business level software does not only refer to software capabilities. It also means business level support. The higher cost of PowerST allows a higher level of support.

The history of PowerST has been the developer taking a personal interest in each customer. Customers can talk directly to the person who actually wrote the software. Ask questions, and get help with how to test your strategies. If you have a question about how to approach a strategy testing problem you will have someone to discuss your questions with, a programmer who both knows programming and understands trading systems. Furthermore, that person is also the main developer of the PowerST software, and therefore has the ability to make software enhancements and deliver software updates if necessary to support your needs.

Much more...

The real strength of the PowerST software is in the strategy testing that customers are able to accomplish with the product. There is a long history of success with PowerST being able to test any and every type of trading strategy customers have asked of it, including some very advanced strategies customers were not able to test in any other commercial software. This flexibility includes types of strategies and specific details of how traders want to execute trades in the market. When push comes to shove what really matters is customer success at accomplishing the strategy testing they desire.

It isn't only a list of specific software features. It is the way that the PowerST software has met and exceeded customer expectations. It is what customers have been able to accomplish with the software, both needs they knew about when they started with the product and needs that arose later. It isn't only the big features, it is also the multitude of subtle capabilities that a PowerST user discovers over months and even years of using the product.

Some prospective customers are initially surprised when they start asking specific questions whether this or that can be done and receive consistently positive answers that yes it can be done. They are surprised because they have previous experience with other software that didn't have the flexibility to do the specific things they are asking for.

Furthermore, the software works and works very well. Experienced PowerST users become extremely happy with the product because they know it provides capabilities not available elsewhere

Cost:

The initial purchase cost for PowerST is $25,000.

The Calculation Engine Source Code is a separate product. Please call for pricing.

Interested?

This web site you are currently reading is the initial introduction. Much more information that discusses the PowerST product in great detail is available to serious prospective purchasers. If you are interested in learning more about PowerST, please send an email to powerst@PowerST.com saying a few words about yourself and your trading. Answers to the following questions will help get the conversation started:

  • Are you associated with a trading business or an individual trader?

  • If you are associated with a trading business, what is the name of the business? What is the nature of the business? Does the business have a web site?

  • Please say a few words about your trading interests, and how you will be using PowerST.

Alternatively, a phone conversation can often be a more direct approach than back and forth emails. Please don't hesitate to shortcut the discussion by calling Bob Bolotin at 847-982-1910, or skype rdbbolotin.

Back to the home page of the PowerST web site.