Price Data Components
Orders Execution
0
Views
0
Downloads
0
Favorites
Profitability Reports
GBP/USD
Oct 2024 - Jan 2025
66.00 %
Total Trades
126
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-0.67
Gross Profit
163.50
Gross Loss
-248.50
Total Net Profit
-85.00
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
114
Won Trades
0
Lost trades
114
Win Rate
0.00 %
Expected payoff
-3.50
Gross Profit
0.00
Gross Loss
-399.00
Total Net Profit
-399.00
-100%
-50%
0%
50%
100%
6pending daily v1-0
//+------------------------------------------------------------------+
//| 6pending daily v1-0.mq4 |
//| Eben Brand |
//| http://www.ebenbrand.com |
//+------------------------------------------------------------------+
#property copyright "Eben Brand"
#property link "http://www.ebenbrand.com"
extern int TriggerTime=17;
extern int ExpirationTime=23;
extern int magicno=888;
static int LASTRUN;
extern double Lots=0.01;
extern double MaxLots=10;
extern double Risk=0.075;
extern double SL=30;
extern double TP1=15;
extern double TP2=30;
extern double TP3=50;
extern bool UseMoneyManagement = true;
extern bool AccountIsMicro = false;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double yesterday_high=0;
double yesterday_low=0;
double yesterday_close=0;
double maxdiff=0;
double highdiff=0;
double lowdiff=0;
double stop=0;
double TP=0;
double lots=1;
double price=0;
int seed=0;
int slip=5;
int ticket1=0;
int ticket2=0;
int ticket3=0;
int ticket4=0;
int ticket5=0;
int ticket6=0;
int i=0; // Counter
// Number of bars in previous day
double prev_day_highs[24];
double prev_day_lows[24];
if(UseMoneyManagement==true)
{
Lots = DefineLotSize(); //Adjust the lot size total
}
while((TimeDayOfWeek(Time[0]) > 0) && (TimeDayOfWeek(Time[0]) <6))
{
if ((LASTRUN == Time[0]))
{
return(0);
}
else
{
LASTRUN = Time[0];
}
//Now we check whether the trigger time has come up
if (TimeHour(Time[0]) != TriggerTime)
return(0);
//---- Get new daily prices
ArrayCopySeries(prev_day_highs, MODE_HIGH, Symbol(), PERIOD_H1);
ArrayCopySeries(prev_day_lows, MODE_LOW, Symbol(), PERIOD_H1);
yesterday_close = iClose(Symbol(), PERIOD_H1, 1);
yesterday_high = prev_day_highs[ArrayMaximum(prev_day_highs, 24, 0)];
yesterday_low = prev_day_lows[ArrayMinimum(prev_day_lows, 24, 0)];
//Print("New daily stats : ", "Date : ", Month( ), "/", Day(), "Close ", yesterday_close, " ", "High ", yesterday_high, " ", "Low ", yesterday_low);
//Buystop
if (CountLongs(magicno) == 0)
{
price = yesterday_high + 5*Point;
stop = yesterday_high - SL*Point;
ticket1 = OrderSend(Symbol(), OP_BUYSTOP, Lots, price, slip, stop, price+TP1*Point, "6pending Buy Order", magicno, StrToTime(ExpirationTime+":00"), Blue);
// Print("Buy = ", price, " lots = ", lots, " Stop = ", stop, " TP1 = ", TP1, " Order no = ", ticket1);
if(ticket1<0)
{
Print("Buy Order failed with error #",GetLastError());
ticket1 = 0;
return(0);
}
ticket2 = OrderSend(Symbol(), OP_BUYSTOP, Lots, price, slip, stop, price+TP2*Point, "6pending Buy Order", magicno, StrToTime(ExpirationTime+":00"), Blue);
// Print("Buy = ", price, " lots = ", lots, " Stop = ", stop, " TP2 = ", TP2, " Order no = ", ticket2);
if(ticket2<0)
{
Print("Buy Order failed with error #",GetLastError());
ticket2 = 0;
return(0);
}
ticket3 = OrderSend(Symbol(), OP_BUYSTOP, Lots, price, slip, stop, price+TP3*Point, "6pending Buy Order", magicno, StrToTime(ExpirationTime+":00"), Blue);
// Print("Buy = ", price, " lots = ", lots, " Stop = ", stop, " TP3 = ", TP3, " Order no = ", ticket3);
if(ticket3<0)
{
Print("Buy Order failed with error #",GetLastError());
ticket3 = 0;
return(0);
}
}
//Sellstop
if (CountShorts(magicno) == 0)
{
price = yesterday_low - 5*Point;
stop = yesterday_low + SL*Point;
ticket4 = OrderSend(Symbol(), OP_SELLSTOP, Lots, price, slip, stop, price-TP1*Point, "Sell Order", magicno, StrToTime(ExpirationTime+":00"), Blue);
// Print("Sell = ", price, "lots = ", lots, " Stop = ", stop, " TP1 = ", TP1, " Order no = ", ticket4);
if(ticket4<0)
{
Print("Buy Order failed with error #",GetLastError());
ticket4 = 0;
return(0);
}
ticket5 = OrderSend(Symbol(), OP_SELLSTOP, Lots, price, slip, stop, price-TP2*Point, "Sell Order", magicno, StrToTime(ExpirationTime+":00"), Blue);
// Print("Sell = ", price, "lots = ", lots, " Stop = ", stop, " TP2 = ", TP2, " Order no = ", ticket5);
if(ticket5<0)
{
Print("Buy Order failed with error #",GetLastError());
ticket5 = 0;
return(0);
}
ticket6 = OrderSend(Symbol(), OP_SELLSTOP, Lots, price, slip, stop, price-TP3*Point, "Sell Order", magicno, StrToTime(ExpirationTime+":00"), Blue);
// Print("Sell = ", price, "lots = ", lots, " Stop = ", stop, " TP3 = ", TP3, " Order no = ", ticket6);
if(ticket6<0)
{
Print("Buy Order failed with error #",GetLastError());
ticket6 = 0;
return(0);
}
}
//----
return(0);
}
}
//+------------------------------------------------------------------+
double DefineLotSize() {
double lotMM = 0;
if(AccountIsMicro==false)
{
lotMM = NormalizeDouble((Risk * AccountEquity() / ((Ask+Bid)/(Point*20))), 1);
}
else
{ //micro account
lotMM = NormalizeDouble((Risk * AccountEquity() / ((Ask+Bid)/(Point*20))), 2);
}
return (lotMM);
}
//+------------------------------------------------------------------+
//| Calculate concurrent Long position |
//+------------------------------------------------------------------+
int CountLongs(int MagicNumber)
{
int count=0;
int trade;
int trades=OrdersTotal();
for(trade=0;trade<trades;trade++)
{
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if( OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber )
continue;
if(OrderType()==OP_BUY || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP)
count++;
}//for
return(count);
}
//+------------------------------------------------------------------+
//| Calculate concurrent short position |
//+------------------------------------------------------------------+
int CountShorts(int MagicNumber)
{
int count=0;
int trade;
int trades=OrdersTotal();
for(trade=0;trade<trades;trade++)
{
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber )
continue;
if(OrderType()==OP_SELL || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
count++;
}//for
return(count);
}
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
---