Signals and filters
Directional change filter
^{(starting from v2.44)}
Directional change filter allows to filter entries based on previous closed trade direction and its profit.
Directional change filter type
Disabled: filter disabled
Change dir after loss:
 allows BUYs after profitable BUYs / after losing SELLs
 allows SELLs after profitable SELLs / after losing BUYs
Change dir after profit (starting from v2.58):
 allows BUYs after losing BUYs / after profitable SELLs
 allows SELLs after losing SELLs / after profitable BUYs
Big candle filter
^{(starting from v2.12)}
Big candle filter analyzes candle (current or previous, depending on Analyze current bar parameter) from the specified timeframe and allows entry only if candle size is in the specified range.
Big candle filter type
 Disabled: filter disabled
 Big candle in any direction:
 both BUYs and SELLs are allowed only if High  Low >= Big candle min size and High  Low <= Big candle max size (or max size = 0)
 Codirectional big candle only:
 BUYs are allowed if High  Open >= Big candle min size and High  Open <= Big candle max size (or max size = 0)
 SELLs are allowed if Open  Low >= Big candle min size and Open  Low <= Big candle max size (or max size = 0)
 Opposite big candle only:
 BUYs are allowed if Open  Low >= Big candle min size and Open  Low <= Big candle max size (or max size = 0)
 SELLs are allowed if High  Open >= Big candle min size and High  Open <= Big candle max size (or max size = 0)
Big candle min size
Min candle size in points to activate signal (what is a “point”?).
Big candle max size
^{(starting from v2.44)}
Max candle size in points to activate signal (what is a “point”?).
Set 0 to disable max size check.
Big candle TimeFrame
TimeFrame to analyze candle size.
Analyze current bar
Set true to analyze current bar, false to analyze previous (formed) bar.
Oscillator filters #13
Filter type
Type of oscillator signal:
 Disabled: filter disabled.
 Inside zone:
 BUYs are allowed if oscillator <= LevelDn
 SELLs are allowed if oscillator >= LevelUp
 Cross In:
 BUYs are allowed when oscillator crosses LevelDn downwards
 SELLs are allowed when oscillator crosses LevelUp upwards
 Cross Out:
 BUYs are allowed when oscillator crosses LevelDn upwards
 SELLs are allowed when oscillator crosses LevelUp downwards
 Cross MA:
 BUYs are allowed when oscillator crosses MA based on its line below the LevelDn
 SELLs are allowed when oscillator crosses MA based on its line above the LevelUp
For example:
 Above/below MA (starting from v2.35):
 BUYs are allowed if oscillator > MA based on its line and <= LevelDn
 SELLs are allowed when oscillator < MA based on its line and >= LevelUp
 Reversal (starting from v2.52):
 BUYs are allowed if oscillator turns UP below the LevelDn (middle bar should be below the level)
 SELLs are allowed if oscillator turns DOWN above the LevelUp (middle bar should be above the level)
Indicator
Indicator used for oscillator signal.
Can be one of the following:
 CCI
 WPR
 RSI
 Stochastic K
 Stochastic D (starting from v2.21)
 Momentum (starting from v2.16)
 Force Index (starting from v2.56)
TimeFrame
TimeFrame to calculate signal.
Main Period
Period of oscillator (K period for Stochastic)
Applied price
Applied price for CCI and RSI
MA Period
MA period for Cross MA mode
MA Method
MA method for Cross MA mode
Stochastic Slowing period and Price
Stochastic parameters
Level UP
Signal level for sell signals
Level DN
Signal level for buy signals.
Set 999 to calculate it automatically based on Level Up (for faster optimization).
For Stochastic and RSI, level is mirrored from 50:
 Up = 90 —> Dn = 10
 Up = 70 —> Dn = 30
 Up = 50 —> Dn = 50
For WPR – from 50:
 Up = 10 —> Dn = 90
 Up = 20 —> Dn = 80
 Up = 50 —> Dn = 50
For CCI – from 0:
 Up = 100 —> Dn = 100
 Up = 150 —> Dn = 150
 Up = 0 —> Dn = 0
Reverse mode
Reverse all Oscillator signals.
Use closed bars only
^{(starting from v2.35)}
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
Default value for Oscillator filters is true
IdentifyTrend filter
Enable IdentifyTrend filter
^{(starting from v2.03)}
If true:
 BUYs are allowed if IdentifyTrend is blue
 SELLs are allowed if IdentifyTrend is red
Set false to disable this filter.
You don’t need the IdentifyTrend indicator file for the correct work of EA. However, you can get it here, if you want.
IdentifyTrend TimeFrame
TimeFrame for the IdentifyTrend filter
IdentifyTrend Price, IdentifyTrend Period
Price and period for IdentifyTrend calculation
IdentifyTrend Reverse mode
^{(starting from v2.14)}
Reverse all IdentifyTrend signals (Buy on Red and Sell on Blue)
IdentifyTrend use closed bars only
^{(starting from v2.14)}
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
Default value for IdentifyTrend is false.
TDI filter
^{(starting from v1.01)}
TDI – is a wellknown oscillator based on RSI:
You don’t need the TDI indicator file for the correct work of EA. However, you can get it here, if you want
TDI filter mode
^{(starting from v2.27)}
TDI filter type, can be one of the following:
 Disabled  TDI filter is disabled
 Market Base Line > Signal Level:
 BUYs are allowed if TDI yellow line is >= Signal level
 SELLs are allowed if TDI yellow line is <= Signal level
TDI TimeFrame
TimeFrame for the TDI filter
Signal level
^{(starting from v2.27)}
Signal level for signal calculation
TDI indicator parameters
^{(starting from v2.27)}
 RSI period and price
 RSI smoothing period and method
 Signal smoothing period and method
 Volatility bands period
 Standard Deviations
TDI Reverse mode
^{(starting from v2.14)}
Reverse all TDI signals
TDI use closed bars only
^{(starting from v2.14)}
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
Default value for TDI is true.
MACD filter
MACD filter Type
^{(starting from v2.16)}
Type of MACD filter:
 Disabled: MACD filter disabled
 Buy on Main > 0 / Sell on Main < 0:
 BUYs are allowed if MACD histogram > Signal Level
 SELLs are allowed if MACD histogram < Signal Level
 Buy on 2 growing bars / Sell on 2 reducing bars:
 BUYs are allowed if MACD is growing (value on the last bar is greater than previous one)
 SELLs are allowed if MACD is reducing (value on the last bar is less than previous one)
 Buy on 3 growing bars / Sell on 3 reducing bars:
 BUYs are allowed if MACD is growing 3 bars in a row
 SELLs are allowed if MACD is reducing 3 bars in a row
 Buy on Main > Signal / Sell on Main < Signal:
 BUYs are allowed if MACD histogram > MACD Signal line
 SELLs are allowed if MACD histogram < MACD Signal line
 Main and Signal cross:
 BUYs are allowed on the bar where MACD histogram crosses MACD Signal line upwards
 SELLs are allowed on the bar where MACD histogram crosses MACD Signal line downwards
 Main and Signal cross >/< 0:
 BUYs are allowed on the bar where MACD histogram crosses MACD Signal line upwards below the Signal Level
 SELLs are allowed on the bar where MACD histogram crosses MACD Signal line downwards above the Signal Level
 Buy on Signal > 0 / Sell on Signal < 0 (starting from 2.35):
 BUYs are allowed if MACD signal line > Signal Level
 SELLs are allowed if MACD signal line < Signal Level
 Buy on Main > Signal and Signal < 0 / Sell on Main < Signal and Signal > 0 (starting from 2.35):
 BUYs are allowed if MACD histogram > MACD Signal line and MACD signal line < Signal Level
 SELLs are allowed if MACD histogram < MACD Signal line and MACD signal line > Signal Level
 Main cross 0 (starting from v2.48):
 BUYs are allowed on the bar where MACD histogram crosses Signal Level upwards
 SELLs are allowed on the bar where MACD histogram crosses Signal Level downwards
 Signal cross 0 (starting from v2.48):
 BUYs are allowed on the bar where MACD Signal line crosses Signal Level upwards
 SELLs are allowed on the bar where MACD Signal line crosses Signal Level downwards
MACD TimeFrame
TimeFrame for the MACD filter
MACD Signal Level
^{(starting from v2.53)}
Signal level for all filter types where it is used
MACD indicator parameters
 MACD Fast period
 MACD Fast method
 MACD Slow period
 MACD Slow method
 MACD Signal period
 MACD Signal method
 MACD Applied price
MACD Reverse mode
^{(starting from v2.14)}
Reverse all MACD signals
MACD use closed bars only
^{(starting from v2.14)}
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
ADX filter
Type
Type of ADX filter:
 Disabled: filter disabled
 Buy on +DI <= level / Sell on DI <= level:
 BUYs are allowed if +DI value <= Signal level
 SELLs are allowed if DI value <= Signal level
 Buy on +DI >= level / Sell on DI >= level (starting from v2.52):
 BUYs are allowed if +DI value >= Signal level
 SELLs are allowed if DI value >= Signal level
 Buy/sell on +DI crosses DI up/down when ADX >= level:
 BUYs are allowed if ADX >= Signal level and +DI line crosses DI line up
 SELLs are allowed if ADX >= Signal level and +DI line crosses DI line down
 Buy/sell when ADX >= level (starting from v2.52):
 Both BUYs and SELLs are allowed if ADX >= Signal level
TimeFrame
TimeFrame for the ADX filter
Period Applied price
ADX indicator parameters (for MT4 only)
Signal level
Signal level value
Reverse mode
If true, buy signals replaced by sell signals and vice versa.
Use closed bars only
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
Default value for ADX is true.
DTrend filter
^{(starting from v2.35)}
Type
Type of DTrend filter:
 Disabled: filter disabled
 Buy > level / Sell < level:
 BUYs are allowed if indicator value > Signal level
 SELLs are allowed if indicator value < Signal level
 Buy on rise / Sell on fall:
 BUYs are allowed if indicator grows
 SELLs are allowed if indicator falls
 Buy on bottom / Sell on top:
 BUYs are allowed if indicator starts to grow
 SELLs are allowed if indicator starts to fall
TimeFrame
TimeFrame for the DTrend filter
DTrend indicator parameters
 MA1 period
 MA2 period
 D period
 Scalar
Signal level
Level value for Buy > level / Sell < level mode
Reverse mode
Reverse all DTrend signals
Use closed bars only
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
Default value for DTrend is false.
Parabolic SAR filter
^{(starting from v2.29)}
Signal Type
Type of Parabolic filter:
 Disabled: filter disabled
 Direction:
 BUYs are allowed if price is above the Parabolic
 SELLs are allowed if price is below the Parabolic
 Signal:
 BUYs are allowed if price crosses the Parabolic upward
 SELLs are allowed if price crosses the Parabolic downward
TimeFrame
TimeFrame for the Parabolic filter
Step Maximum
Parabolic indicator parameters
Reverse mode
Reverse all Parabolic signals
MA Filters
^{(starting from v2.15, refactored in 2.53)}
MA Filter Type
Type of MA filter:

Disabled: MA filter is disabled
 Buy below MA / Sell above MA:
 BUYs are allowed if current price is below the MA by Distance:
 MA  price >= Distance
 SELLs are allowed if current price is above the MA by Distance:
 price  MA >= Distance
 BUYs are allowed if current price is below the MA by Distance:
 Buy on cross DN / Sell on cross UP:
 BUYs are allowed if price crosses the MA upward by Distance:
 MA  price >= Distance [on current bar]
 MA  price < Distance [on previous bar]
 SELLs are allowed if price crosses the MA downward by Distance:
 price  MA >= Distance [on current bar]
 price  MA < Distance [on previous bar]
 BUYs are allowed if price crosses the MA upward by Distance:
 Buy on rising MA / Sell on falling MA:
 BUYs are allowed if the MA rises with a slope >= Angle
 SELLs are allowed if the MA falls with a slope >= Angle
Price depends on the “Use closed bars only” parameter:
 If “Use closed bars only” = false:
 Price on current bar = Ask for BUYs, Bid for SELLs
 Price on previous bar = Open price of the previous bar
 If “Use closed bars only” = true:
 Price on current bar = Open price of the current bar
 Price on previous bar = Open price of the previous bar
TimeFrame
TimeFrame for MA filter
Moving Average properties
 MA Period
 MA Method
 Applied price
Distance / angle calculation type
Distance / angle calculation type:
 In points: fixed distance in points / fixed angle in points per bar is used (what is a “point”?)
 Volatility * Coefficient: distance is calculated as “current volatility * Coefficient” / angle is calculated as “current volatility * Coefficient” per bar
Distance / angle value
Distance or angle value for signal calculation.
Distance can be negative (so, in Buy below MA mode, BUYs will be allowed if Ask above the MA, but not more than by distance points).
Angle is set in points per bar (for example, 1.5 points per bar means MA changed by 1.5 points), or as “current volatility * Coefficient” per bar (for example, if volatility = 20 points, and Distance / angle value = 0.1, MA should change by 20*0.1 = 2 points per bar to generate signal).
Angle value also can be negative, so in Buy on rising MA mode BUY will be allowed on falling MA, but it shouldn’t fall too fast (slope still should be >= Angle).
Max Distance / Angle value
^{(starting from v2.55)}
Max distance / angle value.
For example, if Distance value = 10, Max Distance value = 20, Buy below MA signal will be active if Max Distance >= MA  price >= Distance.
Set 0 to disable this limit.
Reverse mode
^{(starting from v2.53)}
Reverse all Moving Average (MA) signals
Use closed bars only
^{(starting from v2.53)}
Use only closed (formed) bars.
If true, the signal can’t change in the middle of the bar.
Line Filters
^{(starting from v2.55)}
Line filter allows to use a graphical object as a filter.
Activate it with specific Object name, create a trend or horizontal line on the chart with the EA, and rename it with the same name as you set in filter parameters.
Attention
Chart objects don't work in the MT5 visual tester mode, so you can test it on history in MT4 onlyLine Filter Type
Type of Line filter:

Disabled: Line filter is disabled
 Buy below Line / Sell above Line:
 BUYs are allowed if current price is below the line by Distance:
 Line  price >= Distance
 SELLs are allowed if current price is above the Line by Distance:
 price  Line >= Distance
 BUYs are allowed if current price is below the line by Distance:
 Buy on cross DN / Sell on cross UP:
 BUYs are allowed if price crosses the Line upward by Distance:
 Line  price >= Distance [on current bar]
 Line  price < Distance [on previous bar]
 SELLs are allowed if price crosses the Line downward by Distance:
 price  Line >= Distance [on current bar]
 price  Line < Distance [on previous bar]
 BUYs are allowed if price crosses the Line upward by Distance:
Price depends on the “Use closed bars only” parameter:
 If “Use closed bars only” = false:
 Price on current bar = Ask for BUYs, Bid for SELLs
 Price on previous bar = Open price of the previous bar
 If “Use closed bars only” = true:
 Price on current bar = Open price of the current bar
 Price on previous bar = Open price of the previous bar
TimeFrame
TimeFrame for Line filter
Object name
Name of the graphical object to use as a Line filter
Distance calculation type
Distance calculation type:
 In points: fixed distance in points is used (what is a “point”?)
 Volatility * Coefficient: distance is calculated as “current volatility * Coefficient”
Distance value
Distance value for signal calculation.
Distance can be negative (so, in Buy below Line mode, BUYs will be allowed if Ask above the Line, but not more than by distance points).
Max Distance value
^{(starting from v2.55)}
Max distance value.
For example, if Distance value = 10, Max Distance value = 20, Sell above Line signal will be active if Max Distance >= price  Line >= Distance.
Set 0 to disable this limit.
Reverse mode
Reverse all Line filter signals
Use closed bars only
Use only closed (formed) bars.
If true, the signal can’t change in the middle of the bar.
Pivot Filter
^{(starting from v2.56)}
Pivot symbol
Symbol to calculate Pivot. Leave empty to use current symbol.
Pivot calculation mode
Pivot calculation mode can be one of the following:
 Classic
 Woodie
 Camarilla
 Fibonacci
 Demark
Pivot TimeFrame
TimeFrame to calculate Pivot
Check Interval
Pivot signals can be checked on every tick, or on every bar of the specified TimeFrame.
Use Every tick for the most accurate signals.
Distance calculation type
Distance calculation type:
 In points: fixed distance in points is used (what is a “point”?)
 Volatility * Coefficient: distance is calculated as “current volatility * Coefficient”
Visualization properties
Enable visualization to understand signals better. You can choose:
 Lines width
 Lines style
 Pivot Level Color
 Support Levels Color
 Resistance Levels Color
Set Lines width = 0 to disable visualization.
Pivot Level #14 properties
Type
Type of Pivot filter:

Disabled: filter disabled
 Buy below Level / Sell above Level:
 BUYs are allowed if current price is below the level by Distance:
 Level  price >= Distance
 SELLs are allowed if current price is above the level by Distance:
 price  Level >= Distance
 BUYs are allowed if current price is below the level by Distance:
 Buy on cross DN / Sell on cross UP:
 BUYs are allowed if price crosses the level upward by Distance:
 Level  price >= Distance [on current bar]
 Level  price < Distance [on previous bar]
 SELLs are allowed if price crosses the level downward by Distance:
 price  Level >= Distance [on current bar]
 price  Level < Distance [on previous bar]
 BUYs are allowed if price crosses the level upward by Distance:
Price depends on the “Use closed bars only” parameter:
 If “Use closed bars only” = false:
 Price on current bar = Ask for BUYs, Bid for SELLs
 Price on previous bar = Open price of the previous bar
 If “Use closed bars only” = true:
 Price on current bar = Open price of the current bar
 Price on previous bar = Open price of the previous bar
Use level
Level to use as a filter:
 Pivot Level
 Support / Resistance #1
 Support / Resistance #2
 Support / Resistance #3
 Support / Resistance #4
For example, if Use level = Support / Resistance #2 and Type = Buy below Level / Sell above Level, BUYs will be allowed if Ask below the Support #2 and SELLs will be allowed if Bid above the Resistance #2.
For some Pivot calculation modes, not all levels are available.
Distance value
Distance value for signal calculation.
Distance can be negative (so, in Buy below Level mode, BUYs will be allowed if Ask above the level, but not more than by distance points).
Max Distance value
Max distance value.
For example, if Distance value = 10, Max Distance value = 20, Sell above Level signal will be active if Max Distance >= price  Level >= Distance.
Set 0 to disable this limit.
Reverse mode
Reverse all Pivot filter signals
ZigZag Filter
^{(starting from v2.30)}
ZZ filter type
Type of ZZ filter:
 Disabled: ZZ filter disabled
 Extremum break

BUYs are allowed on the bar breaking UP the last formed extremum of ZZ:

SELLs are allowed on the bar breaking DOWN the last formed extremum of ZZ:

 Trend continue (last broken extremum direction)
Can be used as a filter to other signals.

BUYs are allowed after the last UPbreak and till the next peak of ZZ is formed:

SELLs are allowed after the last DOWNbreak and till the next bottom is formed:

 Reversion point

BUYs are allowed when the DOWNsection of ZZ is forming and the distance between the last top and the current price becomes big enough:

SELLs are allowed when the UPsection of ZZ is forming and the distance between the last bottom and the current price becomes big enough:

 Countertrend (distance from last extremum)
Can be used as a filter to other signals

BUYs are allowed when the DOWNsection of ZZ is forming and the distance between the last top and the current price is big enough:

SELLs are allowed when the UPsection of ZZ is forming and the distance between the last bottom and the current price is big enough

TimeFrame
TimeFrame for ZZ filter
ZZ indicator properties
 Period
 Min Amplitude
 Min Motion
Distance type
Distance calculation type:
 In points: fixed distance in points is used (what is a “point”?)

Volatility * Coefficient: distance is calculated as “current volatility * Coefficient”:
 Average ZZ size * coefficient: distance is calculated as “average size of 10 last ZZ segments * Coefficient”
 Extremum bar size * coefficient (starting from v2.43): distance is calculated as “extremum bar size * Coefficient”, where extremum bar size for UP extremums = high  min(open, close), extremum bar size for DN extremums = max(open, close)  low:
Distance size (Points / Coefficient)
Distance size for signal calculation.
Distance can be set negative (so, in Extremum break mode trade will be opened before X points before extremum break)
Use previous unbroken extremums
^{(starting from v2.43)}
If enabled, previous (unbroken) extremums will be used after the last extremum is broken:
Reverse mode
Reverse all ZZ signals
Use closed bars only
Use only closed (formed) bars. If true, the signal can’t change in the middle of the bar.
Visualization parameters
^{(starting from v2.43)}
 Visualize levels (true/false)
 Fill rectangle (true/false)
 Color UP
 Color DN
Enable visualization to understand signals better.
Volatility for MA and ZZ Filters
^{(starting from v2.15)}
Volatility Indicator
Indicator used for the Distance calculation for the MA and ZZ Filters.
Can be one of the following:
 ATR
 StDev
 ATR based on CloseOpen (high and low prices not used)
 WATR
 Volume (don’t use for this block!)
TimeFrame and Period
TimeFrame and Period of volatility indicator
Volatility Filter
Volatility Filter Indicator
^{(starting from v2.15)}
Indicator for the Volatility Filter:
 Disabled: Volatility Filter disabled
 ATR
 StDev
 ATR based on CloseOpen (high and low prices not used)
 WATR
 Volume (starting from v2.29)
 OBV (starting from v2.59)
Volatility Filter TimeFrame
TimeFrame for the Volatility Filter
Indicator Period
Selected Volatility indicator period
Transformation Period
^{(starting from v2.59)}
Transformation period for Volatility filter.
If period is positive, volatility is calculated as indy_1 * indy_1 / indy_2
where:
indy_1
 is the selected volatility indicator with the selected periodindy_2
 is the selected volatility indicator with the selected transformation period
If period is negative, volatility is calculated as indy_1 / indy_2
(ratio of two indicators) (starting from v2.59.1)
For example, you can allow trades only when the fast (current) volatility is greater than the slow (long term) volatility (ratio >= Min Volatility)
Set 0 to disable this transformation.
Volatility Coefficient
^{(starting from v2.59)}
If set, volatility value is multiplied by this coefficient.
Set 0 to disable this coefficient.
Min Volatility
Min volatility (in points) (what is a “point”?) or ratio (if Transformation period is negative) to allow new trade (both buy and sell).
Set 0 to disable minimum volatility value.
Max Volatility
Max volatility (in points) (what is a “point”?) or ratio (if Transformation period is negative) to allow new trade (both buy and sell).
Set 0 to disable maximum volatility value.
For example, if you set Volatility Indicator = ATR, and Volatility Period = 20, and Min Volatility (in points) = 10, you’ll have trades in the green zones only:
Smoothing Filter
Smoothing Volatility filter. Can be one of following:
 Disable Smoothing Filter: filter disabled
 Allow trade on growth (Volatility > MA): new trade is allowed only if the Volatility indicator is greater than MA based on it.
 Allow trade on reduce (Volatility < MA): new trade is allowed only if the Volatility indicator is lower than MA based on it.
Smoothing Period
MA period for Smoothing Volatility filter
Fibo Filters
^{(starting from v2.17, improved in v2.24, improved in v2.25)}
Type
Type of Fibo filter:
 Disabled: Fibo filter disabled
 On retracement:
 BUYs are allowed if Trend is Bullish and Price <= FiboLevel
 SELLs are allowed if Trend is Bearish and Price >= FiboLevel
 On retracement + opposite direction:
 BUYs are allowed if Trend is Bullish and Price <= FiboLevel or Trend is Bearish
 SELLs are allowed if Trend is Bearish and Price >= FiboLevel or Trend is Bullish
 On trend reversal:
 BUYs are allowed if Trend is Bearish and Price <= FiboLevel
 SELLs are allowed if Trend is Bullish and Price >= FiboLevel
Fibo retracement is placed automatically from the lowest Low to the highest High based on specified Bars number and TimeFrame.
Trend is Bullish means the highest High happened after the lowest Low:
Trend is Bearish means the highest High happened before the lowest Low:
FiboLevel is set by parameter.
Check Interval
Signal check frequency and price used:
 Every bar of indy TF: check signal on every bar of the FIBO TimeFrame, use Close price of the last bar
 Every tick: check signal on every tick, use Bid price
 Every M1 bar: check signal every M1 bar, use Close price of the last M1 bar
 Every M5 bar: check signal every M5 bar, use Close price of the last M5 bar
 and so on…
Bars for range calculation
The number of bars used to find extremums.
MACD bars for extremums detection
^{(starting from v2.54)}
You can use MACD for price extremums detection:
 High extremum will be located on positive MACD waves,
 Low extremums will be located on negative MACD waves.
Minimum wave width is defined by this parameter.
Set 0 to disable MACD extremums detection.
Fibo level
Fibo level used for signal
Use closed bars only
If Use closed bars only = true, FIBO levels recalculate every bar of selected TimeFrame. Otherwise, FIBO recalculates every tick.
Custom Indicators
^{(starting from v2.49)}
Custom label
Short and understandable name of your custom indy to draw on the GUI, write to the expert logs and send via Grammy to your Telegram
Type
Custom indicator signal type. Can be one of the following:

Disabled: custom indicator signal disabled.
 On arrow (nonempty buffer):
 BUYs are allowed on every bar with some value in the Buybuffer
 SELLs are allowed on every bar with some value in the Sellbuffer
Nonempty means any value. It can look like an arrow, like a line, like a histogram or even be invisible (calculation buffer).
 On new arrow (nonempty after empty):
 BUYs are allowed on the bar with some value in the Buybuffer that follows a bar with an empty value the Buybuffer
 SELLs are allowed on the bar with some value in the Sellbuffer that follows a bar with an empty value in the Sellbuffer
It can be an arrow, beginning of the line, first bar of histogram (after emptiness), etc..
 In the direction of the last arrow:
 BUYs are allowed if the last bar with some value in the Buybuffer was later than the last bar with some value in the Sellbuffer
 SELLs are allowed if the last bar with some value in the Sellbuffer was later than the last bar with some value in the Buybuffer
If both buffers are not empty on the same bar, both BUYs and SELLs are allowed after it.
For example, if the latest arrow is UP, buys are allowed, if the latest arrow is DN, sells are allowed, and if there are both arrows on the same bar, both buys and sells are allowed after it.
 Above/below the line/last arrow
 BUYs are allowed if the close price is above the line/arrow in the Buybuffer.
 SELLs are allowed if the close price is below the line/arrow in the Sellbuffer.
If the buffer is empty, the last bar with some value in the buffer is used.
 On line/last arrow cross
 BUYs are allowed on the bar where the close price crosses above the line/arrow in the Buybuffer.
 SELLs are allowed on the bar where the close price crosses below the line/arrow in the Sellbuffer.
If the buffer is empty, the last bar with some value in the buffer is used. For arrows, only the first cross is used.
 On lines cross:
 BUYs are allowed on the bar where line from the Buybuffer crosses above the line from the Sellbuffer
 SELLs are allowed on the bar where line from the Buybuffer crosses below the line from the Sellbuffer
 On lines position:
 BUYs are allowed on every bar where line from the Buybuffer is above the line from the Sellbuffer
 SELLs are allowed on every bar where line from the Buybuffer is below the line from the Sellbuffer
TimeFrame
TimeFrame for the signal
Indicator path and name
Name of the indicator you want to use.
If it is located not in the “MQL5\Indicators" folder, the path should be specified too.
For example, if your indicator “SuperTrend.ex5” is in the “MQL5\Indicators\Market" folder, you should set the Indicator path and name = “Market\SuperTrend”.
Indicator parameters
Indicator parameters separated by commas.
Order and type of parameters must match the original order and type of indicator parameters.
String parameters must be enclosed in single quotes.
Starting from v2.58, you can use “INPUT_XX” macros to replace the parameter value with the special parameter that could be optimized.
Warning
Indicators with 'parameters groups' can't be used with parameters specified!Buy buffer number
Buybuffer — is an indicator buffer with index Buy buffer number (numeration starts from 0)
Sell buffer number
Sellbuffer — is an indicator buffer with index Sell buffer number (numeration starts from 0)
Set 1 to use the same buffer index as for Buy.
Color buffer number and index
If both Buy color buffer number and Buy color index are set (>= 0), color filtering is applied for all values in Buybuffer: if the value in the Buy color buffer number differs from Buy color index, value in Buybuffer is considered as empty.
For example, if the indicator draws arrows for both buy and sell signals using buffer #0, and applies colors to these arrows using buffer #1 (first is green, means buy, second is red, means sell), you should set:
 Signal type = On arrow / On new arrow
 Buy buffer number = 0
 Sell buffer number = 0
 Buy color buffer number = 1
 Sell color buffer number = 1
 Buy color index = 0
 and Sell color index = 1
Thus, buysignal will appear after the green arrow, and sellsignal — after red.
Another example: indicator draws color line and color arrows. If you open its settings, you will see the following:
If you go to source code, you can find something like this:
Buffer #0 (LineBuffer) corresponds to the line, buffer #1 (LineColors) — to the colors of the line.
Buffers #2 (UpBuffer) and #3 (DownBuffer) correspond to the arrows.
So, if you want to allow buys on the blue line and sells on the red line, you should set:
 Signal type = On arrow (nonempty buffer)
 Buy buffer number = 0
 Sell buffer number = 0
 Buy color buffer number = 1
 Sell color buffer number = 1
 Buy color index = 1 (because blue color index is 1, counting from 0)
 and Sell color index = 0 (because red color index is 0, counting from 0)
Or, if you want to entry on the color arrows, you should set:
 Signal type = On new arrow (nonempty after empty)
 Buy buffer number = 2
 Sell buffer number = 3
 Buy color buffer number = 1 (no need to set, because arrows of different colors are in different buffers)
 Sell color buffer number = 1 (no need to set, because arrows of different colors are in different buffers)
 Buy color index = 1 (no need to set)
 and Sell color index = 1 (no need to set)
Max/min level
If the value in the Buybuffer is greater than Buy max level, it is considered as empty.
If the value in the Buybuffer is less than Buy min level, it is considered as empty.
The same for Sellbuffer.
Levels can be used:
 for Oscillator signals:
 Stochastic in On new arrow (nonempty after empty) mode with Buy max = 20 / Sell min = 80 will generate signals on Main line cross levels 80 (sell) and 20 (buy)
 for Trend filter signals:
 MACD in On arrow (nonempty buffer) mode with Buy min = 0 / Sell max = 0 will filter all buys below 0 line and all sells above 0 level.
Set 999 to disable filtering by levels.
Reverse mode
Reverse all CustomIndy signals
Use bar
^{(starting from v2.59)}
Number of the bar to use for the signal calculation.
0 means the current (unformed) bar, 1 means the previous (last formed) bar, 2 means the bar before the previous, etc.
Default value for CustomIndy is 1.
Short indicator name, Draw in subwindow
These parameters should be set for correct work of the CP GUI (show/hide indicator by clicking on signal label).
Short indicator name must match the indicator name as it is shown in the Data window.
Draw in subwindow must be set to True for all indicators that draw in subwindows (oscillators, MACD, ADX, etc) and to False for others.
Allow negative and zero values
Set True for indicators that can contain 0 or negative value by design (for example, MACD).
Set False for indicators that draw arrows and fill empty values with zeros (not EMPTY_VALUE constant).
Optimization Inputs
^{(starting from v2.58)}
Specifying Indicator parameters, you can put “INPUT_XX” instead of the actual value of the parameter. In this case, the value of the parameter will be taken from the special parameter “INPUT_XX” from this block.
For example, you can set “Indicator parameters” for MACD as “INPUT_01,INPUT_02,INPUT_03”, and set “INPUT_01” = 12, “INPUT_02” = 26, “INPUT_03” = 9 in this block. Then, if you want to optimize MACD parameters, you can optimize values of “INPUT_01”, “INPUT_02” and “INPUT_03”.
Spread Filter
Max current spread
^{(starting from v2.05)}
Max spread (in points) (what is a “point”?) for positions opening.
Set 0 to disable the filter.
Max average spread, Seconds for averaging
^{(starting from v2.05)}
Max average spread (in points) (what is a “point”?) for positions opening and the number of seconds to calculate it.
Set 0 to disable the filter.
Apply to first open
^{(starting from v2.49)}
Set true to apply the spread filter to the open of the first position in a series.
Apply to martin
^{(starting from v2.49)}
Set true to apply the spread filter to the open of the martingale and antimartingale positions.