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

agressor pro clone.mq4

Вы автор или правообладатель?

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

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

О программе

Советник для MetaTrader 4, автоматизирующий открытие сделок в заданном временном окне. При появлении нового бара в указанные часы программа оценивает сигнал и открывает позицию Buy или Sell с фиксированным или рассчитанным лотом. Поддерживает усреднение позиций с увеличением объёма по заданному коэффициенту.

Основные параметры включают временной диапазон торговли, размер лота, коэффициент наращивания лота, тейк-профит, дистанцию усреднения и магический номер ордеров. Тип таймфрейма и комментарий к сделкам задаются отдельно.

Внутренняя логика сигнала опирается на библиотеку sovetnikovNET (Orders.mqh, Time.mqh), которая предоставляет средства работы с ордерами и временными функциями. Советник использует виртуальное управление позициями и отрисовку уровней на графике.

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

НастройкаОписание
StartHour (StartHour) StartHour — Час начала торговой сессии
EndHour (LastHour) EndHour — Час окончания торговой сессии
Lots Размер лота — Размер лота для открытия позиции
LotExponent Коэффициент лота — Коэффициент увеличения лота при усреднении
TakeProfit Тейк-профит — Тейк-профит в пунктах
Distance Дистанция — Дистанция для усреднения позиций
MagicNumber Магический номер — Магический номер ордеров
tf Таймфрейм — Таймфрейм для анализа
cmt Комментарий — Комментарий к торговым сделкам
Получить полный код

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

#property version   "1.00"
#property strict

#define POINTS_NEW

#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>

enum enum_hour
  {
   t0000=0,//00:00
   t0100=1,//01:00
   t0200=2,//02:00
   t0300=3,//03:00
   t0400=4,//04:00
   t0500=5,//05:00
   t0600=6,//06:00
   t0700=7,//07:00
   t0800=8,//08:00
   t0900=9,//09:00
   t1000=10,//10:00
   t1100=11,//11:00
   t1200=12,//12:00
   t1300=13,//13:00
   t1400=14,//14:00
   t1500=15,//15:00
   t1600=16,//16:00
   t1700=17,//17:00
   t1800=18,//18:00
   t1900=19,//19:00
   t2000=20,//20:00
   t2100=21,//21:00
   t2200=22,//22:00
   t2300=23,//23:00
  };

input enum_hour StartHour=t0000; //StartHour
input enum_hour LastHour=t2300;//EndHour
D Lots=0.02;
D LotExponent=1.6;
I TakeProfit=30;
I Distance=10;
I MagicNumber=1111;
TF tf=PERIOD_CURRENT;
S cmt="Agressor PRO Clone";

int slippage=0;

CGlobal m_global;

class CMyOrders: public COrders
  {
public:
   virtual bool      OnInitIndicators()
     {
      return true;
     }

   virtual bool      OnDeinitIndicators()
     {
      return true;
     }

   virtual int       Signal()
     {

      int ibar=iBAR(m_name,tf,1);

      if(ibar==1)
         return OP_BUY;
      if(ibar==-1)
         return OP_SELL;

      return -1;
     }

   virtual void              AverageOrders(bool isNew,double dTakeProfit, double dMinStep,double dMnLot)
     {
      ulong ibuy=0,isell=0;
      getLastOrderTicket(ibuy,isell);

      double dlong=0,dshort=0;
      get_Average(dlong,dshort);

      if(dlong>0) m_drawvirtual.DrawHLine(0,"bu_buy",0,Time[1],dlong,1,STYLE_SOLID,clrGreen,false,false,"BU BUY",false);
      else m_drawvirtual.Delete(0,"bu_buy");

      if(dshort>0) m_drawvirtual.DrawHLine(0,"bu_sell",0,Time[1],dshort,1,STYLE_SOLID,clrGreen,false,false,"BU SELL",false);
      else m_drawvirtual.Delete(0,"bu_sell");

      if(ibuy>0)
        {
         if(this.OrderSelect(ibuy,true))
           {
            double dstep=this.OrderStep();
            double dlot=this.OrderLots();

            if(isNew && dstep<=-dMinStep && dMinStep>0)
              {
               double dNextLot=NLot(dlot*dMnLot); //получим следующий лот
               ulong t=OrderSend(OP_BUY,dNextLot,-1,0,0,NULL,true);
               DEBUG_OrderSend3(t);

              }
            SetAll_AverageTakeProfit(OP_BUY,dTakeProfit,0,true,false);

           }
        }

      if(isell>0)
        {
         if(this.OrderSelect(isell,true))
           {
            double dstep=this.OrderStep();
            double dlot=this.OrderLots();

            if(isNew && dstep<=-dMinStep && dMinStep>0)
              {

    

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

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

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

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

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

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

Стоимость полного кода
357,50₽ ≈ $4.37