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

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

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

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

О программе

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

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

В советнике реализованы управление позициями, ограничение количества открытых ордеров на символ (до 2), уведомления через Alert и SendMail, а также логика фиксации прибыли и трейлинг-стопа. Часть функциональных блоков (трейлинг-стоп, проверка истории) в текущей версии отключены условной конструкцией и не активны при запуске.

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

НастройкаОписание
Lots Размер лота — Размер лота для открытия ордеров (double).
RiskPercent Процент риска — Процент свободного маржинального баланса, используемый для расчёта риска (double).
TakeProfit Тейк-профит — Уровень тейк-профита для ордеров (double). В текущих ордерах не используется.
LockProfit Фиксация прибыли — Уровень фиксации прибыли (double). Функциональный блок в текущей версии отключён.
InitialStop Начальный стоп-лосс — Начальный уровень стоп-лосса для ордеров (double).
TrailingStop Трейлинг-стоп — Расстояние трейлинг-стопа (int, в пунктах). Функциональный блок в текущей версии отключён.
daily in minutes (TrendTimescale) Таймфрейм тренда — Таймфрейм анализа тренда в минутах (int). По умолчанию 1440 — дневной.
TrendLongMA Период долгой трендовой СС — Период долгосрочной скользящей средней для определения тренда (int).
TrendMediumMA Период средней трендовой СС — Период средней скользящей средней для определения тренда (int).
PP1 Уровень защиты 1 — Первый уровень ценовой защиты для фиксации прибыли (int, в пунктах). Блок отключён.
PP2 Уровень защиты 2 — Второй уровень ценовой защиты для фиксации прибыли (int, в пунктах). Блок отключён.
PP3 Уровень защиты 3 — Третий уровень ценовой защиты для фиксации прибыли (int, в пунктах). Блок отключён.
PP4 Уровень защиты 4 — Четвёртый уровень ценовой защиты для фиксации прибыли (int, в пунктах). Блок отключён.
PV1 Параметр фиксации 1 — Первый параметр фиксации прибыли после достижения уровня PP1 (int, в пунктах). Блок отключён.
PV2 Параметр фиксации 2 — Второй параметр фиксации прибыли после достижения уровня PP2 (int, в пунктах). Блок отключён.
SignalSMA Период краткой СС — Период краткосрочной скользящей средней для сигнальной логики (int).
SignalMMA Период средней СС — Период средней скользящей средней для сигнальной логики (int).
SignalLMA Период долгой СС — Период долгосрочной скользящей средней для сигнальной логики (int).
Получить полный код

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

extern double Lots = 0.1;
 extern double RiskPercent = 1;

 extern double TakeProfit = 50;
 extern double LockProfit = 2;
 extern double InitialStop = 30;
 extern double TrailingStop = 25;

 extern int TrendTimescale= 1440; // daily in minutes
 extern int TrendLongMA = 70;
 extern int TrendMediumMA = 45;

 extern int    PP1=15;
 extern int    PP2=25;
 extern int    PP3=55;
 extern int    PP4=75;
 extern int    PV1=15;
 extern int    PV2=45;

 extern int SignalSMA=12;
 extern int SignalMMA=45;
 extern int SignalLMA=70;

 datetime BarTime;
 int cnt,tmp;

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

int start()
  {
      // код доступен только после оплаты
   }
   double SL;
   double Spread, ATR, MinDist;
   double MaxRisk;

   double HighVal, LowVal;  //Breakout Prices

   bool   CloseLongs,CloseShorts;
   bool   Buy,Sell;
   bool   BuyZone, SellZone;

   int    total,ticket,err,tmp;
   int    NumberofPositions;

   string MaxRiskStr;
   datetime tmpstring;

   double LMAP1,LMAP2,MMAP1,MMAP2,SMAP1,SMAP2;
   double EnvHighP1,EnvHighP2,EnvLowP1,EnvLowP2;

  if(Bars<100){Print("bars less than 100"); return(0); }

 if(BarTime == Time[0]) {return(0);}

 BarTime = Time[0];

 MinDist=(MarketInfo(Symbol(),MODE_STOPLEVEL)*Point);
 Spread=(Ask-Bid);
 MaxRisk=(AccountFreeMargin()*RiskPercent/100)*Point();
 MaxRiskStr=DoubleToStr(MaxRisk,4);

LMAP1= iMA(NULL,0,60,0,MODE_LWMA,PRICE_CLOSE,1);
LMAP2= iMA(NULL,0,60,0,MODE_LWMA,PRICE_CLOSE,2);
SMAP1= iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,1);
SMAP2= iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,2);

EnvHighP1=iEnvelopes(NULL,0,40,MODE_LWMA,0,PRICE_CLOSE,0.05,MODE_UPPER,1);
EnvHighP2=iEnvelopes(NULL,0,40,MODE_LWMA,0,PRICE_CLOSE,0.05,MODE_UPPER,2);
EnvLowP1 =iEnvelopes(NULL,0,40,MODE_LWMA,0,PRICE_CLOSE,0.05,MODE_LOWER,1);
EnvLowP2 =iEnvelopes(NULL,0,40,MODE_LWMA,0,PRICE_CLOSE,0.05,MODE_LOWER,2);

/*
string Trend="None";
if(MMAP1 > LMAP1) Trend="UP"; 
if(MMAP1 < LMAP1) Trend="DOWN";
*/

Buy=false;
  if(SMAP2 < LMAP2 && SMAP1 > LMAP1 && SMAP1 > EnvHighP1)
    {
     Buy=true;
     Alert(SMAP1," ",LMAP1," ",SMAP2," ",LMAP2," ",EnvHighP1);

     SL=LMAP1-MaxRisk;
     SL=0;
     }

Sell =false;
  if(SMAP2 > LMAP2 && SMAP1 < LMAP1 && SMAP1 < EnvLowP1)
    {
     Sell=true;
     SL=LMAP1+MaxRisk;
     SL=0;
     }

CloseLongs = false;
CloseShorts = false;

if(SMAP1<LMAP1) CloseLongs = true;
if(SMAP1>LMAP1) CloseShorts= true;

if(0==1) // CHECK THIS IS OFF
{
CloseLongs = true;
CloseShorts = true;
}

 if(CloseLongs == true)
 {                                 
  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
   {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
     {CloseLongs=false;
      OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close LONG position
      SendMail(Symbol()+" BUY Order Closed @ "+Bid," ");
   }}}}

 if(CloseShorts == true)
 { 
  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
   {CloseShorts=false;   
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // check for symbol
     {
      OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close SHORT position
      SendMail

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

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

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

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

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

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

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