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

MultiHedgeEA

multihedgeea_v1[1].3.temp.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) Автотрейд — При значении false блокирует вход в сделку после выхода
Symbol1 Символ 1 — Название первой валютной пары
Set to true to put long orders on the second pair (Symbol1isLong) Направление 1 — При значении true устанавливает направление ордера на покупку для первой пары
Ratio1 Соотношение лотов 1 — Соотношение лотов для первой валютной пары
Symbol2 Символ 2 — Название второй валютной пары
Set to true to put long orders on the second pair (Symbol2isLong) Направление 2 — При значении true устанавливает направление ордера на покупку для второй пары
Ratio2 Соотношение лотов 2 — Соотношение лотов для второй валютной пары
Symbol3 Символ 3 — Название третьей валютной пары
Set to true to put long orders on the second pair (Symbol3isLong) Направление 3 — При значении true устанавливает направление ордера на покупку для третьей пары
Ratio3 Соотношение лотов 3 — Соотношение лотов для третьей валютной пары
Symbol4 Символ 4 — Название четвёртой валютной пары
Set to true to put long orders on the second pair (Symbol4isLong) Направление 4 — При значении true устанавливает направление ордера на покупку для четвёртой пары
Ratio4 Соотношение лотов 4 — Соотношение лотов для четвёртой валютной пары
Slippage Проскальзывание — Допустимое проскальзывание в пунктах
Lotsizes Размер лотов — Текстовый параметр с подсказкой по настройке соотношения лотов
Lots for first pair if MM is turned off (Lots) Лоты — Количество лотов для первой пары при отключённом управлении денежными средствами
UseAutoRatio Автоматическое соотношение лотов — При значении true автоматически рассчитывает соотношение лотов на основе диапазонов пар
SMA_Value_for_Range Период скользящей средней для диапазона — Период скользящей средней для расчёта диапазона ценовых движений
Data Данные — Текстовый параметр для пользовательских данных
Stop of Manage Account switch(Close All Trades) (StopManageAcc) Остановка управления счётом — При значении true принудительно закрывает все сделки
Maximum total loss in pips or USD (MaxLoss) Максимальный убыток — Максимальный совокупный убыток в пунктах или долларах США
If the correlation is used to check before put new Orders (cPeriod) Период корреляции — Период для проверки корреляции перед открытием новых ордеров
Data4 Данные свопов — Текстовый параметр для настроек свопов
Select true if you want to use swap on profit calculation (UseSwap) Учёт свопов — При значении true учитывает свопы при расчёте прибыли
Data5 Данные управления риском — Текстовый параметр для настроек управления денежными средствами
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-отчёт — При значении true отправляет email-отчёт при закрытии позиций
Получить полный код

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

#include <stdlib.mqh>

extern string     eaname           = "MH-V1.3";                       // Expert Name and first part of comment line
extern int        Magic            = 6464;                          // 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    = false;                          // Set to true to put long orders on the second pair
extern double     Ratio1           = 1;
extern string     Symbol2          = "USDJPY";
extern bool       Symbol2isLong    = false;                          // Set to true to put long orders on the second pair
extern double     Ratio2           = 1;
extern string     Symbol3          = "EURUSD";
extern bool       Symbol3isLong    = false;                          // Set to true to put long orders on the second pair
extern double     Ratio3           = 1;
extern string     Symbol4          = "GBPUSD";
extern bool       Symbol4isLong    = false;                          // 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   = false;                          // 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()==OP_SELL && OrderMagicNumber() == Magic && OrderSymbol()==Symbol1)Order1  += 1;
    if(OrderType()==OP_SELL && OrderMagicNumber() == Magic && OrderSymbol()==Symbol2)Order2  += 1;
    if(OrderType()==OP_SELL && OrderMagicNumber() == Magic && OrderSymbol()==Symbol3)Order3  += 1;
    if(OrderType()==OP_SELL && OrderMagicNumber() == Magic && OrderSymbol()==Symbol4)Order4  += 1;
    if(OrderType()==OP_BUY && OrderMagicNumber() == Magic && OrderSymbol()==Symbol1)Order1  += 1;
    if(OrderType()==OP_BUY && OrderMagicNumber() == Magic && OrderSymbol()==Symbol2)Order2  += 1;
    if(OrderType()==OP_BUY && OrderMagicNumber() == Magic && OrderSymbol()==Symbol3)Order3  += 1;
    if(OrderType()==OP_BUY && 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;
   i

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

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

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

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

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

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

Стоимость полного кода
1 144,80₽ ≈ $13.99