Trending and Reversal

Author: Copyright � 2008, Henky Mailis
Profit factor:
0.64
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategy
Indicators Used
MACD Histogram
1 Views
0 Downloads
0 Favorites
Trending and Reversal
//+------------------------------------------------------------------+
//|                                        Trending and Reversal.mq4 |
//|                                   Copyright © 2008, Henky Mailis |
//|                                         http://www.h3nkymcnv.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Henky Mailis"
#property link      "http://www.h3nkymcnv.com"
//----
extern double Lots=1.0;
extern double Bands=100.0;
extern double TakeProfit=150.0;
extern double InitialStop=50.0;
extern double TrailingStop=50.0;
//----
int jmlorder=0;
int itung=0;
int  slip=0;
double slnyo=0.0;
double buka=0;
double stop=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//---- 
   jmlorder=0;
   for(itung=0;itung<OrdersTotal();itung++)
    {
     OrderSelect(itung,SELECT_BY_POS,MODE_TRADES);
     //----
     if(OrderSymbol()==Symbol())
     jmlorder++;
    }
//----
   if(jmlorder==0)
    {
     if(iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,0)<iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,1)) 
      {
       OrderSend(Symbol(),OP_SELL,Lots,Bid,slip,Ask+InitialStop*Point,Ask-TakeProfit*Point,NULL,0,0,Blue);
       return(0);
      }
     if(iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,0)>iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,1)) 
      { 
       OrderSend(Symbol(),OP_BUY,Lots,Ask,slip,Bid-InitialStop*Point,Bid+TakeProfit*Point,NULL,0,0,Red);
       return(0);
      }
    }
//----
   buka=0; stop=0;
   if(jmlorder==1)
    {
     for(itung=OrdersTotal();itung>=0;itung--)
      {
       OrderSelect(itung,SELECT_BY_POS,MODE_TRADES);
       if(OrderSymbol()==Symbol())
        {	
         if(OrderType()==OP_SELL)
          {
           buka=OrderStopLoss(); stop=OrderOpenPrice();
           OrderSend(Symbol(),OP_BUYSTOP,Lots,buka,slip,stop,buka+TakeProfit*Point,NULL,0,0,Orange);
           return(0);
          }
         if(OrderType()==OP_BUY)
          {
           buka=OrderStopLoss(); stop=OrderOpenPrice();
           OrderSend(Symbol(),OP_SELLSTOP,Lots,buka,slip,stop,buka-TakeProfit*Point,NULL,0,0,Indigo);
           return(0);
          }
        }
      } 
    }
//---- if we have opened positions we take care of them
   slnyo=0;
   for(itung=OrdersTotal();itung>=0;itung--)
    {
     OrderSelect(itung,SELECT_BY_POS,MODE_TRADES);
     if(OrderSymbol()==Symbol())
      {
       if(OrderType()==OP_SELL)
        {
         slnyo=OrderStopLoss();
         if(TrailingStop>0)
          if(OrderOpenPrice()-Ask>=TrailingStop*Point)
           if(OrderStopLoss()>(Ask+Point*TrailingStop))
            {
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderClosePrice()+Point*TrailingStop,OrderClosePrice()-TakeProfit*Point,0,Aqua);
             return(0);
            }
        }
       if(OrderType()==OP_BUY)
        {
         slnyo=OrderStopLoss();
         if(TrailingStop>0)
          if(Bid-OrderOpenPrice()>=TrailingStop*Point)
           if(OrderStopLoss()<Bid-Point*TrailingStop)
            {
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderClosePrice()-Point*TrailingStop,OrderClosePrice()+TakeProfit*Point,0,DeepPink);
             return(0);
            }
        }
      }
    }
//----
   for(itung=OrdersTotal();itung>=0;itung--)
    {
     OrderSelect(itung,SELECT_BY_POS,MODE_TRADES);
     //----
     if(OrderSymbol()==Symbol())
      {
       if(OrderType()==OP_BUYSTOP)
        {
         if(OrderOpenPrice()!=slnyo)
          {
           OrderModify(OrderTicket(),slnyo,slnyo-Point*InitialStop,slnyo+TakeProfit*Point,0,Orange);
           return(0);
          }
        }
       if(OrderType()==OP_SELLSTOP)
        {
         if(OrderOpenPrice()!=slnyo)
          {
           OrderModify(OrderTicket(),slnyo,slnyo+Point*InitialStop,slnyo-TakeProfit*Point,0,Indigo);
           return(0);
          }
        }
      }
    } 
//----
   return(0);
  } 
//+------------------------------------------------------------------+

Profitability Reports

GBP/USD Oct 2024 - Jan 2025
0.70
Total Trades 1052
Won Trades 403
Lost trades 649
Win Rate 38.31 %
Expected payoff -9.15
Gross Profit 22898.00
Gross Loss -32528.00
Total Net Profit -9630.00
-100%
-50%
0%
50%
100%
AUD/USD Oct 2024 - Jan 2025
0.58
Total Trades 303
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -13.22
Gross Profit 5594.00
Gross Loss -9600.00
Total Net Profit -4006.00
-100%
-50%
0%
50%
100%

Comments