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

Elise-EA-Pattern

elise-ea-pattern @lifeindreamsworld_6255515370069694567.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Elise-EA-Pattern — торговый советник для MetaTrader 4, предназначенный для автоматического анализа рыночных ситуаций и открытия сделок. Советник считывает исторические данные из файлов, анализирует ценовые паттерны и технические индикаторы для определения точек входа в сделки.

Советник поддерживает стандартные торговые операции: открытие позиций Buy/Sell с установкой стоп-лосса и тейк-профита, а также функцию трейлинг-стопа для управления прибыльными позициями. Доступна автоматическая проверка максимального спреда и ограничение количества одновременных сделок.

Встроена система управления целевым уровнем прибыли: при достижении заданной общей прибыли по счёту все позиции закрываются автоматически. Также реализована функция автоматического переключения таймфрейма с заданным интервалом.

Советник включает проверку имени эксперта и даты истечения версии, а также поддержку уведомлений через встроенные средства MetaTrader. Для работы требуется разрешение на импорт DLL.

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

НастройкаОписание
LicenceTO Имя эксперта — Текстовый параметр имени эксперта, используемый для проверки идентичности советника.
LOTS Размер лота — Размер лота для открытия сделки.
risk Риск-менеджмент — Режим управления размером лота: при значении 0 используется фиксированный лот, при значении больше 0 — расчёт на основе процента от баланса.
MaxTrades Максимальное количество сделок — Максимальное количество одновременных сделок.
Stoploss Стоп-лосс — Стоп-лосс в пунктах для защиты от убытков.
TakeProfit Тейк-профит — Тейк-профит в пунктах для фиксации прибыли.
MaxSpread Максимальный спред — Максимально допустимый спред в пунктах для открытия сделки.
Trailing Трейлинг-стоп — Переключатель включения или отключения функции трейлинг-стоп.
TrailingExtra Дополнительный параметр трейлинга — Дополнительный параметр трейлинга в пунктах.
TrailingStop Расстояние трейлинга — Расстояние трейлинг-стопа в пунктах от текущей цены.
TrailingStep Шаг трейлинга — Шаг трейлинг-стопа в пунктах для корректировки уровня стоп-лосса.
TrailStart Начало трейлинга — Расстояние в пунктах от открытия позиции, после которого начинается трейлинг-стоп.
Slippage Проскальзывание — Допустимое проскальзывание цены при открытии и закрытии сделок.
ManagementProfitTarget Управление целевой прибылью — Текстовый параметр, обозначающий раздел управления целевым уровнем прибыли в денежном выражении.
UseProfitTarget Использовать целевую прибыль — Переключатель включения или отключения автоматического закрытия позиций при достижении целевой прибыли.
ProfitTarget Целевая прибыль — Целевое значение общей прибыли в долларах для автоматического закрытия всех позиций.
Получить полный код

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

#property version   "1.65"

#property description   "======Elise-EA-Pattern====="
#property description   "=Minimum Deposit 500$/Pair"
#property description   "=Recommended Pair EURUSD, GBPUSD, XAUUSD="
#property description   "=TF M15="
#property description   "----------Contact me-----------"
#property description   "Join our Telegram Group : "
#property description   "Telegram: "
#property strict

  #include <stderror.mqh>
  #include <stdlib.mqh>

  #import   "kernel32.dll"
  int CreateFileW(string Filename,int AccessMode,int ShareMode,int PassAsZero,int CreationMode,int FlagsAndAttributes,int AlsoPassAsZero);
  int GetFileSize(int FileHandle,int PassAsZero);
  int SetFilePointer(int FileHandle,int Distance,int &PassAsZero[],int FromPosition);
  int ReadFile(int FileHandle,uchar &BufferPtr[],int BufferLength,int  &BytesRead[],int PassAsZero);
  int CloseHandle(int FileHandle);
  #import

  string Ordercomment="";

  int    Retries=10;

  bool   AutoTrade=true;

  bool   ecnBroker=false;

extern string LicenceTO = "======Elise-EA-Pattern=====";  // ===== Expert Name =====
int MagicID=714553; 
input double LOTS=0.01; // Lots
input int risk=10;//risk: 0-->fixed lots
input int MaxTrades=100;
input double Stoploss=10; // SL (Pips)
double SL=Stoploss*10;
input double TakeProfit=10; // TP (Pips)
double TP=TakeProfit*10;
input int    MaxSpread=30;
input bool Trailing = false;
input double TrailingExtra = 50.0;
input int TrailingStop=70;
input double TrailingStep  =5;
input double TrailStart  =10.0;
extern double Slippage = 20.0;

extern string ManagementProfitTarget ="======Management profit target in money======";
extern bool UseProfitTarget = false;
extern double ProfitTarget = 15;

  union Price
    {
     uchar             buffer[8];
     double            close;
    };

  double data[][2];

  int BytesToRead;
  string    datapath;
  string    result;
  Price     m_price;

  double g_Point;
  int    ticket=0;
  datetime expDate=D'2030.12.30 20:00';//yyyy.mm.dd

   int timeframes[] = {PERIOD_M1, PERIOD_H1, PERIOD_M30, PERIOD_M15, PERIOD_M5, PERIOD_M1}; // Timeframes to convert
   int current_index = 0;
   datetime last_switch_time = 0;

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

  void OnDeinit(const int reason)
    {

      EventKillTimer();
    }

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

  void ReadFileHst(string FileName)
    {
     int       j=0;;
     string    strFileContents;
     int       Handle;
     int       LogFileSize;
     int       movehigh[1]= {0};
     uchar     buffer[];
     int       nNumberOfBytesToRead;
     int       read[1]= {0};
     int       i;
     double    mm;

     strFileContents="";
     Handle=CreateFileW(FileName,(int)0x80000000,3,0,3,0,0);

     if(Handle==-1)
       {
        Comment("");
        return;
       }
     LogFileSize=GetFileSize(Handle,0);

     if(LogFileSize<=0)
       {
        return;
       }

     if((LogFileSize-148)/60==BytesToRead)
       {
        return;
       }
     SetFilePointer(Handle,148,movehigh,0);
     BytesToRead=(LogFileSize-148)/60;
     ArrayResize(data,BytesToRead,0);
     nNumberOfBytesToRead=60;
     ArrayResize(buffer,60,0);
     for(i=0; i<BytesToRead; i=i+1)

       {
        ReadFile(Handle,buffer,nNumberOfBytesToRead,read,NULL);
        if(read[0]==nNumberOfBytesToRead)
          {
           result=StringFormat("0x%02x%02x%02x%02x%02x%02x%02x%02x",buffer[7],buffer[6],buffer[5],buffer[4],buffer[3],buffer[2],buffer[1],buffer[0]);

           m_price.buffer[0] = buffer[32];
           m_price.buffer[1] = buffer[33];
           m_price.buffer[2] = buffer[34];
           m_price.buffer[3] = buffer[35];
           m_price.buffer[4] = buffer[36];
           m_price.buffer[5] = buffer[37];
           m_price.buffer[6] = buffer[38];
           m_price.buffer[7] = buffer[39];
           mm=m_price.close;
           data[j][0] = StringToDouble(result);
           data[j][1] = mm;
           j=j+1;
           strFileContents=TimeToString(StringToTime(result),3)+" "+DoubleToString(mm,8);
          }
        else
          {
           CloseHandle(Handle);
           return;
          }
       }
     CloseHandle(Handle);
     strFileContents=DoubleToString(data[j-1][0],3)+" "+DoubleToString(data[j-1][1],8)+" "+DoubleToString(data[j-2][1],3)+" "+DoubleToString(data[j-2][1],8);
     result=strFileContents;
    }
  int fnGetLotDigit()
    {
     double l_LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);
     if(l_LotStep == 1)
        return(0);
     if(l_LotStep == 0.1)
        return(1);
     if(l_LotStep == 0.01)
        return(2);
     if(l_LotStep == 0.001)
        return(3);
     if(l_LotStep == 0.0001)
        return(4);
     return(1);
    }

  int CheckBuyOrders(int magic)
    {
     int op=0;

     for(int i=OrdersTotal()-1; i>=0; i--)

       {
        int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()!=magic)
           continue;
        if(OrderSymbol()==Symbol())
          {
           if(OrderType()==OP_BUY)
             {
              op++;
              break;
             }
          }
       }
     return(op);
    }

  int CheckSellOrders(int magic)
    {
     int op=0;

     for(int i=OrdersTotal()-1; i>=0; i--)

       {
        int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()!=magic)
           continue;
        if(OrderSymbol()==Symbol())
          {
           if(OrderType()==OP_SELL)
             {
              op++;
              break;
             }
          }
       }
     return(op);
    }

  int CheckTotalBuyOrders(int magic)
    {
     int op=0;

     for(int i=OrdersTotal()-1; i>=0; i--)

       {
        int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()!=magic)
           continue;
        if(OrderSymbol()==Symbol())
          {
           if(OrderType()==OP_BUY)
             {
              op++;
             }
          }
       }
     return(op);
    }

  int CheckTotalSellOrders(int magic)
    {
     int op=0;

     for(int i=OrdersTotal()-1; i>=0; i--)

       {
        int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()!=magic)
           continue;
        if(OrderSymbol()==Symbol())
          {
           if(OrderType()==OP_SELL)
             {
              op++;
             }
          }
       }
     return(op);
    }

  int CheckMarketSellOrders()
    {
     int op=0;

     for(int i=OrdersTotal()-1; i>=0; i--)

       {
        int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()!=MagicID)
           continue;
        if(OrderSymbol()==Symbol())
          {
           if(OrderType()==OP_SELL)
             {
              op++;
             }
          }
       }
     return(op);
    }

  int CheckMarketBuyOrders()
    {
     int op=0;

     for(int i=OrdersTotal()-1; i>=0; i--)

       {
        int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderMagicNumber()!=MagicID)
           continue;
        if(OrderSymbol()==Symbol())
          {
           if(OrderType()==OP_BUY)
             {
              op++;
             }
          }
       }
     return(op);
    }

  bool MainOrders(int a_cmd_0,double price_24,double price_TP,double price_SL)
    {
     color color_8=Black;
     int bClosed;
     int nAttemptsLeft=Retries;
     int cmd=0;

     if(a_cmd_0 ==OP_BUY||a_cmd_0 ==OP_BUYSTOP)
        cmd=0;
     if(a_cmd_0 ==OP_SELL||a_cmd_0 ==OP_SELLSTOP)
        cmd=1;

     if(a_cmd_0==OP_BUYLIMIT || a_cmd_0==OP_BUY)
       {
        color_8=Blue;
       }
     else
       {

        if(a_cmd_0==OP_SELLLIMIT || a_cmd_0==OP_SELL)
          {
           color_8=Red;
          }
       }

     double lots_32=NormalizeDouble(LOTS,fnGetLotDigit());

     if(lots_32==0.0)
        return(false);

     double gd_532 = MarketInfo(Symbol(), MODE_MAXLOT);
     double gd_540 = MarketInfo(Symbol(), MODE_MINLOT);

     if(lots_32 > gd_532)
        lots_32 = gd_532;
     if(lots_32 < gd_540)
        lots_32 = gd_540;

     bClosed=false;

     while((bClosed==false) && (nAttemptsLeft>=0))
       {
        nAttemptsLeft--;
        RefreshRates();

        if(!ecnBroker)
           bClosed=OrderSend(Symbol(),a_cmd_0,lots_32,price_24,Slippage,price_SL,price_TP,Ordercomment,MagicID,0,color_8);
        else
           bClosed=OrderSend(Symbol(),a_cmd_0,lots_32,price_24,Slippage,0,0,Ordercomment,MagicID,0,color_8);

        if(bClosed<=0)
          {
           int nErrResult=GetLastError();

           if(a_cmd_0==0)
             {
              Print("FX EA Open New Buy FAILED : Error "+IntegerToString(nErrResult)+" ["+ErrorDescription(nErrResult)+".]");
              Print(IntegerToString(a_cmd_0)+" "+DoubleToString(lots_32,2)+" "+DoubleToString(price_24,Digits));
             }
   

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

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

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

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

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

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

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