Seer: New Backtesting Platform

Moderator: moderators

jw
rank: <50 posts
rank: <50 posts
Posts: 6
Joined: Thu Jul 20, 2006 8:44 am
Reputation: 0
Gender: None specified

Seer: New Backtesting Platform

Postby jw » Mon Jul 24, 2006 2:47 pm

All,

Just a quick post to tell you about a new backtesting platform. I've spoke to Michal Kreslik, and he said posting this was ok, as long as I make it clear that I'm posting on behalf of the company - which I am:)

The software is available on a 30 day free trial from www.seertrading.com. A few features:

True portfolio backtesting
Backtest and optimise multiple trading systems using multiple symbols from a single account
Event driven and fast
Advanced money management
Multiple time frames- use multiple time frames within a single bar
Order based rather than signal based (market, stop, limit and stoplimit orders supported)
Stocks, futures and Forex supported, including the mixing of asset classes within a "portfolio"

If you have any questions, follow up to this post or PM me.

Regards,

Jeremy.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Mon Jul 24, 2006 10:36 pm

Jeremy,

please provide more information here on the forum. Why should one go particularly for your backtesting platform?

Please use clear language, not "because we are the best" :D

Thanks,
Michal

jw
rank: <50 posts
rank: <50 posts
Posts: 6
Joined: Thu Jul 20, 2006 8:44 am
Reputation: 0
Gender: None specified

Postby jw » Wed Jul 26, 2006 10:30 am

michal.kreslik wrote:please provide more information here on the forum. Why should one go particularly for your backtesting platform?

Please use clear language, not "because we are the best" :D



The key differentiator is that Seer uses event-driven programming model. When you write logic for your trading system you are writing logic and rules that responds to an event.

Traditional programming logic follows it's own control flow, while event-driven programmes respond to some external action. For example, in a graphical user interface, an event is generated when the user clicks the mouse button or presses a key on the keyboard. It's the job of the running application to respond to these events.

Event programming is a better way to model the real world as it simplifies the logic that is needed to respond to actual action in real-time. Trading can be broken down into events such as the close of a bar or the filling of an order. For example, a simple moving average crossover system could be written as:

Code: Select all

  BuyOpen if Crossover(EMA(Close,12),EMA(Close,26));
  SellOpen if Crossunder(EMA(Close,12),EMA(Close,26));


This logic is attached to the Bar event, and is executed every time a new bar is created. During backtesting, the Bar events are fired from historical data, while during live operation, the events are fired from the datafeed. The key point is that the system behaves in the same way, regardless of wether the events are from backtesting or live.

This event-driven programming paradigm allows other features such money management and portfolio backtesting. In the case of money management you have access to the account cash balances, orders, positions and trade history at the point that the event is fired. For example, the Seer optimal-f money management strategy that was posted in this thread (http://kreslik.com/forums/viewtopic.php?t=135) calculates a new optimal-f value after each trade as the system runs. With portfolio backtesting it is just a case of adding symbols to the portfolio that's associated to the system. The events are then fired for each symbol in the portfolio.

Hope that is clear enough:)

Jeremy.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Wed Jul 26, 2006 11:10 am

Clear enough it is, but I still can't see any difference between your concept and a commonplace concept used to write the strategy logic in say Tradestation EasyLanguage.

So could you please provide an exact example of what you can do with Seer in terms of strategy logic which you can't do with EasyLanguage?

The above example is a commonplace example that can be done the same way in EasyLanguage.

Michal

jw
rank: <50 posts
rank: <50 posts
Posts: 6
Joined: Thu Jul 20, 2006 8:44 am
Reputation: 0
Gender: None specified

Postby jw » Wed Jul 26, 2006 1:13 pm

michal.kreslik wrote:Clear enough it is, but I still can't see any difference between your concept and a commonplace concept used to write the strategy logic in say Tradestation EasyLanguage.

So could you please provide an exact example of what you can do with Seer in terms of strategy logic which you can't do with EasyLanguage?

The above example is a commonplace example that can be done the same way in EasyLanguage.

Michal


A lot of effort has been made to make the scripting environment as simple as possible - generic event programming does take a mind shift. Broadly, the scripting is similar to EasyLanguage and other environments.

Many "classic" environments perform backtesting in more than one pass - pass one might generate the buy/sell signals, while another pass generates the trade history from these signals. For example, some environments implement portfolio backtesting with 1 additional pass per symbol, with all the passes merged to create a trade history and results set. The problem with this approach is that it is very difficult to take into account the effect of many orders from different symbols which occurred on the same bar and the effect they have on future signals. Basically, you might not have enough cash/margin in your account to actually place some orders, which in turn effects the future signals - but because we've already processed the signals in a previous pass, we can't get a true reflection of system performance. The idea with Seer is that you can backtest multiple trading systems each with a portfolio in a single pass and therefore see a true reflection on your account, equity curve and results set. If you are only trading one instrument, then none of this maters:)

One practical example of how events help in a single instrument environment would be the case of a system running (at say) 10 minute bars and an entry signal is given where you want to enter a position with a limit/stop order. Once in a position you might want to protect this position with some sort of stop loss. Assuming that the order was filled at some point between the placement of the order and the next bar, your position would remain unprotected. With Seer, logic can be run inside the bar - as soon as the order has been filled - so you can place a protective stop or run other logic. The stop could also be filled before the next bar, and you may want to do something when that happens...

Regards,

Jeremy.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Wed Jul 26, 2006 4:15 pm

jw wrote:Assuming that the order was filled at some point between the placement of the order and the next bar, your position would remain unprotected. With Seer, logic can be run inside the bar - as soon as the order has been filled - so you can place a protective stop or run other logic. The stop could also be filled before the next bar, and you may want to do something when that happens...


Jeremy, this is a standard, commonplace behavior even in Tradestation (see the SetStopLoss() function which operates intrabar), which itself is way behind the cutting edge backtesting SW like NeoTicker, for example.

So is there anything new that distinguishes Seer from Tradestation in terms of system trading logic creation?

Michal

jw
rank: <50 posts
rank: <50 posts
Posts: 6
Joined: Thu Jul 20, 2006 8:44 am
Reputation: 0
Gender: None specified

Postby jw » Wed Jul 26, 2006 4:56 pm

michal.kreslik wrote:
jw wrote:Assuming that the order was filled at some point between the placement of the order and the next bar, your position would remain unprotected. With Seer, logic can be run inside the bar - as soon as the order has been filled - so you can place a protective stop or run other logic. The stop could also be filled before the next bar, and you may want to do something when that happens...


Jeremy, this is a standard, commonplace behavior even in Tradestation (see the SetStopLoss() function which operates intrabar), which itself is way behind the cutting edge backtesting SW like NeoTicker, for example.


Apologies - my explanation was poor. It's not the ability to place a intraday stop loss that makes event handling a new approach, but the ability to run code intrabar in the response to an event - in the example above, the fill of the initial stop/limit order (which creates a new position) fires an event which runs code that would place the position stop. This code could do anything - update a few variables, whatever - in this case just placing a stoploss - the key thing is that it's run between bars in the response to an event. As these events can cascade, you are in tight control of your orders because you can respond to actual market conditions. Another example would be the case where you have several active orders in the market - as each order is filled - which could be any time between bars - an event is fired allowing you to perform additional logic controlling your position.

So is there anything new that distinguishes Seer from Tradestation in terms of system trading logic creation?


The event processing model:)

Regards,

Jeremy.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Wed Jul 26, 2006 5:25 pm

To make it clear for our community members, is it the same as the Tradestation's Look-Inside-Bars feature then?

Michal

jw
rank: <50 posts
rank: <50 posts
Posts: 6
Joined: Thu Jul 20, 2006 8:44 am
Reputation: 0
Gender: None specified

Postby jw » Thu Jul 27, 2006 9:31 am

michal.kreslik wrote:To make it clear for our community members, is it the same as the Tradestation's Look-Inside-Bars feature then?

Michal


Morning,

My understanding of Look-Inside-Bars - and I could be wrong - is that it provides a better simulation of orders as it uses a smaller time resolution than the actual bar. With Seer, it's your own logic that is run inside of a bar - in this case, a response to a fill.

Regards,

Jeremy.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Thu Jul 27, 2006 9:55 am

Is it possible to create a rule stating that if at least 10 out of any set of 20 consecutive ticks within a 60 min bar are higher than the previous tick, then place a buy order?

Michal

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.


Return to “general platform discussion”