← К каталогу
Исходный код · ID 3679

Zone Recovery Area

zone recovery area.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Это торговый советник для платформы MetaTrader 4 на языке MQL4. Советник анализирует пересечение двух скользящих средних для определения направления торговли и реализует стратегию восстановления зоны с серией последовательных сделок. Используются стандартные торговые функции MetaTrader для размещения и закрытия ордеров.

Настройки программы

НастройкаОписание
TakeProfit Take Profit — Размер прибыли в пунктах для установки уровня Take Profit при открытии и последующих сделках.
Zone_Recovery_Area Зона восстановления — Смещение в пунктах, определяющее зону, в которой размещаются встречные ордера для восстановления позиции.
str5 Быстрая скользящая средняя — Текстовый параметр-подпись, обозначающий группу настроек быстрой скользящей средней.
Period1 Период быстрой скользящей средней — Период быстрой скользящей средней, используемой для формирования сигнала на покупку.
str6 Медленная скользящая средняя — Текстовый параметр-подпись, обозначающий группу настроек медленной скользящей средней.
Period2 Период медленной скользящей средней — Период медленной скользящей средней, используемой для формирования сигнала на продажу.
MAGICNUMBER Магический номер — Базовый магический номер для идентификации ордеров советника; дополнительные номера формируются автоматически.
Получить полный код

Поиск по коду файла

#property version   "1.00"
#property strict

extern double TakeProfit=150;             //Take Profit(in pips)
extern double Zone_Recovery_Area=50;      //Zone_Recovery_Area(in pips)
input string  str5="Fast moving average";
input int     Period1=20;                 //Fast moving average(in pips)
input string  str6="Slow moving average";
input int     Period2=200;                //Slow moving average(in pips)
input int     MAGICNUMBER=1111;
double buyprice;
bool result;

int    MAGICNUMBER1=MAGICNUMBER;
int    MAGICNUMBER2=MAGICNUMBER+1;
int    MAGICNUMBER3=MAGICNUMBER+2;
int    MAGICNUMBER4=MAGICNUMBER+3;
int    MAGICNUMBER5=MAGICNUMBER+4;
int    MAGICNUMBER6=MAGICNUMBER+5;
int    MAGICNUMBER7=MAGICNUMBER+6;
int    MAGICNUMBER8=MAGICNUMBER+7;
int    MAGICNUMBER9=MAGICNUMBER+8;
int    MAGICNUMBER10=MAGICNUMBER+9;
int    MAGICNUMBER11=MAGICNUMBER+10;
int    MAGICNUMBER12=MAGICNUMBER+11;

int           err,T;
double        pips;

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
  }

void OnTick()
  {
      // код доступен только после оплаты
   }

bool isnewcandle()
  {
   static int  barsonchart=0;
   if(Bars==barsonchart)
      return(false);
   barsonchart=Bars;
   return(true);
  }

void ZONE_RECOVERY1()
  {

   int iCount=0;
   int Count_one_trade_a=0;
   int Count_one_trade_b=0;
   int Count_one_trade_c=0;
   int Count_one_trade_d=0;
   int Count_one_trade_e=0;
     {

      if(Bars<100)
        {
         Print("bars less than 100");
         return;
        }
      if(IsTradeAllowed()==false)
        {
         Print("Trade IS NOT Allowed");
         return;
        }
     }

   if(CheckMoneyForTrade(Symbol(),0.01,OP_BUY)==1)
      if(OrdersTotal()==0)
        {
         buyprice=Ask;
         if(CheckVolumeValue(0.01)==true)
            int ticket16=OrderSend(Symbol(),OP_BUY,LotsOptimized1Mx(0.01),Ask,3,Ask-(TakeProfit*pips+Zone_Recovery_Area*pips),Ask+TakeProfit*pips,"1",MAGICNUMBER1,0,Green);

        }

   if(OrdersTotal()>=1)
     {
      for(iCount=0;iCount<OrdersTotal();iCount++)
        {

         for(int buy1=OrdersTotal()-1;buy1>=0;buy1--)
           {
            if(Count_one_trade_a<1)
               if(OrderSelect(buy1,SELECT_BY_POS,MODE_TRADES))
                  if(OrderMagicNumber()==MAGICNUMBER1)
                     if(OrderSymbol()==Symbol())
                        if(OrderType()==OP_BUY)
                           if((OrderOpenPrice()-Zone_Recovery_Area*pips>Bid) && (OrderOpenPrice()>Bid))
                              if(CheckMoneyForTrade(Symbol(),0.02,OP_SELL)==1)
                                 if(CheckVolumeValue(0.02)==true)
                                    int ticket2=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.02),Bid,3,OrderOpenPrice()+TakeProfit*pips,OrderOpenPrice()-(TakeProfit*pips+Zone_Recovery_Area*pips),"2",MAGICNUMBER2,0,Red);

            exit();//CLOSE SELL
            Count_one_trade_a++;
           }

         for(int buy2=OrdersTotal()-1;buy2>=0;buy2--)
           {
            if(Count_one_trade_b<1)
               if(OrderSelect(buy2,SELECT_BY_POS,MODE_TRADES))
                  if(OrderMagicNumber()==MAGICNUMBER2)
                     if(OrderSymbol()==Symbol())
                        if(OrderType()==OP_SELL)
                           if(Ask>buyprice)
                              if(CheckMoneyForTrade(Symbol(),0.04,OP_BUY)==1)
                                 if(CheckVolumeValue(0.04)==true)
                                    int ticket3=OrderSend(Symbol(),OP_BUY,LotsOptimized1Mx(0.04),Ask,3,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),buyprice+TakeProfit*pips,"3",MAGICNUMBER3,0,Green);

            exit();//CLOSE SELL
            Count_one_trade_b++;
           }

         for(int buy3=OrdersTotal()-1;buy3>=0;buy3--)
           {
            if(Count_one_trade_c<1)
               if(OrderSelect(buy3,SELECT_BY_POS,MODE_TRADES))
                  if(OrderMagicNumber()==MAGICNUMBER3)
                     if(OrderSymbol()==Symbol())
                        if(OrderType()==OP_BUY)
                           if(buyprice-Zone_Recovery_Area*pips>Bid)
                              if(CheckMoneyForTrade(Symbol(),0.08,OP_SELL)==1)
                                 if(CheckVolumeValue(0.08)==true)
                                    int ticket4=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.08),Bid,3,buyprice+TakeProfit*pips,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),"4",MAGICNUMBER4,0,Red);

            exit();//CLOSE SELL
            Count_one_trade_c++;
           }

         for(int buy4=OrdersTotal()-1;buy4>=0;buy4--)
           {
            if(Count_one_trade_d<1)
               if(OrderSelect(buy4,SELECT_BY_POS,MODE_TRADES))
                  if(OrderMagicNumber()==MAGICNUMBER4)
                     if(OrderSymbol()==Symbol())
                        if(OrderType()==OP_SELL)
                           if(Ask>buyprice)
                              if(CheckMoneyForTrade(Symbol(),0.16,OP_BUY)==1)
                                 if(CheckVolumeValue(0.16)==true)
                                    int ticket5=OrderSend(Symbol(),OP_BUY,LotsOptimized1Mx(0.16),Ask,3,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),buyprice+TakeProfit*pips,"5",MAGICNUMBER5,0,Green);

            exit();//CLOSE SELL
            Count_one_trade_d++;
           }

         for(int buy5=OrdersTotal()-1;buy5>=0;buy5--)
           {
            if(Count_one_trade_e<1)
               if(OrderSelect(buy5,SELECT_BY_POS,MODE_TRADES))
                  if(OrderMagicNumber()==MAGICNUMBER5)
                     if(OrderSymbol()==Symbol())
                        if(OrderType()==OP_BUY)
                           if(buyprice-Zone_Recovery_Area*pips>Bid)
                              if(CheckMoneyForTrade(Symbol(),0.32,OP_SELL)==1)
                                 if(CheckVolumeValue(0.32)==true)
                                    int ticket6=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.32),Bid,3,buyprice+TakeProfit*pips,buyprice-(TakeProfit*pips+Zone_Recovery_Area*pips),"6",MAGICNUMBER6,0,Red);

            exit();//CLOSE SELL
            Count_one_trade_e++;
           }
        }
     }

  }

void ZONE_RECOVERY2()
  {

   int iCount=0;
   int Count_one_trade_f=0;
   int Count_one_trade_g=0;
   int Count_one_trade_h=0;
   int Count_one_trade_i=0;
   int Count_one_trade_j=0;
   int Count_one_trade_k=0;
     {

      if(Bars<100)
        {
         Print("bars less than 100");
         return;
        }
      if(IsTradeAllowed()==false)
        {
         Print("Trade IS NOT Allowed");
         return;
        }
     }

   if(OrdersTotal()==0)
     {
      buyprice=Bid;
      if(CheckMoneyForTrade(Symbol(),0.01,OP_SELL)==1)
         if(CheckVolumeValue(0.01)==true)
            int ticket55=OrderSend(Symbol(),OP_SELL,LotsOptimized1Mx(0.01),Bid,3,Bid+TakeProfit*pips+Zone_Recovery_Area*pips,Bid-TakeProfit*pips,"7",MAGICNUMBER7,0,Red);

     }

   if(OrdersTotal()>=1)
     {
      for(iCount=0;iCount<OrdersTotal();iCount++)
        {
         for(int sell1=OrdersTotal()-1;sell1>=0;sell1--)
           {
            if(Count_one_trade_f<1)
               if(OrderSelect(sell1,SELECT_BY_POS,MODE_TRADES))
                  if(OrderMagicNumber()==MAGICNUMBER7)
                     if(OrderSymbol()==Symbol())
                        if(OrderType()==OP_SELL)
                           if(OrderOpenPrice()+Zone_Recovery_Area*pips<Ask)
                              if(CheckMoneyForTrad

Показано первые 50% кода (символов: 11379)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 137,90₽ ≈ $13.91