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

gold smart ea 1.mq4

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

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

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

О программе

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

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

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

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

НастройкаОписание
Lots Размер лота — Базовый размер лота для торговых операций
MaximumRisk Максимальный риск — Процент от свободного маржи, используемый для расчёта размера лота
DecreaseFactor Фактор уменьшения — Коэффициент, определяющий степень снижения лота после серии убыточных сделок
MovingPeriod Период скользящей средней — Период расчёта простой скользящей средней
MovingShift Сдвиг скользящей средней — Горизонтальный сдвиг линии скользящей средней по графику
Получить полный код

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

#property description "Moving Average sample expert advisor"

#define MAGICMA  20131111

input double Lots          =0.1;
input double MaximumRisk   =0.02;
input double DecreaseFactor=3;
input int    MovingPeriod  =12;
input int    MovingShift   =6;

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;

   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }

   if(buys>0) return(buys);
   else       return(-sells);
  }

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/1000.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);
  }

void CheckForOpen()
  {
   double ma;
   int    res;

   if(Volume[0]>1) return;

   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE

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

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

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

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

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

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

Стоимость полного кода
227,50₽ ≈ $2.78