beton2011

 
Уровень 14

  Моя торговля


График торгового счета beton2011


Группа "Стол заказов MQL"

Рейтинг 2089



РЕКОМЕНДУЮ



Добавить в советник ТРАЛЛ

Добавьте пожалуйсто в этот советник ТРАЛЛ.

Спасибо.

MAExp-1 (1).mq4 (4 Kb)
  • +1
  • Просмотров: 2564
  • 28 мая 2015, 16:18
  • beton2011
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Советник по индикатору Envelopes
Следующая запись в группе  
Советник на основе индикатора Ma_Parabolic_st2.2
27 мая 2015
28 мая 2015

Комментарии (3)

+
0
Я сделал. Он где в базе я обновлю?


//+------------------------------------------------------------------+
//|                                                        MAExp.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Moving Average sample expert advisor"

#define MAGICMA  20131111
//--- Inputs
extern double Lots          = 0.1;
extern int    MovingPeriod  = 12;
extern int    MovingShift   = 6;
extern double BULevel       = 300;
extern double TrailingStop  = 300;
extern int    Delta         = 6;
extern int    Slip          = 30;
extern int    Count         = 100;
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int Orders(string symbol)
  {
   int buys=0,sells=0;
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double ma;
   int    res;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//--- sell conditions
   if(Bid<ma && ma-Bid<Delta*Point)
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,"",MAGICMA,0,Red);
      return;
     }
//--- buy conditions
   if(Ask>ma && Ask-ma<Delta*Point)
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,"",MAGICMA,0,Blue);
      return;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void ClosePos()
  {
   double ma;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Ask<ma)
           {
            CloseAll();
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Bid>ma)
           {
            CloseAll();
           }
         break;
        }
     }
//---
  }
//+------------------------------------------------------------------+  
void CloseAll()
  {
   bool cl,sel;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      sel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol())
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
           {
            if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
            if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
           }
         Sleep(1000);
        }
     }
  }
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==MAGICMA)
            if(OrderType()==OP_BUY)
              {
               if(TrailingStop>0)
                 {
                  if(Bid-OrderOpenPrice()>TrailingStop*Point)
                    {
                     if(OrderStopLoss()<Bid-TrailingStop*Point)
                       {
                        mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                       }
                    }
                 }
              }

      if(OrderType()==OP_SELL)
        {
         if(TrailingStop>0)
           {
            if((OrderOpenPrice()-Ask)>TrailingStop*Point)
              {
               if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                 {
                  mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
void BU()
  {
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderType()==OP_BUY)
           {
            if(OrderOpenPrice()<=(Bid-(BULevel+20)*Point) && OrderOpenPrice()>OrderStopLoss())
              {
               bool m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+20*Point,OrderTakeProfit(),0,White);
              }
           }

         if(OrderType()==OP_SELL)
           {
            if(OrderOpenPrice()>=(Ask+(BULevel+20)*Point) && OrderOpenPrice()<OrderStopLoss())
              {
               m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-20*Point,OrderTakeProfit(),0,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar=0;
   datetime curbar=Time[0];
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return (true);
     }
   else
     {
      return(false);
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(NewBar())
     {
      if(Orders(Symbol())<=Count) OpenPos();
      ClosePos();
     }

   if(BULevel!=0) BU();
   if(TrailingStop!=0) Trailing();
//---
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15887 - Андрей

  • 28 мая 2015, 17:43
+
0
avatar

  34  AM2 Сообщений: 15887 - Андрей

  • 28 мая 2015, 17:49
+
0
Просто супер, спасибо *good* 
avatar

  14  beton2011 Автор Сообщений: 895

  • 28 мая 2015, 18:10

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари