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

MultiHedgeEA

multihedgeea_v1[1].3.mq4

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

#4 solid trend (white).mq5MQL5 / MetaTrader 5 · 1 общих теговindicator_rolling_candle_profile_with_buysell_signals_for_tradingview.pineTradingView · 1 общих теговrachmad imam tarecha.mq4MQL4 / MetaTrader 4 · 1 общих тегов2 to 1 strategy with signals.pineTradingView · 1 общих теговindicator_arrows.mq5MQL5 / MetaTrader 5 · 1 общих теговcci'hma minmax levels aa mtf sv+tt 1.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

MultiHedgeEA — торговый советник для MetaTrader 4, предназначенный для одновременной работы с четырьмя валютными парами. Советник размещает и управляет ордерами на выбранных символах, используя единый магический номер для идентификации позиций и обеспечения контроля над открытыми сделками.

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

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

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

НастройкаОписание
Expert Name and first part of comment line (eaname) Имя советника — Имя советника и первая часть строки комментария
Magic Number ( 0 - for All positions) (Magic) Магический номер — Магический номер для идентификации позиций, 0 — для всех позиций
Set to false to prevent an entry after an exit (Autotrade) Автоторговля — Переключатель, разрешающий или запрещающий размещение новых ордеров после закрытия
Symbol1 Символ 1 — Название первой валютной пары
Set to true to put long orders on the second pair (Symbol1isLong) Символ 1 направление — Направление ордера для первой пары: true — покупка, false — продажа
Ratio1 Соотношение 1 — Соотношение лотов для первой валютной пары
Symbol2 Символ 2 — Название второй валютной пары
Set to true to put long orders on the second pair (Symbol2isLong) Символ 2 направление — Направление ордера для второй пары: true — покупка, false — продажа
Ratio2 Соотношение 2 — Соотношение лотов для второй валютной пары
Symbol3 Символ 3 — Название третьей валютной пары
Set to true to put long orders on the second pair (Symbol3isLong) Символ 3 направление — Направление ордера для третьей пары: true — покупка, false — продажа
Ratio3 Соотношение 3 — Соотношение лотов для третьей валютной пары
Symbol4 Символ 4 — Название четвёртой валютной пары
Set to true to put long orders on the second pair (Symbol4isLong) Символ 4 направление — Направление ордера для четвёртой пары: true — покупка, false — продажа
Ratio4 Соотношение 4 — Соотношение лотов для четвёртой валютной пары
Slippage Проскальзывание — Допустимое отклонение цены при размещении ордеров
Lotsizes Размер лотов — Текстовый параметр для настроек размера лотов
Lots for first pair if MM is turned off (Lots) Лоты — Количество лотов для первой пары при отключённом менеджменте позиции
UseAutoRatio Автоматическое соотношение — Переключатель автоматического расчёта соотношения лотов между парами
SMA_Value_for_Range Период СМА для диапазона — Период скользящей средней для расчёта диапазона ценовых движений
Data Данные — Текстовый параметр для пользовательских данных
Stop of Manage Account switch(Close All Trades) (StopManageAcc) Остановка управления счётом — Переключатель для немедленного закрытия всех сделок при активации
Maximum total loss in pips or USD (MaxLoss) Максимальный убыток — Максимальный допустимый общий убыток в пипсах или долларах
If the correlation is used to check before put new Orders (cPeriod) Период корреляции — Период для расчёта корреляции между символами перед размещением ордеров
Data4 Данные 4 — Текстовый параметр для пользовательских данных
Select true if you want to use swap on profit calculation (UseSwap) Использовать свопы — Переключатель учёта свопов при расчёте прибыли
Data5 Данные 5 — Текстовый параметр для пользовательских данных
Profit target in pips or U (ProfitTarget) Целевая прибыль — Целевая прибыль в пипсах или долларах
MoneyManagement Менеджмент позиции — Переключатель системы управления позицией с расчётом лотов на основе риска
Risk (Risk) Риск — Числовой параметр риска, используемый при расчёте размера позиции
When the price of Bolliner pair passes the Upper Bollinger close all trades (AutoProfit) Автозакрытие по прибыли — Автоматическое закрытие позиций при достижении целевой прибыли на основе ценового движения одной из пар
AutoProfitRatio Коэффициент автозакрытия — Числовой коэффициент, используемый при автоматическом расчёте целевой прибыли
EmailReport Email-отчёт — Переключатель для отправки email-отчётов о событиях и условиях
Получить полный код

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

#include <stdlib.mqh>

extern string     eaname           = "MH-V1.3";                       // Expert Name and first part of comment line
extern int        Magic            = 111140;                          // Magic Number ( 0 - for All positions)
extern bool       Autotrade        = true;                          // Set to false to prevent an entry after an exit

extern string     Symbol1          = "USDCHF";
extern bool       Symbol1isLong    = true;                          // Set to true to put long orders on the second pair
extern double     Ratio1           = 1;
extern string     Symbol2          = "USDJPY";
extern bool       Symbol2isLong    = true;                          // Set to true to put long orders on the second pair
extern double     Ratio2           = 1;
extern string     Symbol3          = "EURUSD";
extern bool       Symbol3isLong    = true;                          // Set to true to put long orders on the second pair
extern double     Ratio3           = 1;
extern string     Symbol4          = "GBPUSD";
extern bool       Symbol4isLong    = true;                          // Set to true to put long orders on the second pair
extern double     Ratio4           = 1;
extern double     Slippage         = 3;    
extern string     Lotsizes         = "Set Ratio to 1 to use equal";
extern double     Lots             = 1;                           // Lots for first pair if MM is turned off
extern bool       UseAutoRatio     = true;
extern double     SMA_Value_for_Range = 200;
extern string     Data             = " Input Data ";
extern bool       StopManageAcc    = false;                         // Stop of Manage Account switch(Close All Trades)
extern double     MaxLoss          = 0;                             // Maximum total loss in pips or USD 

extern int        cPeriod          = 20;                            // If the correlation is used to check before put new Orders 

extern string     Data4            = "SWAP Settings";               
extern bool       UseSwap          = true;                          // Select true if you want to use swap on profit calculation
extern string     Data5            = "Money Management";
       bool       AccountIsMicro   = true;                          // Set true if you use a micro account
extern double     ProfitTarget     = 50;                            // Profit target in pips or U
       bool       UsePips          = false;
extern bool       MoneyManagement  = true;
extern double     Risk             = 20;                            // Risk
extern bool       AutoProfit       = true;                         // When the price of Bolliner pair passes the Upper Bollinger close all trades
extern double     AutoProfitRatio  = 1; 
extern bool       EmailReport      = false;

string comment = "";
string eBody = "";
string eSubject = "";
string TradeSymbol ="";
int totalPips=0;
double  totalProfits=0;
double BandsLower = 0;
double BandsUpper = 0;
bool CloseSignal=false;
bool signal1=true;
bool signal2=true;
double valueswap = 0;
double Correlation;
double Bands;
double OrderLots1,OrderLots2,OrderLots3,OrderLots4;
double AccountSize;
double Total_Lots;
int ticket1=0
   ,ticket2=0
   ,Symbol1SP
   ,Symbol2SP
   ,Order1=0
   ,Order2=0
   ,Order3=0
   ,Order4=0
   ,c1=0
   ,c2=0
   ,Symbol1OP
   ,Symbol2OP
   ,Symbol3OP
   ,Symbol4OP
   ,Symbol1Mode
   ,Symbol2Mode
   ,Symbol3Mode
   ,Symbol4Mode
   ,numords=0
   ;
string USD = "USD"; // Added so that PipCost could handle InterbankFx Mini accounts

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

int ScanOpenTrades()
{   

   Order1=0;Order2=0;Order3=0;Order4=0;  
   int total = OrdersTotal();
   int numords = 0;
   for(int cnt=0; cnt<=total-1; cnt++)
   {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if(Magic > 0) if(OrderMagicNumber() == Magic) numords++;
    {
    if(OrderType()==Symbol1OP && OrderMagicNumber() == Magic && OrderSymbol()==Symbol1)Order1  += 1;
    if(OrderType()==Symbol2OP && OrderMagicNumber() == Magic && OrderSymbol()==Symbol2)Order2  += 1;
    if(OrderType()==Symbol3OP && OrderMagicNumber() == Magic && OrderSymbol()==Symbol3)Order3  += 1;
    if(OrderType()==Symbol4OP && OrderMagicNumber() == Magic && OrderSymbol()==Symbol4)Order4  += 1;

    }    
   }

   return(numords);
}

double PipCost (string TradeSymbol) {
double Base, Cost;
string TS_13, TS_46, TS_4L;

TS_13 = StringSubstr (TradeSymbol, 0, 3);
TS_46 = StringSubstr (TradeSymbol, 3, 3);
TS_4L = StringSubstr (TradeSymbol, 3, StringLen(TradeSymbol)-3);

Base = MarketInfo (TradeSymbol, MODE_LOTSIZE) * MarketInfo (TradeSymbol, 
MODE_POINT);
if ( TS_46 == "USD" )
Cost = Base;
else if ( TS_13 == "USD" )
Cost = Base / MarketInfo (TradeSymbol, MODE_BID);
else if ( PairExists ("USD"+TS_4L) )
Cost = Base / MarketInfo ("USD"+TS_4L, MODE_BID);
else
Cost = Base * MarketInfo (TS_46+"USD" , MODE_BID);

return(Cost) ;
}

bool PairExists (string TradeSymbol) {
return ( MarketInfo (TradeSymbol, MODE_LOTSIZE) > 0 );
}

string GenerateComment(string eaname, int Magic)
{
   return (StringConcatenate(eaname, "-", Magic));
}

void OpenOrdClose()
{
    int total=OrdersTotal();
    for (int cnt=0;cnt<total;cnt++)
    { 
    OrderSelect(cnt, SELECT_BY_POS);   
    int mode=OrderType();
    bool res = false; 
    bool condition = false;
    if ( Magic>0 && OrderMagicNumber()==Magic ) condition = true;
    else if ( Magic==0 ) condition = true;
      if (condition && ( mode==OP_BUY || mode==OP_SELL ))
      { 
         if (EmailReport) SendMail(eSubject,eBody);

         if(mode==OP_BUY)
         {  
         res = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Yellow);
            if( !res )
            {
            Print(" BUY: OrderClose failed with error #",GetLastError());
            Print(" Ticket=",OrderTicket());
            Sleep(3000);
            }
         break;
         }
         else     

         if( mode == OP_SELL)
         {
         res = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,White);

            if( !res )
            {
            Print(" SELL: OrderClose failed with error #",GetLastError());
            Print(" Ticket=",OrderTicket());
            Sleep(3000);
            }
         break;    
         }  
      }                  
   }
}

void TotalProfit()
{
   int total=OrdersTotal();
   totalPips = 0;
   totalProfits = 0;
   for (int cnt=0;cnt<total;cnt++)
   { 
   OrderSelect(cnt, SELECT_BY_POS);   
   int mode=OrderType();
   bool condition = false;
   if ( Magic>0 && OrderMagicNumber()==Magic ) condition = true;
   else if ( Magic==0 ) condition = true;   
      if (condition)
      {               
         switch (mode)
         {
     

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

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

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

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

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

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

Стоимость полного кода
1 111,70₽ ≈ $13.59