Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
GBP/USD
Oct 2024 - Jan 2025
67.00 %
Total Trades
373
Won Trades
138
Lost trades
235
Win Rate
0.37 %
Expected payoff
-1.98
Gross Profit
1469.70
Gross Loss
-2207.00
Total Net Profit
-737.30
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
2052
Won Trades
0
Lost trades
2052
Win Rate
0.00 %
Expected payoff
-3.00
Gross Profit
0.00
Gross Loss
-6162.00
Total Net Profit
-6162.00
-100%
-50%
0%
50%
100%
e.2.13 5min Scalper
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
/* this expert is a spinoff of the previous envelope ea mod's, however
this one uses Limit orders to buy and sell when Close[1] is above the ma but below
bline, & below the ma but above the sline respectively. initial SL is the sline for
buylimit orders and the bline for selllimit orders. TP's are much smaller, grab it and
go philosophy.
if one backtests on 5min data, then selects open chart, mt4 will open a chart with the
ma & it's accompanying envelopes along with all the buy and sell arrows, sl's & tp's.
this will aid in understanding what this ea is meant to do, and how it performed given
past data. i have more that a year's worth of 1 & 5 minute gbpusd data, email me should
you want to import it into your copy of mt4. gl/gt tag.
*/
//+------------------------------------------------------------------+
//| e.2.12 5 min.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, tageiger aka fxid10t"
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "fxid10t@yahoo.com"
#property link "http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/join"
//---- input parameters
extern int EnvelopePeriod =144;//ma bars
extern int EnvTimeFrame =0; //envelope time frame: 0=chart,60=1hr,240=4hr, etc.
extern int EnvMaMethod =1; //0=sma,1=ema,2=smma,3=lwma.
extern double EnvelopeDeviation =0.05;//%shift above & below ma
extern int MaElineTSL =1;//0=iMA trailing stoploss 1=Opposite Envelope TSL
extern int TimeOpen =0;//time order placement can begin
extern int TimeClose =23;//open order deletion time
extern double FirstTP =8.0;
extern double SecondTP =13.0;
extern double ThirdTP =21.0;
extern double Lots =0.1;
extern double MaximumRisk =0.02;
extern double DecreaseFactor =3;
int b1,b2,b3,s1,s2,s3;
double TSL =0;
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
if(lot<0.1) lot=0.1;
return(lot);
}
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int p=0; p=EnvelopePeriod;
int etf=0; etf=EnvTimeFrame;
int mam=0; mam=EnvMaMethod;
double d=0; d=EnvelopeDeviation;
double btp1,btp2,btp3,stp1,stp2,stp3;
double bline=0,sline=0,ma=0,filter;
int cnt, ticket, total;
ma=iMA(NULL,etf,p,0,mam,PRICE_CLOSE,0);
bline=iEnvelopes(NULL,etf,p,mam,0,PRICE_CLOSE,d,MODE_UPPER,0);
sline=iEnvelopes(NULL,etf,p,mam,0,PRICE_CLOSE,d,MODE_LOWER,0);
total=OrdersTotal();
if(OrdersTotal()==0)
{b1=0;b2=0;b3=0;s1=0;s2=0;s3=0;}
if(OrdersTotal()>0)
{
//Print("Total Orders:",OrdersTotal());
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==2)
{b1=OrderTicket(); }
if(OrderMagicNumber()==4)
{b2=OrderTicket(); }
if(OrderMagicNumber()==6)
{b3=OrderTicket(); }
if(OrderMagicNumber()==1)
{s1=OrderTicket(); }
if(OrderMagicNumber()==3)
{s2=OrderTicket(); }
if(OrderMagicNumber()==5)
{s3=OrderTicket(); }
}
}
//Print(b1," ",b2," ",b3," ",s1," ",s2," ",s3);
if(b1==0)
{
if(Hour()>TimeOpen && Hour()<TimeClose)
{
if(Close[1]>ma && Close[1]<bline)
{
btp1=(NormalizeDouble(bline,4))+(FirstTP*Point);
ticket=OrderSend(Symbol(),
OP_BUYLIMIT,
LotsOptimized(),
(NormalizeDouble(ma,4)),
0,
(NormalizeDouble(sline,4)),
btp1,
"e.2.12 BL1",
2,
TimeClose,
Aqua);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
b1=ticket;
Print(ticket);
}
else Print("Error Opening BuyLimit Order: ",GetLastError());
return(0);
}
}
}
}
if(b2==0)
{
if(Hour()>TimeOpen && Hour()<TimeClose)
{
if(Close[1]>ma && Close[1]<bline)
{
btp2=(NormalizeDouble(bline,4))+(SecondTP*Point);
ticket=OrderSend(Symbol(),
OP_BUYLIMIT,
LotsOptimized(),
(NormalizeDouble(ma,4)),
0,
(NormalizeDouble(sline,4)),
btp2,
"e.2.12 BL2",
4,
TimeClose,
Aqua);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
b2=ticket;
Print(ticket);
}
else Print("Error Opening BuyLimit Order: ",GetLastError());
return(0);
}
}
}
}
if(b3==0)
{
if(Hour()>TimeOpen && Hour()<TimeClose)
{
if(Close[1]>ma && Close[1]<bline)
{
btp3=(NormalizeDouble(bline,4))+(ThirdTP*Point);
ticket=OrderSend(Symbol(),
OP_BUYLIMIT,
LotsOptimized(),
(NormalizeDouble(ma,4)),
0,
(NormalizeDouble(sline,4)),
btp3,
"e.2.12 BL3",
6,
TimeClose,
Aqua);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
b3=ticket;
Print(ticket);
}
else Print("Error Opening BuyLimit Order: ",GetLastError());
return(0);
}
}
}
}
if(s1==0)
{
if(Hour()>TimeOpen && Hour()<TimeClose)
{
if(Close[1]<ma && Close[1]>sline)
{
stp1=NormalizeDouble(sline,4)-(FirstTP*Point);
ticket=OrderSend(Symbol(),
OP_SELLLIMIT,
LotsOptimized(),
(NormalizeDouble(ma,4)),
0,
(NormalizeDouble(bline,4)),
stp1,
"e.2.12 SL1",
1,
TimeClose,
HotPink);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
s1=ticket;
Print(ticket);
}
else Print("Error Opening SellLimit Order: ",GetLastError());
return(0);
}
}
}
}
if(s2==0)
{
if(Hour()>TimeOpen && Hour()<TimeClose)
{
if(Close[1]<ma && Close[1]>sline)
{
stp2=NormalizeDouble(sline,4)-(SecondTP*Point);
ticket=OrderSend(Symbol(),
OP_SELLLIMIT,
LotsOptimized(),
(NormalizeDouble(ma,4)),
0,
(NormalizeDouble(bline,4)),
stp2,
"e.2.12 SL2",
3,
TimeClose,
HotPink);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
s2=ticket;
Print(ticket);
}
else Print("Error Opening SellLimit Order: ",GetLastError());
return(0);
}
}
}
}
if(s3==0)
{
if(Hour()>TimeOpen && Hour()<TimeClose)
{
if(Close[1]<ma && Close[1]>sline)
{
stp3=NormalizeDouble(sline,4)-(ThirdTP*Point);
ticket=OrderSend(Symbol(),
OP_SELLLIMIT,
LotsOptimized(),
(NormalizeDouble(ma,4)),
0,
(NormalizeDouble(bline,4)),
stp3,
"e.2.12 SL3",
5,
TimeClose,
HotPink);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
s3=ticket;
Print(ticket);
}
else Print("Error Opening SellLimit Order: ",GetLastError());
return(0);
}
}
}
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY)
{
if(MaElineTSL==0) {TSL=NormalizeDouble(ma,4); }
if(MaElineTSL==1) {TSL=NormalizeDouble(sline,4); }
if(Close[0]>OrderOpenPrice())
{
if((Close[0]>bline) && (TSL>OrderStopLoss()))
{
double bsl;bsl=TSL;
OrderModify(OrderTicket(),
OrderOpenPrice(),
bsl,
OrderTakeProfit(),
0,//Order expiration server date/time
Green);
return(0);
}
}
}
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL)
{
if(MaElineTSL==0) {TSL=NormalizeDouble(ma,4); }
if(MaElineTSL==1) {TSL=NormalizeDouble(bline,4); }
if(Close[0]<OrderOpenPrice())
{
if((Close[0]<sline) && (TSL<OrderStopLoss()))
{
double ssl;ssl=TSL;
OrderModify(OrderTicket(),
OrderOpenPrice(),
ssl,
OrderTakeProfit(),
0,//Order expiration server date/time
Red);
return(0);
}
}
}
OrderSelect(cnt,SELECT_BY_TICKET);
if(OrderTicket()==b1) {
if(OrderMagicNumber()==2 &&
OrderType()==OP_BUYLIMIT &&
OrderOpenPrice()!=NormalizeDouble(ma,4)) {
btp1=(NormalizeDouble(bline,4))+(FirstTP*Point);
OrderModify(OrderTicket(),
NormalizeDouble(ma,4),
NormalizeDouble(sline,4),
btp1,
0,
LimeGreen);
return(0); } }
if(OrderTicket()==b2) {
if(OrderMagicNumber()==4 &&
OrderType()==OP_BUYLIMIT &&
OrderOpenPrice()!=NormalizeDouble(ma,4)) {
btp2=(NormalizeDouble(ma,4))+(SecondTP*Point);
OrderModify(OrderTicket(),
NormalizeDouble(ma,4),
NormalizeDouble(sline,4),
btp2,
0,
LimeGreen);
return(0); } }
if(OrderTicket()==b3) {
if(OrderMagicNumber()==4 &&
OrderType()==OP_BUYLIMIT &&
OrderOpenPrice()!=NormalizeDouble(ma,4)) {
btp3=(NormalizeDouble(ma,4))+(ThirdTP*Point);
OrderModify(OrderTicket(),
NormalizeDouble(ma,4),
NormalizeDouble(sline,4),
btp3,
0,
LimeGreen);
return(0); } }
if(OrderTicket()==s1) {
if(OrderMagicNumber()==1 &&
OrderType()==OP_SELLLIMIT &&
OrderOpenPrice()!=NormalizeDouble(ma,4)) {
stp1=(NormalizeDouble(ma,4))-(FirstTP*Point);
OrderModify(OrderTicket(),
NormalizeDouble(ma,4),
NormalizeDouble(bline,4),
stp1,
0,
HotPink);
return(0); } }
if(OrderTicket()==s2) {
if(OrderMagicNumber()==3 &&
OrderType()==OP_SELLLIMIT &&
OrderOpenPrice()!=NormalizeDouble(ma,4)) {
stp2=(NormalizeDouble(ma,4))-(SecondTP*Point);
OrderModify(OrderTicket(),
NormalizeDouble(ma,4),
NormalizeDouble(bline,4),
stp2,
0,
HotPink);
return(0); } }
if(OrderTicket()==s3) {
if(OrderMagicNumber()==5 &&
OrderType()==OP_SELLLIMIT &&
OrderOpenPrice()!=NormalizeDouble(ma,4)) {
stp3=(NormalizeDouble(ma,4))-(ThirdTP*Point);
OrderModify(OrderTicket(),
NormalizeDouble(ma,4),
NormalizeDouble(bline,4),
stp3,
0,
HotPink);
return(0); } }
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(Hour()==TimeClose && OrderType()==OP_BUYLIMIT)
{
OrderDelete(OrderTicket());
if(OrderTicket()==b1) {b1=0; return;}
if(OrderTicket()==b2) {b2=0; return;}
if(OrderTicket()==b3) {b3=0; return;}
}
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(Hour()==TimeClose && OrderType()==OP_SELLLIMIT)
{
OrderDelete(OrderTicket());
if(OrderTicket()==s1) {s1=0; return;}
if(OrderTicket()==s2) {s2=0; return;}
if(OrderTicket()==s3) {s3=0; return;}
}
OrderSelect(b1,SELECT_BY_TICKET);
if(OrderClosePrice()>0) {b1=0;}
OrderSelect(b2,SELECT_BY_TICKET);
if(OrderClosePrice()>0) {b2=0;}
OrderSelect(b3,SELECT_BY_TICKET);
if(OrderClosePrice()>0) {b3=0;}
OrderSelect(s1,SELECT_BY_TICKET);
if(OrderClosePrice()>0) {s1=0;}
OrderSelect(s2,SELECT_BY_TICKET);
if(OrderClosePrice()>0) {s2=0;}
OrderSelect(s3,SELECT_BY_TICKET);
if(OrderClosePrice()>0) {s3=0;}
}
return(0);
}
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
---