Price Data Components
Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
0
Won Trades
0
Lost trades
0
Win Rate
0.0 %
Expected payoff
0.00
Gross Profit
0.00
Gross Loss
0.00
Total Net Profit
0.00
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
0
Won Trades
0
Lost trades
0
Win Rate
0.0 %
Expected payoff
0.00
Gross Profit
0.00
Gross Loss
0.00
Total Net Profit
0.00
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
0
Won Trades
0
Lost trades
0
Win Rate
0.0 %
Expected payoff
0.00
Gross Profit
0.00
Gross Loss
0.00
Total Net Profit
0.00
-100%
-50%
0%
50%
100%
ema33
//+------------------------------------------------------------------+
//| ema33.mq4 |
//|
//| shenxinon@126.com |
//+------------------------------------------------------------------+
#property copyright "sx"
#property link "shenxinon@126.com"
extern int sl =50;
extern int tp =450;
extern double ts =100;
extern int fz =50;
extern double Lots =1;
extern string TicketComment ="ema3*3";
extern int MagicNumber =84;
bool BC =false;
bool SC =false;
double EmaH4 =0.0;
double EmaD =0.0;
double NewOpenPriceH4 =0.0;
double NewOpenPriceD =0.0;
double Vol =0.0;
double LevelUp =0.0;
double LevelDown =0.0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
//| CHECK CHART NEED MORE THAN 100 BARS |
//+------------------------------------------------------------------+
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
EmaH4=iMA(NULL,PERIOD_H4,3,3,MODE_EMA,PRICE_CLOSE,0);
EmaD=iMA(NULL,PERIOD_D1,3,3,MODE_EMA,PRICE_CLOSE,0);
NewOpenPriceH4=iOpen(NULL,PERIOD_H4,0);
NewOpenPriceD =iOpen(NULL,PERIOD_D1,0);
Vol=iVolume(NULL,PERIOD_D1,0);
//---- go trading only for first tiks of new bar
if(Vol<1 && NewOpenPriceH4>EmaH4 && NewOpenPriceD>EmaD)
{
BC=true;
SC=false;
sl=iLow(NULL,PERIOD_H4,1);
}
if(Vol<1 && NewOpenPriceH4<EmaH4 && NewOpenPriceD<EmaD)
{
BC=false;
SC=true;
sl=iHigh(NULL,PERIOD_H4,1);
}
if(BC==true)
{
if(subTotalTrade()==0)
{
subOpenOrder(OP_BUY,sl,tp);
LevelUp=NormalizeDouble(Ask+fz*Point,4);
LevelDown=NormalizeDouble(Ask-fz*Point,4);
}
}
if(SC==true)
{
if(subTotalTrade()==0)
{
subOpenOrder(OP_SELL,sl,tp);
LevelUp=NormalizeDouble(Bid+fz*Point,4);
LevelDown=NormalizeDouble(Bid-fz*Point,4);
}
}
if(subTotalTrade()>0)
{
if(subCheckOpenTrade()=="BUY" )
{
if(Bid>LevelUp)
{
if(Bid<EmaH4) subCloseOrder();
}
}
if(subCheckOpenTrade()=="SELL")
{
if(Ask<LevelDown)
{
if(Ask>EmaH4) subCloseOrder();
}
}
}
return(0);
}
//+------------------------------------------------------------------+
int subTotalTrade()
{
int
cnt,
total = 0;
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber) total++;
}
return(total);
}
//+------------------------------------------------------------------+
int subOpenOrder(int type,int stoploss,int takeprofit)
{
int
ticket =0,
err =0,
c =0;
double
aStopLoss = 0,
aTakeProfit = 0,
bStopLoss = 0,
bTakeProfit = 0;
if(stoploss!=0)
{
aStopLoss = NormalizeDouble(Ask-stoploss*Point,4);
bStopLoss = NormalizeDouble(Bid+stoploss*Point,4);
}
if(takeprofit!=0)
{
aTakeProfit = NormalizeDouble(Ask+takeprofit*Point,4);
bTakeProfit = NormalizeDouble(Bid-takeprofit*Point,4);
}
if(type==OP_BUY)
{
for(c=0;c<5;c++)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,aStopLoss,aTakeProfit,TicketComment,MagicNumber,0,Green);
err=GetLastError();
if(err==0)
{
if(ticket>0) break;
}
else
{
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
continue;
}
else //normal error
{
if(ticket>0) break;
}
}
}
}
if(type==OP_SELL)
{
for(c=0;c<5;c++)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,bStopLoss,bTakeProfit,TicketComment,MagicNumber,0,Red);
err=GetLastError();
if(err==0)
{
if(ticket>0) break;
}
else
{
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
continue;
}
else //normal error
{
if(ticket>0) break;
}
}
}
}
return(ticket);
}
//+------------------------------------------------------------------+
string subCheckOpenTrade()
{
int
cnt = 0;
string
lasttrade = "None";
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY ) lasttrade = "BUY";
if(OrderType()==OP_SELL) lasttrade = "SELL";
}
}
return(lasttrade);
}
//+------------------------------------------------------------------+
void subCloseOrder()
{
int
cnt,
total = 0,
ticket = 0,
err = 0,
c = 0;
total = OrdersTotal();
for(cnt=total-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
switch(OrderType())
{
case OP_BUY :
for(c=0;c<5;c++)
{
ticket=OrderClose(OrderTicket(),OrderLots(),Bid,5,Violet);
err=GetLastError();
if(err==0)
{
if(ticket>0) break;
}
else
{
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
continue;
}
else //normal error
{
if(ticket>0) break;
}
}
}
break;
case OP_SELL :
for(c=0;c<5;c++)
{
ticket=OrderClose(OrderTicket(),OrderLots(),Ask,5,Violet);
err=GetLastError();
if(err==0)
{
if(ticket>0) break;
}
else
{
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
continue;
}
else //normal error
{
if(ticket>0) break;
}
}
}
break;
case OP_BUYLIMIT :
case OP_BUYSTOP :
case OP_SELLLIMIT:
case OP_SELLSTOP :
OrderDelete(OrderTicket());
}
}
}
}
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
---