Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
9.00 %
Total Trades
833
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-10.81
Gross Profit
945.00
Gross Loss
-9950.00
Total Net Profit
-9005.00
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
7.00 %
Total Trades
617
Won Trades
229
Lost trades
388
Win Rate
0.37 %
Expected payoff
-14.60
Gross Profit
694.00
Gross Loss
-9700.00
Total Net Profit
-9006.00
-100%
-50%
0%
50%
100%
RPM5_MT4V1_[ea]
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+-------------------------------------------------------------------------+
//| RPM5_MT4_[ea].mq4 |
//| Copyright © 2005,yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/|
//+-------------------------------------------------------------------------+
#property copyright "Copyright © 2005,yahoo.com/group/MetaTrader_Experts_and_Indicators/"
#property link "http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
#define MAGIC 20050817
extern int HourSetOrder = 9; // start time
extern int BullBearPeriod=5;
extern double lots = 1.0; //
extern double TrailingStop = 15; // trail stop in points
extern double takeProfit = 150; // recomended no more than 150
extern double stopLoss = 25; // do not use s/l
extern double slippage = 3;
extern bool pivots = true;
double dHigh, dLow; // day extrema
int WidthChannel; // width of channel
double day_high=0;
double day_low=0;
double yesterday_high=0;
double yesterday_open=0;
double yesterday_low=0;
double yesterday_close=0;
double today_open=0;
double today_high=0;
double today_low=0;
double rates_d1[2][6];
double P=0;
double fib_projection1=0.214;
double fib_projection2=0.382;
double fib_projection3=0.618;
double fib_projection4=0.768;
extern string nameEA = "DayTrading"; // EA identifier. Allows for several co-existing EA with different values
double bull,bear;
double PrevBBE,CurrentBBE;
double realTP, realSL,b,s,sl,tp;
bool isBuying = false, isSelling = false, isClosing = false;
int cnt, ticket;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
//---- exit if period is greater than daily charts
if(Period() > 1440)
{//1
Print("Error - Chart period is greater than 1 day.");
return(-1); // then exit
}//1
//---- Get new daily prices
ArrayCopyRates(rates_d1, Symbol(), PERIOD_D1);
yesterday_close = rates_d1[1][4];
yesterday_open = rates_d1[1][1];
today_open = rates_d1[0][1];
yesterday_high = rates_d1[1][3];
yesterday_low = rates_d1[1][2];
day_high = rates_d1[0][3];
day_low = rates_d1[0][2];
P = (yesterday_high + yesterday_low + yesterday_close) / 3;
// return(0);
// }
ObjectCreate("Fractal Fibo Retracement",OBJ_FIBO,0,P,fib_projection1,fib_projection2,fib_projection3,fib_projection4 );
if(ObjectFind("P line") != 0)
{
ObjectCreate("P line", OBJ_HLINE, 0, Time[40], P);
ObjectSet("P line", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("P line", OBJPROP_COLOR, Magenta);
}
else
{
ObjectMove("P line", 0, Time[40], P);
}//2
if (!IsTesting()) {
ObjectCreate("HDayBorder", OBJ_TREND, 0, 0,0, 0,0);
ObjectCreate("LDayBorder", OBJ_TREND, 0, 0,0, 0,0);
}
return(0);
}
//+------------------------------------------------------------------+
//| the determination of the day extreem |
//+------------------------------------------------------------------+
int DefineDayExtremums() {
int CurrentDay=Day(), sb=0;
dHigh=0; dLow=500;
while (TimeDay(Time[sb])==CurrentDay && sb<1500) {
if (TimeHour(Time[sb])<=HourSetOrder) {
dHigh = MathMax(dHigh, High[sb]);
dLow = MathMin(dLow, Low[sb]);
}
sb++;
}
WidthChannel = (dHigh - dLow) / Point;
Comment("Width of channel: " + WidthChannel);
}
//+------------------------------------------------------------------+
//| mapping the day channel |
//+------------------------------------------------------------------+
int DrawDayChannel() {
if (!IsTesting()) {
ObjectSet("HDayBorder", OBJPROP_TIME1, StrToTime(TimeToStr(Time[0], TIME_DATE)+" 00:00"));
ObjectSet("HDayBorder", OBJPROP_TIME2, Time[0]);
ObjectSet("HDayBorder", OBJPROP_PRICE1, dHigh);
ObjectSet("HDayBorder", OBJPROP_PRICE2, dHigh);
ObjectSet("HDayBorder", OBJPROP_COLOR, Blue);
ObjectSet("HDayBorder", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("LDayBorder", OBJPROP_TIME1, StrToTime(TimeToStr(Time[0], TIME_DATE)+" 00:00"));
ObjectSet("LDayBorder", OBJPROP_TIME2, Time[0]);
ObjectSet("LDayBorder", OBJPROP_PRICE1, dLow);
ObjectSet("LDayBorder", OBJPROP_PRICE2, dLow);
ObjectSet("LDayBorder", OBJPROP_COLOR, Red);
ObjectSet("LDayBorder", OBJPROP_STYLE, STYLE_DASH);
}
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
ObjectDelete("Fractal Fibo Retracement");
ObjectDelete("P Line");
if (!IsTesting()) {
ObjectDelete("HDayBorder");
ObjectDelete("LDayBorder");
}
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
DefineDayExtremums();
DrawDayChannel();
// Check for invalid bars and takeprofit
if(Bars < 200) {
Print("Not enough bars for this strategy - ", nameEA);
return(-1);
}
calculateIndicators(); // Calculate indicators' value
// Control open trades
int totalOrders = OrdersTotal();
int numPos = 0;
for(cnt=0; cnt<totalOrders; cnt++) { // scan all orders and positions...
OrderSelect(cnt, SELECT_BY_POS); // the next line will check for ONLY market trades, not entry orders
if(OrderSymbol() == Symbol() && OrderType() <= OP_SELL ) { // only look for this symbol, and only orders from this EA
numPos++;
if(OrderType() == OP_BUY) { // Check for close signal for bought trade
if(TrailingStop > 0) { // Check trailing stop
if(Bid-OrderOpenPrice() > TrailingStop*Point)
{
if(OrderStopLoss() < (Bid - TrailingStop*Point))
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Blue);
}
}
} else { // Check sold trade for close signal
if(TrailingStop > 0) { // Control trailing stop
if(OrderOpenPrice() - Ask > TrailingStop*Point)
{
if(OrderStopLoss() == 0 || OrderStopLoss() > Ask + TrailingStop*Point)
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Red);
}
}
}
}
}
// If there is no open trade for this pair and this EA
if(numPos < 1) {
if(AccountFreeMargin() < 1000*lots) {
Print("Not enough money to trade ", lots, " lots. Strategy:", nameEA);
return(0);
}
if(isBuying && !isSelling && !isClosing) { // Check for BUY entry signal
sl = Ask - stopLoss * Point;
tp = Bid + takeProfit * Point;
// ticket = OrderSend(OP_BUY,lots,Ask,slippage,realSL,realTP,nameEA,16384,0,Red); // Buy
//OrderSend(OP_BUY,lots,Ask,slippage,realSL,realTP,0,0,Red);
OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,sl,tp,nameEA+CurTime(),0,0,Green);
Comment(sl);
if(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
}
if(isSelling && !isBuying && !isClosing) { // Check for SELL entry signal
sl = Bid + stopLoss * Point;
tp = Ask - takeProfit * Point;
// ticket = OrderSend(NULL,OP_SELL,lots,Bid,slippage,realSL,realTP,nameEA,16384,0,Red); // Sell
OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,sl,tp,nameEA+CurTime(),0,0,Red);
if(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
}
}
return(0);
}
void calculateIndicators() { // Calculate indicators' value
bull = iBullsPower(NULL,0,BullBearPeriod,PRICE_CLOSE,1);
bear = iBearsPower(NULL,0,BullBearPeriod,PRICE_CLOSE,1);
//Comment("bull+bear= ",bull + bear);
CurrentBBE = iCustom(NULL, 0, "BullsBearsEyes",13,0,0.5,300,0,0);
PrevBBE = iCustom(NULL, 0, "BullsBearsEyes",13,0,0.5,300,0,1);
b = ((1 * Point) + (iATR(NULL,0,5,1) * 1.5));
s = ((1 * Point) + (iATR(NULL,0,5,1) * 1.5));
// Check for BUY, SELL, and CLOSE signal
//isBuying = (bull+bear>0);
//isSelling = (bull+bear<0);
isBuying = (CurrentBBE>0.50);
isSelling = (CurrentBBE<0.50);
isClosing = false;
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY)
{
TrailingStop=b;
if (Bid - OrderOpenPrice() > TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT))
{
if (OrderStopLoss() < Bid - TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT))
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red);
}
}
} else if (OrderType() == OP_SELL)
{
TrailingStop=s;
if (OrderOpenPrice() - Ask > TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT))
{
if ((OrderStopLoss() > Ask + TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT)) ||
(OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT), OrderTakeProfit(), Red);
}
}
}
}
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
---