Pivots_test

Author: Copyright � 2008, ZerkMax.
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
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%
Pivots_test
//+------------------------------------------------------------------+
//|                                                  Pivots_test.mq4 |
//|                                       Copyright © 2008, ZerkMax. |
//|                                                      zma@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, ZerkMax."
#property link      "zma@mail.ru"




extern double Lots           = 0.1;
extern int    TrailingStop   = 30;
extern int    magicnumber    = 777;



int prevtime;


int ticketbuy, ticketsell;
//--- Ïîäêëþ÷åíèå áèáëèîòåêè àâòîîïòèìèçàòîðà


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----


   int i=0;  
   int total = OrdersTotal();   
   for(i = 0; i <= total; i++) 
     {
      if(TrailingStop>0)  
       {                 
       OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
       if(OrderMagicNumber() == magicnumber) 
         {
         TrailingStairs(OrderTicket(),TrailingStop);
         }
       }
      }

   if(Bars == prevtime) 
       return(0);
   prevtime = Bars;
   if(!IsTradeAllowed()) 
     {
       prevtime = Bars;
       return(0);
     }


   
   double R2=NormalizeDouble(iCustom(NULL,0, "Pivots",5,1),2);
   double R1=NormalizeDouble(iCustom(NULL,0, "Pivots",4,1),2);
   double Piv=NormalizeDouble(iCustom(NULL,0, "Pivots",3,1),2);
   double S1=NormalizeDouble(iCustom(NULL,0, "Pivots",2,1),2);
   double S2=NormalizeDouble(iCustom(NULL,0, "Pivots",1,1),2);


ticketbuy=0;
ticketsell=0;
   for(i=1; i<=OrdersTotal(); i++)          
    { 
     if (OrderSelect(i-1,SELECT_BY_POS)==true) 
      {                                         
        int Tip=OrderType();                    
        if (Tip==2) ticketbuy=OrderTicket();  
        if (Tip==5) ticketsell=OrderTicket(); 
      }                              
    }

if (OrdersTotal()!=0)
{
   if (ticketbuy==0) 
   {
     if (ticketsell!=0) OrderDelete(ticketsell,0);
     OrderSend(Symbol(),OP_BUYLIMIT,Lots,Piv,3,S2,R2,"Pivots_Buy",magicnumber,0,Green);
     OrderSend(Symbol(),OP_SELLSTOP,Lots,Piv,3,R2,S2,"Pivots_Sell",magicnumber,0,Green);
   }
   if (ticketsell==0) 
   {
     if (ticketbuy!=0) OrderDelete(ticketbuy,0);
     OrderSend(Symbol(),OP_BUYLIMIT,Lots,Piv,3,S2,R2,"Pivots_Buy",magicnumber,0,Green);
     OrderSend(Symbol(),OP_SELLSTOP,Lots,Piv,3,R2,S2,"Pivots_Sell",magicnumber,0,Green);
   }
}
else
{
     OrderSend(Symbol(),OP_BUYLIMIT,Lots,Piv,3,S2,R2,"Pivots_Buy",magicnumber,0,Green);
     OrderSend(Symbol(),OP_SELLSTOP,Lots,Piv,3,R2,S2,"Pivots_Sell",magicnumber,0,Green);
}
    



//----
   return(0);
  }
//+------------------------------------------------------------------+

void TrailingStairs(int ticket,int trldistance)
   {
    int Spred=Ask - Bid;
    if (OrderType()==OP_BUY)
      {
       if((Bid-OrderOpenPrice())>(Point*trldistance))
         {
          if(OrderStopLoss()<Bid-Point*trldistance || (OrderStopLoss()==0))
            {
             OrderModify(ticket,OrderOpenPrice(),Bid-Point*trldistance,OrderTakeProfit(),0,Green);
             
            }
         }
       }
     if (OrderType()==OP_SELL)
       {
        if((OrderOpenPrice()-Ask)>(Point*trldistance))
          {
           if((OrderStopLoss()>(Ask+Point*trldistance)) || (OrderStopLoss()==0))
             {
              OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*trldistance,OrderTakeProfit(),0,Red);
             }
          }
        }
    }

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 ---