Miscellaneous
0
Views
0
Downloads
0
Favorites
LSMA_AppliedPrice1_v1
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+------------------------------------------------------------------+
//| 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 Yellow
//---- 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
---