Sorting Trading Entry Signals – Transaction Weight

As a trader, you have limited funds. We have a total trading capital, which we may spread over different trading strategies. And furthermore, we may be trading more than one position at a time.

Regardless of how much money we allocate to which strategy and how many strategies we trade in parallel, Trader have to budget their funds even if it is only a single strategy.

This means that within a single trading strategy Trader will not always be able to implement all the entry signals they receive. This is especially true if you are trading not only a single underlying (for example the EUR/USD), but a whole portfolio.

This is especially obvious when trading a stock position, where you often choose to trade not just one stock (AAPL, XOM, DIS etc.) but all the stocks in a portfolio such as the S&P 100, 500 etc. You have a portfolio of 100 or more stocks. So Trader have a portfolio of 100 or 500 stocks and from this portfolio, based on their entry rules, they generate their daily signals.

And this is where the problem mentioned at the beginning comes in: on some days we may not have enough money left to implement all the signals. Before we look at some examples of this, let’s talk briefly about position sizing, which is a related topic to this and which helps us understand the topic of position priority or “transaction weight”.

One more note: A transaction weight is only important when we work with market entries. If you use limit entries, you do not need a transition weight.

The position size - how many shares do I buy?

In general, we must first note that in trading we are not only talking about entries and exits, but also about choosing the appropriate position sizes. A simple but effective way to determine the position size is to define it in a percentage value of the available trading capital.

For example, a position size of 10% of equity means that 10% of the available capital is allocated to each trade. With a fictitious EUR 30.000 starting capital for a trading strategy, this would then be EUR 3,000 per individual trade. With this we have created a basic understanding of the position size and now move on to the daily trading practice.

The daily trading signals

Note: we restrict ourselves to end-of-day trading. But basically the problem described here applies to all time units as long as we are talking about trading of whole portfolios with several underlyings (especially stocks). So we trade here – short repetition – in any case more than one position at the same time.

Now every trading strategy consists of the 4 core elements

  • Portfolio (Underlying)
  • Entry
  • Positionsize
  • Exit

If you trade portfolios, as mentioned above, which entails trading more than one position at the same time, an element 5 is added: the “Transaction Weight” aka. Position Priority.

Scenario 1 - too many signals than our maximum position sizing allows for

In advance: with zero signals, everything is clear. We do not make any new trades.

But what do we do if we suddenly get 23 signals from the S&P 100 on one day? The markets have risen massively in the last days and therefore a lot of stocks fulfill our buy – rules (3 days with rising prices).

We can’t make 23 Trades because, you remember, we have to keep our position sizes. And this rule tells us that only 10 trades (10% of equity) can be made at the same time.

Here is a screenshot of a trading strategy without “Transaction Weight” with 12 signals on a given day.

10 trades are allowed at maximum at the same time. But here there are 12 signals. Which one do we take? This is where the Transaction Weight comes into play. And we will come to that in a moment. First let’s look at other possibilities

Scenario 2 - Signals on days when we are fully positioned

It doesn’t always have to be 23 or 12 signals that overwhelm us. It can also be that we get only 2 new signals. But our trading system is fully invested. We have all 10 slots already full. 10 trades are running because our position sizing is set to 10% of equity.

And since our holding time says that the trades will continue to run all day at least today, these slots will not become available anytime soon. So I can’t implement any of today’s signals. Only when a slot becomes available again (one of the open trades is finished) I can implement new signals and fill up this slot ( = start new trades).

And then there is one more thing:

Scenario 3 - We are partially positioned and need to make a decision

We have already occupied 8 slots out of the 10 possible slots. So 8 trades are running. 2 we may still add. And today there are 5 new signals coming. So from the 5 new signals I can start 2 trades. Once again, the Transaction Weight comes into play. It tells me which of the 2 I take from the 5. We will reveal how this works in the coming paragraphs.

Let’s draw a quick interim conclusion before we now talk about sorting the entry signals. Some days we don’t get any signals because none of our stocks meet the given entry rules.

On other days there are more signals than we can implement. Either because we are already (partially) positioned or because we simply get far too many signals. Here it helps to put the signals in order. To put them in an order that is associated with a value. 

We will now talk about this.

Transaction Weight - Sorting Signals

Let’s stay here with the example that I want to buy shares that have risen for 3 days. So I trade a pro-cyclical model (trend following) and look for the winners of the last days. As written above, on some days there will be many stocks in my portfolio that meet these criteria and on some there will be few or none.

But which stocks do I choose on those days when there are too many signals to implement within the framework of my position sizing (10% of equity = 10 trades maximum at the same time)? I have to think of a logic how to add another entry criterion in the second row to all those stocks that have risen for 3 days.

Now this does not mean this an additional classic entry rule. The thought is obvious at first: I simply add a second entry rule. But this does not solve the problem or maybe it is solving it only for today, because there may be other days when there are again too many signals despite 2 rules (or exaggerated: despite 17 entry rules…).

So I need a kind of “Main Entry Rule” and then – behind it – the second row – a Sub-Entry, which is equivalent to the “Transaction Weight”. How could such a combination look like?

Example: Main Entry: 3 days of increased prices. Sub Entry: those of them that have risen the most.

Of course, there are dozens of ways a sub rule (the “Transaction Weight”  can look like. And if we take a closer look at this sub rule that was mentioned earlier: “increased the most” is a bit inaccurate. Because how do we measure “most increased”? As a percentage? With ATR? With an indicator like a stochastic or the RSI?

We deliberately leave the answer open, because the principle applies: we take what works best. Whereby here still applies: what is “best”? Let’s leave it alone…

The Sub Entry is the Transaction Weight. The Main Entry is the actual Entry. The Weight sorts my entries now according to the principle that I probably rank the position (shares) right in front, which have risen particularly strongly. Because I want to buy the winners and here the particularly strong winners.

Note: of course, the logic could also be reversed. I buy the shares that have risen 3 days but then I deliberately sort those at the top that have risen the least strongly. This way I may avoid sorting out the hot stocks. As always, you have to backtest what works best.

Again for clarification: if I now get 23 signals, there will be of the 23 stocks that have risen 3 days particularly much or particularly little. All 23 have risen for 3 days, but they have risen by different amounts. And I use this to create a corresponding sorting (weighting/ranking) of the signals.

Thus I can select (see scenario 2) now from the 23 signals those 2, which rose most strongly. The other 21 also fulfill my entry rules, but they have simply not risen far enough to be implemented. So they are simply dropped.

Here is a screenshot you have already seen above. Now sorted by Position Priority. See the “Sigal Name” column on the right. The higher the value, the higher the Weight. 

By the way, the value after the slash in this column is the closing price of the previous day, which is used in End of Day strategies to calculate the position sizes.

Is a Transaction Weight mandatory?

To be clear: no. If you don’t use sorting, on some days (see the 3 scenarios) it has no consequences. Only when I have too many signals in relation to the available capital, the problem becomes striking.

If I do not use a “Transaction Weight” on such days, I have to choose individually from the umpteen signals. So I choose my entries discretionary. Some want that and consciously do without the Priority. But most traders are happy to have this decision taken away from them.

So with the Transaction Weight I create clarity in the implementation of trading strategies. But what about or in the development? What is the role of Transaction Weight in the development process and what are the implications of not having a weight in backtesting? Let’s see further.

The Transaction Weight in backtesting

One of the hurdles in system development of portfolio strategies is that, if we backtest without a “Transaction Weight”, we get different test results each time we run the test. This is not because the software is buggy.

It is because, in the absence of prioritization, we make different trades and thus different positions throughout the backtesting period.

Specifically: if the position lacks priority and we are on a day where we (let’s stay with the examples from above) get 23 signals, but at the same time may have a maximum of 10 trades running, the backtesting software has to decide “somehow” (due to lack of weight). So the software can only make a random selection from the 23 signals.

And this random selection is made again (anew) in every test run. And if you test 10 or 20 years into the past, there will be many such days where there were too many signals.

Pay attention to the line at the bottom of this screenshot. This is a section of a trades database. At the bottom you can see that 3.700 trades have been made in the last 20 years within this strategy.

Quite a lot. However, an extremely large number of trades could not be made (18.140) “Trades not included due to insufficient simulated capital”. So – you do not have enough money.

So if you do multiple tests without Weight , you may get wildly fluctuating test results, depending on the other entry and exit rules.

This has advantages and disadvantages, which we will now discuss. First the disadvantages.

No Weight - disadvantages

Fluctuating test results in the development means that one is often not sure whether a new test run now brings different results, because due to lack of weight of the position as described above the results simply fluctuate or because a parameter change is responsible for it.

Example: I test a stop loss with a value of 3%. Test result: x – now I make a new test run and try a stop of 3.5%. Test result different: y.

What is now “to blame” for the different test result? The change from 3 to 3.5% stop or the missing priotity, which produces fluctuating results every time anyway? It is impossible to say for sure.

In some cases, even without Weight, you can see that it must be a parameter change that is responsible for the new (different) results. Namely, when a test result suddenly changes massively. But even here there can be “outliers”. And how much is massive? So a certain uncertainty always remains when working without Priority in backtesting.

No weight - advantages

Can fluctuating test results also be good? Yes. In terms of the stability of the trading system. Because the more the test results vary, the more unstable the trading system is.

For this reason, developers who add position prioritization later (or not at all) make at least 3 (better 5 or 10) test or optimization runs for each setting. From this they calculate the average value and read the range of variation (e.g. standard deviation) of the test results.

If the individual test runs are close to each other, this indicates a stable trading system. If the results differ strongly, this could be an indication that the system might be somewhat unstable.

Conclusion Position Priority

The Transaction Weight or Position Priority is a practical tool that you should definitely use when you develop trading strategies and later trade live.

It facilitates the development process (no fluctuating test results) and it facilitates the implementation in daily live trading. Of course, you only need a sorting logic when you are portfolio backesting, because here you are not betting on just one position.

If the trader trades only one underlying (a position like a future or a currency pair) then he does not need to worry about the sorting of his signals. When trading stock portfolios, however, adding a transaction weight is essential.

Don't miss new posts - subscribe to our free newsletter service now