BW-wiseMan-1

Download script
Author: Copyright � 2005, wellx
BW-wiseMan-1

The BW-wiseMan-1 is a custom technical analysis tool designed for the MetaTrader platform to help traders identify specific trend reversal points and momentum shifts by combining price action with advanced smoothing indicators.

Instead of relying on a single data point, this script looks at the relationship between current market prices and three distinct moving averages (often referred to as "Alligator" lines). By analyzing these three layers together, the tool filters out minor market "noise" to focus on more significant price movements.

How the Logic Works

The indicator scans each historical candle on your chart and looks for two specific scenarios:

1. Bullish Signal Identification (Upward Momentum) To trigger a positive signal, the script checks if several conditions are met simultaneously:

  • Price Positioning: The current price must be trading entirely above all three of the moving average lines.
  • Candle Structure: The closing price of the candle must be positioned in the upper half of its total range (the distance between its high and low).
  • Momentum Confirmation: The tool then looks backward at a specified number of previous candles (adjustable by the user). It confirms the signal only if the current high is higher than all those preceding highs, ensuring that the price is actually making a new "peak" rather than just fluctuating sideways.

2. Bearish Signal Identification (Downward Momentum) Conversely, to identify a potential sell or downward move, the script looks for the opposite set of conditions:

  • Price Positioning: The current price must be trading entirely below all three moving average lines.
  • Candle Structure: The closing price of the candle must be positioned in the lower half of its total range.
  • Momentum Confirmation: Similar to the bullish check, it looks back at previous candles to ensure the current low is lower than all preceding lows, confirming a definitive "downward" break in price action.

Visual Representation

When these conditions are met, the script places distinct colored arrows on your chart:

  • Yellow Arrows appear above the candles to highlight confirmed upward momentum.
  • OrangeRed Arrows appear below the candles to highlight confirmed downward momentum.

Key Customizations

The tool provides two main settings to help you tailor the signals to your trading style:

  • Up/Down Offset: This adjusts how far away from the candle the arrows are placed, ensuring they are clearly visible and do not clutter the price action.
  • Back Analysis: This allows you to define how many previous candles the tool should inspect to confirm a "new high" or "new low," allowing you to choose between more aggressive (shorter history) or more conservative (longer history) signal confirmation.
Indicators Used
Bill Williams Alligator
Miscellaneous
Implements a curve of type %1
17 Views
0 Downloads
0 Favorites
BW-wiseMan-1
//+------------------------------------------------------------------+
//| BW-wiseMan-1.mq4 |
//| Copyright © 2005, wellx |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, wellx"
#property link "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 OrangeRed

extern int updown=5; //ñìåùåíèå èíäèêàòîðà ÷òîáû íå íàëåçàëíà äðóãèå çíà÷êè
extern int back=2; // êîë-âî áàðîâ äëÿ àíàëèçà íàçàä



//---- buffers
double BWWM1Up[];
double BWWM1Down[];

int pos=0;
int i=0;
bool contup=true,contdown=true;


//+-----------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,140);
SetIndexBuffer(0,BWWM1Up);
SetIndexEmptyValue(0,0.0);

SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,140);
SetIndexBuffer(1,BWWM1Down);
SetIndexEmptyValue(1,0.0);

IndicatorDigits(6);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int cbars=IndicatorCounted();
if (cbars<0) return(-1);
if (cbars>0) cbars--;
//---- TODO: add your code here
//if (cbars == 0) return(0);
pos=cbars;
while (pos > 0)
{
BWWM1Up[pos]=NULL;
BWWM1Down[pos]=NULL;

if (
(Low[pos]> iAlligator(NULL,0,13,8,8,5,5,3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, pos))
&&
(Low[pos]> iAlligator(NULL,0,13,8,8,5,5,3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, pos))
&&
(Low[pos]> iAlligator(NULL,0,13,8,8,5,5,3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, pos))
&& 
(Close[pos]<((High[pos]+Low[pos])/2))
)
{
contup=true; 
for(i=1; i <= back ;i++)
{
if (High[pos]<=High[pos+i]) 
{
contup=false;
break;
} 
}
if (contup) BWWM1Up[pos]=(High[pos]+updown*Point); 
}


if (
(High[pos]< iAlligator(NULL,0,13,8,8,5,5,3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, pos))
&&
(High[pos]< iAlligator(NULL,0,13,8,8,5,5,3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, pos))
&&
(High[pos]< iAlligator(NULL,0,13,8,8,5,5,3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, pos))
&& 
(Close[pos]>((High[pos]+Low[pos])/2))
)
{
contdown=true; 
for(i=1; i <= back ;i++)
{
if (Low[pos]>=Low[pos+i]) 
{
contdown=false;
break;
} 
}
if (contdown) BWWM1Down[pos]=(Low[pos]-updown*Point); 
}

pos--;
}

//----
return(0);
}
//+------------------------------------------------------------------+

Comments