Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1274

 
У меня ещё вопрос))  Только не отправляйте читать инструкцию, читал её не однократно, всё равно не всё понимаю некоторое в классах)   Вот есть класс трейлинг стоп по Parabolic SAR,  расположенный в папке Expert\Trailing\ именованный TrailingParabolicSAR.mqh   Расскажите если не сложно, как с ним взаимодействовать. Просто я на примерах лучше понимаю)))  Заранее, спасибо тем кто откликнется)
//+------------------------------------------------------------------+
//|                                         TrailingParabolicSAR.mqh |
//|                   Copyright 2009-2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#include <Expert\ExpertTrailing.mqh>
// wizard description start
//+------------------------------------------------------------------+
//| Description of the class                                         |
//| Title=Trailing Stop based on Parabolic SAR                       |
//| Type=Trailing                                                    |
//| Name=ParabolicSAR                                                |
//| Class=CTrailingPSAR                                              |
//| Page=                                                            |
//| Parameter=Step,double,0.02,Speed increment                       |
//| Parameter=Maximum,double,0.2,Maximum rate                        |
//+------------------------------------------------------------------+
// wizard description end
//+------------------------------------------------------------------+
//| Class CTrailingPSAR.                                             |
//| Appointment: Class traling stops with Parabolic SAR.             |
//| Derives from class CExpertTrailing.                              |
//+------------------------------------------------------------------+
class CTrailingPSAR : public CExpertTrailing
  {
protected:
   CiSAR             m_sar;            // object-indicator
   //--- adjusted parameters
   double            m_step;           // the "speed increment" parameter of the indicator
   double            m_maximum;        // the "maximum rate" parameter of the indicator

public:
                     CTrailingPSAR(void);
                    ~CTrailingPSAR(void);
   //--- methods of setting adjustable parameters
   void              Step(double step)       { m_step=step;       }
   void              Maximum(double maximum) { m_maximum=maximum; }
   //--- method of creating the indicator and timeseries
   virtual bool      InitIndicators(CIndicators *indicators);
   //---
   virtual bool      CheckTrailingStopLong(CPositionInfo *position,double &sl,double &tp);
   virtual bool      CheckTrailingStopShort(CPositionInfo *position,double &sl,double &tp);
  };
//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
void CTrailingPSAR::CTrailingPSAR(void) : m_step(0.02),
                                          m_maximum(0.2)

  {
  }
//+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
void CTrailingPSAR::~CTrailingPSAR(void)
  {
  }
//+------------------------------------------------------------------+
//| Create indicators.                                               |
//+------------------------------------------------------------------+
bool CTrailingPSAR::InitIndicators(CIndicators *indicators)
  {
//--- check pointer
   if(indicators==NULL)
      return(false);
//--- add object to collection
   if(!indicators.Add(GetPointer(m_sar)))
     {
      printf(__FUNCTION__+": error adding object");
      return(false);
     }
//--- initialize object
   if(!m_sar.Create(m_symbol.Name(),m_period,m_step,m_maximum))
     {
      printf(__FUNCTION__+": error initializing object");
      return(false);
     }
//--- ok
   return(true);
  }
//+------------------------------------------------------------------+
//| Checking trailing stop and/or profit for long position.          |
//+------------------------------------------------------------------+
bool CTrailingPSAR::CheckTrailingStopLong(CPositionInfo *position,double &sl,double &tp)
  {
//--- check
   if(position==NULL)
      return(false);
//---
   double level =NormalizeDouble(m_symbol.Bid()-m_symbol.StopsLevel()*m_symbol.Point(),m_symbol.Digits());
   double new_sl=NormalizeDouble(m_sar.Main(1),m_symbol.Digits());
   double pos_sl=position.StopLoss();
   double base  =(pos_sl==0.0) ? position.PriceOpen() : pos_sl;
//---
   sl=EMPTY_VALUE;
   tp=EMPTY_VALUE;
   if(new_sl>base && new_sl<level)
      sl=new_sl;
//---
   return(sl!=EMPTY_VALUE);
  }
//+------------------------------------------------------------------+
//| Checking trailing stop and/or profit for short position.         |
//+------------------------------------------------------------------+
bool CTrailingPSAR::CheckTrailingStopShort(CPositionInfo *position,double &sl,double &tp)
  {
//--- check
   if(position==NULL)
      return(false);
//---
   double level =NormalizeDouble(m_symbol.Ask()+m_symbol.StopsLevel()*m_symbol.Point(),m_symbol.Digits());
   double new_sl=NormalizeDouble(m_sar.Main(1)+m_symbol.Spread()*m_symbol.Point(),m_symbol.Digits());
   double pos_sl=position.StopLoss();
   double base  =(pos_sl==0.0) ? position.PriceOpen() : pos_sl;
//---
   sl=EMPTY_VALUE;
   tp=EMPTY_VALUE;
   if(new_sl<base && new_sl>level)
      sl=new_sl;
//---
   return(sl!=EMPTY_VALUE);
  }
//+------------------------------------------------------------------+
 
Kira27:
У меня ещё вопрос))  Только не отправляйте читать инструкцию, читал её не однократно, всё равно не всё понимаю некоторое в классах)   Вот есть класс трейлинг стоп по Parabolic SAR,  расположенный в папке Expert\Trailing\ именованный TrailingParabolicSAR.mqh   Расскажите если не сложно, как с ним взаимодействовать. Просто я на примерах лучше понимаю)))  Заранее, спасибо тем кто откликнется)

Пример использования дан в [dta folder]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5

 
Vladimir Karputov:

Пример использования дан в [dta folder]\MQL5\Experts\Advisors\ExpertMAPSAR.mq5

Спасибо!!!

 
User_mt5:
Вопрос по тестеру.

В режиме визуализации принты не выводятся. Это так и должно быть или я что-то не так делаю?
Наверное, никто не знает.
 
User_mt5:
я что-то не так делаю?

Вероятнее всего.

 
Здравствуйте, не могу подключить счёт в мт5((( не подскажите в чем может быть причина? Постоянное подключение.. Но все никак (
Файлы:
 
Андрей Волков:
Здравствуйте, не могу подключить счёт в мт5((( не подскажите в чем может быть причина? Постоянное подключение.. Но все никак (

А с компьютера пробовали?

 
Alexey Viktorov:

Вероятнее всего.

В Ините есть немного принтов.

Если запустить эксперт в режиме обычного тестирования, принты выдают что положено в log тестера. Там же публикуется всё по ордерам/позициям.
Если этот же эксперт тут же запустить в режиме визуализации, принты ничего невыдают. Никакие манипуляции с ордерами/позициями также не выводятся.

А как сделать, чтобы было?

 
User_mt5:

В Ините есть немного принтов.

Если запустить эксперт в режиме обычного тестирования, принты выдают что положено в log тестера. Там же публикуется всё по ордерам/позициям.
Если этот же эксперт тут же запустить в режиме визуализации, принты ничего невыдают. Никакие манипуляции с ордерами/позициями также не выводятся.

А как сделать, чтобы было?

А где вы смотрите?

 
Alexey Viktorov:

А где вы смотрите?

Terminal/123123123123123123123123/Tester/logs