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

easyrobot.mq4

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

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

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

О программе

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

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

НастройкаОписание
1. Magic number (MagicNumber) Магический номер — Идентификатор ордеров советника для фильтрации и отслеживания позиций.
2. Auto lots (AutoLot) Автоматический расчёт лота — Включает автоматический расчёт размера лота на основе свободного маржи и заданного риска; при выключении используется фиксированный размер лота.
3. Fixed lots size (FixedLot) Фиксированный размер лота — Размер лота, используемый при отключённом автоматическом расчёте.
4. Risk % (if #2=true) (Risk) Риск в процентах — Процент свободного маржи, используемый для автоматического расчёта размера лота.
5. TP factor multiplier ( range 1.0-5.0/step 0.1 ) (TakeFactor) Множитель тейк-профита — Множитель волатильности инструмента для расчёта уровня тейк-профита.
6. SL factor multiplier ( range 1.0-5.0/step 0.1 ) (StopFactor) Множитель стоп-лосса — Множитель волатильности инструмента для расчёта уровня стоп-лосса.
7. Trailing stop (UseTstop) Использовать трейлинг-стоп — Включает функцию трейлинг-стопа для управления открытыми позициями.
8. Trailing start pips ( range 10.0-50.0/step 1.0 ) (Tstart) Начало трейлинга в пунктах — Расстояние в пунктах от цены открытия, при достижении которого трейлинг-стоп начинает следовать за позицией.
9. Trailing step pips ( range 10.0-50.0/step 1.0 ) (Tstep) Шаг трейлинга в пунктах — Шаг смещения стоп-лосса при движении трейлинг-стопа.
10. Order string comment long (oscb) Комментарий для ордеров на покупку — Строковый комментарий, присваиваемый ордерам на покупку для их идентификации.
11. Order string comment short (oscs) Комментарий для ордеров на продажу — Строковый комментарий, присваиваемый ордерам на продажу для их идентификации.
Получить полный код

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

#property version   "1.03"
#property strict

extern int          MagicNumber   = 1234567;//1.   Magic number
extern bool         AutoLot       = true;//2.   Auto lots
extern double       FixedLot      = 0.1;//3.   Fixed lots size
extern int          Risk          = 2;//4.   Risk % (if #2=true)
extern double       TakeFactor    = 4.2;//5.   TP factor multiplier ( range 1.0-5.0/step 0.1 )
extern double       StopFactor    = 4.9;//6.   SL factor multiplier ( range 1.0-5.0/step 0.1 )
extern bool         UseTstop      = true;//7.   Trailing stop
extern double       Tstart        = 48.;//8.   Trailing start pips ( range 10.0-50.0/step 1.0 )
extern double       Tstep         = 36.;//9.   Trailing step pips ( range 10.0-50.0/step 1.0 )
extern string       oscb          = "ER_BUY";//10. Order string comment long
extern string       oscs          = "ER_SELL";//11. Order string comment short

bool journal=false,dash=false;

double _takefactor,
       _stopfactor,
       _point,
       NewPoint,
       _lots,
       _otf,
       _osf,
       _tp,
       _sl;

int ticket=0,_digits;

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

void OnDeinit(const int reason)
  {

   Comment("");

  }

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

void BarSignal()
  {

   if(iOpen(Symbol(),PERIOD_CURRENT,0) < iClose(Symbol(),PERIOD_CURRENT,0))
      SendBuy(Ask,FetchLots(),TakeFactor,StopFactor);

   if(iOpen(Symbol(),PERIOD_CURRENT,0) > iClose(Symbol(),PERIOD_CURRENT,0))
      SendSell(Bid,FetchLots(),TakeFactor,StopFactor);
  }

void SendBuy(double bprice,double vol,double _tf,double _sf)
  {

   _otf = (ATR() * (Zd(_tf,NewPoint)));
   _osf = (ATR() * (Zd(_sf,NewPoint)));

   _tp = bprice + _otf * NewPoint;
   _sl = bprice - _osf * NewPoint;

   if(CheckMoneyForTrade(Symbol(),OP_BUY,vol))
      ticket = OrderSend(Symbol(),OP_BUY,vol,bprice,3,_sl,_tp,oscb,MagicNumber,0,Green);
   if(ticket<1)
     {
      Print("Order send BUY failed - errcode ",GetLastError());
      return;
     }
   else
   if(journal)
      Print("Order send BUY executed successfully, ticket # ",ticket);
  }

void SendSell(double sprice,double vol,double _tf,double _sf)
  {

   _otf = (ATR() * (Zd(_tf,NewPoint)));
   _osf = (ATR() * (Zd(_sf,NewPoint)));

   _tp = sprice - _otf * NewPoint;
   _sl = sprice + _osf * NewPoint;

   if(CheckMoneyForTrade(Symbol(),OP_SELL,vol))
      ticket = OrderSend(Symbol(),OP_SELL,vol,sprice,3,_sl,_tp,oscs,MagicNumber,0,Red);
   if(ticket<1)
     {
      Print("Order send SELL failed - errcode ",GetLastError());
      return;
     }
   else
   if(journal)
      Print("Order send SELL executed successfully, ticket # ",ticket);
  }

void Trail()
  {

   double stops=MarketInfo(Symbol(),MODE_STOPLEVEL);

   for(int u=0; u<OrdersTotal(); u++)
     {
      if(!OrderSelect(u,SELECT_BY_POS,MODE_TRADES))
         break;
      if(OrderSymbol()!=Symbol() && OrderMagicNu

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

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

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

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

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

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

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