V2 is in post 1, with all the latest fixes.
I tracked down the cause of the basket pips thingy not working. It took me over two hours, because I am an idiot. With the markets closed, I was able to load up Desky and see him immediately try to close my trades with BasketTargetPips = 500 - despite the position being about -900.
I sifted through every block of code in OnInit() first, then OnTimer(), inserting an Alert and return after each block.
This eventually took me to this line of code:
pips = (int) CalculateTradeProfitInPips(OrderType()); - do a search for it as there is only the one instance.
This was returning ridiculous results, so I looked at double CalculateTradeProfitInPips(int type). Do the same and you will see the dummy mistake immediately e.g.
profit = bid - OrderOpenPrice();
The 'bid' variable was set to whatever it was after its last iteration through the loop in OnTimer().
The solution is to go back to void CountTradesForGlobalBasket(), scroll down to:
if (!BetterOrderSelect(cc, SELECT_BY_POS, MODE_TRADES) ) continue;
and add this immediately underneath:
GetBasics(OrderSymbol());
This populates the add, bid etc variables with the correct price.
And that took me more than two sodding hours.
Hey ho.

Read the effing manual, ok?
Afterprime is the official SHF broker. Read about them at https://www.stevehopwoodforex.com/phpBB3/viewtopic.php?p=175790#p175790.
I still suffer from OCCD. Good thing, really.
Anyone here feeling generous? My paypal account is always in the market for a tiny donation. pianodoodler@hotmail.com is the account.
To see The Weekly Roundup of stuff you guys might have missed
Click here
My special thanks to Thomas (tomele) for all the incredible work he does here.