Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
PriceTrend1
//+------------------------------------------------------------------+
//| PriceTrender2.mq4 |
//| Kalenzo |
//| bartlomiej.gorski@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Kalenzo"
#property link "bartlomiej.gorski@gmail.com"
#property indicator_buffers 3
#property indicator_color1 LightSkyBlue
#property indicator_color2 Yellow
#property indicator_color3 Red
extern bool Comments=false;
extern int TimeFrame = 60,
Price = 0,
Ma1Type = 0,
Ma1Price = 0,
Ma1Length = 28,
Ma2Type = 0,
Ma2Price = 0,
Ma2Length = 5;
double price[],trend[],trend2[];
double alertBar;
double prev;
double last;
string info;
string infop;
string infoprev;
string infomini;
string ENTRY_price;
string entry_trend2;
string WAIT_price;
string wait_price;
string MINI;
string mini;
extern bool minisounds=true;
#property indicator_separate_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorShortName("PT");
//---- indicators
SetIndexBuffer(0,price);
SetIndexBuffer(1,trend);
SetIndexBuffer(2,trend2);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit, bigshift;
int counted_bars=IndicatorCounted();
//----
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for (int i=limit; i>=0; i--)
{
bigshift = iBarShift(Symbol(),TimeFrame,Time[i]);
price[i] = getPrice(bigshift);
trend[i] = iMA(Symbol(),TimeFrame,Ma1Length,0,Ma1Type,Ma1Price,bigshift);
trend2[i] = iMA(Symbol(),TimeFrame,Ma2Length,0,Ma2Type,Ma2Price,bigshift);
{ENTRY_price= "";entry_trend2= "";WAIT_price= "";wait_price= "";MINI= "";mini= "";info = "";infop = "";}
//Trend UP/DOWN
if ((price[i]> trend[i])&& (trend2[i]> trend[i])) {entry_trend2= "MAIN/UP";info = entry_trend2;}
if ((price[i]< trend[i])&& (trend2[i]< trend[i])) {ENTRY_price= "MAIN/DN";info = ENTRY_price;}
if ((price[i]>= trend[i] || trend2[i]> trend[i]) && info == "") {WAIT_price= "WAIT";info = WAIT_price;}
if ((price[i]< trend[i] || trend2[i]< trend[i]) && info == "") {WAIT_price= "WAIT";info = WAIT_price;}
if (price[i]> trend2[i]) {MINI= "MINI/UP";infop=MINI;}
if (price[i]< trend2[i]) {mini= "MINI/DN";infop=mini;}
// Alerts on
if(infoprev == "") infoprev = info;
if(infomini == "") infomini = infop;
if(info != infoprev && info == "MAIN/UP" && Bars>alertBar) {Alert("Price Trend MAIN changing to UpTrend on ",Symbol()," Period ",Period());alertBar = Bars;infoprev = info;}
if(info != infoprev && info == "MAIN/DN" && Bars>alertBar) {Alert("Price Trend MAIN changing to DownTrend on ",Symbol()," Period ",Period());alertBar = Bars;infoprev = info;}
if(minisounds == true && infomini != infop && infop == "MINI/UP" && Bars>alertBar) {Alert("Price Trend Mini changing to UpTrend on ",Symbol()," Period ",Period());alertBar = Bars;infomini = infop;}
if(minisounds == true && infomini != infop && infop == "MINI/DN" && Bars>alertBar) {Alert("Price Trend Mini changing to DownTrend on ",Symbol()," Period ",Period());alertBar = Bars;infomini = infop;}
// Alerts done
ObjectCreate("ESIG2", OBJ_LABEL, WindowFind("PT"), 0, 0);//TREND UP
ObjectSetText("ESIG2",StringSubstr(entry_trend2,0),10, "Arial Bold", Lime);
ObjectSet("ESIG2", OBJPROP_CORNER, 0);
ObjectSet("ESIG2", OBJPROP_XDISTANCE, 250);
ObjectSet("ESIG2", OBJPROP_YDISTANCE, 15);
ObjectCreate("ESIG3", OBJ_LABEL, WindowFind("PT"), 0, 0);//TREND DOWN
ObjectSetText("ESIG3",StringSubstr(ENTRY_price,0),10, "Arial Bold", Red);
ObjectSet("ESIG3", OBJPROP_CORNER, 0);
ObjectSet("ESIG3", OBJPROP_XDISTANCE, 250);
ObjectSet("ESIG3", OBJPROP_YDISTANCE, 15);
ObjectCreate("ESIG4", OBJ_LABEL, WindowFind("PT"), 0, 0);//WAIT
ObjectSetText("ESIG4",StringSubstr(WAIT_price,0),10, "Arial Bold", Yellow);
ObjectSet("ESIG4", OBJPROP_CORNER, 0);
ObjectSet("ESIG4", OBJPROP_XDISTANCE, 263);
ObjectSet("ESIG4", OBJPROP_YDISTANCE, 15);
ObjectCreate("ESIG5", OBJ_LABEL, WindowFind("PT"), 0, 0);//WAIT
ObjectSetText("ESIG5",StringSubstr(wait_price,0),10, "Arial Bold", Yellow);
ObjectSet("ESIG5", OBJPROP_CORNER, 0);
ObjectSet("ESIG5", OBJPROP_XDISTANCE, 263);
ObjectSet("ESIG5", OBJPROP_YDISTANCE, 15);
ObjectCreate("ESIG6", OBJ_LABEL, WindowFind("PT"), 0, 0);//Mini UP
ObjectSetText("ESIG6",StringSubstr(MINI,0),10, "Arial Bold", Lime);
ObjectSet("ESIG6", OBJPROP_CORNER, 0);
ObjectSet("ESIG6", OBJPROP_XDISTANCE, 253);
ObjectSet("ESIG6", OBJPROP_YDISTANCE, 35);
ObjectCreate("ESIG7", OBJ_LABEL, WindowFind("PT"), 0, 0);//Mini DOWN
ObjectSetText("ESIG7",StringSubstr(mini,0),10, "Arial Bold", Red);
ObjectSet("ESIG7", OBJPROP_CORNER, 0);
ObjectSet("ESIG7", OBJPROP_XDISTANCE, 253);
ObjectSet("ESIG7", OBJPROP_YDISTANCE, 35);
}
//----
return(0);
}
//+------------------------------------------------------------------+
double getPrice(int shift)
{
switch(Price)
{
case 0 : return ( iClose(Symbol(),TimeFrame,shift) );
case 1 : return (iOpen(Symbol(),TimeFrame,shift));
case 2 : return (iHigh(Symbol(),TimeFrame,shift));
case 3 : return (iLow(Symbol(),TimeFrame,shift));
case 4 : return ((iLow(Symbol(),TimeFrame,shift)+iHigh(Symbol(),TimeFrame,shift))/2);
case 5 : return ((iClose(Symbol(),TimeFrame,shift)+iLow(Symbol(),TimeFrame,shift)+iHigh(Symbol(),TimeFrame,shift))/3);
case 6 : return ((iOpen(Symbol(),TimeFrame,shift)+iClose(Symbol(),TimeFrame,shift)+iLow(Symbol(),TimeFrame,shift)+iHigh(Symbol(),TimeFrame,shift))/4);
}
}
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
---