Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 241

 
makskov1987:


Wann wird Metatrader für Windows Phone 8 verfügbar sein?

Wenn Microsoft die Übernahme der Nokia-Mobilfunksparte abgeschlossen hat, um einen Großangriff auf den Mobilfunkmarkt zu starten, wird es nicht mehr lange dauern. MetaQuotes hat (hoffentlich :-) ) eine Hand am Puls der Zeit.
 
Hallo, was ist der Unterschied zwischen den beiden Ausdrücken, und welcher ist besser zu verwenden, um die Laufzeit des EA zu begrenzen
(Hour() >= StartHour && Hour() <= EndHour) 
(TimeHour(TimeCurrent()) >= StartHour && TimeHour(TimeCurrent()) <= EndHour)
 
Hallo, könnten Sie mir bitte sagen, wo ich ein mql5-Skript bekommen kann, das Aufträge gleichzeitig auf mehreren Terminals platziert? Ich danke Ihnen.
 

Ich schreibe weiter an meinem Handelssignalgenerator.

Der letzte Teil des Initialisierungscodes enthält Fehler (fett gedruckt)

InitMyCustomIndicator' - die Funktion muss einen Körper haben

InitClose" - Funktion muss einen Körper haben

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

Ich schreibe weiter an meinem Handelssignalgenerator.

Der letzte Teil des Initialisierungscodes enthält Fehler (fett gedruckt)

InitMyCustomIndicator' - die Funktion muss einen Körper haben

InitClose" - Funktion muss einen Körper haben


Sie versuchen, Methoden zu verwenden, die zwar deklariert, aber nicht definiert sind.
 
Fleder:
Sie versuchen, Methoden zu verwenden, die zwar deklariert, aber nicht definiert sind.

Die Klassen sind neu für mich und ich verstehe sie nicht wirklich. Können Sie mir anhand eines Beispiels zeigen, wie man eine Definition erstellt?

 
forexman77:
Die Klassen sind neu für mich und ich verstehe sie nicht wirklich. Kann ich anhand eines Beispiels zeigen, wie man eine Definition erstellt?
protected:
   //--- метод инициализации объектов
   bool               InitMyCustomIndicator(CIndicators* indicators);
   bool               InitClose(CIndicators* indicators);
.
.
.

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

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

Ich ändere also nur den letzten Teil des Codes, den ich fett gedruckt habe?

Und ich tue dies:

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:

Ich muss also nur den letzten Teil des Codes ändern, den ich fett hervorgehoben habe?

Und ich tue Folgendes:

Wenn Ihr Klassencode Methoden enthält wie:

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

Dann müssen sie etwas überprüfen. Andernfalls ist ihre Existenz sinnlos.

 

Hallo!

Wie richte ich eine for-Schleife für Bar-Close-Preise ein, wenn ich nicht im Voraus weiß, wie viele Bars zu prüfen sind?

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

Ich muss eine Bedingung überprüfen, z.B. dass die Schlusskurse von i Bars rückwärts niedriger sind als die der anderen.

Grund der Beschwerde: