Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
PriceTrend1x2
//+------------------------------------------------------------------+
//| PriceTrender2.mq4 |
//| Kalenzo |
//| bartlomiej.gorski@gmail.com |
//+------------------------------------------------------------------+
//mod.fxtsd increase
#property copyright "Kalenzo"
#property link "bartlomiej.gorski@gmail.com"
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Yellow
#property indicator_color3 Green
#property indicator_width1 2
#property indicator_width2 2
extern bool Comments=false;
extern int TimeFrame2 = 60,
Ma2Length = 5,
Ma2Type = 0,
Ma2Price = 0;
extern int TimeFrame1 = 30,
Ma1Length = 7,
Ma1Type = 0,
Ma1Price = 0;
extern int TimeFrame = 0,
MaLength = 9,
MaType = 0,
MaPrice = 0;
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;
string sname;
extern bool minisounds=true;
#property indicator_separate_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexBuffer(0,trend2);
SetIndexBuffer(1,trend);
SetIndexBuffer(2,price);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
TimeFrame =MathMax(TimeFrame, Period());
TimeFrame1=MathMax(TimeFrame1,Period());
TimeFrame2=MathMax(TimeFrame2,Period());
string name = " MA ("+MaLength+") ["+TimeFrame+"] ";
string name1 = " MA1 ("+Ma1Length+") ["+TimeFrame1+"] ";
string name2 = " MA2 ("+Ma2Length+") ["+TimeFrame2+"] ;";
sname =name+name1+name2;
IndicatorShortName("PT:");
SetIndexLabel(2,name);
SetIndexLabel(1,name1);
SetIndexLabel(0,name2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit, bigshift, bigshift1, bigshift2;
int counted_bars=IndicatorCounted();
//----
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;
limit=Bars-counted_bars +TimeFrame2/Period();
for (int i=limit; i>=0; i--)
{
bigshift = iBarShift(Symbol(),TimeFrame, Time[i]);
bigshift1 = iBarShift(Symbol(),TimeFrame1,Time[i]);
bigshift2 = iBarShift(Symbol(),TimeFrame2,Time[i]);
// price[i] = getPrice(bigshift);
price[i] = iMA(Symbol(),TimeFrame, MaLength, 0,MaType, MaPrice, bigshift);
trend[i] = iMA(Symbol(),TimeFrame1,Ma1Length,0,Ma1Type,Ma1Price,bigshift1);
trend2[i]= iMA(Symbol(),TimeFrame2,Ma2Length,0,Ma2Type,Ma2Price,bigshift2);
{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
---