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

SMC Trader Manual

smc manual ea.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 Trader Manual — это торговый советник для MetaTrader 4, написанный на языке MQL4. Программа отображает на графике набор трендовых линий, обозначающих уровни для стоп- и лимитных ордеров, и отслеживает цену относительно этих уровней для принятия торговых решений.

Советник поддерживает четыре типа входа в позицию: BuyStop, SellStop, BuyLimit и SellLimit. При срабатывании ценовых условий он отправляет ордера на открытие сделок с использованием встроенной функции расчёта оптимального объёма позиции. Также реализованы автоматическое закрытие позиций по стоп-лоссу и тейку-профиту, а также функция трейлинг-стопа.

В настройках предусмотрено ограничение количества сделок в день и параметры управления рисками. Советник предназначен для ручной или полуавтоматической торговли и требует предварительного тестирования перед использованием на реальном счёте.

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

НастройкаОписание
Lots Lots — Базовый объём позиции
MaximumRisk MaximumRisk — Максимальный процент риска от свободного маржи для расчёта объёма
DecreaseFactor DecreaseFactor — Коэффициент уменьшения объёма позиции при наличии убыточных сделок
Slippage Slippage — Допустимое проскальзывание при выполнении ордеров
>0 enables trailing stop (UseTrailingStop) UseTrailingStop — При значении больше ноль включает функцию трейлинг-стопа
TrailingStop TrailingStop — Расстояние для трейлинг-стопа в пунктах
>0 LIMITS(restricts) trades to ONE PER DAY (OneTradePerDay) OneTradePerDay — При значении больше нуля ограничивает количество сделок до одной в день
Получить полный код

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

extern double  Lots              =0.1;
extern double  MaximumRisk       =0.02;
extern double  DecreaseFactor    =3;
extern double  Slippage          =3;
extern int     UseTrailingStop   =0;//>0 enables trailing stop
extern double  TrailingStop      =20;
extern int     OneTradePerDay    =0;//>0 LIMITS(restricts) trades to ONE PER DAY

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);
   }

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

int start()
  {
      // код доступен только после оплаты
   }
   int cnt,total,ticket,MinDist,tmp;
   double Spread;

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

 MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
 Spread=(Ask-Bid);

   double BuyStop   =ObjectGetValueByShift("BuyStop",0);
   double BuyStopSL =ObjectGetValueByShift("BuyStopSL",0);
   double BuyStopTP =ObjectGetValueByShift("BuyStopTP",0);
   double SellStop  =ObjectGetValueByShift("SellStop",0);
   double SellStopSL=ObjectGetValueByShift("SellStopSL",0);
   double SellStopTP=ObjectGetValueByShift("SellStopTP",0);

   double BuyLimit   =ObjectGetValueByShift("BuyLimit",0);
   double BuyLimitSL =ObjectGetValueByShift("BuyLimitSL",0);
   double BuyLimitTP =ObjectGetValueByShift("BuyLimitTP",0);
   double SellLimit  =ObjectGetValueByShift("SellLimit",0);
   double SellLimitSL=ObjectGetValueByShift("SellLimitSL",0);
   double SellLimitTP=ObjectGetValueByShift("SellLimitTP",0);

   if(Minute()==0){
Print(Symbol(),"BuyStop:",BuyStop," BuyStopSL:",BuyStopSL," BuyStopTP:",BuyStopTP,
      " SellStop:",SellStop," SellStopSL:",SellStopSL," SellStopTP:",SellStopTP);}

  total=OrdersTotal();
  if(total>0)
   { 
   for(cnt=0;cnt<total;cnt++)
   {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderMagicNumber()==16384 &&
    OrderType()==OP_BUY && 
    OrderSymbol()==Symbol())
     {
     if(Close[1] < BuyStopSL)
      {                                 
       OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Violet); // close LONG position
     }}

    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 
    if(OrderMagicNumber()==16384 &&
    OrderType()==OP_SELL &&
    OrderSymbol()==Symbol()) // check for symbol
     {
     if(Close[1] > SellStopSL)
      {   
       OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Violet); // close SHORT position
     }}

    OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
    if(OrderMag

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

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

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

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

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

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

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