Trending and Reversal

Author: Copyright � 2008, Henky Mailis
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
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
58.00 %
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%
GBP/USD Oct 2024 - Jan 2025
70.00 %
Total Trades 1052
Won Trades 403
Lost trades 649
Win Rate 0.38 %
Expected payoff -9.15
Gross Profit 22898.00
Gross Loss -32528.00
Total Net Profit -9630.00
-100%
-50%
0%
50%
100%
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);
  } 
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---