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

volatile_action.mq4

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

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

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

О программе

Данный советник предназначен для автоматической торговли на платформе MetaTrader 4. Он использует комбинацию двух индикаторов — Alligator (на таймфрейме H4) и ATR (для оценки волатильности) — для формирования торговых сигналов на открытие позиций.

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

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

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

НастройкаОписание
VolN Коэффициент волатильности, определяющий пороговое соотношение текущего диапазона цены к значению ATR для формирования сигнала.
Magic Магический номер ордера, идентифицирующий позиции, открытые данным советником.
Risk Параметр риска для расчёта размера лота на основе свободного маржинального баланса. При нулевом значении используется фиксированный лот.
Fix_Lot Фиксированный размер лота для открытия позиции, используется при нулевом значении параметра риска.
ns Коэффициент для расчёта уровня стоп-лосса при модификации ордера, выражается в единицах ATR.
np Коэффициент для расчёта уровня тейк-профита при модификации ордера, выражается в единицах ATR.
ATR Период индикатора ATR, используемого для оценки волатильности и расчёта уровней стоп-лосса и тейк-профита.
Получить полный код

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

#property version   "1.00"
#property strict

input double        VolN=3;                  // Volatility coef.
input int           Magic=7101;              // Magic Number
input double        Risk=0;                  // Leverage
input double        Fix_Lot=0.01;            // Fix_Lot
input double        ns=0.6;                  // Coefloss
input double        np=1.0;                  // Coefprof
input int           ATR=23;                  // ATR
datetime ct;

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

void OnDeinit(const int reason)
  {

  }

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

int SignalVol()
  {
   int SignalVol=0; double Min=1000,Max=0;
   double Vol_140=iATR(_Symbol,PERIOD_CURRENT,ATR,1);
   double Vol_1=iATR(_Symbol,PERIOD_CURRENT,1,1);
   double HL=MathAbs(High[1]-Low[1]);
   double HC=MathAbs(High[1]-Close[1]);
   double LC=MathAbs(Low[1]-Close[1]);
   for(int i=20;i>0;i--)
     {
      if(Low[i]<=Min)
         Min=Low[i];
     }
   for(int i=24;i>0;i--)
     {
      if(High[i]>=Max)
         Max=High[i];
     }

   if(Vol_1>VolN*Vol_140 && Close[1]>Open[1] && Max==High[1] && 0.3*HL>=HC)
      SignalVol=1;

   if(Vol_1>VolN*Vol_140 && Close[1]<Open[1] && Min==Low[1] && 0.3*HL>LC)
      SignalVol=-1;
   return(SignalVol);
  }

int SignalGator()
  {
   int SignalGator=0;
   double Gator_Jaw=iAlligator(_Symbol,PERIOD_H4,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,1);             // Blue line Alligator
   double Gator_Teeth=iAlligator(_Symbol,PERIOD_H4,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,1);         // Red line Alligator
   double Gator_Lips=iAlligator(_Symbol,PERIOD_H4,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,1);           // Green line Alligator  

   if(Gator_Lips>Gator_Teeth && Gator_Lips>Gator_Jaw && Gator_Teeth>Gator_Jaw && iClose(_Symbol,PERIOD_H4,1)>Gator_Teeth && iOpen(_Symbol,PERIOD_H4,1)>Gator_Teeth)
      SignalGator=1;

   if(Gator_Lips<Gator_Teeth && Gator_Lips<Gator_Jaw && Gator_Teeth<Gator_Jaw && iClose(_Symbol,PERIOD_H4,1)<Gator_Teeth && iOpen(_Symbol,PERIOD_H4,1)<Gator_Teeth)
      SignalGator=-1;
   return(SignalGator);
  }

bool Error()
  {
   int Err=GetLastError();
   switch(Err)
     {

      case 0:   return (true);
      case 4:   Print("Error 4. Trade server is busy"); Sleep(180000); return (true);
      case 6:   Print("Error 6. No connection with trade server"); while(!IsConnected()) Sleep(5000); return (true);
      case 8:   Print("Error 8. Too frequent requests"); Sleep(10000);return (true);
      case 128: Print("Error 128. Trade timeout"); Sleep(60000); return (true);
      case 132: Print("Error 132. Marke

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

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

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

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

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

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

Стоимость полного кода
613,80₽ ≈ $7.50