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

multi_ea_1[1].5.1.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
UsePct Целочисленный параметр, определяющий режим использования процентного расчёта при формировании размера позиции.
MaxLots Максимально допустимое количество лотов для ограничения размера позиции.
Slippage Допустимое отклонение цены исполнения от запрашиваемой цены в пунктах.
Lots Базовый размер лота, используемый при расчёте объёма позиции.
MaximumRisk Параметр риска, определяющий долю свободных средств, используемых при расчёте размера позиции.
DecreaseFactor Коэффициент уменьшения лота при наличии убыточных сделок в истории, влияющий на расчёт размера позиции.
MinLot Минимально допустимый размер лота для открытой позиции.
TrailingStop Расстояние в пунктах для установки скользящего стоп-лосса на открытых позициях.
UseHourTrade Переключатель, включающий или отключающий фильтрацию торговых операций по времени.
FromHourTrade Начальный час торгового окна, в рамках которого советник допускает открытие позиций при включённом часовом фильтре.
ToHourTrade Конечный час торгового окна, в рамках которого советник допускает открытие позиций при включённом часовом фильтре.
Получить полный код

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

#define MAGICMA  162429

extern int    UsePct=0;
extern int    MaxLots=100;
extern int    Slippage=2;
extern double Lots=1;
extern double MaximumRisk=0.05;
extern double DecreaseFactor=6;
extern double MinLot=0.1;
extern double TrailingStop=30;
double        StartBalance,StartEquity;
extern bool   UseHourTrade = false;
extern int    FromHourTrade = 6;
extern int    ToHourTrade = 18;

int bsi=0;
int dir=0;
int vTrig=0;
int openorders=0;
int cnt;
string pair;

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

int deinit()
  {
   return(0);
  }

int GetCurrentOrders()
  {

   openorders=0;
   dir=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

      if(OrderSymbol()==Symbol())
      {
        openorders+=1;
        if(OrderType()==OP_BUY) dir=1;
        if(OrderType()==OP_SELL) dir=-1;
      }  
   }
}

double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break

   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/500.0,1);

   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;

         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }

   if(lot<0.1) lot=0.1;
   return(lot);
  }

int CloseTrade()
  { 
  for(int i=0;i<OrdersTotal();i++)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;

      if(OrderSymbol()==Symbol())
      {
        if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Yellow);
        if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Yellow);
      }  
   }
}

int OpenTrade()
  {
   int vLots=LotsOptimized();
   if (bsi>0) OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,Slippage,0,0,NULL,MAGICMA,0,Green);

   if (bsi<0) OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,Slippage,0,0,NULL,MAGICMA,0,Red);
}

int CalcBSI()
  {

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

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

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

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

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

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

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