Buff
Артем

 
Уровень 13

  Торгую в компаниях:


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

Рейтинг 2088



РЕКОМЕНДУЮ



Советник

Здраствуйте уважаемые программисты!!! С полмесяца наверно вынашивал идею совы.
ТЗ
Терминал МТ4;
Валютные пары и таймфреймы любые;
Правила входа:
1. При пересечении цены стандартной МА если снизу вверх то покупки, если сверху вниз то продажи, сделки начинать открывать с отступом от пересечения МА на величину в указываемую в пунктах например на 10п как на скрине
EURUSDM1.png (34 Kb)
2. Ордера открывать на каждой свече если она цена закрытия ниже предыдущей при сигнале на покупку и наоборот при сигнале на продажу то есть цена выше предыдущей.
3. Обязательно коэффициент лотности наращиваем обьем. При К=1 обьем постоянен для всех ордеров соответственно.
4. Закрытие всех сделок если цена возвращается к машке на указанную величину в пунктах к примеру 10 п.
5. Закрытие ордеров при достижении профита в процентах от депо

Вроде все, знаю что подобных сов много со входом по машке, но чтобы с такими правилами входа не встречал
  • +2
  • Просмотров: 4073
  • 14 октября 2016, 21:06
  • Buff
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Есть идея - нужен советник
Следующая запись в группе  
Советник на основе стратегии «Два к одному»
14 октября 2016
16 октября 2016

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

+
+2
Делал когда то подобный. DeltaMA как то так назывался, если не найдете буду с нуля делать после выходных.
avatar

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

  • 14 октября 2016, 21:10
+
0
искать здесь или на просторах?
avatar

  13  Buff Автор Сообщений: 401 - Артем

  • 14 октября 2016, 21:18
+
0
здесь
avatar

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

  • 14 октября 2016, 21:19
+
0
я так понимаю он www.opentraders.ru/downloads/1256/
Выдает ошибку в 107 строке ему вроде как "+" не нравится, "+" — illegal operation use в метаедиторе пишет.
Редактирован: 15 октября 2016, 19:41
avatar

  13  Buff Автор Сообщений: 401 - Артем

  • 15 октября 2016, 19:29
+
+1
Вставляйте пожалуйста картинки в топик а не файлом:

avatar

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

  • 16 октября 2016, 17:38
+
+1
Сейчас начну делать.
avatar

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

  • 16 октября 2016, 17:39
+
+1
Все есть по ТЗ: www.opentraders.ru/downloads/1359/




//+------------------------------------------------------------------+
//|                                                      DeltaMA.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, AM2"
#property link      "http://www.forexsystems.biz"

extern int StopLoss     = 1200;     // лось
extern int TakeProfit   = 1400;     // язь
extern int Delta        = 400;      // расстояние открытия
extern int Sigma        = 100;      // расстояние закрытия
extern int Slip         = 50;       // реквот
extern int MAPeriod     = 9;        // период МА
extern int Magic        = 123;      // магик
extern double Profit    = 5;        // профит от депо в %
extern double Lots      = 0.1;      // торговый объем
extern double MaxLot    = 5;        // аксимальный торговый объем
extern double KLot      = 2;        // увеличение лота

datetime t=0;
//+------------------------------------------------------------------+
//| Установка ордера                                                 |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)   sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)   sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double FindLastBuyPrice()
  {
   int oticket,ticketNumber=0;
   double oprice=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            oticket=OrderTicket();
            if(oticket>ticketNumber)
              {
               ticketNumber=oticket;
               oprice=OrderOpenPrice();
              }
           }
        }
     }
   return(oprice);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double FindLastSellPrice()
  {
   int oticket,ticketNumber=0;
   double oprice=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            oticket=OrderTicket();
            if(oticket>ticketNumber)
              {
               ticketNumber=oticket;
               oprice=OrderOpenPrice();
              }
           }
        }
     }
   return(oprice);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderMagicNumber()==Magic || OrderSymbol()==Symbol())
           {
            if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
            if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(CountTrades()>0) lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ma=iMA(NULL,0,MAPeriod,0,0,0,1);
   double BALANCE=AccountInfoDouble(ACCOUNT_BALANCE);
   double EQUITY=AccountInfoDouble(ACCOUNT_EQUITY);
   double Pr=100*(EQUITY-BALANCE)/BALANCE;

   if(t!=Time[0])
     {
      //---- buy 
      if(Ask>ma+Delta*Point)
        {
         PutOrder(0,Ask);
        }
      //---- sell   
      if(Bid<ma-Delta*Point)
        {
         PutOrder(1,Bid);
        }
      t=Time[0];
     }

   if((FindLastBuyPrice()>0 && Bid<ma+Sigma*Point) || (FindLastSellPrice()>0 && Bid>ma-Sigma*Point) || (Pr>Profit)) CloseAll();

   Comment("\n Equity Profit: ",Pr);
//----
  }
//+------------------------------------------------------------------+


Редактирован: 17 октября 2016, 09:22
avatar

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

  • 16 октября 2016, 18:30
+
0
Спасибо буду пробовать
avatar

  13  Buff Автор Сообщений: 401 - Артем

  • 16 октября 2016, 19:27

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