초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 241

 
makskov1987 :


메타 트레이더는 Windows Phone 8에서 언제 출시됩니까?

마이크로소프트가 모바일 시장에 대한 대규모 공격을 위해 노키아의 모바일 부문 인수를 완료 했다면 머지 않아. MetaQuotes는 펄스에 손가락을 유지합니다.
 
안녕하세요, 두 표현의 차이점은 무엇이며, 상담자의 시간을 제한하기 위해 어떤 표현을 사용하는 것이 좋을까요?
(Hour() >= StartHour && Hour() <= EndHour) 
(TimeHour( TimeCurrent ()) >= StartHour && TimeHour( TimeCurrent ()) <= EndHour)
 
안녕하세요! 여러 터미널에서 동시에 주문하는 mql5 스크립트를 어디서 구할 수 있는지 알려주실 수 있습니까? 고맙습니다.
 

나는 계속해서 내 거래 신호 생성기를 작성합니다.

초기화 코드의 마지막 부분에 오류가 있습니다(굵게 강조 표시됨).

'InitMyCustomIndicator' - 함수 에는 본문이 있어야 합니다.

'InitClose' - 함수에는 본문이 있어야 합니다.

 //| включаемые файлы                                                 |
//+------------------------------------------------------------------+
#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 :

나는 계속해서 내 거래 신호 생성기를 작성합니다.

초기화 코드의 마지막 부분에 오류가 있습니다(굵게 강조 표시됨).

'InitMyCustomIndicator' - 함수에는 본문이 있어야 합니다.

'InitClose' - 함수에는 본문이 있어야 합니다.


선언되었지만 정의되지 않은 메서드를 사용하려고 합니다.
 
플레더:
선언되었지만 정의되지 않은 메서드를 사용하려고 합니다.

수업은 나에게 새롭고 완전히 명확하지 않습니다. 예를 사용하여 정의를 만드는 방법을 보여줄 수 있습니다.

 
forexman77 :
수업은 나에게 새롭고 완전히 명확하지 않습니다. 예를 사용하여 정의를 만드는 방법을 보여줄 수 있습니다.
 protected :
   //--- метод инициализации объектов
   bool                InitMyCustomIndicator(CIndicators* indicators);
   bool                InitClose(CIndicators* indicators);
.
.
.

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

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

즉, 굵게 강조 표시된 코드의 마지막 부분만 변경합니까?

그리고 나는 이것을 한다:

 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 :

즉, 굵게 강조 표시된 코드의 마지막 부분만 변경합니까?

그리고 나는 이것을 한다:

클래스 코드가 다음과 같은 메서드를 제공하는 경우:

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

그래서 그들은 뭔가를 확인해야 합니다. 그렇지 않으면 그들의 존재에 의미가 없습니다.  

 

안녕하세요!

얼마나 많은 막대를 확인할지 미리 모르는 경우 막대 의 종가 로 for 루프로 반복을 구성하는 방법

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

예를 들어 i bar 전의 종가가 서로 아래에 있는지 조건을 확인해야 합니다.

사유: