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

MultiPositionExpert_v1.1

multipositionexpert_v11.11.mq4
Вы автор или правообладатель?

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

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

О программе

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

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

Фильтрация позиций осуществляется с помощью магического числа: можно управлять либо всеми позициями (значение 0), либо только позициями с заданным магическим числом. Функциональность подтверждена наличием обработчика start() и работы с торговыми API MQL4.

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

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

НастройкаОписание
ExpertName Имя советника — Текстовый параметр, задающий имя советника (по умолчанию «MultiPositionExpert_v1»)
Data Данные — Текстовый параметр, используемый для передачи входных данных (содержимое по умолчанию — « Input Data »)
Stop of Manage Account switch(Close All Trades) (StopManageAcc) Остановка управления счётом — Логический переключатель. При значении true советник немедленно закрывает все открытые позиции
Magic Number ( 0 - for All positions) (Magic) Магическое число — Целочисленный параметр — магическое число для фильтрации позиций. Значение 0 означает все позиции
UsePips Использовать пункты — Логический переключатель. При значении true цели прибыли и убытка задаются в пунктах, при false — в долларах США
Profit target in pips or USD (ProfitTarget) Целевая прибыль — Числовой параметр — целевая совокупная прибыль в пунктах или долларах США
Maximum total loss in pips or USD (MaxLoss) Максимальный убыток — Числовой параметр — максимально допустимый совокупный убыток в пунктах или долларах США
Получить полный код

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

#include <stdlib.mqh>

extern string     ExpertName = "MultiPositionExpert_v1";

extern string     Data = " Input Data ";
extern bool       StopManageAcc    =   false; // Stop of Manage Account switch(Close All Trades)
extern int        Magic            =       0; // Magic Number ( 0 - for All positions)
extern bool       UsePips          =    true;    
extern double     ProfitTarget     =     100; // Profit target in pips or USD       	
extern double     MaxLoss          =     100; // Maximum total loss in pips or USD     

int totalPips=0;
double  totalProfits=0;
bool CloseSignal=false;

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

int ScanOpenTrades()
{   
   int total = OrdersTotal();
   int numords = 0;

   for(int cnt=0; cnt<=total-1; cnt++) 
   {        
   OrderSelect(cnt, SELECT_BY_POS);            
      if(OrderType()<=OP_SELL)
      {
      if(Magic > 0) if(OrderMagicNumber() == Magic) numords++;
      if(Magic == 0) numords++;
      }
   }   
   return(numords);
}

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(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(

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

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

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

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

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

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

Стоимость полного кода
277,40₽ ≈ $3.39