Real time position sizing
Author: abegy
Creation Date: 10/12/2011 2:44 AM
profile picture

abegy

#1
At this time, I’m trading a strategy similar to simplicity! take 1. As you know, the principal is to calculate a limit price for each symbol on your trading list and generate your order without knowing if it will be executed.

As my broker limits the number of opening orders, I need to use Quote tool to send an order when the probability of the execution will be the highest.

Working like that is fine except when the market becomes crazy and falls down. In this case, most of my orders are sent and executed until my margin comes down to 0.

As my trading list is a big one, I cannot touch every opportunity that I could if I had no margin limit. For this reason, I have sometime big differences between my real trading account and the backtest.

To reduce this, I would like to manage in real time my order sizing. The idea is to define the size of my next order which has the most probable execution depending of my margin level available.

For example, I would like to divide by 2 the size on my next order if I have only a margin of 2 available. I can backtest this without problem with an EOD database. But I don’t know how to put in place this because I cannot control “Quote ticker” in Real time.

Do you have any idea of how I can implement this strategy for a real time trading ?
Thanks for your support.
profile picture

Cone

#2
First, your results don't match real trading because your simulations must not be using time-of-day priority.

You can't use the Quotes tool for that strategy because the Alerts are already sized. That leaves streaming or S. Monitor. Clearly it can't be done with Streaming, and to do it with the S. Monitor would require 1-minute updates for each symbol, which is currently not practical for a large DataSet. Let's revisit it after 6.3 is released, which should provide the possibility of updating many symbols on a 1-minute basis with minimal delay.
profile picture

abegy

#3
Thank you. Do you have an idea about the delivery time for the new release ?
profile picture

Cone

#4
We're talking about next year here.
profile picture

abegy

#5
Cone, one more question : If I have understand, the next release will give us the possibility to reduce only delay but not to work in real time with the strategy monitor tool.

What I want is to work in real time like the Quote tool (in each tick change for a symbol, I want to run a strategy). It's not a good solution to work with scheduled strategy run except for EOD.

Do not forget that professional traders work like that !
profile picture

Cone

#6
Just to be clear, the next release is a patch that will fix a Fidelity streaming bug and one of the WealthScript synchronization bugs. That should be coming by next week. The next cycle release with enhancments is next year.

Re: "real time". Script processing occurs when it receives a new bar. If that bar is a 1-minute bar, then that's as close to real-time as you can get: once per minute. The Strategy Monitor can run once per minute, just like a Streaming window, if the data interval in the Activation Settings is 1-minute.

You can't and never will be able to use the Quotes tool for the purpose that you've described. The only way possible to do it in Wealth-Lab (for professional and any other trader) is to create a script that processes all of the DataSetSymbols in a single run, every minute, so that you know the values and positions of all the other symbols. Futhermore, you'd have to estimate account data like margin values because these data are not available to the script from the broker. In short, you're asking for a very custom solution that will take a lot of programming and testing.
profile picture

abegy

#7
If I have understood correctly, the strategy monitor is running every 1 minute requesting an update of intraday historical data. When all data are collected, the strategy is starting.

In the next update, the strategy monitor continues to launch in every 1 minute an update of intraday historical data BUT the strategy will start immediately after the new bar received for a symbol.

Is it right ?

What I want is to run a strategy only WHEN a new bar is catched from a streaming source for a list of symbol.
profile picture

Cone

#8
Yes, that's right.

But the Strategy Monitor solution I'm talking about really will only apply to Fidelity, initially. It will be up to other Streaming Providers to create solutions that can feed the S. Monitor rapidly and efficiently. But remember, the script needs to access ALL the other symbols as secondary symbols. That's another challenge to do in a timely manner. In other words, a streaming provider will be able feed the S. Monitor immediately at the end-of-bar in 6.3, but there's no mechanism to do it for secondary symbols.

One possibility it to run the trading strategy on a single symbol and run another "data collector" strategy on the entire DataSet. The collector would post the secondary data to global memory where the trading strategy could access it after delaying a few seconds. A very custom solution.