工作已完成
指定
Hello. I need to clean up the code of an EA. There are some things to delete, some to be remade better and above all, errors to fix.
Errors are two:
1) The EA gives an error in live trading, in backtesting not, but in live it gives sometimes the error "Order failed - Invalid TP/SL",
and when this error happens the order is not opened. Some say that is because the Stoploss and TakeProfit are too small, but I tried increasing them and the issue persist.
The developer should check on his own on M1 timeframe in Live that the error is fixed.
2) Testing with some brokers, in backtest it returns error "OrderSendError 130". This error should be fixed.
Then, regarding deleting parts and remake some parts better, I scrolled down the code and signed the parts to delete and the ones to check to be fixed:
- From line 77 to 86 in the properties under "Close Order Settings" and the relative parts in the code, should be deleted (down below I state where are these parts.
- The lines 75, 76 in the properties and the relative function in the code "IsFarEnough()", should be deleted (down below I state where are these parts).
- From line 114 to 119 in the properties under "Martingale Settings" and the relative parts in the code that use Martingale, should be deleted (down below I state where are these parts).
- From line 412 to 417 I think is useless, so it can be deleted, together with the relative parts in the code.
- At line 450 and 460 I added on my own the functions: (LastActionTime != Time[0]) and isDelayed(), which both together allow the EA to open only one order per candle after the open of the candle (if signal is true),
and when the order is closed by StopLoss or TakeProfit, the next order is always opened on the next candle if the signal on that candle is true. But these functions are not the best way to do this, so they should be replaced with better code.
I summarize how it should be: if signal is true, the EA should open only one order per candle, then after some candles the order is closed by Take Profit, then if signal is true on the same candle where order has been closed the EA should NOT open a new order on that candle,
but it should wait the next candle to open, so if the signal is true the EA should open an order only one time on that new candle...and so on.
- From 477 to 513 are Alerts, you can delete them, I don't use them.
- From Line 518 to 530 is CloseByTime() a function to close order that can be deleted, I don't use it.
- From 532 to 545 is function IsGoodTime, it's the timefilter, this one I use and you should check if there are no errors. And also for function IsFridayEvening(line 550-555) and function IsCloseTime(Line 560-567)
- From Line 569 to 760 is the main part, it should be checked if there are errors or bugs.
- From line 823 to 830 is Martingale, delete it.
- From 832 to 1020 should be checked for errors, it a buggy part: function Normalize Lots at line 905 is not used, but some parts of it are still used, it should be revised, or better deleted.
- Recovery() at line 1004 I don't know what is...
- From 1026 to 1086 are the functions that are called at lines 450, 460...as I said they should be replaced with better solution.
- From line 1090 to the end, delete all.
As you can see there are more things to delete than to fix. I hope that doing part of the work can speed up yours. I cannot delete them on my own because I'm afraid to delete something that is useful, it's better the developer do that.
I guess bugs are in the main parts, the ones to send orders or SL, TP, TrailingStop parts...
I request final mq4 file source code.
Thanks.
Regards