This is a blog post for the Pin Bar Arrows Indicator:
https://www.mql5.com/en/market/product/120869/
Free Scanner:
The scanner will work only with the above Arrows indicator.
Place ex4 in same folder as Arrows in Markets folder.
Common Scanner Settings:
https://www.mql5.com/en/blogs/post/747456
Features:
- Choose Pin bar checks:
- PinBar Body Options
- PinBar Nose and Tail Options
- Left Eye Options
- Engulfing Bar After Pin Bar
- Overbought/Oversold with CCI or Stochastic or RSI
- Distance of Pin bar body from nearest Quarter Point
- Option to use Majors, halfpoints, quarters
- Volatility Check
Downloads:
Free Demo and detailed guide on how to use:
Extras:
Are attached with this post.
Pin Bars Explained:
https://abiroid.com/pin-bars-explained/
Arrows can detect Pin Bars and Engulfing BarsPin Bars near Major Points:
Note that Quarters Lines indicator is a separate indicator available in extras section above. The arrows indicator uses it internally and won’t display major lines on chart.
Very strong stop hunt pin bars, if you keep a very low candle body/length ratio: 0.015
Pin bars only if price is Overbought/Oversold, using CCI or Stochastic or RSI. Set your own custom period and OB/OS levels and other parameters.
Scanner:
The above dashboard screenshot is for past 100 bars scanned for pinbars. Default settings are very restrictive and give the best kind of pinbars. But if you need to scalp just a few pips, then change settings to get more signals.
Symbols:
By default, Diamond is for a pinbar. And a circle is for engulfing candle after a pinbar. Bracket numbers show how many bars back the pin bar have happened.
Common Scanner Settings:
Abiroid Scanner Dashboard Common Settings
Scanner and pin bar Arrows have similar settings. So a set file can be used interchangeably. Scanner does not have settings from arrows for debug messages and arrow spacing. Everything else is the same. So, same set file will work for both.
Settings:
- shiftBars : This setting allows you to specify the number of bars to shift the indicator. A value of 0 means the indicator is applied to the current (most recent) bar.
- MaxPastBars : This setting determines the maximum number of past bars the indicator will consider. A value of 0 means all past bars will be included.
Settings are related to the Pin Bar Nose:
- MaxNoseBodySize : It determines the maximum ratio of the Pin Bar body size to the total candle length.
- NoseBodyPosition : This setting specifies the position of the Pin Bar body within the candlestick. A value of 0.4 indicates the body should be located near the middle (40%) of the candlestick.
- NoseSameDirection : When set to true, it means the Pin Bar body’s direction must be the same as the Pin Bar type (bullish or bearish).
- MinimumNoseLength : It determines the minimum length (in points) for the Pin Bar body.
Settings pertain to the Left Eye Bar and additional checks:
- NoseProtruding : It sets the minimum amount the Pin Bar nose should protrude beyond the high of the Left Eye Bar.
- LeftEyeOppositeDirection : When true, the Left Eye Bar should have an opposite direction to the Pin Bar.
- LeftEyeMinBodySize : This defines the minimum ratio of the Left Eye Bar’s body size to the total candle length.
- LeftEyeDepth : It sets the minimum depth of the Left Eye Bar.
Check if Pin bar nose is highest/lowest compared to all previous bars:
- checkPinHL : When true, it checks if the Pin Bar has a long tail that’s higher or lower than the previous bars.
Check if any engulfing bars, few bars after the pin bar:
- checkEngulf : This setting determines whether the indicator should wait for an Engulfing Bar after the Pin Bar.
- HighVolumeEngulf : When set to true, it checks for a high-volume Engulfing Bar.
An engulfing bar will fully engulf (cover) it’s previous bar. If it’s a Bullish pin bar, the engulfing bar will be bullish. And for bearish pin bar, it needs to also be bearish engulfing bar.
It is marked by a circular symbol by default, but you can change the symbols.
If you need the very next bar after pin bar to be engulfing, then keep: “Wait Max Number of Bars” to 1.
By default it is 5, meaning after a pinbar, engulfing bar needs to happen within 5 bars, or else it won’t be detected and will not be marked by that symbol.
Overbought/Oversold Checks using Stochastic or RSI or CCI
- UseOBOS : This setting enables the use of overbought/oversold checks.
Stochastic Params: KPeriod,DPeriod,Slowing,MA_Method,PriceField,Stoch_Mode
RSI/CCI Params: Period, OB/OS
Volatility:
- UseVolatility : When true, it incorporates high volatility checks.
It uses the Chaikin Volatility (CHV). Low volatility produces a lot of pin bars. So not a good time to trade:
Major Points (like 1.00000 or half points: 1.50000 or quarter points like 1.25000 and 1.75000)
- checkFullPoints, checkHalfPoints, checkQuarterPoints : If enabled, this checks for price proximity to major points.
Set your own Major Points. Because lower timeframes like M5 need major points like 1.00100, 1.00200 etc as majors. And higher timeframes like H1 need 1.00000, 1.10000, 1.20000 etc as majors.
Also, set minimum distance of pin bar from a major line, based on different timeframes. Use cross hairs tool to find in between distances.
Chart Symbols, Debug and Alerts:
- ArrowDistance : It specifies the distance of arrows on the chart.
- ArrowSize : This sets the size of the arrows.
- BullishColor : It defines the color of bullish signals.
- BearishColor : Color of bearish signals.
- PinBar Symbol : Code for pinbar symbols.
- Engulfing Symbol : Code for engulfing bar symbols.
Different codes:
https://docs.mql4.com/constants/objectconstants/wingdings
- ShowDebugText : When set to true, this enables the display of debug messages on bars.
- ShowDebugMin : Enabling this setting will display minimum debug messages. And not show PinBar detailed messages. Only set to false if you need to see why a pin bar was not detected. Otherwise it will give too many messages for each bar:
- DebugOnBar : This setting allows you to specify which bar to generate detailed journal logs for. A value of -1 means it’s turned off.
This is a better way to debug why a pin bar was skipped. It shows all checks run for a particular bar. Suppose bar number is: 4172
Then the experts tab logs will show details:
It finds the bar as a pin bar. But rejects it as a Bearish bar because it’s nose is not protruding. And rejects it as Bullish bar because it is not a green bull bar.
This is useful because the debug messages on chart show only the last check and reason for skipping.
You can control individual debug messages by turning on/off:
- "Show Debug PinBars" or "Show Debug Volatility" or "Show Debug Major Points" or "Show Debug OBOS" : When set to true, it displays debug messages showing why a signal was skipped.
Debug Message Meanings:
PinBar Related Debugs:
Common:
NO-BODY-RATIO: PinBar: Nose body to candle length ratio MORE than (Max Body/Candle length ratio)
NO-LEFT-BODYLEN: Left eye: body to candle length ratio less than (LeftEye: Body/CandleLength ratio)
NO-NOSE-INSIDE-LEFT-BAR: Nose body NOT inside Left Eye bar’s High and Low
NO-LEFT-BODY: Nose body to Left Eye body ratio is MORE than (Max NoseBarBody/LeftEyeBody ratio)
NO-LEFT-LEN: Nose length to Left Eye length ratio is LESS than (Min NoseBarLength/LeftEyeLength ratio)
NO-NOSE-INSIDE-LEFT-BODY: Nose body is NOT inside Left Eye body
Bearish:
NO-BOTTOM: SELL: Nose body position is NOT in bottom part of the bar: 0.3
NO-LEFT-BULL: SELL: Left Eye is NOT bullish
NO-BEAR: SELL: Nose is NOT bearish
NO-LEFT-LOW: SELL: Left Eye low is NOT low enough
NO-HIGH: SELL: PinBar Nose NOT Highest compared to past bars
NO-PROT-BEAR: SELL: Nose NOT protruding HIGHER than ratio (Min PinBarNose Protruding Beyond LeftEye High)
Bullish:
NO-TOP: BUY: Nose body position is NOT in top part of the bar: 0.3
NO-LEFT-BEAR: BUY: Left Eye is NOT bearish
NO-BULL: BUY: Nose is NOT bullish
NO-LEFT-HIGH: BUY: Left Eye high is NOT high enough
NO-LOW: BUY: PinBar Nose NOT Lowest compared to past bars
NO-PROT-BULL: BUY: Nose NOT protruding LOWER than ratio (Min PinBarNose Protruding Beyond LeftEye Low)
Other Debugs:
NO-MAJOR: NOT Near any Major Points
NO-VOLA: NO High Volatility
NO-OB: No Overbought in case of a Bearish pinbar signal
NO-OS: No Oversold in case of a Bullish pinbar signal
Conclusion:
Pinbars are useful reversal signals. Best used during a good volatility market. To find when a trend might end. Not good to be used as a standalone.
Needs validation from other indicators like:
- Major levels or Pivots
- Overbought/Oversold levels
- Other candle patterns like engulfing bars
- High volume bar in opposite direction
Don’t use all validating indicator simultaneously as signals will be very limited.