Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

BlueHorseshoe

Position Sizing and Predicted MAE

Recommended Posts

Hello,

 

Assuming that the best predictor of b at time t=-a is b * f, why isn't the following position sizing formula helping me to reduce the deviation of returns?

 

a = average trade length;

b = highest high ( a ) - lowest low ( a );

c = average b ( population size );

position size = ( equity / price ) * ( c / [ b * f ] );

 

Any help very much appreciated!

 

BlueHorseshoe

Share this post


Link to post
Share on other sites

R=HH-LL; // [avgTradeLen]

avgR=avg(R,totaltrades);

buyingPwr=acctSize/c;

size=bPwr * (avgR / [F*R] ); // square brackets = bug or something you intended that I didn't understand

 

You're probably sorting the net profit column of the optimization report. Export to excel, add a column that measures deviation of returns, sort that column, that's the optimal f that will satisfy your smoothing requirements, while forsaking net, unless your fitness function strikes a balance between net and smoothing.

 

Besides optimal F, ... R is the only other moving part. I was confident i had thought this through when I wrote the paragraph below here but after thinking for too long I'm unable to determine if increasing R increases trade size. If it does then it's backwards. Substituting hard numbers in place of the variablies on line 4 is too much for me at the moment but that should be easy to resolve. If R is wired wrong it will need to be fixed before F will work. If R is wired correctly then you will still need the custom excel function to optimize F.

 

As R increases it simultaneously increases trade size. R normalizes individual trades to a variable scale that causes fluctation in trade net and Equity Curve. Fixed size normally returns a smoother EC than variable size. Varying size is normally associated with increasing gain. Varying size can be used to smooth an ec but if you use range as the input it needs to work backwards from the way it's written. When anticipated range increases forgo the opportunity for increasing profit. Decreasing size will maintain the fixed net profit for that trade where the net per contract is increased for that trade.

Share this post


Link to post
Share on other sites

 

You're probably sorting the net profit column of the optimization report. Export to excel, add a column that measures deviation of returns, sort that column, that's the optimal f that will satisfy your smoothing requirements, while forsaking net, unless your fitness function strikes a balance between net and smoothing.

 

Besides optimal F, ... R is the only other moving part. I was confident i had thought this through when I wrote the paragraph below here but after thinking for too long I'm unable to determine if increasing R increases trade size. If it does then it's backwards. Substituting hard numbers in place of the variablies on line 4 is too much for me at the moment but that should be easy to resolve. If R is wired wrong it will need to be fixed before F will work. If R is wired correctly then you will still need the custom excel function to optimize F.

 

As R increases it simultaneously increases trade size. R normalizes individual trades to a variable scale that causes fluctation in trade net and Equity Curve. Fixed size normally returns a smoother EC than variable size. Varying size is normally associated with increasing gain. Varying size can be used to smooth an ec but if you use range as the input it needs to work backwards from the way it's written. When anticipated range increases forgo the opportunity for increasing profit. Decreasing size will maintain the fixed net profit for that trade where the net per contract is increased for that trade.

 

Hi Onesmith,

 

Good to see you around the forum again and thanks for your reply.

 

I can't be certain whether you've understood what I'm trying to do or not - this is not Ralph Vince's Optimal F, and I'm not trying to optimise anything. Here's an explanation of my thought process and goal:

 

  1. The base strategy uses zero leverage and whenever it is not flat it is fully invested. So the position size for that is simply Equity/Close.
  2. The problem is that two positions with identical equity available and the same entry price can have markedly different outcomes depending on "volatility" after entry.
  3. In my formula f is just a simple multiplicative function derived from past trade data (average-trade-length) and past price data (highest(h,average-trade-length) - lowest(l,average-trade-length)) that has on average been the best predictor of "volatility" average-trade-length periods into the future. In every case I have examined f has been close to 1 (ie the best predictor of future "volatility" is current "volatility"), so b*f is practically identical to b (my intention is that f could theoretically be replaced with some kind of higher order polynomial extrapolation)
  4. c is the average "volatility" for the entire data sample (because this takes a while to compute and the sample size quickly becomes too large for the max bars to reference in TS I have replaced it with a totally recursive LQE).
  5. Average "volatility" or c is then aligned with the base scenario (equity/close).
  6. Position sizing when b*f is higher than average should therefore be proportionally smaller, and when b*f is lower, proportionally larger, according to the following: positionsize = (equity/close) * (c/[ b*f ]);
  7. When "volatility" is higher than average, the formula calls for more units to be purchased than the equity allows with leverage; lower than average volatility is therefore simply ignored by capping position size at a maximum of equity/close.

 

I would expect all this to result in reduced net gains but also reduced deviation of returns and a smoother equity curve. Somehow, it isn't doing that . . .

 

Any suggestions as to where the issue may be?

 

Thanks,

 

BlueHorseshoe

Edited by BlueHorseshoe

Share this post


Link to post
Share on other sites

If ES volatility is at or slighlty below avgV and NQ v is above nq avgV then which one do you buy? Do you ever buy less than account size? If you intend to go all in and use your entire buying power everytime you take a postion then why is position size part of the equation?

Share this post


Link to post
Share on other sites
If ES volatility is at or slighlty below avgV and NQ v is above nq avgV then which one do you buy? Do you ever buy less than account size? If you intend to go all in and use your entire buying power everytime you take a postion then why is position size part of the equation?

 

Certainly, less than the entire account size can be bought.

 

The idea is to be fully invested for the typical trade. If a trade is deemed likely to be atypical - a likely outlier in terms of dollar excursion from the entry price (due to what I am calling "volatility"), then the idea is to decrease the position size.

 

"Fully invested" means only for the portion of total equity that is allocated to that class of instruments. So the "equity" in my pseudocode refers only to a portion of total equity (in the EL code I have sent, I have plugged in the figure of 5k to avoid the confusion of further variables).

 

Priority of allocation within a class of instruments (such as equity indices - the ES and the NQ in your example) is based on a different selection metric altogether, so their relative volatilities would not be considered by the strategy.

 

The purpose of the code, taking (equity/close) as a base scenario, is to try and make all trade outcomes as much like the average trade outcome as possible, by accounting for the predicted price behaviour (MAE/MFE) relative to average price behaviour. The typical trade provides the average outcome, and the average outcome is aligned with (equity/close), with everything else scaled around this.

 

BlueHorseshoe

Edited by BlueHorseshoe

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use.