rsier1m
Download scriptThis tool is designed to assist traders in identifying potential trend reversals by monitoring specific price momentum movements. It functions as a visual signal indicator on your trading chart, highlighting key moments where the market's strength may be shifting from one direction to another.
Core Functionality
The logic relies on analyzing a momentum oscillator (the RSI) across multiple timeframes. Instead of just looking at current price action, it evaluates how the "relative strength" of the market is behaving compared to previous intervals. The script looks for specific "crossing points"—moments where the momentum shifts from one threshold to another.
How the Signals Work
The tool identifies two distinct types of signals based on the following conditions:
-
Buy Signals (Lower Indicator): The script monitors for instances where the momentum indicator rises from a lower level and crosses upward through the 30.00 mark. When this happens, it suggests that the downward pressure may be weakening and the market is gaining strength. A visual marker is then placed slightly below the candle's low price to highlight this entry point.
-
Sell Signals (Upper Indicator): Conversely, the script monitors for instances where the momentum indicator falls from a higher level and crosses downward through the 70.00 mark. This indicates that the upward movement may be exhausting and the market is becoming overextended. A visual marker is then placed slightly above the candle's high price to signal this potential reversal.
Key Features
- Multi-Timeframe Analysis: The tool allows you to pull data from different timeframes (defined in minutes) regardless of what chart period you are currently viewing. This helps ensure that the signals are based on broader market trends rather than just "noise."
- Visual Clarity: Rather than cluttering your screen with continuous lines, the script only places distinct arrows at the exact moment the crossing logic is met.
- Customizable History: You can define how many past bars the indicator should calculate and display, allowing you to balance historical context with chart cleanliness.
In summary, this tool acts as a filter to help traders spot "oversold" and "overbought" conditions where the momentum is actively turning, providing visual cues for potential trade entries or exits.
//+------------------------------------------------------------------+
//| ADX Crossing.mq4
//| Amir
//+------------------------------------------------------------------+
#property copyright "Author - Amir"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_color2 Red
//---- input parameters
extern int Timeframe_in_Minutes=15;
extern int RSIperiod=14;
extern int CountBars=900;
//---- buffers
double val1[];
double val2[];
double rsib4,rsinow;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,108);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,108);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=500) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars);
SetIndexDrawBegin(1,Bars-CountBars);
int i,shift,counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- initial zero
if(counted_bars<1)
{
for(i=1;i<=CountBars;i++) val1[CountBars-i]=0.0;
for(i=1;i<=CountBars;i++) val2[CountBars-i]=0.0;
}
for (shift = CountBars; shift>=0; shift--)
{
rsib4=iCustom(NULL,0,"#MTF_RSI",Timeframe_in_Minutes,RSIperiod,0,shift+1) ;
rsinow=iCustom(NULL,0,"#MTF_RSI",Timeframe_in_Minutes,RSIperiod,0,shift);
Comment (rsib4," ",rsinow);
val1[shift]=0;
val2[shift]=0;
if (rsinow>=30.00 && rsib4<= 30.00)
{
val1[shift]=Low[shift]-5*Point;
}
if (rsib4>=70.00 && rsinow<=70.00)
{
val2[shift]=High[shift]+5*Point;
}
}
return(0);
}
//+------------------------------------------------------------------+
Comments