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

MoStAsHaR15 FoReX - Pivot Line Strategy

mostashar15 pivot expert.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

«MoStAsHaR15 FoReX - Pivot Line Strategy» — это советник для MetaTrader 4, работающий на основе пивот-линий, построенных по данным предыдущего торгового дня. Программа рассчитывает уровни сопротивления и поддержки и отображает их на графике в виде горизонтальных линий с подписями.

Советник использует комбинацию технических индикаторов — ADX с направленными индексами, скользящие средние EMA и осциллятор OsMA — для определения наличия тренда и направления позиции. Перед открытием сделки проверяется свободная маржа на счёте.

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

Все ключевые параметры работы настраиваются пользователем через входные параметры советника.

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

НастройкаОписание
Lots Размер лота — Объём лота для открытия позиции.
TrailingStop Трейлинг-стоп (в пунктах) — Расстояние в пунктах от цены открытия, при достижении которого активируется трейлинг-стоп.
StopLoss Стоп-лосс (в пунктах) — Расстояние в пунктах от цены открытия для установки стоп-лосса.
TimeZone Часовой пояс — Смещение часового пояса для определения времени открытия торговой сессии.
Получить полный код

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

extern double Lots = 1.0;
extern double TrailingStop = 10;
extern double StopLoss = 30;
extern int TimeZone=2;

double EMA5_0, EMA6_0, EMA5_1, EMA6_1, ADX, ADXpos_0, ADXneg_0, ADXpos_1, ADXneg_1, OsMA_0, OsMA_1;
double R1=0, R2=0, R3=0, M0=0, M1=0, M2=0, M3=0, M4=0, M5=0, S1=0, S2=0, S3=0;
double day_high=0, day_low=0, yesterday_high=0, yesterday_open=0, yesterday_low=0, yesterday_close=0, today_open=0, today_high=0, today_low=0, P=0, Q=0, nQ=0, nD=0, D=0, rates_h1[2][6], rates_d1[2][6],Bound[13];
double Buy_TP, Sell_TP, Sup, Res, ticket, SL;
int cnt,dif1,dif2;

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

int deinit() 
{
 return(0);
}

int start()
{
      // код доступен только после оплаты
   }   
   if(Bars<150)
     {
     Print("bars less than 100");
     }

   if(Buy_TP < 10 || Sell_TP < 10)
     {
      Print("TakeProfit less than 10");
     }

   ObjectDelete("R1 Label"); 
   ObjectDelete("R1 Line");

   ObjectDelete("R2 Label");
   ObjectDelete("R2 Line");

   ObjectDelete("R3 Label");
   ObjectDelete("R3 Line");

   ObjectDelete("S1 Label");
   ObjectDelete("S1 Line");

   ObjectDelete("S2 Label");
   ObjectDelete("S2 Line");

   ObjectDelete("S3 Label");
   ObjectDelete("S3 Line");

   ObjectDelete("P Label");
   ObjectDelete("P Line");

   ObjectDelete("M5 Label");
   ObjectDelete("M5 Line");

   ObjectDelete("M4 Label");
   ObjectDelete("M4 Line");

   ObjectDelete("M3 Label");
   ObjectDelete("M3 Line");

   ObjectDelete("M2 Label");
   ObjectDelete("M2 Line");

   ObjectDelete("M1 Label");
   ObjectDelete("M1 Line");

   ObjectDelete("M0 Label");

  int i=0, j=0;

  if(Period() > 1440)
   {
    Comment("Error - Chart period is greater than 1 day.");
    return(-1);
   }

  ArrayCopyRates(rates_d1, Symbol(), PERIOD_D1);
  yesterday_high = rates_d1[1][3];
  yesterday_low = rates_d1[1][2]; 
  day_high = rates_d1[0][3];
  day_low = rates_d1[0][2];

  ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);
  for (i=0;i<=25;i++)
  {
   if (TimeMinute(rates_h1[i][0])==0 && (TimeHour(rates_h1[i][0])-TimeZone)==0)
    {
     yesterday_close = rates_h1[i+1][4];      
     yesterday_open = rates_h1[i+24][1];
     today_open = rates_h1[i][1];      
     break;
    }
  }   

   D = (day_high - day_low);
   Q = (yesterday_high - yesterday_low);

   P = (yesterday_high + yesterday_low + yesterday_close) / 3;

   R1 = (2*P)-yesterday_low;
   S1 = (2*P)-yesterday_high;

   R2 = P+(yesterday_high - yesterday_low);
   S2 = P-(yesterday_high - yesterday_low);

   R3 = (2*P)+(yesterday_high-(2*yesterday_low));
   S3 = (2*P)-((2* yesterday_high)-yesterday_low);   

	M5 = (R2+R3)/2;
   M4 = (R1+R2)/2;
   M3 = (P+R1)/2;
   M2 = (P+S1)/2;
   M1 = (S1+S2)/2;
	M0 = (S2+S3)/2;

   if (Q > 5) 
    {
	  nQ = Q;
    }
   else
    {
	  nQ = Q*10000;
    }

   if (D > 5)
    {
	  nD = D;
    }
   else
    {
	  nD = D*10000;
    }

   ObjectDelete("M0 Line");

     if(ObjectFind("R1 label") != 0)
      {
       ObjectCreate("R1 label", OBJ_TEXT, 0, Time[20], R1);
       ObjectSetText("R1 label", " R1", 8, "Arial", Yellow);
      }
     else
      {
       ObjectMove("R1 label", 0, Time[20], R1);
      }

      if(ObjectFind("R2 label") != 0)
       {
        ObjectCreate("R2 label", OBJ_TEXT, 0, Time[20], R2);
        ObjectSetText("R2 label", " R2", 8, "Arial", Orange);
       }
      else
       {
        ObjectMove("R2 label", 0, Time[20], R2);
       }

      if(ObjectFind("R3 label") != 0)
       {
        ObjectCreate("R3 label", OBJ_TEXT, 0, Time[20], R3);
        ObjectSetText("R3 label", " R3", 8, "Arial", Red);
       }
        else
       {
        ObjectMove("R3 label", 0, Time[20], R3);
       }

      if(ObjectFind("P label") != 0)
       {
        ObjectCreate("P label", OBJ_TEXT, 0, Time[20], P);
        ObjectSetText("P label", "Pivot", 8, "Arial", DeepPink);
       }
      else
       {
        ObjectMove("P label", 0, Time[20], P);
       }

      if(ObjectFind("S1 label") != 0)
       {
        ObjectCreate("S1 label", OBJ_TEXT, 0, Time[20], S1);
        ObjectSetText("S1 label", "S1", 8, "Arial", Yellow);
       }
      else
       {
        ObjectMove("S1 label", 0, Time[20], S1);
       }

      if(ObjectFind("S2 label") != 0)
       {
        ObjectCreate("S2 label", OBJ_TEXT, 0, Time[20], S2);
        ObjectSetText("S2 label", "S2", 8, "Arial", Orange);
       }
      else
       {
        ObjectMove("S2 label", 0, Time[20], S2);
       }

      if(ObjectFind("S3 label") != 0)
       {
        ObjectCreate("S3 label", OBJ_TEXT, 0, Time[20], S3);
        ObjectSetText("S3 label", "S3", 8, "Arial", Red);
       }
      else
       {
        ObjectMove("S3 label", 0, Time[20], S3);
       }

      if(ObjectFind("S1 line") != 0)
       {
        ObjectCreate("S1 line", OBJ_HLINE, 0, Time[40], S1);
        ObjectSet("S1 line", OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("S1 line", OBJPROP_COLOR, Yellow);
       }
      else
       {
        ObjectMove("S1 line", 0, Time[40], S1);
       }

      if(ObjectFind("S2 line") != 0)
       {
        ObjectCreate("S2 line", OBJ_HLINE, 0, Time[40], S2);
        ObjectSet("S2 line", OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("S2 line", OBJPROP_COLOR, Orange);
       }
      else
       {
        ObjectMove("S2 line", 0, Time[40], S2);
       }

      if(ObjectFind("S3 line") != 0)
       {
        ObjectCreate("S3 line", OBJ_HLINE, 0, Time[40], S3);
        ObjectSet("S3 line", OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("S3 line", OBJPROP_COLOR, Red);
       }
      else
       {
        ObjectMove("S3 line", 0, Time[40], S3);
       }

      if(ObjectFind("P line") != 0)
       {
        ObjectCreate("P line", OBJ_HLINE, 0, Time[40], P);
        ObjectSet("P line", OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("P line", OBJPROP_COLOR, DeepPink);
       }
      else
       {
        ObjectMove("P line", 0, Time[40], P);
       }

      if(ObjectFind("R1 line") != 0)
       {
        ObjectCreate("R1 line", OBJ_HLINE, 0, Time[40], R1);
        ObjectSet("R1 line", OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("R1 line", OBJPROP_COLOR, Yellow);
       }
      else
       {
        ObjectMove("R1 line", 0, Time[40], R1);
       }

      if(ObjectFind("R2 line") != 0)
       {
        ObjectCreate("R2 line", OBJ_HLINE, 0, Time[40], R2);
        ObjectSet("R2 line", OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("R2 line", OBJPROP_COLOR, Orange);
       }
      else
       {
        ObjectMove("R2 line", 0, Time[40], R2);
       }

      if(ObjectFind("R3 line") != 0)
       {
        ObjectCreate("R3 line", OBJ_HLINE, 0, Time[40], R3);
    

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

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

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

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

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

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

Стоимость полного кода
898,70₽ ≈ $10.98