log in     sign up for free
 
There are a lot of problems to solve with exits. If the worst case does not happen (i.e., so you don't get stopped out), then the job of your system is to allow you to make the most profit possible and give the least amount of it back. Only your exits do this!
Van K. Tharp
 
 
Home
systems (285)
 
 
Special offer: buy AmiBroker and EOD+Real-Time Data
Formula Library
 
AmiBroker
MetaTrader
MetaStock
TradeStation
Wealth-Lab
NinjaTrader
 
add your formula
System Library
 
 
Account login
Your email:
Password:
 
Log in
New to s4t? Sign up.
If you forgot your password click here.
Search the Web
 
Custom Search

ATR Levels

Formula for: MetaTrader

mql4 indicator

 

 

Views:  2150

Added: February 04, 2007
 
Rate this code:  Rate: 1 Rate: 2 Rate: 3 Rate: 4 Rate: 5
This formula has not been rated yet
 

email this link

 
 
Tags: MetaTrader, mql4 indicator
 


Optimum stop losses.

 

 



Code:

//+------------------------------------------------------------------+
//| ATR Levels.mq4 |
//| Mike Ischenko |
//| mishanya_fx@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Mike Ischenko"
#property link "mishanya_fx@yahoo.com"

#property indicator_chart_window

extern int ATRPeriod = 10;

double rates_d1[][6];
double H1, H2, H3, H4, H4t, H5, L5, L4, L4t, L3, L2, L1, halfatr, fullatr;
int timeshift=0, timeshifts=0, beginner=0;
int periods;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here


ObjectDelete("H4atr line");
ObjectDelete("L4atr line");
ObjectDelete("L4atr label");
ObjectDelete("H4atr label");
ObjectDelete("H4tatr line");
ObjectDelete("L4tatr line");
ObjectDelete("L4tatr label");
ObjectDelete("H4tatr label");


//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//if (counted_bars<1) return(0);


switch (Period())
{
case PERIOD_M1: {timeshifts=60; beginner=Hour()*60;} break;
case PERIOD_M5: {timeshifts=300; beginner=Hour()*12;} break;
case PERIOD_M15: {timeshifts=900; beginner=Hour()*4;} break;
case PERIOD_M30: {timeshifts=1800; beginner=Hour()*2;} break;
case PERIOD_H1: {timeshifts=3600; beginner=Hour()*1;} break;
case PERIOD_H4: {timeshifts=14400; beginner=Hour()*0.25;} break;
case PERIOD_D1: {timeshifts=86400; beginner=Hour()*0;} break;
}

timeshift=timeshifts*24;

if(Period() > 86400)
{
Print("Error - Chart period is greater than 1 day.");
return(-1); // then exit
}



ArrayCopyRates(rates_d1, Symbol(), PERIOD_D1);

//beginner=Hour();

fullatr = iATR(Symbol(), PERIOD_D1, ATRPeriod, 1);

L4 = rates_d1[1][3] - fullatr;
H4 = rates_d1[1][2] + fullatr;
L4t = rates_d1[0][3] - fullatr;
H4t = rates_d1[0][2] + fullatr;
halfatr = fullatr * 0.5;

H1 = H4+1.5*fullatr;
H2 = H4+fullatr;
H3 = H4+halfatr;
L3 = L4-halfatr;
L2 = L4-fullatr;
L1 = L4-1.5*fullatr;



if (ObjectFind("H4atr Line") != 0)
{
ObjectCreate("H4atr line",OBJ_HLINE,0,Time[0],H4);
ObjectSet("H4atr line",OBJPROP_COLOR,Yellow);
ObjectSet("H4atr line",OBJPROP_WIDTH,1);
}
else
{
ObjectMove("H4atr line", 0,Time[0],H4);
}


if (ObjectFind("L4atr Line") != 0)
{
ObjectCreate("L4atr line",OBJ_HLINE,0,Time[0],L4);
ObjectSet("L4atr line",OBJPROP_COLOR,Yellow);
ObjectSet("L4atr line",OBJPROP_WIDTH,1);
}
else
{
ObjectMove("L4atr line", 0,Time[0],L4);
}

if (ObjectFind("H4tatr Line") != 0)
{
ObjectCreate("H4tatr line",OBJ_HLINE,0,Time[0],H4t);
ObjectSet("H4tatr line",OBJPROP_COLOR,Yellow);
ObjectSet("H4tatr line",OBJPROP_WIDTH,1);
}
else
{
ObjectMove("H4tatr line", 0,Time[0],H4t);
}


if (ObjectFind("L4tatr Line") != 0)
{
ObjectCreate("L4tatr line",OBJ_HLINE,0,Time[0],L4t);
ObjectSet("L4tatr line",OBJPROP_COLOR,Yellow);
ObjectSet("L4tatr line",OBJPROP_WIDTH,1);
}
else
{
ObjectMove("L4tatr line", 0,Time[0],L4t);
}

if(ObjectFind("H4atr label") != 0)
{
ObjectCreate("H4atr label", OBJ_TEXT, 0, Time[0]+timeshift, H4);
ObjectSetText("H4atr label", "ATR(y) res: " + DoubleToStr(H4,4), 8, "Verdana", Yellow);
}
else
{
ObjectMove("H4atr label", 0, Time[0]+timeshift, H4);
}

if(ObjectFind("L4atr label") != 0)
{
ObjectCreate("L4atr label", OBJ_TEXT, 0, Time[0]+timeshift, L4);
ObjectSetText("L4atr label", "ATR(y) sup: " + DoubleToStr(L4,4), 8, "Verdana", Yellow);
}
else
{
ObjectMove("L4atr label", 0, Time[0]+timeshift, L4);
}

if(ObjectFind("H4tatr label") != 0)
{
ObjectCreate("H4tatr label", OBJ_TEXT, 0, Time[0]+timeshift, H4t);
ObjectSetText("H4tatr label", "ATR(t) res: " + DoubleToStr(H4t,4), 8, "Verdana", Yellow);
}
else
{
ObjectMove("H4tatr label", 0, Time[0]+timeshift, H4t);
}

if(ObjectFind("L4tatr label") != 0)
{
ObjectCreate("L4tatr label", OBJ_TEXT, 0, Time[0]+timeshift, L4t);
ObjectSetText("L4tatr label", "ATR(t) sup: " + DoubleToStr(L4t,4), 8, "Verdana", Yellow);
}
else
{
ObjectMove("L4tatr label", 0, Time[0]+timeshift, L4t);
}

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


 





Code to difficult? Find somebody to help you with coding here.

 


Source: http://www.forex-tsd.com

 

View similar (mql4 indicator for MetaTrader):

ATR Ratio
Chaikin's Volatility
3D Oscilator
ADX Crossing
ATR Channels
ATR Levels
DS_Stochastic
Inside or Outside Bars
ATR
3 Line Break
...
 
 
all formulas for MetaTrader
all formulas

 

 

Email to friend

Top

 

     
However we try to maintain hiqhest possible level of service - most formulas, oscillators, indicators
and systems are submitted by anonymous users.
Therefore S4T™ does not take any responsibility for it's quality.
If you use any of this information, use it at your own risk. You are responsible for your own trading decisions.
Be sure to verify that any information you see on these pages is correct, and is applicable to your particular trade.
In no case will S4T™ be responsible for your trading gains or losses.
PayPalSecure payments by PayPal S4T™ is a part of TAURO EDUCATION NETWORK
 
Privacy note | (c) copyrights systems4trading.com 2006-2009