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

rutka1.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Rutka1 — торговый советник для MetaTrader 4, написанный на языке MQL4. Программа анализирует ценовые данные с помощью скользящей средней EMA с периодом 144, определяя ключевые уровни поддержки и сопротивления на основе максимумов и минимумов.

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

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

Объём лота рассчитывается на основе свободного маркета счёта и параметра MaximumRisk. Перед открытием ордеров советник проверяет наличие достаточного количества баров и достаточный свободный маржинальный баланс.

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

НастройкаОписание
TakeProfit Тейк-профит — Расстояние в пунктах до уровня тейк-профита для отложенных ордеров. Минимальное допустимое значение — 10. Значение по умолчанию: 850.
TrailingStop Трейлинг-стоп — Расстояние в пунктах для активации трейлинг-стопа на существующих позициях. Если значение равно 0, трейлинг-стоп не применяется. Значение по умолчанию: 850.
PipDifference Разница в пунктах — Разница в пунктах, используемая при расчёте цен входа, стоп-лосса и тейк-профита для отложенных ордеров. Значение по умолчанию: 25.
Lots Размер лота — Размер лота для открытия позиций. Значение по умолчанию: 0.1.
MaximumRisk Максимальный риск — Параметр риска, используемый для расчёта размера лота на основе свободного маркета счёта. Значение по умолчанию: 10.
Получить полный код

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

extern int TakeProfit = 850;
extern int TrailingStop = 850;
extern int PipDifference = 25;
extern double Lots = 0.1;
extern double MaximumRisk = 10;

int start(){
      // код доступен только после оплаты
   }
   int cnt, ticket;
   if(Bars<100){
      Print("bars less than 100");
      return(0);
   }
   if(TakeProfit<10){
      Print("TakeProfit less than 10");
      return(0);
   }
   string TradeSymbol = Symbol();
   double MA144H = MathRound(iMA(NULL,0,144,0,MODE_EMA,PRICE_HIGH,0)/Point)*Point;
   double MA144L = MathRound(iMA(NULL,0,144,0,MODE_EMA,PRICE_LOW,0)/Point)*Point;
   double Spread = Ask-Bid; // MarketInfo(TradeSymbol,MODE_SPREAD);
   double BuyPrice      = MA144H + Spread+PipDifference*Point;
   double BuyStopLoss   = MA144L - Point;
   double BuyTakeProfit = MA144H +(PipDifference+TakeProfit)*Point;
   double SellPrice     = MA144L -(PipDifference)*Point;
   double SellStopLoss  = MA144H + Spread+Point;
   double SellTakeProfit= MA144L - Spread-(PipDifference+TakeProfit)*Point;
   double lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/50000,1);
   double close=iClose(NULL,0,0);
   int total=OrdersTotal();

   bool need_long  = true;
   bool need_short = true;

   for(cnt=0;cnt<total;cnt++) {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber() == 16384){
         if(OrderType() == OP_BUYSTOP){
            need_long = false;
            if (OrderStopLoss()!=BuyStopLoss){
               Print(BuyStopLoss, " ",OrderStopLoss());
               OrderModify(OrderTicket(),BuyPrice,BuyStopLoss,BuyTakeProfit,0,Green);
            }
         }
         if(OrderType() == OP_SELLSTOP){
            need_short = false;
            if (OrderStopLoss()!=SellStopLoss){
               Print(SellStopLoss, " ",OrderStopLoss());
               OrderModify(OrderTicket(),SellPrice,SellStopLoss,SellTakeProfit,0,Green);
            }
       

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

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

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

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

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

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

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