HI_Line_E_RSI_MA





//+------------------------------------------------------------------+
//|                                 Helen_Iv_Line_Experts_RSI_MA.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 ma2=9;
extern int ma3=19;

extern int TakeProfit = 1000;


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 t1=iRSI(NULL,0,p,PRICE_CLOSE,1);
   double t11=iRSI(NULL,0,p,PRICE_CLOSE,2);
   
   double t2=iMA(NULL,PERIOD_D1,ma2,0,MODE_EMA,0,1);

   double t3=iMA(NULL,PERIOD_D1,ma3,0,MODE_EMA,0,1);

   
   if (t1>30.0&&t11<30.0&&t1>t11&&t1>30.0&&t2>t3) {OpenBuy=1;}
   if (t1<70.0&&t11>70.0&&t1<t11&&t1<70.0) {CloseBuy=1;}
    
   if (t1<70.0&&t11>70.0&&t1<t11&&t1<70.0&&t2<t3) {OpenSell=1;} 
   if (t1>30.0&&t11<30.0&&t1>t11&&t1>30.0) {CloseSell=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
Moving average indicator


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:0.00 Total Net Profit:299.64

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

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

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

BackTest : GBPUSD on H1

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

BackTest : USDCAD on H1

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

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.02 Total Net Profit:-315.87

BackTest : USDJPY on H1

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

Request Backtest for HI_Line_E_RSI_MA


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

Pair: Period: