Author: QTR
Profit factor:
0.00
Orders Execution
Checks for the total of closed ordersChecks for the total of open ordersIt automatically opens orders when conditions are reached
Indicators Used
Relative strength indexMoving average indicator
10 Views
0 Downloads
0 Favorites
QRSI_MG
//+------------------------------------------------------------------+
//|                                                TESTER_EXPERT.mq4 |
//|                                   Copyright © 2011, fx-future.ru |
//|                                          http://www.fx-future.ru |
//+------------------------------------------------------------------+
#property copyright "QTR"
#property link      "http://www.fx-future.ru"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+     
int countLoss=0; 
double newTicket=0;
double Lot=0.5;  // íà÷àëüíûé ëîò
double LotsArray[]={0.5,1,2, 4, 8, 16, 32, 64, 128};   // ëåñòíèöà ëîòîâ äëÿ ìàðòèíà    

//--------------------------------------------------------------------
//--------------------------------------------------------------------
int init()                                    
   {

   return; 
   }   
//--------------------------------------------------------------------
int start() 
{

int ticket;



// èíôîðìàöèîííîå òàáëî, î ïîñëåäíåé ñäåëêå
int accTotal=OrdersHistoryTotal();    
if(OrderSelect(accTotal-1,SELECT_BY_POS,MODE_HISTORY)==true) {
         
datetime ctm=OrderOpenTime();
int myticket=OrderTicket();

int YY=TimeYear(ctm);   // Year
int MN=TimeMonth(ctm);   // Month         
int DD=TimeDay(ctm);   // Day
int HH=TimeHour(ctm);   // Hour         
int MM=TimeMinute(ctm);   // Minute

if(newTicket!=myticket){

newTicket=myticket;

 if(OrderProfit()<0) { Lot=LotsArray[countLoss+1]; countLoss++; } else {  countLoss=0; Lot=LotsArray[0]; } 
  
} // êîíåö óñëîâèÿ


Comment("Èíôî. î ïîñëåäíåé ñäåëêå: "+"\nËîò: "+OrderLots()+"\nÏðèáûëü: "+OrderProfit()+"\nÂðåìÿ çàêðûòèÿ: ", DD,".",MN,".",YY," ",HH,":",MM,"\nÓðîâåíü MG: ",countLoss);


} // êîíåö óñëîâèÿ


// âûòàñêèâàåì çíà÷åíèÿ RSI
double rsi=iRSI(NULL,0,14,PRICE_CLOSE,0);
double rsi1=iRSI(NULL,0,14,PRICE_CLOSE,1);

// íàïðàâëåíèå rsi
bool moveup = rsi >= rsi1;

double sltp=50; // ñòîïëîñ
double sltpProfit=50; // òåéê ïðîôèò
double SPRED=3; // ñïðåä

double stoploss=Bid-(sltp-SPRED)*Point;
double taikprofit=Ask+(sltpProfit+SPRED)*Point;

double stoploss2=Bid+(sltp-SPRED)*Point;
double taikprofit2=Ask-(sltpProfit+SPRED)*Point;

// ôèëüòð ïî EMA   
double imaz1=iMA(Symbol(),15,320,8,MODE_EMA,PRICE_MEDIAN,0);
double imaz2=iMA(Symbol(),15,320,8,MODE_EMA,PRICE_MEDIAN,3);
bool moveima = imaz1 >= imaz2;


// îòêðûâàåì îðäåðà
if(OrdersTotal()==0) {

if(rsi > 25 && rsi <= 30 && moveup && moveima==true){ ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,stoploss,taikprofit,"My order ",16384,0,Green); }
if(rsi < 75 && rsi >= 70 && !moveup && moveima==false) { ticket=OrderSend(Symbol(),OP_SELL,Lot,Ask,3,stoploss2,taikprofit2,"My order ",16384,0,Green); }

}

return(-1); 

}
//--------------------------------------------------------------------
int deinit()  
   {
   
   return; 
   }
//--------------------------------------------------------------------

Comments