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

WPR for Multi Pair

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

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

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

О программе

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

Советник автоматически подсчитывает количество открытых позиций, управляет их закрытием и открытием в зависимости от текущего торгового сигнала. При изменении направления рынка позиция закрывается, а при появлении нового сигнала — открывается.

Расчёт размера лота реализован с учётом процента от баланса счёта и максимального ограничения на количество лотов. Это позволяет контролировать объём риска при торговле.

В качестве инструмента анализа применяются данные мультивалютного индикатора моментума, которые суммируются для формирования единого показателя направления.

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

НастройкаОписание
UsePct Процент от баланса счёта, используемый при расчёте размера лота. При значении 0 расчёт лота по данному параметру не выполняется.
MaxLots Максимальное допустимое количество лотов для одной позиции. Устанавливает верхний предел размера позиции.
Получить полный код

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

#define MAGICMA  20050610

extern int       UsePct=0;
extern int       MaxLots=100;

int bsi=0;
int dir=0;
int vTrig=0;
int openorders=0;
string pair;
double vSL=0,vTP=0;

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;
      }  
   }
}

int LotCalc(double Risk)
  {
   int vLots=0;
   if (UsePct >0 && Risk>0) vLots=MathFloor(AccountBalance()*(UsePct/100)/((Risk/MarketInfo (Symbol(), MODE_POINT))*10));
   if (UsePct >0 && Risk==0)  vLots = MathFloor(AccountBalance()*(UsePct/100)/1000);
   if (vLots>MaxLots) vLots=MaxLots;
   if (vLots<1) vLots=1;
   return(vLots);
}

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

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

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

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

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

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

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

Стоимость полного кода
168₽ ≈ $2.05