Author: Copyright � 2009, MetaQuotes Software Corp.
Profit factor:
0.00
Price Data Components
Series array that contains the lowest prices of each barSeries array that contains the highest prices of each barSeries array that contains close prices for each barSeries array that contains open prices of each bar
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reached
2 Views
0 Downloads
0 Favorites
Experts10
//+------------------------------------------------------------------+
//|                                                Haiken Ashi-2.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern int Okrug = 2;  // Îêðóãëåíèå ÷èñëà ñ ïëàâàþùåé çàïÿòîé äî óêàçàííîé òî÷íîñòè

extern int ProcentOtSvobDepo = 1; // ïðîöåíò ðèñêà îò äåïîçèòà

extern double MinLot = 0.10; // ìèíèìàëüíûé ëîò äëÿ òîðãîâëè, åñëè ðàñ÷åòíûé ìåíüøå ìèíèìàëüíîãî ëîòà (çàâèñèò îò ñ÷åòà)  

extern int MagicNumber = 888; // Ïî ýòîìó íîìåðó î4ðåíòèðóåòñÿ ýêñïåðò,
                              // êàæäûé ýêñïåðò îòêðûâàåò, ìîäèôèöèðóåò, óäàëÿåò ñâîè îðäåðà ñî ñâîèì MagicNumber 
                              
extern double Porog = 0.00050;  // Ïîðîã íå áëèæå êîòîðîãî ìîæíî âûñòàâèòü îòëîæåííûé îðäåð

extern double SL = 0.00050; // StopLoss
extern double TP = 0.00100; // TakeProfit
extern double P  = 0.00020; // Êîëè÷åñòâî ïóíêòîâ íà ïðîðûâ


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  int ticket;
  int err;
  int q=0;
 
double L=iLow(NULL,NULL,1);
double H=iHigh(NULL,NULL,1);
double C=iClose(NULL,NULL,0);
double O=iOpen(NULL,NULL,0);
double Spred=MarketInfo(Symbol(),MODE_SPREAD)*Point;
double SvobDepo=NormalizeDouble(AccountBalance()-AccountMargin(),Okrug);
double Risk=NormalizeDouble((SvobDepo*ProcentOtSvobDepo/100),Okrug);
double Lot=NormalizeDouble(Risk/(SL/0.0001)*0.1,Okrug);
double Proverka1=H-C;
double Proverka2=C-L;

//===================== Îïðåäåëåíèÿ ëîòà è ðèñêà ===================================

if ( Lot < MinLot )
 {
   Lot=MinLot;
 }
Comment( "\n","Äîïóñòèìûé ðèñê ",ProcentOtSvobDepo, "% = ",Risk," îò ñâîáîäíûõ ñðåäñòâ ",SvobDepo," â ëîòàõ = ",Lot);

//====================== ïðîâåðÿåì îðäåðà íà îòêðûòèå
 for( q=0;q<OrdersTotal();q++)
 {
  if (OrderSelect(q, SELECT_BY_POS, MODE_TRADES) && OrderSymbol()==Symbol())
   {
// ïðîâåðÿåì ïîçèöèè åñëè åñòü îòêðûòûå îðäåðà è ñðàâíèâàåì ïîêàçàòåëè ñ èíäèêàòîðîì
   if (OrderType()==OP_BUYSTOP)
     {
       return(0); 
     }
   if (OrderType()==OP_SELLSTOP)
     {
       return(0); 
     }
   }  
 }


//======================= óñëîâèå íà  ORDER BUY ===============================
 
if  (Proverka1 >= Porog && Proverka2 >= Porog && O<H)     
  {
    ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,H+P+Spred,0,H+P-SL+Spred,H+P+TP+Spred,NULL,0,iTime( Symbol(), PERIOD_D1, 0 ) + 86400);
    if (ticket==-1)
      {
        err=GetLastError();
        Print("error(",err,")");
      }
  }
else 
  {
    Comment("\n","Íå âîçìîæíî âûñòàâèòü OP_BUYSTOP",
            "\n","Öåíà íå ñîîòâåòñòâóåò óñëîâèþ âõîäà â ðûíîê");
  }     
  
   //================================ óñëîâèå íà  ORDER SELL ==================== 
if  (Proverka1 >= Porog && Proverka2 >= Porog && O>L)  
  {   
    ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,L-P,0,L-P+SL,L-P-TP,NULL,0,iTime( Symbol(), PERIOD_D1, 0 ) + 86400);
    if (ticket==-1)
      {
         err=GetLastError();
         Print("error(",err,")");
      }
  }
else 
  {
    Comment("\n","Íå âîçìîæíî âûñòàâèòü OP_SELLSTOP",
            "\n","Öåíà íå ñîîòâåòñòâóåò óñëîâèþ âõîäà â ðûíîê");
  }     
}
//+------------------------------------------------------------------+

Comments