[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 302

 
hoz:

Hmm. Ich schätze, dass man eine Konstante für case nicht als Variable verwenden kann, wie es in der Dokumentation steht. Hier steht eine Art von Zielkonstante, Zeichenkonstante oder Zeichenausdruck.

Es funktioniert nur, wenn Sie einen Buchstaben vom Typ String, d.h. 1 Zeichen (wenn mehr als 1 Zeichen, flucht der Compiler) oder eine Zahl eingeben.

Sonst nichts.
Er enthält einige Zielkonstanten, Zeichenausdrücke und Zeichenkonstanten.

Nur ganzzahlige Konstanten.
 
Helfen Sie mir beraten, gibt es ein Signal, um eine Kaufposition zu öffnen, nach einer Weile gibt es ein anderes Signal oder mehrere Kaufpositionen, von denen jeder für 1 Kerze dauert, wie zum Zeitpunkt der jedes Signal zu machen, um einen neuen Auftrag zu öffnen und nur eine, und nicht packt, ohne Schließung der früheren Aufträge?
 
tommy27:
Bitte beraten Sie, gibt es ein Signal, um eine Kaufposition zu öffnen, einige Zeit später gibt es ein anderes Signal oder mehrere Signale zu kaufen, von denen jeder für 1 Kerze dauert, wie man einen neuen Auftrag öffnen, während jedes solche Signal und nur eine, und nicht packt, ohne Schließung der vorherigen Aufträge?
Prüfen Sie, vor wie vielen Takten die letzte Position eröffnet wurde. Ist sie größer als der angegebene Wert, kann eine neue Position eröffnet werden.
 
artmedia70:
Prüfen Sie, vor wie vielen Takten die letzte Position eröffnet wurde. Liegt sie darüber, kann eine neue Position eröffnet werden.


Dankeschön
 

Ich lerne, mit Bibliotheken zu arbeiten. Ich schreibe einen Expert Advisor, da gibt es eine Funktion wie diese:

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}

Ich habe es in die Aufnahme gegeben, alles funktioniert wie es soll. Wenn ich ihn jedoch mit der Bibliothek verbinde, tritt beim Kompilieren des Expert Advisors ein Fehler auf:

'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 19)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 19)
4 ошибок, 0 предупреждений.

Warum ist diese Funktion in der Bibliothek nicht sichtbar?

Die Bibliothek hat diesen Inhalt und lässt sich perfekt kompilieren:

//+-------------------------------------------------------------------------------------+
//|                                                                  Scalper_M1_lbr.mq4 |
//|                                                                                 hoz |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""
#property library

int i_fastMATF,
    i_fastMAPeriod,
    i_fastMAShift,
    i_fastMAMethod,
    i_fastMAApplied,
    i_fastMAIndex,
    i_slowMATF,
    i_slowMAPeriod,
    i_slowMAShift,
    i_slowMAMethod,
    i_slowMAApplied,
    i_slowMAIndex,
    i_filtrMATF,
    i_filtrMAPeriod,
    i_filtrMAShift,
    i_filtrMAMethod,
    i_filtrMAApplied,
    i_filtrMAIndex;
//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}
 
Hallo zusammen. Ich brauche wirklich ein paar Vorlesungen über Programmierung. Können Sie mir sagen, wo ich sie ohne zusätzlichen Aufwand herunterladen kann? Ich habe nur diese gefunden: http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html Aber sie passen nicht zu mir, weil sie zu kompliziert sind.
 
popovagalina:
Hallo zusammen. Ich brauche wirklich ein paar Vorlesungen über Programmierung. Können Sie mir sagen, wo ich sie ohne zusätzlichen Aufwand herunterladen kann? Ich habe nur diese gefunden: http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html Aber sie passen nicht zu mir, weil sie zu kompliziert sind.
Warum ist das Lehrbuch von S. Kovalyov nicht gut für Sie? Siehe oben und Dokumentation und TA zu helfen! Viel Glück!
 

Hallo.

Könnten Sie mir bitte sagen, ob der Operator OrdersTotal() tatsächlich alle offenen Aufträge zählt oder nur diejenigen, die zu dem dem Expert Advisor zugewiesenen Symbol gehören?

Wenn es allgemein ist, wie können wir nur EURUSD berechnen, wenn es offene Aufträge für USDCHF usw. gibt?

Danke.

 
ed3sss:

Hallo.

Könnten Sie mir bitte sagen, ob der Operator OrdersTotal() tatsächlich alle offenen Aufträge zählt oder nur diejenigen, die zu dem dem Expert Advisor zugewiesenen Symbol gehören?

Wenn es allgemein ist, wie können wir nur EURUSD berechnen, wenn es offene Aufträge für USDCHF usw. gibt?

Danke.


Sie wird alle berechnen. Wenn Sie sich auf ein Symbol oder etwas anderes beziehen möchten, können Sie diese Funktion verwenden:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Возвращает количество ордеров.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ko=0, ot;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) ko++;
        }
      }
    }
  }
  return(ko);
}
 
Jetzt habe ich eine Frage: die Signale für die Eule kommen von 2 Indikatoren, das erste Signal dauert 1 Bar und verschwindet dann, und das zweite erscheint entweder auf der gleichen Bar oder nach ein paar Bars. Wie bringe ich die Eule dazu, sich das erste Signal zu merken und auf das zweite zu warten, egal wie viele Takte später es kommt?