Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
Damiani_volatmeter2.i
//+------------------------------------------------------------------+
//| Damiani_volatmeter.mq4 |
//| Copyright © 2006, Luis Guilherme Damiani |
//| http://www.damianifx.com.br |
//+------------------------------------------------------------------+
//When the green line is BELOW the gray line - DON'T trade
#property copyright "Copyright © 2006, Luis Guilherme Damiani"
#property link "http://www.damianifx.com.br"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_color3 Lime
//---- input parameters
extern int Viscosity=10;
extern int Sedimentation=60;
extern double Threshold_level=1.4;
extern bool lag_supressor=true;
double lag_s_K=0.5;
extern bool InfoOnly=false;
//---- buffers
double thresholdBuffer[];
double vol_m[];
double vol_t[];
double ind_c[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
if(InfoOnly)double draw=DRAW_NONE; else draw=DRAW_LINE;
SetIndexStyle(0,draw);
SetIndexBuffer(0,thresholdBuffer);
SetIndexStyle(1,DRAW_LINE,0,4);
SetIndexBuffer(1,vol_m);
SetIndexStyle(2,draw);
SetIndexBuffer(2,vol_t);
SetIndexLabel(0,"DVolt");
SetIndexLabel(1,"DVolt DO NOT Trade");
SetIndexLabel(2,"DVolt");
SetIndexBuffer(3,ind_c);
ArrayResize(ind_c,Bars);
ArrayInitialize(ind_c,0.0);
//---info hozza
// now we will crate a text mark.
// for this use the function ObjectCreate.
// do not indicate coordinates
ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);
// change the x-coordinate
ObjectSet("signal",OBJPROP_XDISTANCE,830);
// change the y-coordinate
ObjectSet("signal",OBJPROP_YDISTANCE,5);
// to indicate the mark text, use the following function
ObjectSetText("signal","Baj van",14,"Tahoma",Gold);
// "signal" - object name
// "lambada" - text
// 14 - font size
// Gold - color
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double vol=0;
int changed_bars=IndicatorCounted();
//Comment("ATR ratio= "+short_atr+" / "+long_atr);
if(changed_bars < 0) return(-1);
if(changed_bars > 0) changed_bars--;
int limit=Bars-changed_bars;
// limit=MathMax(limit,Sedimentation);
// if (limit>Sedimentation+5)limit=limit-Sedimentation;
for(int i=limit;i>=0;i--)
{
double sa=iATR(NULL,0,Viscosity,i);
double s1=ind_c[i+1];
double s3=ind_c[i+3];
double atr=NormalizeDouble(sa,Digits);
double atrsd= iATR(NULL,0,Sedimentation,i);
if (atrsd!=0)
{
if(lag_supressor)
vol= sa/atrsd+lag_s_K*(s1-s3);
else
vol= sa/atrsd;
}
//vol_m[i]=vol;
double anti_thres1=iStdDev(NULL,0,Viscosity,0,MODE_LWMA,PRICE_TYPICAL,i);
double stdsed = iStdDev(NULL,0,Sedimentation,0,MODE_LWMA,PRICE_TYPICAL,i);
if (stdsed!=0)
double anti_thres=anti_thres1/stdsed;
double t=Threshold_level;
t=t-anti_thres;
if (vol>t){vol_t[i]=vol;vol_m[i]=EMPTY_VALUE;//=vol;
IndicatorShortName(" HAJRÁ FIÚK! / ATR= "+DoubleToStr(atr,Digits)+" values:");
ObjectSetText("signal","TRADE!!",14,"Tahoma",Lime);
}
else {vol_t[i]=vol;vol_m[i]=0.0;
IndicatorShortName(" DO NOT / ATR= "+DoubleToStr(atr,Digits)+" values:");
ObjectSetText("signal","DO NOT TRADE!",14,"Tahoma",Red);}
ind_c[i]=vol;
thresholdBuffer[i]=t;
}
//----
//----
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---