This issue relates to the dialog box found under Format Signals/Properties/Backtesting/Backtesting Assumptions
Sadly I just lost a long post I made, which seriously annoyed the hell out of me. I will now try to keep the post shorter and to the point.
The "Backtesting Assumptions" dialog box needs to change to 2 choices, as currently it does not do what is intended correctly.
My suggestion is to split it into 2 choices, one relating to BIDS prices (Buys/Short covering) and the other to ASK prices (Shorts & Sells).
Why? I will try to explain. The discussion only relates to LIMIT ORDERS, and is particularly important for forex traders, where the SPREAD is everything.
It is absolutely essential for everyone, including MC support staff and software engineers to understand that Buy and sell orders MUST be treated differently.
When executing buys, it is ONLY the ASK price that is relevant, and when executing sells, it is ONLY the BID price that is important.
Also, appreciate that the vast majority of back testers are only plotting the BID/traded price. We can sometimes add the ask, but in most cases it is simply not needed nor relevant, and only complicates the back testing.
Currently, the 'Fill limit order when trade price goes beyond limit price by' makes the SAME order/fill adjustment for both buys AND sells. THIS IS 100% FLAT OUT WRONG.
When trying to buy at a limit, we need to adjust for 2 things. The spread, and the amount price must exceed our buy limit order to make sure we are reliably filled. This becomes more important the larger our order size is. So for example, let's assume we have a buy order in the EURUSD which has a 6 tick spread @ 1.15250. Now since the plotted price on our screen is the BID, it means we must actually see traded/Bid price drop to 1.15244 or lower to get filled. Currently we can accurately do this via the checkbox under 'backtesting assumptions' Great. So we would put in a value of say 7 (6+1) to make sure we got filled.
Now lets move to sells or shorts. We have a limit order to sell @ 1.15350. This means we only need to see the charted bid/traded price to show 1.15350 to be filled, and perhaps add 1 tick for reliability. But what your back test will in fact show is that you don't get filled because we put in a value of 7, as per the prior paragraph. Price would need to show a value of 1.15357 to be filled. THIS IS 100% FLAT OUT WRONG. All we need is 1.15350 or 1.15351. The only adjustment required is the 1 tick for reliability of fills. This issue gets even worse when dealing with Forex markets that have progressively wider spreads.
I hope everyone can understand what I have explained, and begin to appreciate the PROFOUND importance of getting this right is. I'm actually shocked that we are up to V12 and this has continued unchanged since whatever version it originated in. Perhaps most MC users are futures traders where this is less of an issue.
I need MC support and their software engineers to fully appreciate this is a serious problem and needs to FIXED ASAP.
My suggestion is to split the dialog box into 2 choices. One that impacts Buys, and one that impacts sells. These 2 boxes will ALWAYS have different values. Simply because the plotted price is only the BID/trade price. In the FOREX market you will NEVER be filled on a buy at the bid. In the futures markets this is less of an issue, and perhaps why this problem hasn't come to the surface sooner.
If anyone has any further comments, insights, corrections or suggestions, please speak up as soon as possible. And PLEASE Vote to have this corrected, even though the whole concept of voting on a bug fix is utterly absurd.