Hello,
As the title says, I'm in a very dire need of such an EA/indicator
E.g. a pair EURUSD (and only EURUSD) is currently at -20 in Profit/Loss, and the said EA/indicator is set to alert one when Profit/Loss reaches an amount above -10... would be very nice to have a function that closes all trades within the pair if it for example reaches that -10 or some other amount, but just an alert on it's own, would be a real godsend for me
Oh yeah, one way I think it could be developed, is simply by having the EA/indicator only focus on the symbol/pair it is attached to, for example if I drag and drop it to EURUSD, it would only focus on that pair, rather than perhaps having some sort of a more elaborate take on it, with a menu or something of the like
I am a beginner MQL4 learner, but I modified this indicator to sound alerts when an EA with Magic Number is in profit. It is necessary to include in the root folder, a wav sound called "som".
It is possible to use another setting for values in loss, in this case it is only necessary to include values in Major_q_valor1 and E_Minor_q_valor2.
//+------------------------------------------------------------------+
//| EA_Profits.mq4 |
//| Copyright © 2011, Tjipke de Vries |
//| http://www.donnaforex.com/forum/index.php?topic=3938.0 |
//| |
//| 10-07-2011 |
//| This is made to see how your EA has performed at a specific |
//| time. Put in the Magicnumber(s) of your EA(s) and you can see |
//| the results of your EA.. for all pairs or for only the chart |
//| Symbol. Profits closed trades and open trades. |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Tjipke de Vries"
#property link "http://www.metaquotes.net"
#include <WinUser32.mqh>
#include <stdlib.mqh>
#property indicator_separate_window
#property indicator_buffers 1
#define MAGICS_MAX 1024
#define DEALS 0
#define BUY_LOTS 1
#define BUY_ORDERS 2
#define SELL_LOTS 3
#define SELL_ORDERS 4
#define TOTAL_LOTS 5
#define GPROFIT 6
#define GLOSS 7
#define PROFIT 8
#define NET_PIPS 9
#define OPEN_DEALS 10
#define OPEN_GPROFIT 11
#define OPEN_GLOSS 12
#define OPEN_PROFIT 13
#define OPEN_NET_PIPS 14
extern double Maior_q_valor1=0.5;
extern double E_Menor_q_valor2=2;
extern bool On_Off_Alerta=true;
extern bool PlaySound();
extern string som;
extern string startdate="2022.01.01";
extern string enddate ="2030.11.01";
extern string Profit_All_Pairs= "True: All Pairs -- False: Chart Symbol()";
extern bool Profit_All_pairs= True;
extern int Magic_EA=0;
int Magic1 = Magic_EA;
int Magic2 = 0;
int Magic3 = 0;
int Magic4 = 0;
int Magic5 = 0;
int Magic6 = 0;
int Magic7 = 0;
int Magic8 = 0;
extern color HeaderColor=Green;
extern color MAGICSColor=Red;
extern color TextColor=MediumBlue;
extern int TextSize=12;
extern int RowSpacing=14;
string Name="© 2011 deVries, EA Profits 1.0";
string MAGICNR[MAGICS_MAX];
int MagicsTotal=0;
double MagicsSummaries[MAGICS_MAX][15];
int Lines=-1;
string Cols[16]={"MagicNr",
"Deals",
"Buy L",
"Buy 's",
"Sell L",
"Shorts",
"Total lots",
"Profit",
"Loss",
"Net P/L",
"Pips",
"Op.Tr",
"Op.Profit",
"Op.Loss",
"Op.P/L",
"Op.Pips"};
int Shifts[15]={ 10, 70, 115, 155, 195, 245, 300, 370, 440, 510, 580, 655, 710, 770, 840, 910};
double MapBuffer[];
double Tprofit,Tloss,Tpl,Tpips,Tdeals,OPTprofit,OPTloss,OPTpl,OPTpips,OPTdeals;
datetime sdate,edate;
double multiplier;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init()
{
IndicatorShortName(Name);
SetIndexBuffer(0,MapBuffer);
SetIndexStyle(0,DRAW_NONE);
IndicatorDigits(0);
SetIndexEmptyValue(0,0.0);
sdate=StrToTime(startdate);
edate=StrToTime(enddate);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deinit()
{
int windex=WindowFind(Name);
if(windex>0) ObjectsDeleteAll(windex);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
void start()
{
string name;
int i,col,line,windex=WindowFind(Name);
//----
if(windex<0) return;
//---- header line
if(Lines<0)
{
for(col=0; col<16; col++)
{
name="Head_"+col;
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[col]);
ObjectSet(name,OBJPROP_YDISTANCE,RowSpacing);
ObjectSetText(name,Cols[col],9,"Arial",HeaderColor);
}
}
Lines=0;
}
//----
ArrayInitialize(MagicsSummaries,0.0);
int total=Analyze();
int total1=AnalyzeOpenTrades();
SortTables(MAGICNR);
if(total>0||total1>0)
{
line=0;
for(i=0; i<MagicsTotal; i++)
{
if(MagicsSummaries[i][DEALS]<=0&&MagicsSummaries[i][OPEN_DEALS]<=0) continue;
line++;
//---- add line
if(line>Lines)
{
int y_dist=RowSpacing*(line+1)+1;
for(col=0; col<16; col++)
{
name="Line_"+line+"_"+col;
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[col]);
ObjectSet(name,OBJPROP_YDISTANCE,y_dist);
}
}
Lines++;
}
//---- set line
name="Line_"+line+"_0";
ObjectSetText(name,MAGICNR[i],9,"Arial",MAGICSColor);
name="Line_"+line+"_1";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][DEALS],0),TextSize,"Arial",TextColor);
name="Line_"+line+"_2";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][BUY_LOTS],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_3";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][BUY_ORDERS],0),TextSize,"Arial",TextColor);
name="Line_"+line+"_4";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][SELL_LOTS],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_5";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][SELL_ORDERS],0),TextSize,"Arial",TextColor);
name="Line_"+line+"_6";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][BUY_LOTS]+MagicsSummaries[i][SELL_LOTS],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_7";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][GPROFIT],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_8";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][GLOSS],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_9";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][PROFIT],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_10";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][NET_PIPS],0),TextSize,"Arial",TextColor);
name="Line_"+line+"_11";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][OPEN_DEALS],0),TextSize,"Arial",TextColor);
name="Line_"+line+"_12";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][OPEN_GPROFIT],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_13";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][OPEN_GLOSS],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_14";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][OPEN_PROFIT],2),TextSize,"Arial",TextColor);
name="Line_"+line+"_15";
ObjectSetText(name,DoubleToStr(MagicsSummaries[i][OPEN_NET_PIPS],0),TextSize,"Arial",TextColor);
}
}
DrawTotals();
WindowRedraw();
//---- to avoid minimum==maximum
MapBuffer[Bars-1]=-1;
//----
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int Analyze()
{
double profit,bprofit,sprofit;
int i,index,type,total=OrdersHistoryTotal();
//----
for(i=0; i<total; i++)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
type=OrderType();
if(type!=OP_BUY && type!=OP_SELL) continue;
if(Profit_All_pairs != True && OrderSymbol()!= Symbol()) {continue;}
if (OrderMagicNumber() == 0) continue;
if (OrderMagicNumber() != Magic1 && OrderMagicNumber() != Magic2 &&OrderMagicNumber() != Magic3 && OrderMagicNumber() != Magic4 &&
OrderMagicNumber() != Magic5 && OrderMagicNumber() != Magic6 && OrderMagicNumber() != Magic7 &&OrderMagicNumber() != Magic8)continue;
index=MAGICSIndex(OrderMagicNumber());
if(index<0 || index>=MAGICS_MAX) continue;
if (OrderOpenTime()<sdate) continue;
if (OrderOpenTime()>edate) continue;
//----
//MagicsSummaries[index][DEALS]++;
double PIPS;
GetMultiplier();
if(OrderType() == OP_BUY) {PIPS=((OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT)*multiplier);}
if(OrderType() == OP_SELL) {PIPS=((OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT)*multiplier);}
MagicsSummaries[index][NET_PIPS]+= PIPS;
profit=OrderProfit()+OrderCommission()+OrderSwap();
if(profit>=0)MagicsSummaries[index][GPROFIT]+=profit;
else MagicsSummaries[index][GLOSS]+=profit;
MagicsSummaries[index][PROFIT]=MagicsSummaries[index][GPROFIT]+MagicsSummaries[index][GLOSS];
if(type==OP_BUY)
{
MagicsSummaries[index][BUY_LOTS]+=OrderLots();
MagicsSummaries[index][BUY_ORDERS]++;
}
if(type==OP_SELL)
{
MagicsSummaries[index][SELL_LOTS]+=OrderLots();
MagicsSummaries[index][SELL_ORDERS]++;
}
MagicsSummaries[index][DEALS]=MagicsSummaries[index][SELL_ORDERS]+MagicsSummaries[index][BUY_ORDERS];
}
//----
total=0;
Tpl=0;Tpips=0;Tdeals=0;Tprofit=0;Tloss=0;
for(i=0; i<MagicsTotal; i++)
{
if(MagicsSummaries[i][DEALS]>0) total++;
Tpl+=MagicsSummaries[i][PROFIT];
Tpips+=MagicsSummaries[i][NET_PIPS];
Tdeals+=MagicsSummaries[i][DEALS];
Tprofit+=MagicsSummaries[i][GPROFIT];
Tloss+=MagicsSummaries[i][GLOSS];
}
//----
return(total);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int AnalyzeOpenTrades()
{
double profit,bprofit,sprofit;
int i,index,type,total=OrdersTotal();
//----
for(i=0; i<total; i++)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
type=OrderType();
if(type!=OP_BUY && type!=OP_SELL) continue;
if(Profit_All_pairs != True && OrderSymbol()!= Symbol()) {continue;}
if (OrderMagicNumber() == 0) continue;
if (OrderMagicNumber() != Magic1 && OrderMagicNumber() != Magic2 &&OrderMagicNumber() != Magic3 && OrderMagicNumber() != Magic4 &&
OrderMagicNumber() != Magic5 && OrderMagicNumber() != Magic6 && OrderMagicNumber() != Magic7 &&OrderMagicNumber() != Magic8)continue;
index=MAGICSIndex(OrderMagicNumber());
if(index<0 || index>=MAGICS_MAX) continue;
if (OrderOpenTime()<sdate) continue;
if (OrderOpenTime()>edate) continue;
//----
//MagicsSummaries[index][DEALS]++;
double PIPS;
GetMultiplier();
if(OrderType() == OP_BUY) {PIPS=((OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT)*multiplier);}
if(OrderType() == OP_SELL) {PIPS=((OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT)*multiplier);}
MagicsSummaries[index][OPEN_NET_PIPS]+= PIPS;
profit=OrderProfit()+OrderCommission()+OrderSwap();
if(profit>=0)MagicsSummaries[index][OPEN_GPROFIT]+=profit;
else MagicsSummaries[index][OPEN_GLOSS]+=profit;
MagicsSummaries[index][OPEN_PROFIT]=MagicsSummaries[index][OPEN_GPROFIT]+MagicsSummaries[index][OPEN_GLOSS];
/*
if(type==OP_BUY)
{
MagicsSummaries[index][BUY_LOTS]+=OrderLots();
MagicsSummaries[index][BUY_ORDERS]++;
}
if(type==OP_SELL)
{
MagicsSummaries[index][SELL_LOTS]+=OrderLots();
MagicsSummaries[index][SELL_ORDERS]++;
}
*/
//MagicsSummaries[index][DEALS]=MagicsSummaries[index][SELL_ORDERS]+MagicsSummaries[index][BUY_ORDERS];
MagicsSummaries[index][OPEN_DEALS]++;
}
//----
total=0;
OPTpl=0;OPTpips=0;OPTdeals=0;OPTprofit=0;OPTloss=0;OPTpips=0;
for(i=0; i<MagicsTotal; i++)
{
if(MagicsSummaries[i][OPEN_DEALS]>0) total++;
OPTpl+=MagicsSummaries[i][OPEN_PROFIT];
OPTpips+=MagicsSummaries[i][OPEN_NET_PIPS];
OPTdeals+=MagicsSummaries[i][OPEN_DEALS];
OPTprofit+=MagicsSummaries[i][OPEN_GPROFIT];
OPTloss+=MagicsSummaries[i][OPEN_GLOSS];
//Função Alerta - Incremento//
// -126 -125 -124
if(On_Off_Alerta==true)
{
if(OPTpl>Maior_q_valor1 && OPTpl<E_Menor_q_valor2)
{
PlaySound(som);
}
}
}
//----
return(total);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int MAGICSIndex(string MagicName)
{
bool found=false;
//----
for(int i=0; i<MagicsTotal; i++)
{
if(MagicName==MAGICNR[i])
{
found=true;
break;
}
}
//----
if(found) return(i);
if(MagicsTotal>=MAGICS_MAX) return(-1);
//----
i=MagicsTotal;
MagicsTotal++;
MAGICNR[i]=MagicName;
MagicsSummaries[i][DEALS]=0;
MagicsSummaries[i][BUY_LOTS]=0;
MagicsSummaries[i][BUY_ORDERS]=0;
MagicsSummaries[i][SELL_LOTS]=0;
MagicsSummaries[i][SELL_ORDERS]=0;
MagicsSummaries[i][TOTAL_LOTS]=0;
MagicsSummaries[i][GPROFIT]=0;
MagicsSummaries[i][GLOSS]=0;
MagicsSummaries[i][PROFIT]=0;
MagicsSummaries[i][NET_PIPS]=0;
MagicsSummaries[i][OPEN_DEALS]=0;
MagicsSummaries[i][OPEN_GPROFIT]=0;
MagicsSummaries[i][OPEN_GLOSS]=0;
MagicsSummaries[i][OPEN_PROFIT]=0;
MagicsSummaries[i][OPEN_NET_PIPS]=0;
//----
return(i);
}
void SortTables(string &a[])
{
string tmp;
double tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8,tmp9,tmp10,tmp11,tmp12,tmp13,tmp14,tmp15;
for (int i = 0; i < MagicsTotal; i++)
{
for (int j = i + 1; j < MagicsTotal; j++)
{
if( a[i]>a[j] )
{
tmp = a[i];
tmp0=MagicsSummaries[i][0];
tmp1=MagicsSummaries[i][1];
tmp2=MagicsSummaries[i][2];
tmp3=MagicsSummaries[i][3];
tmp4=MagicsSummaries[i][4];
tmp5=MagicsSummaries[i][5];
tmp6=MagicsSummaries[i][6];
tmp7=MagicsSummaries[i][7];
tmp8=MagicsSummaries[i][8];
tmp9=MagicsSummaries[i][9];
tmp10=MagicsSummaries[i][10];
tmp11=MagicsSummaries[i][11];
tmp12=MagicsSummaries[i][12];
tmp13=MagicsSummaries[i][13];
tmp14=MagicsSummaries[i][14];
a[i] = a[j];
MagicsSummaries[i][0]=MagicsSummaries[j][0];
MagicsSummaries[i][1]=MagicsSummaries[j][1];
MagicsSummaries[i][2]=MagicsSummaries[j][2];
MagicsSummaries[i][3]=MagicsSummaries[j][3];
MagicsSummaries[i][4]=MagicsSummaries[j][4];
MagicsSummaries[i][5]=MagicsSummaries[j][5];
MagicsSummaries[i][6]=MagicsSummaries[j][6];
MagicsSummaries[i][7]=MagicsSummaries[j][7];
MagicsSummaries[i][8]=MagicsSummaries[j][8];
MagicsSummaries[i][9]=MagicsSummaries[j][9];
MagicsSummaries[i][10]=MagicsSummaries[j][10];
MagicsSummaries[i][11]=MagicsSummaries[j][11];
MagicsSummaries[i][12]=MagicsSummaries[j][12];
MagicsSummaries[i][13]=MagicsSummaries[j][13];
MagicsSummaries[i][14]=MagicsSummaries[j][14];
a[j] = tmp;
MagicsSummaries[j][0]=tmp0;
MagicsSummaries[j][1]=tmp1;
MagicsSummaries[j][2]=tmp2;
MagicsSummaries[j][3]=tmp3;
MagicsSummaries[j][4]=tmp4;
MagicsSummaries[j][5]=tmp5;
MagicsSummaries[j][6]=tmp6;
MagicsSummaries[j][7]=tmp7;
MagicsSummaries[j][8]=tmp8;
MagicsSummaries[j][9]=tmp9;
MagicsSummaries[j][10]=tmp10;
MagicsSummaries[j][11]=tmp11;
MagicsSummaries[j][12]=tmp12;
MagicsSummaries[j][13]=tmp13;
MagicsSummaries[j][14]=tmp14;
}
}
}
}
//+------------------------------------------------------------------+
void DrawTotals()
{
int windex=WindowFind(Name);
string name;
ObjectDelete("Totals-OPENdeals");ObjectDelete("Totals-OPENtprofit");ObjectDelete("Totals-OPENtloss");ObjectDelete("Totals-OPENnetpl");ObjectDelete("Totals-OPENpips");
ObjectDelete("Totals-TXT");ObjectDelete("Totals-Deals");ObjectDelete("Totals-Symbols");ObjectDelete("Totals-Profit");ObjectDelete("Totals-Loss");ObjectDelete("Totals-PL");
ObjectDelete("Totals-pips");ObjectDelete("From-Date-text");ObjectDelete("From-Date");ObjectDelete("To-Date-text");ObjectDelete("To-Date");
int y=RowSpacing*(Lines+3)+3;
name="Totals-TXT";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[0]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,"TOTALS:",9,"Arial",HeaderColor);
}
name="Totals-Deals";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[1]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(Tdeals,0),9,"Arial",HeaderColor);
}//---- remove lines
if(Profit_All_pairs){
name="Totals-Symbols";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[2]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,"Profit All Symbols traded",9,"Arial",HeaderColor);
}
}
if(!Profit_All_pairs){
name="Totals-Symbols";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[2]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,"Profit chart Symbol pair",9,"Arial",HeaderColor);
}
}
name="Totals-Profit";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[7]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(Tprofit,2),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-Loss";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[8]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(Tloss,2),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-PL";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[9]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(Tpl,2),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-pips";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[10]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(Tpips,0),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-OPENdeals";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[11]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(OPTdeals,0),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-OPENtprofit";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[12]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(OPTprofit,2),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-OPENtloss";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[13]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(OPTloss,2),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-OPENnetpl";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[14]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(OPTpl,2),9,"Arial",HeaderColor);
}//---- remove lines
name="Totals-OPENpips";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,Shifts[15]);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,DoubleToStr(OPTpips,0),9,"Arial",HeaderColor);
}//---- remove lines
int x=10;
name="From-Date-text";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,x);
ObjectSet(name,OBJPROP_YDISTANCE,y+RowSpacing);
ObjectSetText(name,"This Report is From:",9,"Arial",HeaderColor);
}//---- remove lines
name="From-Date";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,x+120);
ObjectSet(name,OBJPROP_YDISTANCE,y+RowSpacing);
ObjectSetText(name,TimeToStr(sdate,TIME_DATE),9,"Arial",HeaderColor);
}//---- remove lines
name="To-Date-text";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,x+190);
ObjectSet(name,OBJPROP_YDISTANCE,y+RowSpacing);
ObjectSetText(name,"Until:",9,"Arial",HeaderColor);
}//---- remove lines
name="To-Date";
if(ObjectCreate(name,OBJ_LABEL,windex,0,0))
{
ObjectSet(name,OBJPROP_XDISTANCE,x+230);
ObjectSet(name,OBJPROP_YDISTANCE,y+RowSpacing);
ObjectSetText(name,TimeToStr(edate,TIME_DATE),9,"Arial",HeaderColor);
}//---- remove lines
}
void GetMultiplier()
{
int digits=MarketInfo(OrderSymbol(),MODE_DIGITS);
if(digits == 2 || digits == 4) multiplier = 1;
if(digits == 3 || digits == 5) multiplier = 0.1;
if(digits == 6) multiplier = 0.01;
if(digits == 7) multiplier = 0.001;
}

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hello,
As the title says, I'm in a very dire need of such an EA/indicator
E.g. a pair EURUSD (and only EURUSD) is currently at -20 in Profit/Loss, and the said EA/indicator is set to alert one when Profit/Loss reaches an amount above -10... would be very nice to have a function that closes all trades within the pair if it for example reaches that -10 or some other amount, but just an alert on it's own, would be a real godsend for me