• 概述
  • 评论 (13)
  • 评论 (204)
  • 新特性

NightWalker EA

Before you buy a night scalper please be aware of the risks involved:

1) Past performance is no guarantee of future profitability (the EA could also make losses). 

2) The backtests shown (e.g. in screenshots) are highly optimized to find the best parameters but therefore do not give a realistic prediction of future profitability.

3) Any mean reversion can get caught on the wrong side of a fast movements due to unexpected news or flash crashes. This strategy will always use a stop loss, but still execution of the SL depends on your broker.

4) Night scalpers are dependent on good brokerage conditions, like low spread and slippage, which might be worse on high lot sizes.

This is a multi symbol mean reversion system that trades during the second half of the NY session and start of Asian session. You only need one chart opened to trade all symbols. 

It does not use martingale or grid and uses fixed stop losses for every position. 


Time frame: M1

Max. drawdown in 16 year backtest: $83 per 0.01

Minimum deposit: $300 - $1000 (smaller deposits will have higher percentage risk)

Live monitoring (my signals are also using the breaking news filter)

Additional information and backtests

The default settings are stored within the EA. Please read the blog post for instructions on how to set up the EA.

  • Best used with a broker that has low spreads during the night. Many brokers have extreme spreads around swap time. Contact me if you want to analyze the spread at night.
  • To use the calendar news filter, please allow requests to:
    http://breaking.fxdata.cc (only needed if you use the  breaking news filter)
    (Tools -> Options -> Expert Advisors -> Allow WebRequests for listed URL)
  • Even with news filter, you should look for major events like elections and disable the EA during those nights.


The EA saves historic data internally, so it is best to run it continuously on a VPS.

General Trade Settings

  • dailyEquityStopPercentage: IMPORTANT: please read point 6 in the blog post.
  • symbols1/2 - Two comma separated lists of symbols to trade. Suffix needs to be included if your broker uses one.
  • magic - Individual magic number for the strategy
  • lotType - "fixed" or "increasing", where the lot size is calculated automatically.
  • fixLots - fixed lot size in case lotType = fixed
  • lotStep - how much the lot size should be increased every equityPerStep (if lotType = increasing).
  • equityPerStep - how much equity is needed for one lot step (if lotType = increasing).
  • equityHardStop - if the equity falls below this level, the EA will close positions of this strategy and will not open new positions.
  • maxSpreadPips - if the spread is below this value the entry will be allowed (pending orders will not be closed on high spread).
  • maxSpreadRelativeToAverage - If the spread is smaller than the average spread multiplied with this factor, trades are allowed even if the spread is larger than maxSpreadPips (but not if it is larger than 2*maxSpreadPips).
  • maxPositionsAllSymbols - Maximum number of open position on all symbols
  • maxCurrencyPositions - Maximum positions per currency
  • pipInPoints - For 5-digit brokers 10, for 4-digit brokers 1
  • debugMode - To print some numbers into the log, which can be used to analyze the trades.

Time Settings

  • liveGMToffset - To set GMT offset manually. Usually this is not needed.
  • weekdaysToTrade - To determine which weekdays to trade. 0 is Sunday, 1 Monday, ..., 5 is Friday. 
  • currenciesNeverAllowedFriday - Can be used to filter out some currencies that would not be allowed to trade Friday even if weekdaysToTrade allows it. 
  • minTradeIntervalMinutes - minimum time between opening of orders on the same symbol
  • waitAfterLossMinutes - After a loss the EA will wait the duration specified before looking for new entries.
  • filterTripleNegativeSwap - If on, the EA will not open trades on Wednesday before swapHourGMTwinter when the swap is negative (to avoid triple swap on Wednesday). If set to auto, only some of the symbols will be allowed. 
  • swapHourGMTwinter - Swap hour (in winter) used if dontTradeWednesdayNegativeSwap=true.

For further parameters please see the list at the end of the blog post.

Guilai Zhang
Guilai Zhang 2020.01.26 16:39 

I think this is the best EA in mql5,I used it for more than one year, and got good result. and the author is very helpful. One more I use NY Close Scalper together just like the author in his signal. Very good job!

drnsf 2019.08.30 19:44 

I waited a long before the review trades 90% not profitable in aaafx.The developer although is excellent , very helpfull .The problem is that the first hour of asian session has now very high spreads something that didn't happen some years before.

peronpmt4 2019.07.18 08:07 

Terrible last two nights!

Comparing my trades with your signal they are always a bit worse despite having installed the Expert on different ICM accounts with different VPS and different servers !!

Last trades better!!

Gianluca Bonfanti
Gianluca Bonfanti 2019.03.04 08:19 

Added to my portfolio

Lucy 2019.01.30 15:23 

In my view, this EA is one of the quite outstanding EA in his products. I cannot find any reasons why this one is cheaper than the others whereas I understand he has a priority when to improve.

Martin Volk
Martin Volk 2019.01.28 19:40 

Great long term

FrankN 2018.12.18 21:49 

I'm very satisfied with the EA. It's furthermore constantly improved by the Author.

I use it in combination with the other EA from Authors portfolio for "trading at night".

Liji Chen
Liji Chen 2018.12.03 09:06 

Very stable EA, has been used for a few months, if you want a higher profit, you can set the risk high, the retracement is not high!

Bernhard Falkner
Bernhard Falkner 2018.09.22 19:18 

Very good Ea with sl and tp profitable and "safe"

Fast Support and author always helps

Fr4ktal 2018.08.24 20:20 

Roman is skilled and honest developer. His backtests posted in the comments sections are simulated with reasonable conditions, such as delay, commisions and variable spread. Not many sellers are showing live signals or strict backtests like this. I will update on performance within few months.

Gerhard Füssel
Gerhard Füssel 2018.08.03 10:09 

Since more than 2 months now this EA is running on my live accounts and it's durable profitble with a very good riskmanagement. The support of Roman is great and he is very helpful. So i give a 5 star recommendation as i'm convinced it's a great EA not just for now but for a long time.

Marcus Nyman
Marcus Nyman 2018.06.28 23:09 

Roman is a real thrustworthy author, his products have never let me down. I own a whole lot of scalper systems and this is the most stable I have tried out so far. A real pleasure to run through every night's trade in the morning with good results. Backtests seem to correlate with the live account. Two thumbs up!

z28hayse 2018.04.07 01:01 

sound logic I made the decision to use this based on the great performance of the momentum capture ea, also you are trading on live accounts and showing the true results. It seems to me that using them together on separate accounts would greatly smooth out the equity and balance increases. Best support I have seen on here, always striving to improve.

版本 4.2 2020.04.23
- New default settings only allow max 4 positions (maxPositionsAllSymbols=4).
- Did some internal optimizations.
版本 4.1 2020.03.16
- Added parameter useStockDataFromBreakingNewsFilter. If true, it will also use the SP500 percentage change data from the breaking news filter (if you have it running in your MT4 terminal). This is useful if your broker does not have a stock market symbol.
- Exchanged the old internally stored S&P500 stock index M30 data with M5 data for a better accuracy while backtesting. Data is available from 2003 until 2020.03.06. The stock market filter was also optimized.
- Added option "Auto" for tripleSwapDay parameter. It will then determine the triple swap day from the MT4 information and print it in the expert log on initialization. Some brokers use Wednesday (=3) and some use Thursday (=4).
版本 4.0 2020.02.05
Version 3.9 had a bug in the news filter. Please update as soon as possible.
版本 3.9 2020.01.29
- Corrected a small mistake.
版本 3.8 2020.01.29
- I have updated the news filter and GMT offset solution to be consistent with the latest version of my other EAs.
版本 3.7 2019.10.31
On some MT4 terminals the old version would not open trades in tester on pairs that use limit orders, like AUDCAD, because it seems that some brokers set MODE_TRADEALLOWED to false for strategy tester. The new version will not check this parameter for tester.
For live trading this update does not make a difference, so you only have to update if you want run backtests on AUDCAD, AUDNZD and EURNZD.
版本 3.6 2019.10.26
IMPORTANT: if you use a broker with EU DST, please update this weekend!

Changes for the new version:
- The old auto GMT solution would not work for brokers with EU DST. The new one will check the GMT offset when both EU and US DST changes.
- The Japanese holiday filter on Sundays will now only filter JPY and CHF since those are the most risky currencies with regards to flash crashes.
版本 3.5 2019.10.16
- GMT auto solution was changed to make it less dependent on Windows time.
- Added a function to calculate DST, which should be correct until 2099.
- If the execution fails for some reason, the EA will now try to reopen the position on the next tick.
版本 3.4 2019.08.26
Changes to the default settings:
maxPositionsAllSymbols = 5
maxCurrencyPositions = 2
版本 3.3 2019.08.25
- If there are too many open positions, pending orders are delete on next tick in the new version. The old version would only delete them at next M1 bar.
- Modified the entry signal slightly after optimizations.
版本 3.2 2019.07.24
- Added parameter neverReduceLotSize. If true and lotType=increasing, then the EA will not decrease the lot size when the balance is reduced (e.g. in drawdown).
IMPORTANT: This will also be the case if you withdraw some of the money. This option will be ignored if the margin is not enough to cover the previous lot size.
- Added parameter weekdaysToTrade, which can be used to filter out any weekday. Therefore, tradeFriday and tradeSunday variables have been removed.
- Reduced trading hours for USDCHF and USDJPY.
版本 3.1 2019.05.11
The triple swap settings were changed. There is now a variable filterTripleNegativeSwap, which can be set to on, off or auto.
If auto is selected, only some of the symbols will be allowed to trade before triple swap.
版本 2.7 2019.01.28
- From version 2.7 on, the EA can use the Breaking News Filter: https://www.mql5.com/en/market/product/35212

- Added a parameter stopLoss for those who want to define an own value or do some optimizations.

- Changed the DST tester settings. Now there is a parameter testerDataHasDST. Set it true if you want to backtest on data with DST, like GMT+2/+3 time zone.
版本 2.6 2019.01.07
- Important note: Please check that the new parameter dailyEquityStopPercentage is correct for your risk settings. I added it as a protection against extreme events like the flash crash on 2nd Jan. Please read point 4 in the blog post for more information:

- As a result of the flash crash on 2nd Jan, I added parameters stopDayDecember and startDayJanuary so that users can decide whether or not to pause trading during the low liquidity period around New Year.

- Added exitLossesOnStockMarketCrashTrigger parameter. Set it to true if you want the EA to close filled positions when the crash filter triggers. Default is false.

- Added startHourGMTwinter and endHourGMTwinter for those who want to change the trading hours or want to run own optimizations.
版本 2.5 2018.12.04
- Default settings are changed to tradeFriday=false, so NightWalker will no longer have exposure over the weekend. Some symbols are still better in backtests with holding position over the weekend but I prefer not to have the increased risk. In the comment section I will publish a comparision for the portfolio.

- All calculations that used daily bars are now using hourly bars to make it more consistent between brokers with different GMT offset.

- Fixed an issue with the GMT offset during the first minutes after market open in case the EA was initialized during the weekend.
版本 2.4 2018.11.14
Added a parameter currenciesNotAllowedFriday to automatically disable currencies on Friday without the need of a second chart. I am using the default currenciesNotAllowedFriday=GBP. This parameter will only be used in live trading, not backtests.
版本 2.3 2018.11.01
- Now the EA will also close pending orders when the stock market crash filter triggers.
- Other small improvements for the stock market crash filter.
版本 2.2 2018.10.24
- Added EURCAD to the default symbol list.
- Added historic SP500 data starting from 2003 to the EA file and optimized the stock market crash filter from 2003-2018.
- Added a new parameter maxPercentageIncrease to prevent trading on days with an extreme increase in stock market during the last 8 hours (0 = auto settings for each pair).
版本 2.1 2018.10.16
A "stock market crash filter" was added. It will not allow trading on days where there is a large drop in stock markets. It will only trigger on negative movement. There are two new parameters for this:

stockIndexSymbol - Here you have to insert the symbol for the S&P500 index, which is used for this filter. The default is set for ICMarkets where it is called "US500", but it might be different on your broker. To disable this filter, set the parameter to an empty string.
maxPercentageDecline - In case you want to set your own value. If it is 0, auto settings will be used, which are different for each pair in the range of 1.1 to 2.4 percent.

The EA has historical SP500 data stored internally, so it will also work on backtest (until the date of the last update). You don't have to change the stockIndexSymbol for backtests.
版本 2.0 2018.09.12
When checking for possible entries version 1.9 sometimes applied the parameter waitAfterLossMinutes after a loss on another symbol. Version 2.0 will only apply it after a loss on the symbol that is currently checked.
版本 1.9 2018.09.03
- Trading hours have been optimized. Now the EA will have a smaller time window. This way it has less trades but the return/risk was higher on backtests. A smaller time window also reduces the risk of unexpected news.
- A parameter maxCurrencyPositionsFriday=2 was added to reduce the risk over the weekend.
- I removed EURGBP from the default settings. We already have 4 better GBP pairs. With maxCurrencyPositions=3 an additional pair will not increase the total profit much and EURGBP always had the worst backtest from all current pairs.
版本 1.8 2018.08.30
- Optimization of entry parameters
- Changed default settings to maxSpreadPips=5 and maxPositionsAllSymbols=6.
版本 1.7 2018.08.02
- Improved exit logic.
- Added symbols USDCAD, USDJPY and CHFJPY to default settings.
- Added a parameter liveGMToffset so that those who have problems with time zone settings of their VPS can chose GMT offset manually.
- The EA will now save the historic data in files in the directory \MQL4\Files\NightWalker_history and load from that data after initialization. This way the EA will not need to wait hours before being able to trade. So users can modify the settings or restart the VPS during the weekend and the EA will still be able to trade Sunday night.
Be aware that the EA will always load from that data as long as it is not older than 2 days (Monday or Tuesday 4 days are allowed) and the difference to the last close is less than 50 pips.
Therefore, if you disable the EA during the week for a longer period it might be best to delete the historic data.
版本 1.6 2018.07.18
- There is a new parameter maxCurrencyPositions=3, which means that we will only open a maximum of 3 positions for one currency. If you want to be more conservative, you could set it to 2 or even 1.
- Slightly improved exit logic.
- The EA will now check entry/exit every new minute instead of every new bar, which might improve consistency between different price feeds.
- It is now possible for me to add additional events in the database that NightWalker will use in its news filter (but Momentum Capture will not). This way, I can disable a currency for one night if there is some non-calendar risk event.
版本 1.5 2018.06.07
- The SymbolSelect() function, which caused significantly higher CPU usage, will now only be called at the initialization of the EA.
- Trading hours for EURNZD changed by 1 hour.
版本 1.4 2018.05.18
Another small update because of GMT time. The old version determined the GMT offset from the broker's server. To make the time independent of the broker's server in case it is not available, the new solution is:
- To calculate GMT offset it will use MetaTrader 4 GMT time which depends on local PC time.
- Use MetaTrader 4 broker time for minutes and seconds (because local PC time could be off by a few seconds or more).
- Check only once on connection to the broker's server whether the MetaTrader 4 GMT time is correct. If it is not correct, an alert message will be shown.

Also, the EA will now automatically add missing symbols to the market watch.
版本 1.3 2018.05.11
- Some of the symbols will now use limit orders if allowLimitOrders=true.

- The EA will no longer use TimeGMT() function which depends on local PC time, but will determine GMT offset itself. It will also adjust for DST in summer.

- The time of the next news event will show on the chart as a visal feedback that the news filter is working.

- Added better spread control:
maxSpreadPips - If the spread is below this value (in pips) the entry will be allowed (old pending orders will stay active and not be closed on high spread).
maxSpreadRelativeToAverage - If the spread is smaller than the average spread multiplied with this factor, the trade will be allowed even if the spread is larger than maxSpreadPips (but not if it is larger than 2*maxSpreadPips).
版本 1.2 2018.04.11
- The TP values are slightly modified.

- Because slippage can be very important for night trading systems, the EA will now monitor slippage. It will display the average slippages for market orders, take profits and stop losses on the chart.
It will also save the slippage for each symbol into a separate file in directory /MQL4/files/NightWalker_slippage/ (only for live trading not for tester).
版本 1.1 2018.03.29
- Did a few small optimizations.

- Until now, the EA only used Bid price for internal candle calculation. Now it will use the "Mid price" (Bid+Ask)/2. I hope that this way it will be more consistent with backtest and between brokers because the spread wil have a smaller influence.

- It will now only open orders after at least 3 hours of being initialized. This way we avoid wrong positions in the first minutes when the EA has not yet gathered enough data on non-chart symbols.

- Added the debugMode parameter. If true it will print out some values for analysis. If you experience different positions compared to my signal, you can send me the log files to analyze the output.