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

RSI EA

rsi_ea (4).mq4

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

ea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих тегов2 to 1 strategy with signals.pineTradingView · 2 общих теговfresh algo signals & overlays v25_6334471093901859175.pineTradingView · 2 общих теговbago ea_5391011682577321359.mq4MQL4 / MetaTrader 4 · 2 общих теговfresh algo v24 tradingview indicator_5918156155804195406.pineTradingView · 2 общих теговea_rsi_stocho_ma.mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Этот файл представляет собой торговый советник для MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на основе показаний индикатора RSI (индекс относительной силы). Он открывает и закрывает позиции в зависимости от пересечения уровня RSI заданных значений, а также поддерживает управление стоп-лоссом, тейк-профитом и трейлинг-стопом. В коде используются стандартные торговые функции MQL4, такие как OrderSend, OrderClose, OrderModify, а также функции для работы с индикатором iRSI.

Советник имеет набор входных параметров, позволяющих настраивать его поведение: включение/отключение открытия покупок и продаж, закрытие по сигналу, уровни стоп-лосса и тейк-профита, параметры трейлинг-стопа, период RSI, уровни перекупленности и перепроданности, а также управление размером лота (автоматический расчет от риска или фиксированный лот). Дополнительно задаются магический номер, комментарий к ордерам и допустимое проскальзывание.

Логика работы основана на сравнении текущего и предыдущего значений RSI с заданными уровнями. При пересечении уровня снизу вверх (для покупки) или сверху вниз (для продажи) советник открывает соответствующую позицию, если это разрешено настройками и нет уже открытых позиций в этом направлении. Закрытие позиций происходит при обратном пересечении уровней, если включена соответствующая опция. Трейлинг-стоп модифицирует стоп-лосс при достижении определенной прибыли.

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

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

НастройкаОписание
OpenBUY Разрешает открытие длинных позиций (покупок) при появлении соответствующего сигнала.
OpenSELL Разрешает открытие коротких позиций (продаж) при появлении соответствующего сигнала.
CloseBySignal Если включено, позиции закрываются при появлении противоположного сигнала RSI.
StopLoss Размер стоп-лосса в пунктах. Если значение равно 0, стоп-лосс не устанавливается.
TakeProfit Размер тейк-профита в пунктах. Если значение равно 0, тейк-профит не устанавливается.
TrailingStop Размер трейлинг-стопа в пунктах. Если значение больше 0, стоп-лосс перемещается за ценой при достижении прибыли.
RSIperiod Количество периодов для расчета индикатора RSI.
BuyLevel Уровень RSI, ниже которого рассматривается сигнал на покупку при пересечении снизу вверх.
SellLevel Уровень RSI, выше которого рассматривается сигнал на продажу при пересечении сверху вниз.
AutoLot Если включено, размер лота рассчитывается автоматически на основе баланса счета и параметра Risk. Если выключено, используется фиксированный лот из ManualLots.
Risk Процент риска от баланса счета, используемый при автоматическом расчете лота.
ManualLots Фиксированный размер лота, используемый при отключенном автоматическом расчете.
MagicNumber Уникальный идентификатор (магический номер) для ордеров, открытых советником.
Koment Текстовый комментарий, добавляемый к открываемым ордерам.
Slippage Максимально допустимое проскальзывание в пунктах при открытии ордеров.
Получить полный код

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

#property version   "1.00"
#property strict

input bool   OpenBUY=True;
input bool   OpenSELL=True;
input bool   CloseBySignal=True;
input double StopLoss=0;
input double TakeProfit=0;
input double TrailingStop=0;
input int    RSIperiod=14;
input double BuyLevel=30;
input double SellLevel=70;
input bool   AutoLot=True;
input double Risk=10;
input double ManualLots=0.1;
input int    MagicNumber=123;
input string Koment="RSIea";
input int    Slippage=10;

int OrderBuy,OrderSell;
int ticket;
int LotDigits;
double Trail,iTrailingStop;

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

int deinit()
  {
   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   double stoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
   OrderBuy=0;
   OrderSell=0;
   for(int cnt=0; cnt<OrdersTotal(); cnt++)
     {
      if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderComment()==Koment)
           {
            if(OrderType()==OP_BUY) OrderBuy++;
            if(OrderType()==OP_SELL) OrderSell++;
            if(TrailingStop>0)
              {
               iTrailingStop=TrailingStop;
               if(TrailingStop<stoplevel) iTrailingStop=stoplevel;
               Trail=iTrailingStop*Point;
               double tsbuy=NormalizeDouble(Bid-Trail,Digits);
               double tssell=NormalizeDouble(Ask+Trail,Digits);
               if(OrderType()==OP_BUY && Bid-OrderOpenPrice()>Trail && Bid-OrderStopLoss()>Trail)
                 {
                  ticket=OrderModify(OrderTicket(),OrderOpenPrice(),tsbuy,OrderTakeProfit(),0,Blue);
                 }
               if(OrderType()==OP_SELL && OrderOpenPrice()-Ask>Trail && (OrderStopLoss()-Ask>Trail || OrderStopLoss()==0))
                 {
                  ticket=OrderModify(OrderTicket(),OrderOpenPrice(),tssell,OrderTakeProfit(),0,Blue);
                 }
              }
           }
     }
   double rsi=iRSI(Symbol(),0,RSIperiod,PRICE_CLOSE,0);
   double rsi1=iRSI(Symbol(),0,RSIperiod,PRICE_CLOSE,1);

   if(OpenSELL && OrderSell<1 && rsi<SellLevel && rsi1>SellLevel) OPSELL();
   if(OpenBUY && OrderBuy<1 && rsi>BuyLevel && rsi1<BuyLevel) OPBUY();

   if(C

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

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

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

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

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

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

Стоимость полного кода
337,20₽ ≈ $4.12