Author: QTR
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
0 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

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