10Min_011
Download scriptThe "10 Minute Trader" is a specialized technical analysis tool designed to help traders identify potential entry points by combining multiple market indicators into a single visual layout. Instead of requiring you to monitor several different windows and charts, this script consolidates four major trading signals—Moving Averages, RSI (Relative Strength Index), Stochastic Oscillators, and MACD (Moving Average Convergence Divergence)—into a streamlined set of visual markers.
Core Logic and Indicators
The script works by continuously scanning historical and real-time price data to calculate the following metrics:
- Trend Detection (Moving Averages): It monitors the relationship between a Linear Weighted Moving Average (LWMA) and a Simple Moving Average (SMA). The primary logic focuses on "crossovers," where these two averages intersect.
- Momentum & Strength (RSI): It tracks the Relative Strength Index to determine if an asset is overbought, oversold, or trending with strength.
- Overbought/Oversold Conditions (Stochastic): It utilizes Stochastic Oscillators to identify when price movements are reaching extreme levels.
- Trend Confirmation (MACD): It calculates the MACD Signal line to provide a secondary layer of confirmation regarding the direction of the trend.
How the Visual Signals Work
The script translates these complex mathematical calculations into specific symbols on your chart:
Buy and Sell Signals:
- Up/Down Arrows: These are triggered primarily by moving average crossovers. An arrow appears when the faster average (LWMA) crosses over the slower average (SMA), indicating a potential shift in trend direction.
- Supporting Markers: When these primary crossover events occur, the script looks for additional confirmation. If specific conditions are met regarding RSI strength, Stochastic positioning, or MACD signals at that exact moment, it places extra markers (squares/dots) to signify a higher-probability setup.
Extreme Condition Alerts:
- Trend Intensity Dots: The script also monitors for extreme market conditions independently of the averages. It identifies "Overbought" zones (where RSI is very high or Stochastic values are at the top of their range) and "Oversold" zones (where RSI is very low or Stochastic values are at the bottom). These appear as distinct dots, alerting you to potentially exhausted price moves.
Summary for the User
In plain terms, this tool acts as a filter. It looks for moments where several different types of market math agree with each other simultaneously. By placing arrows and squares directly on your price chart, it highlights areas where trend changes and momentum are aligning, helping you spot potential trading opportunities more quickly than by looking at the raw data alone.
//+------------------------------------------------------------------+
//| 10 Minute trader |
//+------------------------------------------------------------------+
#property copyright "Ron T"
#property link "http://www.lightpatch.com"
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 HotPink // arrow up for moving average
#property indicator_color2 HotPink // arrow down for moving average
#property indicator_color3 Aqua // box for stoch
#property indicator_color4 Red // box for rsi
#property indicator_color5 White // box for macd
#property indicator_color6 White // dot
#property indicator_color7 HotPink // dot
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
// User Input
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//|------------------------------------------------------------------|
int init()
{
// 233 up arrow
// 234 down arrow
// 159 big dot
// 168 open square
SetIndexStyle(0,DRAW_ARROW);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexArrow(0,233); //up
SetIndexStyle(1,DRAW_ARROW);
SetIndexBuffer(1, ExtMapBuffer2);
SetIndexArrow(1,234); //down
SetIndexStyle(2,DRAW_ARROW);
SetIndexBuffer(2, ExtMapBuffer3);
SetIndexArrow(2,168); //open square
SetIndexStyle(3,DRAW_ARROW);
SetIndexBuffer(3, ExtMapBuffer4);
SetIndexArrow(3,168); //open square
SetIndexStyle(4,DRAW_ARROW);
SetIndexBuffer(4, ExtMapBuffer5);
SetIndexArrow(4,168); //open square
SetIndexStyle(5,DRAW_ARROW);
SetIndexBuffer(5, ExtMapBuffer6);
SetIndexArrow(5,159); //dot
SetIndexStyle(6,DRAW_ARROW);
SetIndexBuffer(6, ExtMapBuffer7);
SetIndexArrow(6,159); //dot
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
int i;
for( i=0; i<Bars; i++ ) ExtMapBuffer1[i]=0;
for( i=0; i<Bars; i++ ) ExtMapBuffer2[i]=0;
for( i=0; i<Bars; i++ ) ExtMapBuffer3[i]=0;
for( i=0; i<Bars; i++ ) ExtMapBuffer4[i]=0;
for( i=0; i<Bars; i++ ) ExtMapBuffer5[i]=0;
for( i=0; i<Bars; i++ ) ExtMapBuffer6[i]=0;
for( i=0; i<Bars; i++ ) ExtMapBuffer7[i]=0;
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double wma=0, wma_p=0; // linear Weighted Moving Average & Previous
double sma=0, sma_p=0; // Simple Moving Average & Previous
double stochm=0; // STOCHastic Main
double stochm1=0, stochm2=0; // long chain stochm 1&2
double stochm3=0, stochm4=0; // long chain stochm 3&4
double stochs=0; // STOCHastic Signal
double stochs1=0, stochs2=0; // long chain stochs 1&2
double stochs3=0, stochs4=0; // long chain stochs 3&4
double macdm=0; // Moving Average Convergance Divergance Main
double macds=0; // Moving Average Convergance Divergance Signal
double rsi=0; // Relative Strength Indicator
double rsi1=0, rsi2=0; // long chain rsi 1&2
double rsi3=0, rsi4=0; // long chain rsi 3&4
int pos=Bars-100; // leave room for moving average periods
while(pos>=0)
{
wma_p=wma; // save previous calculations
wma=iMA(Symbol(),0,10,0,MODE_LWMA,PRICE_CLOSE,pos);
sma_p=sma; // save previous calculations
sma=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,pos);
stochs=iStochastic(Symbol(),0,10,6,6,0,1,1,pos);
stochs=iStochastic(Symbol(),0,10,6,6,0,1,1,pos+1);
stochs=iStochastic(Symbol(),0,10,6,6,0,1,1,pos+2);
stochs=iStochastic(Symbol(),0,10,6,6,0,1,1,pos+3);
stochs=iStochastic(Symbol(),0,10,6,6,0,1,1,pos+4);
stochm=iStochastic(Symbol(),0,10,6,6,0,1,0,pos);
stochm1=iStochastic(Symbol(),0,10,6,6,0,1,0,pos+1);
stochm2=iStochastic(Symbol(),0,10,6,6,0,1,0,pos+2);
stochm3=iStochastic(Symbol(),0,10,6,6,0,1,0,pos+3);
stochm4=iStochastic(Symbol(),0,10,6,6,0,1,0,pos+4);
rsi=iRSI(Symbol(),0,28,PRICE_CLOSE,pos);
rsi1=iRSI(Symbol(),0,28,PRICE_CLOSE,pos+1);
rsi2=iRSI(Symbol(),0,28,PRICE_CLOSE,pos+2);
rsi3=iRSI(Symbol(),0,28,PRICE_CLOSE,pos+3);
rsi4=iRSI(Symbol(),0,28,PRICE_CLOSE,pos+4);
macdm=iMACD(Symbol(),0,24,52,18,0,0,pos);
macds=iMACD(Symbol(),0,24,52,18,0,1,pos);
// RISING stochastic cross
// if (stochm1>stochm && stochs1<stochs && stochs>stochm)
// FALLING stochastic cross
// if (stochm1<stochm && stochs1>stochs && stochs<stochm)
if ( wma_p < sma_p && wma > sma )
{
ExtMapBuffer1[pos]=wma - 0.0003;
if (rsi > 52 && ( rsi1<48 || rsi2<48 || rsi3<48 || rsi4<48 ) ) //blue
{
ExtMapBuffer3[pos]=wma + 0.0003;
}
if (stochm>stochs) //red
{
ExtMapBuffer4[pos]=wma + 0.0006;
}
if (macds > 0) //white
{
ExtMapBuffer5[pos]=wma + 0.0009;
}
}
if ( wma_p > sma_p && wma < sma )
{
ExtMapBuffer2[pos]=wma + 0.0003;
if (rsi < 48 && ( rsi1>52 || rsi2>52 || rsi3>52 || rsi4>52 ) )
{
ExtMapBuffer3[pos]=wma - 0.0003;
}
if (stochm < stochs)
{
ExtMapBuffer4[pos]=wma - 0.0006;
}
if (macds < 0)
{
ExtMapBuffer5[pos]=wma - 0.0009;
}
}
if (rsi > 60 ) //white dot
{
ExtMapBuffer6[pos]=wma + 0.0007;
}
if (stochm > 80)
{
ExtMapBuffer7[pos]=wma + 0.0008;
}
if (rsi < 40 ) //white dot
{
ExtMapBuffer6[pos]=wma - 0.0007;
}
if (stochm < 20)
{
ExtMapBuffer7[pos]=wma - 0.0008;
}
pos--;
}
return(0);
}
//+------------------------------------------------------------------+
Comments