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

DLM

arnold.mq4

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

ea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих тегов2 to 1 strategy with signals.pineTradingView · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих теговbago ea_5391011682577321359.mq4MQL4 / MetaTrader 4 · 2 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 2 общих теговea_rsi_stocho_ma.mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

DLM — торговый советник для платформы MetaTrader 4, который автоматически открывает и управляет ордерами на основе различных методов технического анализа. В качестве сигналов на вход/выход используются MACD, точки разворота, уровни поддержки и сопротивления, а также комбинации индикаторов i_Trend, RSI, Stochastic и MFI. Советник позволяет настраивать различные способы принятия торговых решений и при необходимости разворачивать направление позиции.
Советник включает средства управления позициями: тейк-профит, стоп-лосс, трейлинг-стоп, а также механизм защиты счёта, закрывающий ордера при достижении заданного уровня прибыли. Доступна настройка максимального количества одновременных сделок и расчёт объёма лота на основе размера баланса счёта.
Также предусмотрены ограничения по датам для торговли, параметр ручного режима и магический номер для идентификации ордеров. Встроенная система защиты счёта может учитывать прибыль как по текущему символу, так и по всем символам одновременно.

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

НастройкаОписание
Profit Goal for the latest order opened (TakeProfit) Тейк-профит — Уровень тейк-профита в пунктах для последнего открытого ордера.
We start with this lots number (Lots) Размер лота — Начальное количество лотов для открытия позиции.
StopLoss (StopLoss) Стоп-лосс — Уровень стоп-лосса в пунктах для открытых позиций.
Pips to trail the StopLoss (TrailingStop) Трейлинг-стоп — Расстояние в пунктах для трейлинг-стопа.
Maximum number of orders to open (MaxTrades) Максимальное число сделок — Максимальное количество одновременно открытых ордеров.
Distance in Pips from one order to another (Pips) Расстояние в пунктах — Расстояние в пунктах между ордерами при открытии новых позиций.
If profit made is bigger than SecureProfit we close the orders (SecureProfit) Защитная прибыль — Если прибыль превышает это значение, ордера закрываются для защиты счёта.
if one will check profit from all symbols, if cero only this symbol (AllSymbolsProtect) Защита по всем символам — При значении 1 защита счёта проверяет прибыль по всем символам; при 0 — только по текущему символу.
Number of orders to enable the account protection (OrderstoProtect) Число ордеров для защиты — Количество ордеров, при достижении которого активируется защита счёта.
if one the desition to go long/short will be reversed (ReverseCondition) Разворот условия — При значении 1 направление сделки (лонг/шорт) разворачивается на противоположное.
Year to start (only for backtest) (StartYear) Начальный год — Год, начиная с которого начинается торговля (для бэктеста).
month to start (only for backtest) (StartMonth) Начальный месяц — Месяц, начиная с которого начинается торговля (для бэктеста).
Year to stop trading (backtest and live) (EndYear) Конечный год — Год, к которому прекращается торговля (для бэктеста и живой торговли).
Month to stop trading (backtest and live) (EndMonth) Конечный месяц — Месяц, к которому прекращается торговля (для бэктеста и живой торговли).
if one the lots size will increase based on account size (mm) Управление размером лота — При значении, отличном от 0, размер лота рассчитывается на основе размера счёта.
risk to calculate the lots size (only if mm is enabled) (risk) Риск — Доля риска для расчёта размера лота (используется только при включённом mm).
Magic number for the orders placed (MagicNumber) Магический номер — Магический номер, присваиваемый открытым ордерам для их идентификации.
If set to one then it will not open trades automatically (Manual) Ручной режим — При значении 1 советник не открывает сделки автоматически.
Method to decide trades:0=MACD, 1=Pivot Point Time Zone, 2=Support and Resistance, (OpenOrdersBasedOn) Метод открытия ордеров — Метод принятия торговых решений: 0 — MACD, 1 — точки разворота, 2 — поддержка и сопротивление, 3 — i_Trend RSI, 4 — i_Trend RSI Stochastic, 5 — i_Trend RSI Stochastic MFI.
Time zone to calculate the pivots (not all the methods uses it) (TimeZone) Часовой пояс — Часовой пояс для расчёта точек разворота (используется не всеми методами).
Получить полный код

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

extern double TakeProfit=38;   // Profit Goal for the latest order opened
extern double Lots=0.1;        // We start with this lots number
extern double StopLoss=0;      // StopLoss
extern double TrailingStop=0;  // Pips to trail the StopLoss

extern int MaxTrades=10;        // Maximum number of orders to open
extern int Pips=18;             // Distance in Pips from one order to another
extern int SecureProfit=10;     // If profit made is bigger than SecureProfit we close the orders
extern int AccountProtection=1; // If one the account protection will be enabled, 0 is disabled
extern int AllSymbolsProtect=0; // if one will check profit from all symbols, if cero only this symbol
extern int OrderstoProtect=3;   // Number of orders to enable the account protection
extern int ReverseCondition=0;  // if one the desition to go long/short will be reversed
extern int StartYear=2005;      // Year to start (only for backtest)
extern int StartMonth=1;        // month to start (only for backtest)
extern int EndYear=2030;        // Year to stop trading (backtest and live)
extern int EndMonth=12;         // Month to stop trading (backtest and live)

extern int mm=0;                // if one the lots size will increase based on account size
extern int risk=0.01;           // risk to calculate the lots size (only if mm is enabled)
extern int AccountisNormal=0;   // Zero if account is not mini/micro
extern int MagicNumber=222777;  // Magic number for the orders placed
extern int Manual=0;            // If set to one then it will not open trades automatically
extern int OpenOrdersBasedOn=5; // Method to decide trades:0=MACD, 1=Pivot Point Time Zone, 2=Support and Resistance, 

extern int TimeZone=16;         // Time zone to calculate the pivots (not all the methods uses it)

int  OpenOrders=0, cnt=0;
int  slippage=3;
double sl=0, tp=0;
double BuyPrice=0, SellPrice=0;
double lotsi=0, mylotsi=0;
int mode=0, myOrderType=0;
bool ContinueOpening=True;
double LastPrice=0;
int  PreviousOpenOrders=0;
double Profit=0;
int LastTicket=0, LastType=0;
double LastClosePrice=0, LastLots=0;
double Pivot=0;
double PipValue=0;
bool Reversed=False;
string text="";
double tmp=0;
double iTmpH=0;
double iTmpL=0;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }

   int cnt=0;
   if (AccountisNormal==1)
     {
      if (mm!=0) { lotsi=MathCeil(AccountBalance()*risk/10000); }
      else 
      {
       lotsi=Lots; 
      }
      }
       else 
       {  // then is mini
      if (mm!=0) { lotsi=MathCeil(AccountBalance()*risk/10000)/10; }
      else {
       lotsi=Lots; 
      }
     }
   if (lotsi>100){ lotsi=100; 
   }
   OpenOrders=0;
   for(cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         OpenOrders++;
        }
     }
   if (OpenOrders<1)
     {
      if (TimeYear(CurTime())<StartYear) { return(0);  }
      if (TimeMonth(CurTime())<StartMonth) { return(0); }
      if (TimeYear(CurTime())>EndYear) { return(0); }
      if (TimeMonth(CurTime())>EndMonth){ return(0); }
     }
   if (Symbol()=="EURUSD") { PipValue=10.00; }
   if (Symbol()=="GBPUSD") { PipValue=10.00; }
   if (Symbol()=="USDJPY") { PipValue=9.715; }
   if (Symbol()=="USDCHF") { PipValue=8.70; }
   if (PipValue==0) { PipValue=5; }
   if (PreviousOpenOrders>OpenOrders)
     {
      for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
        {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         mode=OrderType();
         if ((OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) || AllSymbolsProtect==1)
           {
            if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }
            if (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }
            return(0);
           }
        }
     }
   PreviousOpenOrders=OpenOrders;
   if (OpenOrders>=MaxTrades)
     {
      ContinueOpening=False;
      }
       else 
      {
      ContinueOpening=True;
     }
   if (LastPrice==0)
     {
      for(cnt=0;cnt<OrdersTotal();cnt++)
        {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         mode=OrderType();
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
           {
            LastPrice=OrderOpenPrice();
            if (mode==OP_BUY) { myOrderType=2; }
            if (mode==OP_SELL) { myOrderType=1;   }
           }
        }
     }
   if (OpenOrders<1 && Manual==0)
     {
      switch(OpenOrdersBasedOn)
        {
         case 0:
            myOrderType=OpenOrdersBasedOnMACD(); break;
         case 1:
            myOrderType=OpenOrdersBasedOnPivot(); break;
         case 2:
            myOrderType=OpenOrdersBasedOnSupRes(); break;
         case 3:
            myOrderType=OpenOrdersBasedOni_TrendRSI(); break;
         case 4:
            myOrderType=OpenOrdersBasedOni_TrendRSISto(); break;
         case 5:
            myOrderType=OpenOrdersBasedOni_TrRSIStoMFI(); break;
         default:
            myOrderType=OpenOrdersBasedOnMACD(); break;
        }
      if (ReverseCondition==1)
        {
         if (myOrderType==1) { myOrderType=2; }
         else 
         { 
         if (myOrderType==2) { myOrderType=1; } 
         }
        }
     }

   cnt=OrdersTotal();
   while(cnt>=0)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) // && Reversed==False) 
        {
         Print("Ticket ",OrderTicket()," modified.");
         if (OrderType()==OP_SELL)
           {
            if (TrailingStop>0)
              {
               if ((OrderOpenPrice()-Ask)>=(TrailingStop*Point+Pips*Point))
                 {
                  if (OrderStopLoss()>(Ask+Point*TrailingStop) || OrderStopLoss()==0)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderClosePrice()-TakeProfit*Point-TrailingStop*Point,0,Purple);
                     return(0);
                    }
                 }
              }
           }
         if (OrderType()==OP_BUY)
           {
            if (TrailingStop>0)
              {
               if ((Bid-OrderOpenPrice())>=(TrailingStop*Point+Pips*Point))
                 {
                  if (OrderStopLoss()<(Bid-Point*TrailingStop))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderClosePrice()+TakeProfit*Point+TrailingStop*Point,0,Yellow);
                     return(0);
                    }
                 }
              }
           }
        }
      cnt--;
     }
   if (OpenOrders>=(MaxTrades-OrderstoProtect) && AccountProtection==1)
     {
      Profit=0;
      LastTicket=0;
      LastType=0;
      LastClosePrice=0;
      LastLots=0;
      for(cnt=0;cnt<OrdersTotal();cnt++)
        {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
           {
            LastTicket=OrderTicket();
            if (OrderType()==OP_BUY) { LastType=OP_BUY; }
            if (OrderType()==OP_SELL) { LastType=OP_SELL; }
            LastClosePrice=OrderClosePrice();
            LastLots=OrderLots();
            if (LastType==OP_BUY)
              {

               if (OrderClosePrice()<OrderOpenPrice())
               { Profit=Profit-(OrderOpenPrice()-OrderClosePrice())*OrderLots()/Point; }
               if (OrderClosePrice()>OrderOpenPrice())
               { Profit=Profit+(OrderClosePrice()-OrderOpenPrice())*OrderLots()/Point; }
              }
            if (LastType==OP_SELL)
              {

               if (OrderClosePrice()>OrderOpenPrice())
               { Profit=Profit-(OrderClosePrice()-OrderOpenPrice())*OrderLots()/Point; }
               if (OrderClosePrice()<OrderOpenPrice())
               { Profit=Profit+(OrderOpenPrice()-OrderClosePrice())*OrderLots()/Point; }
              }

           }
        }
      Profit=Profit*PipValue;

      if (AllSymbolsProtect==1) { tmp=AccountBalance(); }
      else 
      { tmp=SecureProfit; }
      if (

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

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

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

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

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

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

Стоимость полного кода
1 208,50₽ ≈ $14.77