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

TrendMeLeaveMe

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

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

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

О программе

TrendMeLeaveMe — торговый советник для MetaTrader 4, созданный Eng. Waddah Attar. Советник работает с трендовыми объектами на графике, смещая их границы на заданное расстояние в пунктах и формируя зону между верхней и нижней линиями.

На основе этой зоны советник открывает отложенные ордера BUYSTOP и SELLSTOP при достижении ценой определённых условий: для покупки — когда Ask находится в пределах зоны, для продажи — когда Bid находится в пределах зоны. Если соответствующий ордер уже существует, советник проверяет его цену и при необходимости модифицирует.

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

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

НастройкаОписание
BuyStop_Trend_Info Информация BUYSTOP — Информационный текстовый параметр для настройки BUYSTOP.
BuyStop_TrendName Имя тренда BUYSTOP — Имя трендового объекта на графике, используемого для определения зоны покупки.
BuyStop_TakeProfit Тейк-профит BUYSTOP — Тейк-профит для BUYSTOP, задаётся в пунктах от верхней границы зоны.
BuyStop_StopLoss Стоп-лосс BUYSTOP — Стоп-лосс для BUYSTOP, задаётся в пунктах от верхней границы зоны.
BuyStop_Lot Объём BUYSTOP — Объём лота для отложенного ордера BUYSTOP.
BuyStop_StepUpper Шаг верхней границы BUYSTOP — Шаг смещения верхней границы трендового объекта для зоны покупки, в пунктах.
BuyStop_StepLower Шаг нижней границы BUYSTOP — Шаг смещения нижней границы трендового объекта для зоны покупки, в пунктах.
SellStop_Trend_Info Информация SELLSTOP — Информационный текстовый параметр для настройки SELLSTOP.
SellStop_TrendName Имя тренда SELLSTOP — Имя трендового объекта на графике, используемого для определения зоны продажи.
SellStop_TakeProfit Тейк-профит SELLSTOP — Тейк-профит для SELLSTOP, задаётся в пунктах от нижней границы зоны.
SellStop_StopLoss Стоп-лосс SELLSTOP — Стоп-лосс для SELLSTOP, задаётся в пунктах от нижней границы зоны.
SellStop_Lot Объём SELLSTOP — Объём лота для отложенного ордера SELLSTOP.
SellStop_StepUpper Шаг верхней границы SELLSTOP — Шаг смещения верхней границы трендового объекта для зоны продажи, в пунктах.
SellStop_StepLower Шаг нижней границы SELLSTOP — Шаг смещения нижней границы трендового объекта для зоны продажи, в пунктах.
Получить полный код

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

extern string BuyStop_Trend_Info = "_______________________";
extern string BuyStop_TrendName = "buystop";
extern int    BuyStop_TakeProfit = 50;
extern int    BuyStop_StopLoss = 30;
extern double BuyStop_Lot = 0.1;
extern int    BuyStop_StepUpper = 10;
extern int    BuyStop_StepLower = 50;
extern string SellStop_Trend_Info = "_______________________";
extern string SellStop_TrendName = "sellstop";
extern int    SellStop_TakeProfit = 50;
extern int    SellStop_StopLoss = 30;
extern double SellStop_Lot = 0.1;
extern int    SellStop_StepUpper = 50;
extern int    SellStop_StepLower = 10;

int MagicBuyStop = 1101;
int MagicSellStop = 1102;
int glbOrderType;
int glbOrderTicket;

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

int deinit()
  {
   Comment("");
   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   double vH, vL, vM, sl, tp;
   if(ObjectFind(BuyStop_TrendName) == 0)
     {
       SetObject("High" + BuyStop_TrendName,
                 ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),
                 ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) + BuyStop_StepUpper*Point,
                 ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),
                 ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) + BuyStop_StepUpper*Point,
                 ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));
       SetObject("Low" + BuyStop_TrendName,
                 ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),
                 ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) - BuyStop_StepLower*Point,
                 ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),
                 ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) - BuyStop_StepLower*Point,
                 ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));
       vH = NormalizeDouble(ObjectGetValueByShift("High"+BuyStop_TrendName,0),Digits);
       vM = NormalizeDouble(ObjectGetValueByShift(BuyStop_TrendName,0),Digits);
       vL = NormalizeDouble(ObjectGetValueByShift("Low"+BuyStop_TrendName,0),Digits);
       sl = vH - BuyStop_StopLoss*Point;
       tp = vH + BuyStop_TakeProfit*Point;
       if(Ask <= vM && Ask >= vL && OrderFind(MagicBuyStop) == false)
           if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vH, 3, sl, tp,
              "", MagicBuyStop, 0, Green) < 0)
               Print("Err (", GetLastError(), ") Open BuyStop Price= ", vH, " SL= ", 
                     sl," TP= ", tp);
       if(Ask <= vM && Ask >= vL && OrderFind(MagicBuyStop) == true && 
          glbOrderType == OP_BUYSTOP)
         {
           OrderSelect(glbOrderTicket, SELECT_BY_TICKET, MODE_TRADES);
           if(vH != OrderOpenPrice())
               if(OrderModify(glbOrderTicket, vH, sl, tp, 0, Green) == false)
                   Print("Err (", GetLastError(), ") Modify BuyStop Price= ", vH, 
                         " SL= ", sl, " TP= ", tp);
         }
     }
   if(ObjectFind(SellStop_TrendName) == 0)
     {
       SetObject("High" + SellStop_TrendName,
    

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

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

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

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

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

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

Стоимость полного кода
430,10₽ ≈ $5.26