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

Рейтинг 2073



РЕКОМЕНДУЮ




Лучшее от sergs



Исправить советник
2020-04-21 09:46:59Рейтинг 0

Сеточник Комментариев 18
2022-10-12 10:06:36Рейтинг 0

Арифметический сеточник Комментариев 77
2022-06-20 10:34:57Рейтинг 0

Сеточник с каналом Комментариев 10
2023-01-31 10:35:56Рейтинг 0

Доработать советник Комментариев 6
2020-08-24 10:26:31Рейтинг 0

Доработка советника.

Здравствуйте. Прошу добавить в советник zakaz.opentraders.ru/84645.html фильтрацию по ЕМА. Если машка направлена вверх, то открываются только покупки. Если вниз — только продажи. Первый ордер открывается сразу после запуска советника.
В настройки добавить период ЕМА (50) и кнопку ее отключения.
UpDn.mq 4 (0 Kb)
  • 0
  • Просмотров: 1457
  • 2 августа 2022, 09:47
  • sergs
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Купить и продать инструмент
Следующая запись в группе  
Please make a MT4 EA using 2 stop orders
02 августа 2022
03 августа 2022

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

+
0
на 8-е
avatar

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

  • 2 августа 2022, 17:48
+
0
не прикрепился файл
avatar

  22  igrun Сообщений: 1553 - igrun

  • 3 августа 2022, 00:31
+
0
Опиши словами, прояви красноречие :) 
avatar

  17  Boris54 Сообщений: 747 - ПенSионер

  • 3 августа 2022, 01:20
+
0
UpDn.mq 4 (0 Kb) — 0 кб то есть ни чего
avatar

  22  igrun Сообщений: 1553 - igrun

  • 3 августа 2022, 02:32
+
0
avatar

  8  sergs Автор Сообщений: 224 - Сергей

  • 3 августа 2022, 09:15
+
0
опишите целиком тз. если добавить фильтр по МА предыдущая логика сыпется
avatar

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

  • 5 августа 2022, 08:04
+
0
В чем сыпется логика? Вроде все просто.
avatar

  8  sergs Автор Сообщений: 224 - Сергей

  • 5 августа 2022, 09:07
+
0
Основная суть.
Если цена на шаг вверх, то отрывается бай при условии, что машка направлена вверх. Если машка вниз, то не открывается ничего.
Если цена на шаг вниз, то отрывается сел при условии, что машка направлена вниз. Если машка вверх, то не открывается ничего.
avatar

  8  sergs Автор Сообщений: 224 - Сергей

  • 5 августа 2022, 09:46
+
0
сделал то что на скрине:



//+------------------------------------------------------------------+
//|                                                         UpDn.mq4 |
//|                                              Copyright 2022, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // торговый объем ордера
extern double Risk       = 1;        // риск
extern double Procent    = 2;        // язь в процентах
extern double Profit     = 10;       // язь в рублях
extern double BProfit    = 10;       // язь в рублях buy
extern double SProfit    = 10;       // язь в рублях sell

extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь
extern int CloseTime     = 0;        // время закрытия в минутах

extern int MAPer         = 44;       // период МА
extern int Count         = 22;       // число поз
extern int Step          = 333;      // шаг
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern string Comm       = "Up&Dn";  // коммент

double p=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   p=Bid;
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;
   datetime expiration=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,Comm,Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades(int type=-1)
  {
   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()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,_Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,_Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(Risk>0)
      lot=NormalizeDouble(AccountEquity()*Risk/100000,2);

   return(lot);
  }
//+------------------------------------------------------------------+
//| Профит всех ордеров по типу ордера                               |
//+------------------------------------------------------------------+
double AllProfit(int ot=-1)
  {
   double pr=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }

            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }
           }
        }
     }
   return(pr);
  }
//+------------------------------------------------------------------+
//| Время открытия позиции                                           |
//+------------------------------------------------------------------+
datetime TimeOrderOpen()
  {
   datetime tm=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
              {
               tm=OrderOpenTime();
               break;
              }
           }
        }
     }
   return(tm);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Pro()
  {
   double pro=(AccountEquity()-AccountBalance())/AccountBalance()*100;//(1100-1000)/1000
   return(pro);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   bool buy=1;
   bool sell=1;
   double ma=iMA(NULL,0,MAPer,0,1,0,0);
   int delta=int(TimeCurrent()-TimeOrderOpen());

   if(Pro()>Procent && Procent>0)
      CloseAll();

   if(AllProfit()>Profit && Profit>0)
      CloseAll();

   if(AllProfit(0)>BProfit && BProfit>0)
      CloseAll(0);

   if(AllProfit(1)>SProfit && SProfit>0)
      CloseAll(1);

   if(delta>CloseTime*60 && CloseTime>0)
      CloseAll();

   if(CountTrades()<Count)
     {
      buy=Bid-p>Step*_Point && Bid>ma;
      sell=p-Bid>Step*_Point && Bid<ma;

      if(buy)
        {
         PutOrder(0,Ask);
         p=Bid;
        }

      if(sell)
        {
         PutOrder(1,Bid);
         p=Bid;
        }
     }

   Comment("\n Lots: ",Lot(),
           "\n Trades: ",CountTrades(),
           "\n Procent: ",Pro(),
           "\n Profit: ",AllProfit(),
           "\n Time: ",TimeOrderOpen(),
           "\n Time Delta: ",int(TimeCurrent()-TimeOrderOpen()));
  }
//+------------------------------------------------------------------+


Редактирован: 5 августа 2022, 09:45
avatar

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

  • 5 августа 2022, 09:42
+
0
А почему он не на каждом уровне открывает сделки? Шаг установлен 100, а открывает через 200.
avatar

  8  sergs Автор Сообщений: 224 - Сергей

  • 5 августа 2022, 10:38
+
0
это было в советнике изначально
avatar

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

  • 5 августа 2022, 11:04
+
0
Сделайте, чтобы он открывал позы на каждом шаге.
avatar

  8  sergs Автор Сообщений: 224 - Сергей

  • 5 августа 2022, 11:23
+
0
это уже будет доливатор, а это совершенно другой советник
avatar

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

  • 5 августа 2022, 12:01
+
0
Изначально планировалось, что он будет открывать позы на каждом уровне.
zakaz.opentraders.ru/55194.html
avatar

  8  sergs Автор Сообщений: 224 - Сергей

  • 5 августа 2022, 12:07
+
0
все это максимально подробно со скринами нужно указывать в тз, чтобы мне потом не переделывать, а переделывать я буду только в следующем топе
avatar

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

  • 5 августа 2022, 12:22

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