HI_Line_E_RSI_2





//+------------------------------------------------------------------+
//|                                  Helen_Iv_Line_Experts_RSI_2.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Helen_Iv"
#property link      "http://helenclubfinance.com"

//---- input parameters
extern double Lots=0.1;

extern int p=23;

extern int TakeProfit = 980;

int BuyTicket,SellTicket;
int StLevel2;
double slts,tpts;
datetime prevtimecalc=0;
int OpenBuy=0, OpenSell=0, CloseBuy=0, CloseSell=0;
int Spread;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   double DeltaTakeStopMin, DeltaFreezeLevel;
   Spread = MarketInfo (Symbol(), MODE_SPREAD);
   
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

int start()
{

   CalcCloseOpen();      

   int total=OrdersTotal();
   int NP=0;
   for(int x=total; x>=0; x--)
      {
      if (!OrderSelect(x, SELECT_BY_POS, MODE_TRADES))continue;
      // Çàêðûòèå îòêðûòûõ ïîçèöèé
      if (OrderType()==OP_BUY && CloseBuy==1){Close_Order(); continue;}
      if (OrderType()==OP_SELL && CloseSell==1) {Close_Order(); continue;}
      // èñêëþ÷àåì îòêðûòèå íåñêîëüêèõ îðäåðîâ íà ñèãíàëå îäíîì áàðà
      if (OrderType()==OP_BUY && OrderOpenPrice()>=Time[0]) NP++;
      if (OrderType()==OP_SELL && OrderOpenPrice()>=Time[0]) NP++;
      }

   if (NP == 0) Open_Buy_Sell ();
           
   return(0);
}
//+------------------------------------------------------------------+
// âû÷èñëèì óñëîâèÿ íà çàêðûòèå è îòêðûòèå ïîçèöèé
//+------------------------------------------------------------------+

void CalcCloseOpen()
{
   //Comment("000Buy - ", OpenBuy, " 000Sell - ", OpenSell);
   if (prevtimecalc==Time[0])return; else prevtimecalc=Time[0];
   OpenBuy=0; OpenSell=0; CloseBuy=0; CloseSell=0;    

   double t2=iRSI(NULL,0,p,PRICE_CLOSE,1);
   double t22=iRSI(NULL,0,p,PRICE_CLOSE,2);
   
   if (t2>30.0&&t22<30.0&&t2>t22&&t2>30.0) {OpenBuy=1; CloseSell=1;} 
   if (t2<70.0&&t22>70.0&&t2<t22&&t2<70.0) {OpenSell=1; CloseBuy=1;} 
   //Comment("Buy - ", OpenBuy, " Sell - ", OpenSell);
   return;
}      


//+------------------------------------------------------------------
//|  Çàêðûòèå ïîçèöèé
//+------------------------------------------------------------------

void Close_Order ()
   {

    if(OrderType()==OP_BUY)
      {
          //Îáåñïå÷èâàåì ïàóçó ìåæäó îïåðàöèÿìè
          //Pause();
          OrderClose(OrderTicket(),OrderLots(),Bid,Spread,Yellow);
          //TradeIsNotBusy();
      }      

    if(OrderType()==OP_SELL)
      {
          //Îáåñïå÷èâàåì ïàóçó ìåæäó îïåðàöèÿìè
          //Pause();
          OrderClose(OrderTicket(),OrderLots(),Ask,Spread,Yellow);
          //TradeIsNotBusy();
      }      
   }
   
//+------------------------------------------------------------------
//|  Îòêðûòèå ïîçèöèé ðûíî÷íûìè îðäåðàìè
//+------------------------------------------------------------------

void Open_Buy_Sell ()

{
   // BUY
   // Open=Ask, Take =Open+Profit, Stop = Open-Spred-stop 
   if(OpenBuy !=0)
      {      		
      // îáíîâëÿåì ðûíî÷íóþ èíôîðìàöèþ
      if (!IsTesting() && !IsOptimization( )) RefreshRates();
      OrderSend(Symbol(),OP_BUY,Lots,Ask,Spread,0,Ask + TakeProfit*Point,0,0,0,Blue);
      if(GetLastError()==0){OpenBuy=0; return;}
      }
   // SELL
   // Open = Bid, Take =Open-Profit, Stop=Open+Spred+Stop
   
   if( OpenSell !=0)
      {      		
      if (!IsTesting() && !IsOptimization( )) {RefreshRates();}
      OrderSend(Symbol(),OP_SELL,Lots,Bid,Spread,0,Bid - TakeProfit*Point,0,0,0,Red); // èñïîëíÿåì
      if(GetLastError()==0) {OpenSell=0; return;}
      }   
   
   return(0);

}
   



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:


Indicators Used:

Relative strength index


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 : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:2.64 Total Net Profit:363.69

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.11 Total Net Profit:-1595.81

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:1.09 Total Net Profit:21.35

BackTest : EURUSD on H1

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

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:1.12 Total Net Profit:70.84

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-04-16 Profit Factor:0.52 Total Net Profit:-1111.97

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:1.23 Total Net Profit:803.67

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.00 Total Net Profit:186.06

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.37 Total Net Profit:-207.78

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.07 Total Net Profit:-429.80

Request Backtest for HI_Line_E_RSI_2


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

Pair: Period: