exp_Amstell-SL





//+------------------------------------------------------------------+
//|                                                  exp_Amstell.mq4 |
//|                                   Copyright © 2009, Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Yuriy Tokman"
#property link      "yuriytokman@gmail.com"

//òîðãîâëÿ áåç ñòîï ëîñîâ,ïåðèîä day,ïîêóïàòü ,åñëè öåíà îòêðûòèÿ ïîñëåäíåãî 
//îòêðûòîãî îðäåðà âûøå òåêóùåé öåíû,è çàêðûâàòü îðäåð ïî äîñòèæåíèè 1000 ïóíêòîâ,
//òî æå è ñ ïðîäàæåé.îòêðûâàòü îðäåð sell,åñëè ïîñëåäíèé îòêðûòûé sell íèæå òåêóùåé 
//öåíû. îòêðûâàòü ïîçèöèè ïî öåíàì îòêðûòèÿ

extern int    TakeProfit       = 30;            // Ðàçìåð òåéêà â ïóíêòàõ
extern int    StopLoss         = 30;           // Ðàçìåð ñòîïà â ïóíêòàõ
extern double Lots             = 0.01;          // Ðàçìåð ëîòà

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  int Magic=0;
  
for(int cnt=0;cnt<OrdersTotal();cnt++)// Ïåðåáèðàåì âñå îðäåðà
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);//îðäåð âûáèðàåòñÿ ñðåäè îòêðûòûõ è îòëîæåííûõ îðäåðîâ
      if( OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)// Ñîâïàäàåò ëè ñèìâîë îðäåðà( Çäåñü ïî íàäîáíîñòè åù¸ ìàãèê ìîæíî ïðîâåðèòü)
        {
         if(OrderType()==OP_BUY)//Îòáèðàåì ïîçèöèþ áàé
           {
            if(Bid-OrderOpenPrice()>TakeProfit*Point || OrderOpenPrice()-Ask>StopLoss*Point)//
              {
               OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); //çàêðûâàåì îðäåð
               return(0); // âûõîäèì
              }//StopLoss
           }
          if(OrderType()==OP_SELL)//Îòáèðàåì ïîçèöèþ ñåëë
           {
            if(OrderOpenPrice()-Ask>TakeProfit*Point || Bid-OrderOpenPrice()>StopLoss*Point)//
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); //çàêðûâàåì îðäåð
               return(0); // âûõîäèì
              }
           }
         }
      }
//----
 int buy = 0, sell = 0;
//----
   if(!ExistPositions(NULL,OP_BUY))buy=1;
   else if(PriceOpenLastPos(NULL,OP_BUY)-Ask>10*Point)buy=1; 
   
   if(!ExistPositions(NULL,OP_SELL))sell=1;
   else if(Bid-PriceOpenLastPos(NULL,OP_SELL)>10*Point)sell=1;   
//----
    if(buy==1)
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",0,0,Green);
    
    if(sell==1)
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|  Îïèñàíèå : Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ ïîçèöèé                          |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà   (""   - ëþáîé ñèìâîë,                   |
//|                                     NULL - òåêóùèé ñèìâîë)                 |
//|    op - îïåðàöèÿ                   (-1   - ëþáàÿ ïîçèöèÿ)                  |
//|    mn - MagicNumber                (-1   - ëþáîé ìàãèê)                    |
//|    ot - âðåìÿ îòêðûòèÿ             ( 0   - ëþáîå âðåìÿ îòêðûòèÿ)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (ot<=OrderOpenTime()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 19.02.2008                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò öåíó îòêðûòèÿ ïîñëåäíåé îòêðûòîé ïîçèöèé.           |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà   (""   - ëþáîé ñèìâîë,                   |
//|                                     NULL - òåêóùèé ñèìâîë)                 |
//|    op - îïåðàöèÿ                   (-1   - ëþáàÿ ïîçèöèÿ)                  |
//|    mn - MagicNumber                (-1   - ëþáîé ìàãèê)                    |
//+----------------------------------------------------------------------------+
double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   r=0;
  int      i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) {
                t=OrderOpenTime();
                r=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(r);
}



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It Closes Orders by itself
It automatically opens orders when conditions are reached

Other Features:

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.55 Total Net Profit:-853.18

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.73 Total Net Profit:-470.96

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.50 Total Net Profit:-2174.12

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.56 Total Net Profit:-1074.84

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:0.83 Total Net Profit:-754.18

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.85 Total Net Profit:-729.31

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:0.32 Total Net Profit:-9998.30

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:0.57 Total Net Profit:-1012.79

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-04-16 Profit Factor:0.04 Total Net Profit:-9999.55

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.81 Total Net Profit:-378.21

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:0.00 Total Net Profit:0.00

Request Backtest for exp_Amstell-SL


From : (yyyy/mm/dd) To: (yyyy/mm/dd)

Pair: Period: