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

marusya mt4.mq4

Похожие материалы по тегам

#3 news panel (black) bgp.mq5MQL5 / MetaTrader 5 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговindicator marketmind for tradingview.pineTradingView · 1 общих теговmarket crusher ea guidlines.txtMQL · 1 общих теговsovetnikov_v5.mq4MQL4 / MetaTrader 4 · 1 общих теговunlocker manual.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник для платформы MetaTrader 4, работающий на основе сигналов индикатора SAR (Parabolic SAR) на нескольких таймфреймах. Открывает и управляет позициями в соответствии с направлением сигнала, поддерживает усреднение позиций по мере развития тренда. Включает настройки управления рисками: фиксированный или расчётный лот, ограничение максимальной просадки и максимальное количество ордеров в каждом направлении. Содержит систему лицензирования и активации, проверяющую авторизацию через внешний сервис и файл лицензии на локальном счёте.

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

НастройкаОписание
Slippage (slippage) Проскальзывание — Допустимое проскальзывание при открытии ордера; 0 — не используется.
Comment (cmt) Комментарий — Текст комментария, добавляемый к ордерам.
Magic (Magic) Магический номер — Идентификатор ордеров советника.
Risk in % (0-off) (Risk) Риск в процентах — Процент риска на сделку; при значении 0 используется фиксированный лот.
Balance step (BalanceStep) Шаг баланса — Шаг увеличения баланса для расчёта лота при риск-менеджменте.
Fixed lot (fix_lot) Фиксированный лот — Фиксированный размер лота для торговли.
Take profit (order_tp) Тейк-профит — Тейк-профит в пунктах; автоматически адаптируется для 5-значных инструментов.
Averaging step (Step) Шаг усреднения — Минимальный шаг цены для открытия следующего усредняющего ордера.
Averaging step multiplier (StepMp) Множитель шага усреднения — Множитель, увеличивающий шаг усреднения с ростом количества ордеров.
Lot multiplier (LotMultiplicator) Множитель лота — Множитель размера лота при каждом последующем усреднении.
Maximum number of orders in each direction (MaxOrders) Максимальное количество ордеров — Максимальное число ордеров в каждом направлении.
Close orders at a reversal signal (CloseInverse) Закрытие при развороте — Автоматическое закрытие ордеров противоположного направления при появлении сигнала разворота.
Maximum drawdown (MaxDD) Максимальная просадка — Максимально допустимая просадка в процентах; при достижении лимита все позиции закрываются.
Получить полный код

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

#property version   "1.14"
#property strict

#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>
#include <sovetnikovNET\Draw.mqh>
#define ROBOFOREX_API "143138b6b834d9bb"
#include <sovetnikovNET\News.mqh>
CWebRequest m_post;
bool bActivate=false;

TRADEMODE TradeMode = TRADEMODE_ALL; // Trading mode

I slippage = 0; // Slippage

S cmt = ""; //Comment

I Magic = 20200320; // Magic

D Risk = 0.01; // Risk in % (0-off)

D BalanceStep = 1000; // Balance step

D fix_lot = 0.01; // Fixed lot

D order_tp = 20; // Take profit

D Step = 10; // Averaging step
D StepMp = 1.3; // Averaging step multiplier

D LotMultiplicator = 1.6; // Lot multiplier
I MaxOrders = 100; // Maximum number of orders in each direction
B CloseInverse = false; // Close orders at a reversal signal
D MaxDD = 0; // Maximum drawdown

ENUM_TIMEFRAMES tf=PERIOD_H1;

#define LICENSE_OFF

#define LICENSE_DEMO

#define LICENSE_NAME "g?0j74vdwy*p~?c1axj7%e@7wcofgzw2"
#define LICENSE_FILE "club0405"

#define VALID_KEY "The advisor is active"
#define EMPTY_KEY "The advisor must be activated."
#define INVALID_KEY "Invalid license."
#define EXPERIED "License expired"

int signal_bar=SIGNAL_BAR_EVERYTICK;

class CMyOrders: public COrders
  {
protected:

   string            aSymbols[];
   int               hsar0,hsar2,hsarD1;
public:

   virtual bool      OnInitIndicators()
     {
#ifdef __MQL5__
      hsar0=iSAR(_Symbol,tf,0.02,0.2);
      hsar2=iSAR(_Symbol,tf,0.002,0.02);
      hsarD1=iSAR(_Symbol,PERIOD_D1,0.002,0.02);
#endif
      return true;
     }

   virtual bool      OnDeInitIndicators()
     {
#ifdef __MQL5__
      IndicatorRelease(hsar0);
      IndicatorRelease(hsar2);
      IndicatorRelease(hsarD1);
#endif
      return true;
     }

   int               signal(int ibar,ENUM_ORDER_TYPE &iop_aver)
     {

      double dsar0=0,dsar2=0,dsar2D1=0;
      double dclose=0;
      iop_aver=-1;

      dclose=iClose(_Symbol,tf,ibar);
#ifdef __MQL5__
      dsar0=iSAR(hsar0,ibar);
      dsar2=iSAR(hsar2,ibar);
      dsar2D1=iSAR(hsarD1,0);
#else
      dsar0=iSAR(_Symbol,tf,0.02,0.2,ibar);
      dsar2=iSAR(_Symbol,tf,0.002,0.02,ibar);
      dsar2D1=iSAR(_Symbol,PERIOD_D1,0.002,0.02,0);
#endif

      if(dclose>dsar2 && dclose>dsar0 && dsar2D1>dclose)
        {
         iop_aver=OP_SELL;
        }

      if(dclose<dsar2 && dclose<dsar0 && dsar2D1<dclose)
        {
         iop_aver=OP_BUY;
        }

      if(dclose<dsar2 && dclose>dsar0 && dsar2D1>dclose)
        {
         return OP_SELL;
        }

      if(dclose>dsar2 && dclose<dsar0 && dsar2D1<dclose)
        {
         return OP_BUY;
        }

      return -1;
     }
  };

class CMain: public CMainDefault
  {
protected:
   CMyOrders         m_main;
   CNewBar           m_bar,m_barD1;

   CDrawPos          m_pos;
public:
   virtual int       OnInit()
     {
      // код доступен только после оплаты
   }

   virtual void      OnDeinit(const int reason)
     {
      m_main.OnDeinit();
      HideTestIndicators(false);
     }

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

      string sLicense=VALID_KEY;

      bool bcheck=checkAccount(sLicense,LICENSE_NAME);

      if(!bActivate && !bcheck)
        {

         if(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian")
            sLicense="Необходимо открыть счет по ссылке ";
         else
            sLicense ="You must open an account using the link ";
        }

      m_pos.DrawStatus("status",sLicense,bcheck);
      if(!m_main.IsWork(_Symbol))
         return; //отключена торговля

      m_bar.Refresh();
      m_barD1.Refresh(true);

      m_main.OnTick();

      if(MaxDD>0 && AccountBalance()>0)
        {
         double dprofit=m_main.getProfit(ALL);
         if(dprofit*100/AccountBalance()<=-MaxDD)
           {
            m_main.OrderCloseAll(ALL);
            return;
           }
        }

      ENUM_ORDER_TYPE op=-1,iop_aver=-1;

      op=(ENUM_ORDER_TYPE)m_main.signal(signal_bar,iop_aver);

      if(op==OP_BUY || op==OP_SELL)
        {
         if(m_main.Count(op)==0 && bcheck)
           {
            double dLot=fix_lot;

            if(Risk>0)
               dLot=m_main.getLotByProcent(MM_BalanceStep,Risk,BalanceStep);

            if(m_main.IsTester && dLot<=0.0) dLot=m_main.m_symbol.LotsMin();

            ulong tt=m_main.OrderSend(op,dLot,-1,0,order_tp,cmt);
            DEBUG_OrderSend(tt);
           }
        }

      double abuy[][2],asell[][2];
      m_main.getLastOrderTicket(abuy,asell);

      int ib=ArrayRange(abuy,0);
      int is=ArrayRange(asell,0);

      double dStep=Step;

      if(dStep<Step)
         dStep=Step;

      if(ib>0)
        {
         ArraySort(abuy); //сортировка от мин к маск, 0 мин т.е. последний при усренении

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

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

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

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

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

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

Стоимость полного кода
858,70₽ ≈ $10.50