Miscellaneous
0
Views
0
Downloads
0
Favorites
LSMA_AppliedPrice1_v2
//+------------------------------------------------------------------+
//| LSMA_AppliedPrice.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, FX Sniper "
#property link "http://www.metaquotes.net/"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
double ExtMapBuffer1[];
int width;
//----
extern int Rperiod=14;
extern int Draw4HowLongg=1500;
extern int LSMA_AppliedPrice=0;
// Applied Price enumerations
// 0=close, 1=open, 2=high, 3=low, 4=median((h+l/2)), 5=typical((h+l+c)/3), 6=weighted((h+l+c+c)/4)
int Draw4HowLong;
int shift;
int i;
int loopbegin;
double sum1;
int length;
double lengthvar;
double tmp ;
double wt;
int c;
double price;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(2);
//---- drawing settings
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if (CheckValidUserInputs()) return(0);
//-----
Draw4HowLong=Bars-Rperiod - 5;
length=Rperiod;
loopbegin=Draw4HowLong - length - 1;
for(shift=loopbegin; shift>=0; shift--)
{
sum1=0;
for(i=length; i>=1 ;i--)
{
lengthvar=length + 1;
lengthvar/=3;
tmp=0;
// Applied Price enumerations
// 0=close, 1=open, 2=high, 3=low, 4=median((h+l/2)), 5=typical((h+l+c)/3), 6=weighted((h+l+c+c)/4)
switch(LSMA_AppliedPrice)
{
case 0: price=Close[length-i+shift];
break;
case 1: price=Open[length-i+shift];
break;
case 2: price=High[length-i+shift];
break;
case 3: price=Low[length-i+shift];
break;
case 4: price=(High[length-i+shift] + Low[length-i+shift])/2.0;
break;
case 5: price=(High[length-i+shift] + Low[length-i+shift] + Close[length-i+shift])/3.0;
break;
case 6: price=(High[length-i+shift] + Low[length-i+shift] + 2.0*Close[length-i+shift])/4;
break;
}
tmp =(i - lengthvar)*price;
sum1+=tmp;
}
wt=sum1*6/(length*(length+1));
//========== COLOR CODING ===========================================
ExtMapBuffer1[shift]=wt;
}
return(0);
}
//+------------------------------------------------------------------+
//| CheckValidUserInputs |
//| Check if User Inputs are valid for ranges allowed |
//| return true if invalid input, false otherwise |
//| Also display an alert for invalid input |
//+------------------------------------------------------------------+
bool CheckValidUserInputs()
{
if (CheckAppliedPrice(LSMA_AppliedPrice))
{
Alert("LSMA_AppliedPrice requires a value from 0 to 6",'\n','\r',"You entered ",LSMA_AppliedPrice);
return(true);
}
return(false);
}
//+-----------------------------------------------------+
//| Check for valid Applied Price enumerations |
//| 0=close, 1=open, 2=high, 3=low, 4=median((h+l/2)) |
//| 5=typical((h+l+c)/3), 6=weighted((h+l+c+c)/4) |
//| return true if invalid, false if OK |
//+-----------------------------------------------------+
bool CheckAppliedPrice(int applied_price)
{
if (applied_price < 0) return(true);
if (applied_price > 6) return(true);
return(false);
}
//+------------------------------------------------------------------+
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
---