News Trading v.3.8 – Советник для торговли на новостях

Описание:

Советник торгует на скачках рынка, при этом не использует никакие индикаторы.

Идея советника заключается в том, что стоп ордера дискретно времени перемещаются на заданном расстоянии от текущей цены.

Если цена достаточно резко поползла в одну сторону, то советник просто не успевает переместить ордер и он становится рыночным.

Далее включается тралл ордера.

externint     Stoploss             = 10,     //стоплосс, если 0 то не изменяется
               Takeprofit           = 50;     //тейкпрофит, если 0 то не изменяетсяexternint     TrailingStop         = 10;     //длинна тралла, если 0 то нет траллаexternint     TrailingStart        = 0;      //когда включать тралл, например после достижения 40 п прибылexternint     StepTrall            = 2;      //шаг тралла - перемещать стоплосс не ближе чем StepTrallexternint     NoLoss               = 0,      //перевод в безубыток при заданном кол-ве пунктов прибыли, если 0 то нет перевода в безубыток
               MinProfitNoLoss      = 0;      //минимальная прибыль при переводе вбезубытокexternint     Magic                = 77;     //магикexternint     Step                 = 10;     //расстояние от ценыexterndouble  Lot                  = 0.1;
externint     TimeModify           = 30;     //кол-во секунд раньше которого запрещено изменять ордерexternint     slippage             = 30;     //Максимально допустимое отклонение цены для рыночных ордеров (ордеров на покупку или продажу).

News trading v.3.8 – советник для торговли на новостях

Пользуюсь этим советником больше 2-х лет, еще с версии 3.6.

Как видно с рисунка, в нем есть все необходимое для работы: экономические показатели (предыдущий, прогнозный, фактический уровни), размещенные по времени их выхода в течении рабочего дня, оценка фактического показателя после публикации новостей ( /- либо влияние неизвестно/не предвидится), доступна фильтрация за приоритетом новости, есть возможность автоматического выставления отложенных ордеров вместе с выходом новости с регулированием размера профита, перевода ордера в безубыток, трала и пр. Этими функциями я так и не воспользовался, поскольку доверять советнику, даже хорошему – небезопасно. Кому интересно – можете попробовать его и в торговле, только аккуратно. Лично для себя использую его для принятия решений в качестве новостного информера (аналог встроенной функции в МТ5).

Смотрите про коптеры:  Как изменить вращение трехфазного двигателя в другую сторону

Данные советник подтягивает из известного интернет-портала Investing. Чтобы сова исправно работала в обязательном порядке нужно разрешить ей импорт функций из DLL ну и саму торговлю тоже.

news_trading_v.3.8.ex4.zip

§

Пользуюсь этим советником больше 2-х лет, еще с версии 3.6.

Как видно с рисунка, в нем есть все необходимое для работы: экономические показатели (предыдущий, прогнозный, фактический уровни), размещенные по времени их выхода в течении рабочего дня, оценка фактического показателя после публикации новостей ( /- либо влияние неизвестно/не предвидится), доступна фильтрация за приоритетом новости, есть возможность автоматического выставления отложенных ордеров вместе с выходом новости с регулированием размера профита, перевода ордера в безубыток, трала и пр. Этими функциями я так и не воспользовался, поскольку доверять советнику, даже хорошему – небезопасно. Кому интересно – можете попробовать его и в торговле, только аккуратно. Лично для себя использую его для принятия решений в качестве новостного информера (аналог встроенной функции в МТ5).

Данные советник подтягивает из известного интернет-портала Investing. Чтобы сова исправно работала в обязательном порядке нужно разрешить ей импорт функций из DLL ну и саму торговлю тоже.

news_trading_v.3.8.ex4.zip

Как написать советник автомат, торгующий по новостям. / программирование на mql / opentraders – блогплатформа для трейдеров финансовых рынков

Наверняка не один трейдер наблюдал, как во время выхода новостей пара проходит за считанные минуты от 50 до 100 и более пунктов. И наверняка мечтал о таком советнике, который сможет на полном автопилоте, торговать в эти весьма прибыльные моменты.

Реализовать подобный эксперт оказывается не так уж и сложно, как может показаться на первый взгляд. Чтобы нам было намного проще воплотить в жизнь нашу идею, воспользуемся новостным индикатором «Urdala News» и кодом простого советника.



// ------------------------------------------------------------------ 
//|                                                          NFP.mq4 |
//|                                            Copyright © 2023, AM2 |
//|                                      http://www.forexsystems.biz |
// ------------------------------------------------------------------ 
#property copyright "Copyright © 2023, AM2"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20230406

extern int StopLoss    = 300;    //Стоплосс ордера
extern int TakeProfit  = 2000;   //Тейкпрофит ордера
extern int Trailing    = 300;    //Трейлингcтоп ордера
extern int BULevel     = 300;    //Уровень безубытка
extern int StartHour   = 14;     //Час начала торговли(терминальное время)
extern int EndHour     = 23;     //Час окончания торговли(терминальное время)
extern int Distance    = 300;    //Расстояние от цены для установки ордера
extern int Expiration  = 4;      //Время истечения ордера
extern double Lots     = 1;      //Лот

// ------------------------------------------------------------------ 
//| expert start function                                            |
// ------------------------------------------------------------------ 
int start()
  {
   int b,s,p,res;
   datetime expiration = TimeCurrent() 3600*Expiration;
   double BuyPrice=fND(Open[0] Distance*Point);
   double SellPrice=fND(Open[0]-Distance*Point);  
   for (int i=OrdersTotal()-1;i>=0;i--)
     {
      if (OrderSelect(i, SELECT_BY_POS))
        {  
         if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYSTOP) b  ;
         if (OrderType()==OP_SELLSTOP) s  ;
         if (OrderType()==OP_BUY||OrderType()==OP_SELL) p  ;
        }  
     }
   if(p>0) DelAllStop();
   if (BULevel!=0) BU();
   if(Trailing>0) Trail();
   if(Hour()==EndHour) ClosePositions();  
   if(Hour()>=StartHour && b<1 && p<1 && DayOfWeek()==5 && Day()<=7)
     {              
       res=OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,0,fND(BuyPrice-StopLoss*Point),fND(BuyPrice TakeProfit*Point),"",MAGIC,expiration,Blue);      
     }  
        
   if(Hour()>=StartHour && s<1 && p<1 && DayOfWeek()==5 && Day()<=7)
     {              
       res=OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,0,fND(SellPrice StopLoss*Point),fND(SellPrice-TakeProfit*Point),"",MAGIC,expiration,Red );
     }  
//----  
   return(0);
  }
// ------------------------------------------------------------------ 
double fND(double d, int n=-1)
  {  
   if (n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
// ------------------------------------------------------------------ 
void ClosePositions()
  {
   for (int i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
      }
    }
  }
// ------------------------------------------------------------------ 
void DelAllStop()
{
  for (int i=0; i<OrdersTotal(); i  )
   {                                              
     if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
      {
         if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYSTOP||OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());
      }  
   }
}
//------------------------------------------------------------------- 
void Trail()
{
   for (int i=0; i<OrdersTotal(); i  )
     {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()==Symbol()||OrderMagicNumber()==MAGIC)
       if(OrderType()==OP_BUY)
         {
           if(Trailing>0)  
            {                
              if(Bid-OrderOpenPrice()>Point*Trailing)
               {
                 if(OrderStopLoss()<Bid-Point*Trailing)
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,Green);
                  }
               }
            }
         }
        
        if(OrderType()==OP_SELL)
         {
           if(Trailing>0)  
            {                
              if((OrderOpenPrice()-Ask)>(Point*Trailing))
               {
                 if((OrderStopLoss()>(Ask Point*Trailing)) || (OrderStopLoss()==0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask Point*Trailing,OrderTakeProfit(),0,Red);
                  }
               }
            }
         }  
   }
}
// ------------------------------------------------------------------ 
void BU()
{
   for(int i=0; i<OrdersTotal(); i  )
      {
       if(OrderSelect(i, SELECT_BY_POS))
        {      
         if(OrderType()==OP_BUY)
          {
           if(OrderOpenPrice()<=(Bid-BULevel*Point)&&OrderOpenPrice()>OrderStopLoss())
            {      
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
            }
          }
            
         if(OrderType() == OP_SELL)
          {
           if(OrderOpenPrice()>=(Ask BULevel*Point)&&OrderOpenPrice()<OrderStopLoss())
            {
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Red);
            }
          }
        }
      }
}
//-------------------------------------------------------------------- 

Советник выставляет отложенные ордера, на некотором расстоянии от цены а индикатор скачивает с сайта файл с новостями и рисует линиями на графике предстоящие и прошедшие новости.

News Trading v.3.8 - Советник для торговли на новостях
Рис. 1. Вид индикатора на графике.

Нам требуется лишь добавить к советнику вызов индикатора по функции:


double News=iCustom(Symbol(),0,"News",MinDo,MinPosle,ChasPoyas,0,0);

где:

TimeDo — время для срабатывания до ближайшей новости в минутах.
TimePosle — время для выхода из режима срабатывания после последней новости в минутах.
ChasPoyas — часовой пояс вашего терминала.( например для Альпари = 1)

Если функция возвращает 1, то есть срабатывание в выбранном временном интервале. Если 0, то срабатывания нет.

Настройки индикатора:


    MinDo=30;                 // Срабатывание минут до новости
    MinPosle= 30;             // Срабатывание минут после новости
    ChasPoyasServera=1;       // Часовой пояс. 0-GMT
    Vhigh=true;               // Установка важности новостей(показывать важные новости)
    Vmedium=true;             // Установка важности новостей(показывать новости средней важности)
    Vlow=true;                // Установка важности новостей(показывать новости низкой важности)
    RisovatLini=true;         // Рисовать линии?
    Next=false;               // Рисовать только линии будущих новостей?
    Signal=false;             // Сигналить о предстоящей новости?
    high= Red;                // Цвет важных новостей
    medium= Yellow;           // Цвет обычных новостей
    low= Lime;                // Цвет незначительных новостей
    Style=2;                  // Стиль линии

News Trading v.3.8 - Советник для торговли на новостях
Рис. 2. Результат работы исходной версии советника.

В советнике изменим некоторые внешние переменные и условие для входа.

Настройки советника:


extern int StopLoss    = 300;    // Стоплосс ордера
extern int TakeProfit  = 2000;   // Тейкпрофит ордера
extern int Trailing    = 300;    // Трейлингcтоп ордера
extern int BULevel     = 300;    // Уровень безубытка
extern int MinDo       = 15;     // Срабатывание минут до новости 
extern int MinPosle    = 0;      // Срабатывание минут после новости
extern int ChasPoyas   = 1;      // Часовой пояс. 0-GMT
extern int Distance    = 300;    // Расстояние от цены для установки ордера
extern int Expiration  = 4;      // Время истечения ордера
extern double Lots     = 1;      // Лот

Условие для выставления ордеров у нас сейчас будет выглядеть следующим образом:


   if(b<1 && p<1 && News>0)
     {              
       res=OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,0,fND(BuyPrice-StopLoss*Point),fND(BuyPrice TakeProfit*Point),"",MAGIC,expiration,Blue);      
     }  
        
   if(s<1 && p<1 && News>0)
     {              
       res=OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,0,fND(SellPrice StopLoss*Point),fND(SellPrice-TakeProfit*Point),"",MAGIC,expiration,Red );
     }  

Функция для закрытия ордеров и условие закрытия сделки в конце дня, в предыдущей версии советника нам больше не понадобятся, поэтому из можно смело убрать из кода эксперта.

// ------------------------------------------------------------------ 
void ClosePositions()
  {
   for (int i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
      }
    }
  }
// ------------------------------------------------------------------ 
if(Hour()==EndHour) ClosePositions();

News Trading v.3.8 - Советник для торговли на новостях
Рис. 3. Результат работы советника по индикатору после оптимизации.

Вот и практически все. Наш новостной эксперт готов!
Индикатор и советник можете найти в базе: www.opentraders.ru/downloads/513/
Остается только установить на график индикатор, советник и задать необходимые параметры для торговли.

Советник news trading. рабочий алгоритм

sovetnik-news-trading

Советник News Trading предлагает нестандартный подход к ведению торгов по новостным сообщениям.

Если большая часть экспертов, предназначенных для ведения торгов по новостям, предполагает использование для создания ордеров импульсы ценового уровня после выхода сообщения, то советник News Trading основан на совершенно других принципах.

В процессе ведения торгов эксперт осуществляет анализ макроэкономической статистики. Эксперт знает, что трейдеры готовятся к выходу важных новостных сообщений, а движение ценового уровня перед выходом новости отражает настроение, которое господствует среди трейдеров.

На следующем этапе советник News Trading осуществляет сравнение прогнозируемого и реального значения обнародованной информации. В ситуациях, когда реальное и прогнозируемое значения совпадают предполагается, что ценовой уровень не будет совершать резких скачков. В подобных ситуациях робот открывает только один ордер или воздерживается от ведения торгов.

skachat-sovetnik-news-trading

При расхождении ожидаемых и реальных данных эксперт ведет торги значительно активнее.

Чтобы скачать советник News Trading, воспользуйтесь ссылкой, которую вы видите ниже.
[sociallocker id=»3356″]Скачать советник NEWS TRADING[/sociallocker]

Установка эксперта отличается простотой. Этот процесс не должен вызвать каких-либо проблем даже у начинающих трейдеров.

После переноса эксперта на торговый график перед вами возникнет окошко с параметрами.

sovetnik-news-trading

Советник News Trading обладает огромным количеством параметров, мы остановимся лишь на самых основных:

  1. «MagicNumber». В данное поле необходимо внести комбинацию цифр, при помощи которых эксперт будет осуществлять идентификацию открываемых позиций.
  2. «TakeProfit». Это поле отвечает за значение Take-Profit для всех создаваемых позиций.
  3. «StopLoss». Этот параметр отвечает за значение Stop-Loss для всех ордеров, открываемых экспертом.
  4. «Lots». Этот параметр отвечает за значение лота, который будет применять эксперт в процессе открытия ордеров.
  5. «Время ожидания модификации». В этом поле прописывается время, по истечении которого эксперт закроет ордер при условии, что трейлинг-стоп не изменял своего значения.
  6. «Открыть Buy/Sell (“ /-“)». При активации данной функции эксперт будет создавать сделки до момента выхода важного новостного сообщения. (Данная функция заставляет эксперт использовать классическую стратегию ведения торгов по новостям).
  7. «Открыть Buy/Sell (“=“)». При запуске этой функции эксперт будет открывать ордера уже после выхода важного новостного сообщения. Если вы запустите эту функцию, то эксперт будет вести торговлю в соответствии с альтернативной стратегией торговли по новостям.

sovetnik-news-trading

В настоящее время существует как платная, так и бесплатная версия эксперта.

Платная версия считается более эффективной и надежной. Среди отличительных особенностей платной версии, стоит отметить следующие:

  1. Для проведения анализа эксперт одновременно использует три разных экономических календаря.
  2. Автоматический расчет лота в зависимости от ситуации, сложившейся на рынке.
  3. Платная версия эксперта комплектуется дополнительной панелью, которая дает возможность трейдеру вести торги в ручном режиме.

Несмотря на явные достоинства эксперта, его нельзя назвать революционным. Этот алгоритм просто собрал в себе все преимущества других экспертов, предназначенных для ведения торгов по новостям.

Для того чтобы научиться грамотно использовать эксперт, обязательно потренируйтесь на демо-счете. Только после того, как вы накопите достаточно опыта, можно будет перейти к торговле на реальные деньги.

Оцените статью
Радиокоптер.ру
Добавить комментарий