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

SMC

smc_shell.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговgeniusv101-ecn.mq4MQL4 / MetaTrader 4 · 2 общих теговmarket crusher ea guidlines.txtMQL · 2 общих тегов2 to 1 strategy with signals.pineTradingView · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник для платформы MetaTrader 4, написанный на языке MQL4. Анализирует ценовые данные с помощью трёх скользящих средних (короткой, средней и длинной) для определения направления тренда. На основе выявленного тренда советник открывает позиции в лонг или шорт направлении с использованием торговых операций MetaTrader.

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

При открытии ордеров используются стандартные параметры исполнения MetaTrader 4. Советник предоставляет уведомления о событиях через печать в журнал и отправку электронных писем.

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

НастройкаОписание
Lots Лот — Базовый размер позиции для открытия ордера.
LotsMultiplier Множитель лота — Множитель, применяемый к базовому лоту при совпадении направления сделки с текущим трендом.
SMALength Длина краткосрочной SMA — Период короткой скользящей средней, используемой для определения тренда.
MMALength Длина среднесрочной SMA — Период средней скользящей средней, используемой для определения тренда.
LMALength Длина долгосрочной SMA — Период длинной скользящей средней, используемой для определения тренда.
ProtectProfit Защита прибыли — Параметр, объявленный в настройках, но не используемый в активной логике советника.
TrailingStop Трейлинг-стоп — Расстояние для трейлинг-стопа в пунктах.
TakeProfit Тейк-профит — Расстояние до уровня фиксации прибыли в пунктах, задаваемое при открытии ордера.
RiskPercent Процент риска — Процент свободного маржи, используемый для расчёта максимального допустимого риска на сделку.
Получить полный код

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

extern double Lots = 0.1; 
 extern int    LotsMultiplier=2;

 extern int    SMALength=21;
 extern int    MMALength=34;
 extern int    LMALength=55;

 extern int    ProtectProfit = 5;
 extern int    TrailingStop = 5;
 extern int    TakeProfit = 25;
 extern double RiskPercent = 1;

 string  LastOrder;
 string  Trend;
 datetime BarTime;

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

int start()
  {
      // код доступен только после оплаты
   }
   double SL,TP,Spread, ATR, MinDist,MaxRisk;
   double VSMAP0,VSMAP1,SMAP1,MMAP1,LMAP1,VLMAP1,VSMAP1Low,VSMAP1High;

   string MaxRiskStr;

   bool   CloseLongs,CloseShorts;
   bool   Buy,Sell;

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

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

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

SMAP1 = iMA(NULL,0,SMALength,0,MODE_SMA,PRICE_CLOSE,0);
MMAP1 = iMA(NULL,0,MMALength,0,MODE_SMA,PRICE_CLOSE,0);
LMAP1 = iMA(NULL,0,LMALength,0,MODE_SMA,PRICE_CLOSE,0);

tmp=0;
err=0;
tmp = ObjectGet("X"+Time[0],6);
err = GetLastError();
 if(err!=0) 
  {ObjectCreate("X"+Time[0],22,0,Time[0],High[1]);
   ObjectSet("X"+Time[0],14,2);
   ObjectSetText("X"+Time[0],TimeToStr(Time[0]));
   ObjectSet("X"+Time[0],6,Gray);
   }

   ObjectDelete("X"+Time[3]);

      tmp=0;
      tmp=ObjectGet("Trend",6);
        if(SMAP1 > MMAP1 && MMAP1 > LMAP1 && tmp != Lime) 
         {Trend="UP";
          ObjectDelete("Trend");
          ObjectCreate("Trend",22,1,Time[0],50);
          ObjectSet("Trend",6,Lime);
          ObjectSet("Trend",14,241);
          }

        if(SMAP1 < MMAP1 && MMAP1 < LMAP1 && tmp != Red)
         {Trend="DOWN";
          ObjectDelete("Trend");
          ObjectCreate("Trend",22,1,Time[0],50);
          ObjectSet("Trend",6,Red);
          ObjectSet("Trend",14,242);
          }

      if(Trend=="UP" || Trend=="DOWN") Trend=Trend;
       else 
         {Trend="NONE";
          ObjectDelete("Trend");
          ObjectCreate("Trend",22,1,Time[0],50);
          ObjectSet("Trend",6,Yellow);
          ObjectSet("Trend",14,240);
          }

string Trading ="Trading OPEN";

Comment("SMC SHELL","                                               ",Trading,"  Long Term Trend (Stochastic with MAs)   ",Trend,"   ",Hour()," ",Minute()," ",Seconds(),
       "\n",
        "TRADING VALUES",
        "\n",
        "Spread ", Spread," MinDist ",MinDist," Max Risk ",MaxRiskStr,
        "\n",
        "Ask/Bid ",Ask," ",Bid,
        "\n",
        "SYSTEM PARAMETERS",
        "\n",
        "MA settings Short ",SMALength," Medium ",MMALength," Long ",LMALength,
        "\n",
        "Trailing Stop ",TrailingStop,
        "\n",
        "Lots Multiplier ",LotsMultiplier,
        "\n",
        );

 BuyLots = Lots;
 Buy = false;
 Sell =false;
 tmp=0;
 tmp=ObjectGet("X"+Time[0],6);  //add in tmp=gray check
if(tmp==Gray)
{

  if(Trend != "DOWN")    //this is a placeholder for the entry LONG conditions                                         
   {
    Buy=true;
    if(Trend == "UP") BuyLots = Lots*LotsMultiplier;
    LastOrder = " Buy on Failure 1";
    ObjectSet("X"+Time[0],6,Pink);
    SL=Low[Lowest(NULL,0,MODE_LOW,2,1)]-(2*Point); //modify appropriatley
    TP=Ask+(10*Point);
   }

  if

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

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

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

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

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

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

Стоимость полного кода
495,90₽ ≈ $6.06