Hi Steve, I hate giving the last words to computer bloops making them think they outsmarted us, it gives them confidence and I don't want that
I might have found the bugger for the "double" open trades :
in the start() function, the check for buy is done before readindicator :
starts at line 4168 If (ObjectFind(buyline) > -1)
it calls HasBuyFilled() who calls SetUpAndSendTrade who removes the buyline on success.
After this, you call ReadIndicatorValues, that draw the buyline if OpenTrades == 0.
As the countopentrades as not yet been called for this run, it is 0, so it draws again the buyline.
Nothing then is called to redelete the buyline, until price crosses again the buyline (hence opening a new main trade, making the EA consider it is a valid basket)
Moving the has buy/sell filled trigger code part after the countopentrades might solve the issue.
I would also suggest to move the MAcross SL to MACross +/- 10 pips (or whatever seems good) to prevent the immediate closure when the buyline is very close to the MA60 on M5.