Product page MT4: https://www.mql5.com/en/market/product/33065
Product page MT5: https://www.mql5.com/en/market/product/35366
Product page LITE version MT4: https://www.mql5.com/en/market/product/39926
Product page LITE version MT5: https://www.mql5.com/en/market/product/39928
Grid King is a revolution in grid trading. The main focus when developing the EA was safety, by eliminating the margin-call risk which is usually associated with most grid systems on the market. It also strives to achieve much higher returns than the average grid system, by spreading risk amongst multiple pairs and strategies which all have a limited effect on the account-equity. Where almost all grid systems will blow your account when things get bad, Grid King will only take a small loss and recover very fast. More details about this in the blog.
The EA has been stress-tested for a period of 19 years and passes all those years succesfully without any high drawdown. (*Please use recommended accountsize guidelines -> see below)
The EA is also already optimized for 29 pairs, and more will follow in the future. In theory, any pair or market can be optimized for the algorithm.
The EA uses a unique Spread Equalizer Algorithm (S.E.A.), which dramatically decreases the impact of spread and slippage on the stability.
At the moment, 2 strategies are used for entry:
- "Volatility breakout" strategy, where the EA will trade in the direction of strong price movements.
- "Return to Mean" strategy, where the EA will exploit the fact that price always returns to the mean.
- very stable growth curve as result of smart averaging techniques
- "safety first" approach in development
- optimizable for any market
- ONLY grid-system on the market that passes 18 years of stress-tests on historical data on multiple pairs
- fully automatic
- Not sensitive to spread, commission, or account type, but ofcourse a low spread ECN broker will always work better and is recommended!
- On-Chart visualisation of TP zones
- Optimized pairs: EURUSD, GBPUSD, USDCAD, USDCHF, USDJPY, EURJPY, GBPJPY, AUDUSD, NZDUSD, EURAUD, EURCAD, EURGBP, AUDNZD, EURCHF, AUDCAD, AUDJPY, GBPCHF, AUDCHF, CHFJPY, CADCHF, CADJPY, GBPCAD, NZDCAD, NZDJPY, NZDCHF, GBPAUD, GBPNZD, EURNZD AND XAUUSD
- One of a kind S.E.A. (Spread Equalizer Algorithm), which greatly improves stability for bigger spreads and slippages. Recommended to use on all pairs
- Easy Setup: With the OneChartSetup, you can run all pairs from a single chart!
- Enable autosettings and run only the optimized pairs
- run only on H1 timeframe
- Run 1 chart for each pair or use the OneChartSetup to run all pairs from 1 chart.
- Use leverage of 1:300 or bigger. The EA will need enough free margin from time to time, so a high leverage is recommended.
- works on all brokers (non FIFO only for now)
- All account types are ok (standard, ECN, STP, Micro)
- As with any EA, it is recommended you run it first on a demo account to get to know the trading style of the EA
- It is recommended to start with default risk setting (conservative) until you understand how the EA is working
- Recommended to run on accounts nominated in EUR or USD for best performance of AutoSafety feature.
- You can use the same magic numbers for different pairs. But the 2 strategies must use a different magicnumber
- balance < 3000$ -> use a cent account with default settings.
- balance between 3000$ and 15000$ -> use default settings
- balance >= 15000$ -> Use 15K set file with GlobalSL (MT4 or MT5)
- It is only advised to run "Aggressive" or "Very Aggressive" mode when using the default settings, but not recommended!
- When running all pairs, "Very Conservative" or "Conservative" mode is advised
How to run backtests:
- Use tickdata 99.90% for most accurate testing
- use fixed spread or variable spread
- Choose H1 timeframe
- Choose period (for example 2007-2018)
- Use default parameters, or set risk settings to your taste.
- Use EUR or USD as account currency in tests
- When using Tickdata 99.90% -> use GMT=2 or 3
- All MT4 99.90% Tickdata (TDS2) Backtests -> Click here
- All MT5 tests using all different accounts sizes and hedging/Trailing TP mode: https://www.dropbox.com/sh/ru79n9ho5773wt0/AADFdVRYrvjO4i2qk07ncfEKa?dl=0
Doing your own optimizations:
Current live results:
- LIVE ACCOUNT (Low Risk) -> https://www.mql5.com/en/signals/505670
- DEMO ACCOUNT (Low Risk, Autosafety Off) -> https://www.mql5.com/en/signals/512858
- DEMO ACCOUNT (High Risk) -> https://www.mql5.com/en/signals/510731
- Grid King Low Balance multipair TEST -> https://www.mql5.com/en/signals/531880
- Grid King OneChartSetup 15% risk -> https://www.mql5.com/en/signals/535084
- DEMO ACCOUNT (Medium Risk) -> https://www.mql5.com/en/signals/510836
Grid King Safety explained:
As with all grid systems, the EA will use up margin when opening a grid, and there will be equity drawdown when the grid gets bigger. The EA survives without any problem 18 years of historical stress-tests, but I believe we should always be prepared for the worst-case-scenario. In Forex, you must always assume the best AND the worst are still to come! Most grid systems will horribly fail when this occurs, but Grid King is prepared! :-)
So lets assume that the market really goes against our original trade-position, and the grid keeps getting bigger and bigger. For a normal grid system, that usually means a margin call. This is the main reason why almost all grid system eventually result in a complete wipe-out of the account. This is where Grid King makes the big difference. Grid King runs on (currently) 14 pairs, with each having a maximum historical equity-drawdown of between 10-15% of the account's balance. The EA is programmed to protect the account from the worst case scenario by killing all trades from a pair, should the maximum of 18 year historical " equity drawdown" or "total drawdown in pips" be exceeded. So even if something would happen, and markets really turn against the open grid positions, the EA will take the safety-stop and you would still only lose between 10-15% of your balance (when using my recommended account setup). So when it happens in the future, and most grid systems would simply keep on increasing margin-usage and use up all equity, resulting in the complete destruction of your account, Grid King only takes a relatively small loss.
The default setting (AutoSafety) will use max historical DD values taken from the 99.90% tickdata tests using variable spread and commission (7$/lot). They were also tested against Alpari 90% historical data, which is also a very good quality dataset.
These are the values that will be used automatically for "Maximum total pips in loss (per 0.01lots) allowed" when using AutoSafety:
So Please keep in mind, when using the AutoSafety feature, that you account can handle the potential loss when a rare event should occur that causes the grid to become bigger than historically!
Also, what we can learn from this overview, is that AUDNZD for example has the best return VS drawdown ratio. This means that AUDNZD is likely to recover the fastest from a possible loss. This list can come in handy when selecting the pairs you want to run on your account.
All these values are based on a lotsize of 0.01lots (for the first trade of the grid) so keep in mind the historical max DD for each pair when chosing it for your accountsize.
You can also choose to disable the autosafety, and use a manual setting here (parameter "Maximum equity drawdown allowed (based on 0.01 startlots!)", and for example set the maximum loss per pair to 1200$. For a grid trading system, this safety system is unique and will make sure your account can survive all markets. Make sure to use my recommended accountbalance settings! Or contact me if you need help with the setup.
Here is a comparison for GBPUSD, without the "dramatic event" and then also "with the dramatic event" using the safety feature:
without any extreme equity drawdown:
When the historical maximum drawdown is exceeded at some point:
As you can see, the 'dent' in the growth curve is no disaster. It is nice to know that when it DOES happen, your account is still in safe hands.
When having multiple random "worst case scenario's" on multiple pairs, the longterm growth curve will look something like this:
Recovery is always very quick and so it is still a very smooth ride!
Does this mean the EA can not wipe out your account? Sadly the answer is no. But only when you don't follow my guidelines regarding accountsize and which pairs to run at what lotsize. If you would try to run all pairs on a 1000$ account for example, one day it will have a margin call. But follow my guidelines and there should be no problem... ever! In case of doubt, ask my help!
Tickdata (90%) historical tests from 2000-2018, minimum lotsize:
All Pairs together:
Some interesting facts when analyzing these numbers:
- Max loss for all pairs is around 1000$-1500$ when using 0.01lots. (In the future, I will try to get this max loss even lower, but for now I believe it is already a very good start.)
- Average monthly profit using all pairs is 1994$/month using 0.01lots
- That means that, even if we would hit a GRID-Close (worst case scenario for a grid) because max historical DD was exceeded, it would be recovered in less than 1 month's time! (When running all pairs..)
- I would also mean that even if a max loss of 1500$ would be hit, that month would still be profitable!
- While losses did not occur in historical performance with version 6.0, they might happen in the future. BUT: Even if we would hit a loss even every month, the EA would still make profits based on annual performance.
- Average montly profit is actually higher than 1994$, because some pairs don't have historical data before 2005, so the years 2003-2004 are lacking a lot of profits in the overview
monthly profit during backtests, based on accountsize and using my presets (see product description page):
- Default settings: around 900$ per month
- 15k Set file: around 2000$ per month (more risk)
NOTE: These results are based on backtests and are ofcourse no guarantee for future profits.
Reminder: Grid King is a GRID system. A grid system uses an averaging technique to avoid losses, and thus create a very stable growth curve. However, there is no way to avoid losses in Forex, and even the best grid systems eventually will have that loss. For most grid systems, that loss usually means margin call and losing all profits and also initial balance. With Grid King, as explained above, the loss can be very quickly recovered and the account will never be in danger. But you must follow the correct risk management, as to my recommendations. If you run many pairs at high risk setting, a margin call will surely be a possibility somewhere in the future. The good news is, you don't need aggressive settings to make a potential good return. So as a general rule of risk recommendation: the more pairs you run, the lower you should set your risk. If you want to run aggressive risk settings, do it with only a few pairs. When in doubt about how to set your risk, please contact me in PM, and I'll help you out.
- INFORMATION MODE: The EA will only show all on-chart information, but will not do any trades
- Suffix: fill in the suffix that your broker uses
- Use OneChartSetup (run multiple pairs from 1 chart): if you want to run multiple pairs from a single chart, you must enable this
- OneChartSetup_Pairs: here you can set which pairs to run from a single chart using the OneChartSetup. Pair-names must be in CAPITAL and seperated by a ";"
- Running Mode: Here you can choose to run the automatic mode (recommended) for the optimized pairs, or manual setup. The automatic mode will use automatically the best settings for the optimized pairs and will run both strategies from 1 chart. You can choose a risk level which will automatically choose the best lotsize for your account.
The different risk settings will basically determine the LotsizeStep based on the pair's historical max DD. Ofcourse, a lotsize smaller than 0.01lots is not possible, so Low Risk on a 1000$ account will still trade with 0.01lots, even thought that might be higher risk! (So please follow the accountsize guidelines).
So for example for EURUSD, the Max Loss allowed is 1500$ (on USD account) (see futher down below for more information about these values).
For Very Conservative Risk, the lotsizeStep will be 10X 1500 = 17700. So "first trade" lotsize would be 0.01 until account reaches 15000X2= 30000$. This basically means that the max loss would be 10% (if your accountsize is at least the size of the LotsizeStep
For Conservative Risk, the lotsizeStep will be 5X 1500 = 8850. So "first trade" lotsize would be 0.01 until account reaches 8850X2 = 15000$
For Medium Risk, the lotsizeStep will be 3X 1500 = 4500. So "first trade" lotsize would be 0.01 until account reaches 4500X2= 9000$
For Aggressive Risk, LotsizeStep would be 2X 1500
For Very Aggressive risk, lotsizestep would be 1500. And this would mean your maximum loss could be around 67% of your account for that pair. So use this information when setting up the EA and choosing your pairs!
There is also the option "Use Max Risk parameter". This will allow the user to set a maximum risk (loss in %) for the pair. You can set that risk in the parameter " Max Risk (% loss) for worst case scenario". For example, by default the value is 15 (%) so that means that the EA will select a lotsize for the pair, so that if the max historical loss is reached, it will not be more than 15% loss in the account. Ofcourse, minimum lotsize will always be 0.01lots, so the minimum risk will always be the maximum historical DD based on 0.01lots. There is an overview of these maximum historical DD for all pairs a bit further in the blog!
Ofcourse, you can also choose manual lotsize selection. You must then set either the lotsize you want to use in "StartLots" (Autolotsize=false), or you simply choose the LotsizeStep (Autolotsize=true), which will link a fixed amount of money to 0.01lots
When setting the autosettings=OFF -> the EA will use manual selected parameters for entry and grid. When selecting any other autosettings-mode, the EA will disregard the parameters from the entry and grid section, and will use all pre-optimized settings for each of the recommended pairs.
- Do not trade pair if possible loss > Max Risk: When you enable this parameter, the EA will NOT trade the pair, if the possible loss would be bigger than the maximum allowed loss (set automatically by the AutoSafety feature, or manually with the parameter " Maximum equity drawdown allowed (based on 0.01 startlots!)", which is explained further down.
- AutoSafety Options: Here you can set HOW the EA will act when historical max DD is reached. There are 4 options:
- A) do not use autosafety;
- B) Close the grid when Max Loss is hit.
- C) Use Trailing TP Closing Algorithm. (See Trailing TP Closing Settings)
- D) Hedge grid when max loss is hit and stop trading the pair. (See Hedge Breakdown settings)
- E) don't close or hedge, but show a warning to the user
- AutoSafety Value, per 0.01 lots (0=use optimized value): This will overide my default optimized Max Loss values when using the Autosafety. You can set the value here that you want to use.
- Allow autosafety extra room (in% 0-100) before triggering closing of grid: this will give the autosafety grid closing some extra room. So if the autosafety would normally close the grid at 1000$ equity DD, and you put in this parameter "20", it will close the grid at 1200 instead of 1000$.
- Run Strategy 1 when using autosettings: enable strategy 1 when running autosettings
- Run Strategy 2 when using autosettings: enable strategy 2 when running autosettings
- Portion of Balance to use (0-1: percentage; >1:fixed $/€ amount): Here you can limit the portion of balance to be used by the EA. A value between 0 and 1 (for example 0.5) will use a percentage of the balance (this case 50%). A value bigger than 1 will be used as absolute value (so a value of "10000" would mean the EA will use 10000$/€ from your account for the EA)
- StartLots: lotsize for the first trade when not using autolotsize
- autolotsize: enable automatic lotsize calculations based on balance
- LotsizeStep: the EA will use 0.01lots for every X amount of balance. For example LotsizeStep=5000 -> lotsize for first trade will be 0.01lots on a 5000$ account, 0.02 on a 10000$ account and so on.
TRAILING TP CLOSING SETTINGS: (use the attached presets for my personal best settings for this option -> DOWNLOAD )
- % of Max Loss before starting Trailing TP: Set "when" the trailing TP must start (in % of Max Loss value)
- Trailing TP Distance (% of grid high VS low): Set where the TP level must be. It will be based on a % retracement between highest and lowest grid trade
- Use Max Loss as SafetyStop: execute a full stoploss for the pair if the Max Loss value is hit
- Hedge At Max Loss: Hedge the pair instead of closing when Max Loss value is hit. It will then follow the rules set in the "Hedge Breakout settings"
- Hedge At Trailing TP: when Trailing TP is hit, the EA will hedge the grid if the profit is negative.
HEDGE BREAKDOWN SETTINGS:
- Hedging Breakdown - number of days: Set the number of trading days in which the hedge will be closed down (step by step)
- Maximum % of day-profit to be closed (0=disabled): you can set the maximum percentage of the Day's profit that is allowed to be closed by the breakdown algorithm
- Hour at which daily partial hedge close will occur: here you can set the hour of the day (brokertime) at which the hedge breakdown closing will happen
- Maximum number of hedged pairs allowed: Set the maximum number of hedged pairs. If a new hedge is placed, the oldest hedge will be closed
- Minimize grid before setting hedge: This will minimize the total number of lots as much as possible before the grid is hedged. So there will be less swap costs afterwards.
- Continue trading the hedged pairs: This will make the EA continue trading a pair when that pair is hedged
- IMPORTANT NOTE: It is recommended to use it on bigger account sizes because there should be enough equity/margin left for trading at all times.
- Maximum number of trades allowed : Maximum number of open trades (per trade direction)
- Maximum lotsize for the first trade: Maximum lotsize for the first trade
- Maximum lotsize for the biggest trade: Maximum lotsize for the biggest trade
- WaitForNewCandle: the EA will wait until the next candle opens before setting trades
- RetryFailedTrades: the EA will retry trades that failed (for example during market swap)
- Entry Mode Selection: Select the entry strategy -> Volatility breakout; Return to the mean or Manual Trading
- entry trigger based on pips: minimum candle size for entry based on absolute pip-value
- entry trigger based on ATR: minimum candle size for entry based on ATR
- Atr Period: ATR Period
- Atr Timeframe: Timeframe used for ATR
- MA_Timeframe: Timeframe used for Moving Average
- MA_Period: Period of Moving Average
- MA_Price: Applied Price for Moving Average
- MA_Mode: Mode selction for Moving Average
- entry trigger based on pips: minimum candle size for entry based on absolute pip-value
- entry trigger based on ATR: minimum candle size for entry based on ATR
- Atr Period: ATR Period
- Enable automatic grid expansion: This is for the Manual Trading mode. When disabled, the EA will only put new grid trades when the user manually does it with the on-chart buttons. When enabled, the EA will also automatically add trades to the grid once the first trade is set by the user.
- Grid_Timing: Timeframe used for consecutive trades
- GridStep: Minimum distance between trades
- GridInitialStep: Minimum distance between first 2 trades
- TP for first trade: TP for first trade at candle closing
- flash TP for first trade: TP for first trade at every tick
- TP for grid trades: TP for open grid at candle closing
- flash TP for grid trades: TP for open grid at every tick
- Grid_Mode: Select how consecutive trades must increase in size
- Fast Recovery Factor (2=double lotsize during recovery): If you set it to "2", the EA will use 2X the normal lotsize after a loss, until the EA is making new highs
- Fast Recovery Loss Threshold (per 0.01lots): This will set the minimum loss-size before the fast recovery will start (per 0.01lots)
- Start Reverse Grid at trade X: The will force a trade in the opposite direction if a grid is getting bigger than X trades
- Enable hard SL at X pips from MaxLoss line (-1=disabled): if you set the value at X pips (> 0), the EA will put a hard SL at X pips from the SL level
- Enable hard TP at X pips from MaxLoss line (-1=disabled): if you set the value at X pips (> 0), the EA will put a hard TP at X pips from the TP level
- Minimum equity (in %) compared to balance: Do not trade (first trade) when equity is below this number. So for example when you use the default value (70) that means that a pair will not start setting its first trade if equity is lower than 70% of the balance. This is to protect the account from opening another grid, if there is already a bigger grid open from another pair or pairs.
- Minimum free Margin (in %) compared to balance: Do not trade (first trade) when free margin is below this number. So for example when you use the default value (70) that means that a pair will not start setting its first trade if free margin is lower than 70% of the balance. This is to protect the account from opening another grid, if there is already a bigger grid open from another pair or pairs.
- Minimum free margin per 0.01lots before setting first trade: works like the parameter above, but using a amount in $/€ instead of a percentage.
- Maximum total equity drawdown allowed before setting first trade (per 0.01lots): Do not trade (first trade) when the total equity drawdown is bigger than this value (calculated per 0.01lots)
- Maximum total equity drawdown allowed before closing biggest grids (per 0.01lots): (you must disable the Max Loss closing first in the safety-settings or trailing TP settings) This will make the EA only close the pairs who have exceeded their Max Loss value IF the total equity DD exceeds the value set here in this parameter.
- Currencies for correlation filter (ex. "JPY;CHF;"): Here you can fill in the CURRENCY-NAMES which you want included in the Correlation Filter. For example: if you fill in "JPY", the EA will check all JPY pairs for correlating trades. In the next parameter, you can set how many correlated pairs can trade at the same time.
- Max number of correlated pairs trading simultaneously: Here you can set how many different pairs are allowed to have correlated trades
- Maximum number of other pairs allowed before starting to trade: this will limit the number of maximum number of pairs that can open trades together. !! THE EA MUST USE THE SAME MAGICNUMBERS FOR DIFFERENT PAIRS FOR THIS TO WORK !!
This option can be used when you want to run more pairs then the recommended number, on smaller accounts. For example on a 3000$ account, you could run 6 pairs (select non-correlated pairs!) but set this parameter=2. So then the EA will only run 3 pairs at the same time
- Do not trade strategies in same direction: this will make the EA trade only 1 strategy per trade direction. So if one of the strategy has already long trade, the second strategy will not open trades until they are closed.
- Use Spread-Equalizer algorithm (recommended!): this enables the S.E.A. algorithm for much more stable performance on bad spread or slippage.
- Quick Close S.E.A. Start At Trade: This will make the EA look at grids both using virtual spread (S.E.A.) and real spread, and will close if one of them is in profit.
- Add Swap costs to grid closing algorithms: this will make the EA include the swap costs into the calculations that determine when to close the grid
- Magicnumber for strategy A: Magicnumber for "Volatility Breakout" strategy
- Magicnumber for strategy B: Magicnumber for "Return to the Mean" strategy
- comment: Trade comment
- Draw TP Lines ("false" for faster backtesting..): Draw TP lines on chart
- Show chart info ("false" for faster backtesting..): Show infopanel ("false" for faster backtesting..)
- disable all chart drawing during testing (faster testing): for faster backtesting
- Color TP line ST1: color selection
- Color Flash TP line ST1: color selection
- Color TP line ST2: color selection
- Color Flash TP line ST2: color selection
21/11/2018: Newly added "Manual Trading" mode:
In this mode, there will be 2 new buttons on the chart: "Open Buy" and "Open Sell". With these buttons, the user can start trading and start adding grid trades manually. The EA will NOT run any entry algorithm in this mode, but there is the option to automatically trade the grid once the first trade is opened by the user. To enable this mode, you must set "Running Mode=manual settings for entry and grid" and then "Entry Mode Selection=Manual Trading". the EA will use MagicnumberA for all trades. In this mode, no automatic settings will be used, so make sure you set your grid parameters like you want them to be.
A) Set Running Mode=manual settings for entry and grid
B) Set Entry Mode Selection=Manual Trading
C) Set you lotsize settings in the "Manual Lotsize Setup" section
D) Set you grid parameters (all of them like you want your grids to unfold)
E) Set the parameter "Enable automatic grid expansion" to your liking. "true" would mean the EA will automatically add trades to the grid once you started a trade. It will use the grid parameters that you set in your grid settings. "False" would mean that the EA will not automatically add grid trades, but will wait for the user to add another trade
The user can add trades with the "open buy" and "open sell" buttons on the chart (they will only appear after you setup the EA for manual trading)
Try first in a demo environment, to make sure it does what you want it do to :-)
There is also another way to have the EA follow up on your manual trades:
Open the EA on 1 chart (EURUSD H1) using these settings:
- Magicnumber for strategy A = 0 (manual trades in MT4 always use magicnumber "0")
- Maximum number of pairs allowed to trade simultanuously = -1 (this will prevent the EA from starting new grids by itself)
- Disable the S.E.A. (Spread Equalizer Algorithm) because it can't log manual trades.
This way, the EA will not start any grids by itself, but it will follow up on all manual trades on any of the 29 pairs.
It is advised to ONLY open the first trade for the pair, and not manually add more trades to the grid. Let the EA handle that.