Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 241

 
makskov1987 :


Windows Phone 8'de metatrader ne zaman piyasaya sürülecek?

Microsoft, mobil pazara yönelik büyük ölçekli bir saldırı için Nokia'nın mobil bölümünün devralınmasını tamamladıysa , o zaman yakında. MetaQuotes (umarım :-)) nabız üzerinde bir parmak tutar.
 
Merhaba, iki ifade arasındaki fark nedir ve danışmanın zamanını sınırlamak için hangisinin kullanılması daha iyidir
(Hour() >= StartHour && Hour() <= EndHour) 
(TimeHour( TimeCurrent ()) >= StartHour && TimeHour( TimeCurrent ()) <= EndHour)
 
Merhaba! Birkaç terminalde aynı anda sipariş veren bir mql5 betiğini nereden bulabileceğimi söyleyebilir misiniz? Teşekkür ederim.
 

Alım satım sinyali üretecimi yazmaya devam ediyorum.

Başlatma kodunun son bölümünde hatalar vardı (kalın harflerle vurgulanmıştır)

'InitMyCustomIndicator' - işlevin bir gövdesi olmalıdır

'InitClose' - işlevin bir gövdesi olmalıdır

 //| включаемые файлы                                                 |
//+------------------------------------------------------------------+
#property tester_indicator "Blau_Ergodic.ex5"
#include <Expert\ExpertSignal.mqh>
//+------------------------------------------------------------------+
//| Класс CSampleSignal.                                             |
//| Назначение: Класс генератора торговых сигналов.                  |
//|             Является производным от класса CExpertSignal.        |
//+------------------------------------------------------------------+
class CSampleSignal : public CExpertSignal
  {
protected :
   CiCustom           m_TSI;               // объект для доступа к значениям TSI
   CiClose            m_close;           // объект для доступа к ценам закрытия баров
   //--- настраиваемые параметры
   int       q;   // q - период, по которому вычисляется моментум
   int       r; // r - период 1-й EMA, применительно к моментуму
   int       s;   // s - период 2-й EMA, применительно к результату первого сглаживания
   int       u;   // u - период 3-й EMA, применительно к результату второго сглаживания
   int       ul; // ul - (сигнальная линия) период EMA, применительно к эргодике
   double              m_stop_loss;       // уровень установки ордера "stop loss" относительно цены открытия
   double              m_take_profit;     // уровень установки ордера "take profit" относительно цены открытия
public :
              CSampleSignal();
   //--- методы установки параметров настройки
   virtual int        ShortCondition(); // проверка условия открытия селла
   virtual int        LongCondition();   // проверка условия открытия бая
   void                Q( int value )                 { q= value ;   }
   void                R( int value )                 { r= value ;   }
   void                S( int value )                 { s= value ;   }
   void                U( int value )                 { u= value ;   }
   void                UL( int value )                { ul= value ;  }
   void                StopLoss( double value )       { m_stop_loss= value ;   }
   void                TakeProfit( double value )     { m_take_profit= value ; }
   //--- метод проверки параметров настройки
   virtual bool        ValidationSettings();
   
   virtual bool        InitIndicators(CIndicators* indicators);

protected :
   //--- метод инициализации объектов
   bool               InitMyCustomIndicator(CIndicators* indicators);
   bool                InitClose(CIndicators* indicators);
   //--- методы доступа к данным объектов
   double              Main( int index)                     { return (m_TSI.GetData( 0 ,index)); }
   double              Signal( int index)                   { return (m_TSI.GetData( 1 ,index)); }
    double              Close( int index)                    { return (m_close.GetData(index)); }
  };
//+------------------------------------------------------------------+
//| Конструктор CSampleSignal.                                       |
//| INPUT:  нет.                                                     |
//| OUTPUT: нет.                                                     |
//| REMARK: нет.                                                     |
//+------------------------------------------------------------------+
void CSampleSignal::CSampleSignal()
  {
   q= 2 ; 
   r= 7 ;
   s= 5 ;
   u= 3 ;
   ul= 5 ;   
  }
//+------------------------------------------------------------------+
//| Проверка параметров настройки.                                   |
//| INPUT:  нет.                                                     |
//| OUTPUT: true-если настройки правильные, иначе false.             |
//| REMARK: нет.                                                     |
//+------------------------------------------------------------------+
bool CSampleSignal::ValidationSettings()
  {
   //--- проверка параметров
   if (q<= 0 ||r<= 0 ||s<= 0 ||u<= 0 ||ul<= 0 )
     {
      printf(__FUNCTION__+ ": период должен быть больше нуля" );
       return ( false );
     }
//--- успешное завершение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Инициализация индикаторов и таймсерий.                           |
//| INPUT:  indicators - указатель на объект-коллекцию               |
//|                      индикаторов и таймсерий.                    |
//| OUTPUT: true-в случае успешного завершения, иначе false.         |
//| REMARK: нет.                                                     |
//+------------------------------------------------------------------+
bool CSampleSignal::InitIndicators(CIndicators* indicators)
  {
//--- проверка указателя
   if (indicators==NULL)       return ( false );
//--- инициализация скользящей средней
   if (!InitMyCustomIndicator(indicators))     return ( false );
//--- инициализация таймсерии цен закрытия
   if (!InitClose(indicators)) return ( false );
//--- успешное завершение
   return ( true );
  }
 
forexman77 :

Alım satım sinyali üretecimi yazmaya devam ediyorum.

Başlatma kodunun son bölümünde hatalar vardı (kalın harflerle vurgulanmıştır)

'InitMyCustomIndicator' - işlevin bir gövdesi olmalıdır

'InitClose' - işlevin bir gövdesi olmalıdır


Bildirilen ancak tanımlanmayan yöntemleri kullanmaya çalışıyorsunuz.
 
Fleder:
Bildirilen ancak tanımlanmayan yöntemleri kullanmaya çalışıyorsunuz.

Sınıflar benim için yeni ve tamamen net değil. Nasıl tanım yapılacağını göstermek için bir örnek kullanabilirsiniz.

 
forexman77 :
Sınıflar benim için yeni ve tamamen net değil. Nasıl tanım yapılacağını göstermek için bir örnek kullanabilirsiniz.
 protected :
   //--- метод инициализации объектов
   bool                InitMyCustomIndicator(CIndicators* indicators);
   bool                InitClose(CIndicators* indicators);
.
.
.

bool CSampleSignal::InitMyCustomIndicator(CIndicators* indicators)
{
   //здесь надо вписать тело метода
   return ( true );
}

bool CSampleSignal::InitClose(CIndicators* indicators)
{
   //и здесь тоже
   return ( true );
}
 
Fleder :

Yani kodun sadece kalın harflerle vurguladığım son kısmını mı değiştiriyorum?

Ve bunu yapıyorum:

 bool CSampleSignal::InitMyCustomIndicator(CIndicators* indicators)
  {
//--- проверка указателя
   if (indicators== NULL )       return ( false );
//--- инициализация скользящей средней
   if (!InitMyCustomIndicator(indicators))     return ( false );
   return ( true );
  }
bool CSampleSignal::InitClose(CIndicators* indicators)
{
   if (!InitClose(indicators)) return ( false );
//--- успешное завершение
   return ( true );
}
 
forexman77 :

Yani kodun sadece kalın harflerle vurguladığım son kısmını mı değiştiriyorum?

Ve bunu yapıyorum:

Sınıf kodunuz aşağıdaki gibi yöntemler sağlıyorsa:

   bool                InitMyCustomIndicator(CIndicators* indicators);
   bool                InitClose(CIndicators* indicators);

Bu yüzden bir şeyi kontrol etmeleri gerekiyor. Aksi halde varlıklarının bir anlamı yoktur.  

 

Merhaba!

Kaç çubuğun kontrol edileceğini önceden bilmiyorsam, çubukların kapanış fiyatlarına göre for döngüsüyle yineleme nasıl organize edilir

 int i= 1 ;i< ArraySize (select);i++
CopyRates ( _Symbol , _Period , 0 ,i,mrate)

Bir durumu kontrol etmem gerekiyor, örneğin i barlar önceki kapanış fiyatlarının birbirinin altında olması.