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

easervant12_avg+..mq4

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой советник (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует направление дневного тренда с помощью индикатора RSI и отображает текущую тенденцию (рост, падение, боковик) в виде информационных меток на графике.

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

Также реализована функция трейлинга стоп-лосса для фиксации прибыли при благоприятном движении цены. При достижении совокупной прибыли, превышающей заданный процент от баланса счёта, советник закрывает все открытые позиции. Адаптирован для работы как с 4-значными, так и с 2/3/5-значными котировками.

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

НастройкаОписание
TakeProfit Тейк-профит — Уровень тейк-профита в пунктах, устанавливаемый при открытии новых позиций.
StopLoss Стоп-лосс — Уровень стоп-лосса в пунктах, устанавливаемый при открытии новых позиций.
LockProfit Уровень фиксации прибыли для трейлинга — Уровень прибыли в пунктах, при достижении которого активируется трейлинг стоп-лосса для фиксации прибыли.
Averaging Усреднение — Включает или выключает режим усреднения позиции. При активном режиме советник открывает дополнительные позиции с увеличенным лотом при движении цены против текущей позиции.
Lot_Multiplier Множитель лота — Множитель, определяющий увеличение лота при каждом последующем усреднении позиции.
Range Ценовой диапазон для усреднения — Ценовой диапазон в пунктах, при достижении которого открываются новые усреднённые позиции.
Level Уровень лимита позиций — Максимальное количество открытых позиций, при котором советник продолжает открывать новые усреднённые ордера.
Bila false maka TP_Money_Percents juga tidak berfungsi (Modify_TPSL) Изменение ТП/СЛ — Включает автоматическое изменение тейк-профита и стоп-лосса. При отключении данной настройки параметр процента прибыли TP_Money_Percents также не работает.
TP_Money_Percents Процент прибыли для закрытия — Процент от баланса счёта. При достижении совокупной прибылью данного порога советник закрывает все открытые позиции. Работает только при активной настройке Modify_TPSL.
Получить полный код

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

extern int    TakeProfit = 4;
extern int    StopLoss = 10;
extern int    LockProfit = 100;
extern bool   Averaging = true;
extern double Lot_Multiplier = 1.0;
extern double Range = 4;
extern int    Level = 100;
extern bool   Modify_TPSL = false;  //Bila false maka TP_Money_Percents juga tidak berfungsi
extern double TP_Money_Percents  = 0.40;
string gsa_88[4];
int ticket=0; 
int a=0;

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

int deinit() {
   ObjectDelete("ObjLabel1");
   ObjectDelete("ObjLabel2");
   ObjectDelete("ObjLabel3");
   ObjectDelete("ObjLabel4");
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   double l_irsi_0 = iRSI(NULL, PERIOD_D1, 14, PRICE_CLOSE, 0);
   int l_pos_8 = 0;
   gsa_88[0] = "Dwi Malistyo - e*@dwim.web.id";
   gsa_88[1] = "";
   gsa_88[2] = "";
   gsa_88[4] = "";   
   gsa_88[3] = "";
   if (l_irsi_0 < 45.0) gsa_88[2] = "Daily Trend : Downtrend";
   else {
      if (l_irsi_0 > 55.0) gsa_88[4] = "Daily Trend : Uptrend";
      else gsa_88[2] = "Daily Trend : Sideways";
   }
   ObjectCreate("ObjLabel1", OBJ_LABEL, 0, 0, 0);
   ObjectSet("ObjLabel1", OBJPROP_CORNER, 1);
   ObjectSet("ObjLabel1", OBJPROP_XDISTANCE, 10);
   ObjectSet("ObjLabel1", OBJPROP_YDISTANCE, 15);
   ObjectSetText("ObjLabel1", gsa_88[0], 7, "Arial", SteelBlue);
   ObjectCreate("ObjLabel2", OBJ_LABEL, 0, 0, 0);
   ObjectSet("ObjLabel2", OBJPROP_CORNER, 1);
   ObjectSet("ObjLabel2", OBJPROP_XDISTANCE, 10);
   ObjectSet("ObjLabel2", OBJPROP_YDISTANCE, 25);
   ObjectSetText("ObjLabel2", gsa_88[1], 7, "Arial", SteelBlue);
   ObjectCreate("ObjLabel3", OBJ_LABEL, 0, 0, 0);
   ObjectSet("ObjLabel3", OBJPROP_CORNER, 1);
   ObjectSet("ObjLabel3", OBJPROP_XDISTANCE, 10);
   ObjectSet("ObjLabel3", OBJPROP_YDISTANCE, 35);
   ObjectSetText("ObjLabel3", gsa_88[2], 7, "Arial", Red);
   ObjectSetText("ObjLabel3", gsa_88[4], 7, "Arial", Lime);   
   ObjectCreate("ObjLabel4", OBJ_LABEL, 0, 0, 0);
   ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
   ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
   ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
   ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
   if (Digits == 4) {
      for (l_pos_8 = 0; l_pos_8 < OrdersTotal(); l_pos_8++) {
         OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol() == Symbol()) {
            if (OrderType() == OP_BUY) {
               if (OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
                  if (OrderModify(OrderTicket(), OrderOpenPrice(), Bid - StopLoss * Point, Ask + TakeProfit * Point, 0) == TRUE) gsa_88[3] = "Put SL and TP at trade BUY no: #" + OrderTicket();
                  else gsa_88[3] = "ERROR -- Put SL and TP at trade BUY no: #" + OrderTicket();
                  ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
                  ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
                  ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
                  ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
               } else {
                  if (Bid - OrderOpenPrice() > LockProfit * Point) {
                     if (OrderStopLoss() <= OrderOpenPrice()) {
                        if (OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + 1.0 * Point, OrderTakeProfit(), 0) == TRUE) gsa_88[3] = "Modify SL at trade BUY no: #" + OrderTicket();
                        else gsa_88[3] = "ERROR -- Modifying SL at trade BUY no: #" + OrderTicket();
                        ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
                        ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
                        ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
                        ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
                     } else {
                        if (Bid - OrderStopLoss() > LockProfit * Point) OrderModify(OrderTicket(), OrderOpenPrice(), Bid - LockProfit * Point, OrderTakeProfit(), 0);
                        gsa_88[3] = "Trailing SL trade no: #" + OrderTicket();
                        ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
                        ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
                        ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
                        ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
                     }
                  }
               }
            } else {
               if (OrderType() == OP_SELL) {
                  if (OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
                     if (OrderModify(OrderTicket(), OrderOpenPrice(), Ask + StopLoss * Point, Bid - TakeProfit * Point, 0) == TRUE) gsa_88[3] = "Put SL and TP at trade SELL no: #" + OrderTicket();
                     else gsa_88[3] = "ERROR -- Put SL and TP at trade SELL no: #" + OrderTicket();
                     ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
                     ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
                     ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
                     ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
                  } else {
                     if (OrderOpenPrice() - Ask > LockProfit * Point) {
                        if (OrderStopLoss() >= OrderOpenPrice()) {
                           if (OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - 1.0 * Point, OrderTakeProfit(), 0) == TRUE) gsa_88[3] = "Modify SL at trade SELL no: #" + OrderTicket();
                           else gsa_88[3] = "ERROR -- Modifying SL at trade SELL no: #" + OrderTicket();
                           ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
                           ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
                           ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
                           ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
                        } else {
                           if (OrderStopLoss() - Ask > LockProfit * Point) OrderModify(OrderTicket(), OrderOpenPrice(), Ask + LockProfit * Point, OrderTakeProfit(), 0);
                           gsa_88[3] = "Trailing SL at trade no: #" + OrderTicket();
                           ObjectSet("ObjLabel4", OBJPROP_CORNER, 1);
                           ObjectSet("ObjLabel4", OBJPROP_XDISTANCE, 10);
                           ObjectSet("ObjLabel4", OBJPROP_YDISTANCE, 45);
                           ObjectSetText("ObjLabel4", gsa_88[3], 7, "Arial", Yellow);
                        }
                     }
                  }
               }
            }
         }
      }
   } else {
      if (Digits == 2 || Digits == 3 || Digits == 5) {
         for (l_pos_8 = 0; l_pos_8 < OrdersTotal(); l_pos_8++) {
            OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES);
            if (OrderSymbol() == Symbol()) {
               if (OrderType() == OP_BUY) {
                  if (OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
                     if (OrderModify(OrderTicket(), OrderOpenPrice(), Bid - 10.0 * (StopLoss * Point), Ask + 10.0 * (TakeProfit * Point), 0) 

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

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

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

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

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

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

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