Overview
SimpleCoreRanger is a grid commerce (repeat kind) EA that trades quick and lengthy within the center value vary, and solely quick or solely lengthy on the fringe of the chart.
- Pairs || No restrictions. All pairs obtainable.
- It may be used not just for FX pairs reminiscent of “EURUSD” and “USDJPY”, but additionally for “S&P500 (CFD)”, “XAUUSD (futures)”, “BTCUSD (cryptocurrency)”, and so on.
- Minimal required Deposit || You possibly can alter.
- Timeframe || Month-to-month timeframe is really helpful.
- Through the use of month-to-month timeframe, your MT5 can get extra historic information
SalesPage
Performances
Actual account efficiency
You possibly can verify the EA efficiency on mql5 sign
Backtest consequence on MT5
You will get the zip file of seven years backtest resiult on the underside
Logic and Parameters
right here is paramerter’s abstract.
After this, you’ll be able to see element parameter clarify(Parameters are enclosed in [].)
| Parameter | Roll | Utilization |
|---|---|---|
| debugMode | Output log | When true, log will seem on Journal. |
| magicNumber | Distinguish trades | Set a worth that doesn’t overlap with different EAs |
| stopEquity | Secure perform | New place just isn’t open if present fairness is decrease than stopEquity. To disable, set 0. |
| stopMarginLevel | Secure perform | New place just isn’t open if present cease margin levelis decrease than stopMarginLevel To disable, set 0. |
| stopDrawDownPer | Secure perform | New place just isn’t open if present draw down is decrease than stopDrawDownPer To disable, set 100. |
| spreadLimit | Secure perform | New place just isn’t open if present supread is over spreadLimit To disable, set 99999999….. |
| threat | Lot calcuration | Commerce lot is robotically calcurated by threat. threat and lot parameters can’t be set at he identical time. To disable, set 0. |
| lot | Lot calcuration | Commerce lot is robotically calcurated by threat. threat and lot parameters can’t be set at he identical time. To disable, set 0. |
| pricePeriod | Logic | Decide what number of month-to-month bars to make use of for calculation |
| coreRange | Logic | Decide What value vary is the core vary. |
| positionHalf | Logic | Decide what number of positions EA have outdoors the core vary. |
| positionCore | Logic | Decide what number of positions EA have within the core vary. |
| minTP | Logic | Minimal tp(by pips) {that a} place can take |
| maxTP | Logic | Most tp(by pips) {that a} place can take |
| sl | Logic | cease loss(by pips) To disable set 0 (No cease loss) |
Figuring out the grid vary
On this EA, a buying and selling technique is made based mostly on the very best value (Highest) and lowest value (Lowest) of the previous [PricePeriod] months from the present candlestick.
The calculation formulation for every merchandise is as follows.
Highest = highest value within the final [PricePeriod] months
Lowest = lowest value within the final [PricePeriod] months
CenterLine = Distance / 2 + Lowest
Distance = Highest – Lowest CenterLine = Distance / 2 + Lowest
These values are used to calculate the “interval” for making trades.
About buying and selling
- All trades are made with market orders. No restrict orders
- In consequence, it’s now attainable to suppress trades when Unfold is expanded
- Buying and selling strategies are roughly divided into inside and out of doors the core vary
- Inside the core vary, each quick and lengthy trades are made
- Solely quick trades above the core vary
- Solely lengthy trades beneath the core vary
The higher restrict of the core vary is coreHighest, and the decrease restrict is coreLowest.
CoreHighest = CenterLine + Distance * [coreRange]
CoreLowest = CenterLine – Distance * [coreRange]
core vary: from CoreLowest to CoreHighest
TakeProfit and commerce “interval” for every place

There’s one positionin in the identical route for every “interval”.
The calculation formulation of “interval” is as follows.
interval = Distance * ( 2 * [coreRange] ) / [positionCore]
But when interval < [minTP]pips then interval = [minTP]
But when interval > [maxTP]pips then interval = [maxTP]
interval = Distance * ( 1- 2 *[coreRange] ) / [positionHalf]
But when interval < [minTP]pips then interval = [minTP]
But when interval > [maxTP]pips then interval = [maxTP]
In different phrases, if you have already got a place inside the higher or decrease interval from the present value, the commerce is not going to happen.
Additionally, the take revenue worth of the place (TakeProfit) is identical worth because the interval.
Principally, the utmost variety of positions can be near [positionHalf]+[positionCore], however not if the interval is lower than [minTP]pips or greater than [maxTP]pips.
Cease loss
By default, no cease loss is supplied as a result of the essential technique of thie EA is to not set a cease loss.
you’ll be able to set stoploss by pips.
The worth of stopplos can be,
Stoploss(Lengthy commerce) = Ask – [sl]pips
Stoploss(Brief commerce) = Bid – [sl]pips
※ No cease loss is supplied when you set [sl] = 0(Default setting)
Concerning the variety of heaps
Two strategies can be found: fastened lot methodology and variable lot methodology.
If the variety of heaps is lower than the minimal lot specified by the dealer, the commerce is not going to happen.
Fastened lot methodology
Within the fastened lot methodology, lot is decided by the next formulation.
Variable lot methodology
Within the variable lot methodology, lot is decided by the next formulation.
lot = free margin * [risk] / margin required to purchase 1 lot of buying and selling pair
- When the drawdown turns into giant, it’s attainable to cut back the lot quantity and enhance the lot quantity when there’s room to do compound curiosity buying and selling with decreased threat.
- Simple to steadiness when buying and selling a number of pairs.
- For instance, when buying and selling 1 lot, the required margin is completely different between EURUSD and USDJPY, so with the fastened lot methodology, the guess can be biased in the direction of one of many pairs.
- Within the floating lot methodology, this downside doesn’t happen as a result of the lot is decided based mostly on the surplus margin.
※When utilizing variable heaps, the variety of heaps is calculated based mostly on free margin, so the upper the leverage, the extra free margin and the upper the chance than anticipated. Watch out when altering leverage.
※When utilizing variable heaps, set [lot] to 0.
secure perform
- Pause buying and selling if the present unfold is larger than or equal to [spreadLimit]
- To disable, set [spreadLimit] = 99999999…
- Pause buying and selling when present fairness is lower than [stopEquity]
- To disable, set [stopEquity] = 0
- Pause buying and selling when the margin degree falls under [stopMarginLevel]
- To disable, set [stopMarginLevel] = 0
- Pause buying and selling when drawdown exceeds [stopDrawDownPer]
- To disable, set [stopDrawDownPer] = 100
magicNumber
To determine the place managed by this EA, set [magicNumber] in order that it doesn’t overlap with different EAs.
This EA operates solely on the positions related to [magicNumber].
Log

Troubles that happen on the EA are displayed on the higher left of the chart.
When you activate [debugMode], you’ll be able to verify the log not solely on the higher left of the chart but additionally on MT5 Journal
※When debugMode is ON, if too many logs accumulate, MT5 and machine storage could also be squeezed and malfunction might happen. Please take note of the remaining storage capability when utilizing.
About optimization
Larger efficiency will be achieved by optimizing the pair you need to use.
- When managing a number of pairs, threat diversification will be anticipated by selecting pairs with much less correlation.
- Specify the minimal lot (0.1 or 0.01) for [lot].
- Set [coreRange] < 0.5.
- Set [risk] = 0
- It’s advocate to disable secure features
- It’s really helpful to make use of “Complicated Criterion Max” for optimization analysis
- For optimization, I like to recommend a testing interval of not less than 3 years.
- To keep away from curve becoming, it’s endorsed to dedicate half of the testing interval to ahead testing.
The really helpful optimization objects are as follows.
Please alter whereas consulting together with your preferences and machine specs.
| Variable | Begin | Step | Cease |
|---|---|---|---|
| pricePeriod | 1 | 1 | 96 |
| coreRange | 0 | 0.05 | 0.5 |
| positionHalf | 1 | 1 | 50 |
| positionCore | 1 | 1 | 50 |
| minTP | 10 | 5 | 100 |
| maxTP | 101 | 10 | 301 |
※When you really feel that the machine energy just isn’t sufficient, we advocate utilizing MQL5 Cloud Community.
The error messages whereas optimization
When you get the error messages like under, optimization might not work.

It’s higher to cofirm the element of errors by “Visualize check”
Run Visualize check with suspicious parameter set.
And you may verify the element of errors(Alert message)
Optimization consequence pattern (2015/05~2022/07)
The very best settings when optimizing on the writer’s machine are as follows.
| Variable | Worth |
|---|---|
| pricePeriod | 24 |
| coreRange | 0.2 |
| positionHalf | 23 |
| positionCore | 35 |
| minTP | 50 |
| maxTP | 260 |
| Variable | Worth |
|---|---|
| pricePeriod | 5 |
| coreRange | 0.05 |
| positionHalf | 34 |
| positionCore | 31 |
| minTP | 55 |
| maxTP | 150 |
| Variable | Worth |
|---|---|
| pricePeriod | 93 |
| coreRange | 0.3 |
| positionHalf | 31 |
| positionCore | 11 |
| minTP | 34 |
| maxTP | 140 |





