Understanding MultiWalk’s use of trade size
For years MultiWalk has fixed the trade size to 1 contract during optimization to honor Kevin Davey’s testing methodology. However, in May 2025, MultiWalk now allows you to change the default trade size to better facilitate non-futures instruments, such as stocks and Forex pairs.
However, this has introduced some nuances that are explained in this article. Also see this article for additional information.
There are three elements in MultiWalk concerning trade size:
- Default fixed trade size setting
- Maximum trade size setting
- The strategy variable MultiWalkNumContracts in the actual optimized and walkforward strategy code.
In MultiWalk settings:
In MultiWalk Optimized Strategy Code:
In MultiWalk Walkforward Strategy Code:
Default Fixed Trade Size
If you do not specify the number of position units in your buy/sellshort statements (see MultiWalkNumContracts below and more information in this article), then MultiWalk will use the position size specified in the Default Fixed Trade Size setting. In other words, specifying the units in buy/sellshort statements will OVERRIDE this MultiWalk setting. For example, if you wanted to develop algorithms for stocks, you could set the trade unit size to 100 shares in MultiWalk and not specify the unit size in your buy orders, such as “Buy next bar at market” instead of “Buy 100 shares at market”.
However, slippage and commission will always be based on 1 share, regardless of the number of shares you specify in the Default Fixed Trade Size setting. So set slippage and commission values correctly based on 1 size unit.
Maximum Trade Size
The Maximum Trade Size is only used when optimizing the strategy in MultiWalk. Now that trade size can be specified in MultiWalk, this setting needed to be set in TradeStation’s Optimization API so that it was less than the trade size. Therefore, it will effect the optimizations in MultiWalk, but will NOT effect the walkforward strategy when you apply it to a TradeStation chart. The walkforward strategy does not enforce the same value used in MultiWalk so that any position sizing can be used when running the strategy live.
Therefore, you must set this value your self with in the strategy code in the buy/sellshort entry orders, or in TradeStation. TradeStation sets the maximum trade size extremely high, so you may want to reduce that for your own trading needs:
MultiWalkNumContracts
Unless you want to test the effect of multiple contracts during optimization for futures, KEEP THE DEFAULT FIXED TRADE SIZE TO 1. This is the original behavior of MultiWalk and follows Kevin’s Strategy Factory rules when developing algorithms. This does not mean that you must only ever trade 1 contract when actually trading. MultiWalk provides a strategy variable for position sizing, or you can use your own.
However, it is strongly suggested that you use MultiWalk’s MultiWalkNumContracts variable since this may be used in the future by MultiWalk for special re-optimizing synchronization modes or other purposes and MultiWalk will need to know the number of contracts that are being traded. You would use MultiWalkNumContracts in your buy/sellshort entry order statements as follows:
- Buy MultiWalkNumContracts contracts next bar at market
- SellShort MultiWalkNumContracts contracts next bar at market
The default value used for MultiWalkNumContracts in your strategy code will be set according to the values you used in MultiWalk configuration settings.
So if you have this in MultiWalk:
Then the strategy code produced by MultiWalk in both optimzied and walkforward strategies will be this:
MultiWalk optimzied strategy code:
MultiWalk walkforward strategy code: