Some issues and a suggestion:
1) I tried the latest version 3.02 in MT4, I found same issue that happened with One-Click Trade Pro EA when the EA and Symbol Changer indicator are on same chart. If you try to switch to another symbol with the symbol changer while the EA is still on chart, the MT4 app will freeze for several seconds.
The solution is you have to exit the OnDeinit method immediately when the reason is REASON_CHARTCHANGE (which is triggered by the symbol changing), so the code would look like:
MQL4:
void OnDeinit(const int reason)
{
if (reason == REASON_CHARTCHANGE) return; // Add this code
ObjectDelete(0, ObjectPrefix + "StopLossLabel");
ObjectDelete(0, ObjectPrefix + "TakeProfitLabel");
ObjectDelete(0, ObjectPrefix + "TPAdditionalLabel");
ObjectDelete(0, ObjectPrefix + "SLAdditionalLabel");
...
}
I had shown this solution before in One-Click Trade Pro thread:
https://www.earnforex.com/forum/threads/one-click-trade-pro.45419/page-2#post-207430
I don't know the technical details of the cause, but it looks like the object and chart methods like
ObjectDelete and
ChartGetInteger will cause temporary hang on the MT4 app when they are called in OnDeinit method when the deinit reason is REASON_CHARTCHANGE.
However, with this solution, you can't call the
"GlobalVariableSet("PS_ChartChange_" + Symbol(), (double)ChartGetInteger(ChartID(), CHART_WIDTH_IN_PIXELS));" code that you put inside the
"if (reason == REASON_CHARTCHANGE)" block at line 374 as it involves
ChartGetInteger method call that would hang the MT4 app. So you have to find a workaround on how to save the chart width into global variable when the symbol is changed.
2) For MT5 version, when I clicked the
Take-Profit button, the created TP line isn't in selected mode automatically, so I have to double-click the line if I want to move the line. The MT4 version already has correct TP line behavior where the created TP line is in selected mode automatically.
3) A little suggestion, could you add buttons to close all opened orders and delete all pending orders on current chart in the EA? I have a separate EA for these operations, but it will be nice if these functions exist in the Position Sizer EA too, so everything can be done in just one EA which will be convenient in scalping situation.