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

 
lego9955 Fehlerbehandlung ist korrekter. Vielen Dank!

Nur für den Fall, dass es einfacher ist, sie in einer Zeile zu schreiben, wie ich gezeigt habe, als ein Array von separaten Zeilen.

 
Alexey Petrov #:

Hallo,

Versuchen Sie, den Markt nach fertigen Lösungen zu durchsuchen - https://www.mql5.com/fr/search#!keyword=money%20management&module=mql5_module_market

Sie können auch eine individuelle Lösung bei Freelance bestellen - https://www.mql5.com/fr/job

Hallo und danke für deine Antwort Ich konnte ein Skript erstellen, das meinen Erwartungen entspricht Leider gibt es noch zwei Fehler, die ich nicht verstehen und korrigieren kann, könntest du mir helfen, es handelt sich nur um zwei Zeilen Code, die nach der Kompilierung als Fehler angezeigt werden...
 
Frohes neues Jahr! Welches Fenster ist besser für MT5 10 oder 11? Sitzen auf AMD 5900X Laptop
 

Hallo an alle und frohes neues Jahr! Könnt ihr mir sagen: wie kann ich realisieren, dass mein Skript einen Indikator aus dem Markt verwenden würde?

Genauer gesagt:
gibt es einen Indikator "Automatic Trendline" auf dem Markt. Ich möchte einen darauf basierenden Roboter erstellen, der eine Position in dem Moment eröffnet oder schließt, wenn der Preis diese Linien auf dem Indikator kreuzt (und unter bestimmten zusätzlichen Bedingungen).

 
Rad89 #:

Hallo an alle und frohes neues Jahr! Können Sie mir sagen: wie kann ich realisieren, dass mein Skript einen Indikator aus dem Markt verwenden würde?

Genauer gesagt:
gibt es einen Indikator "Automatic Trendline" auf dem Markt. Ich möchte einen darauf basierenden Roboter erstellen, der eine Position in dem Moment eröffnet oder schließt, wenn der Preis diese Linien auf dem Indikator kreuzt (und unter bestimmten zusätzlichen Bedingungen).

Für mich selbst ist das kein Problem. Für den Markt oder CodeBase können Sie nicht verwenden, jemand anderes Handwerk aus dem Markt ...

 
Alexey Viktorov #:

Für dich selbst, kein Problem. Du kannst nicht das Handwerk von jemand anderem vom Marktplatz oder von CodeBase verwenden...

Für dich selbst. Ich weiß nicht, wie man es macht. Ich kann den Code nicht in Open Source finden. Oder wie ich in meinen Code schrauben kann, damit er die Position der Zeilen erfasst.

 

Hallo, @Rad89

Sie benötigen die Funktionen iCustom() und CopyBuffer().

Hier ist ein Beispiel für das Hinzufügen eines vom Markt heruntergeladenen Indikators zu einem Expert Advisor

// Глобальная переменная для хендла индикатора
int tlHandle;

int OnInit() {
   // Создаем хендл индикатора
   tlHandle = iCustom(Symbol(), PERIOD_CURRENT, "Market\\Automatic Trendlines", false, 5, 15, clrRed, clrBlue, 2, "My Support", "My Resistance");
   
   // Можем добавить индикатор на график, если хотим. 
   // Для использования в расчетах это необязательно
   ChartIndicatorAdd(ChartID(), 0, tlHandle);

   // Вызовем один раз OnTick(), чтобы на выходных у нас что-то в логе отобразилось
   OnTick(); 
   
   return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) {}

void OnTick() {
   // Объявляем массивы для буферов индикатора
   double tlBuffer0[], tlBuffer1[]; // ,tlBuffer1, ...
   
   int res;
   
   // Копируем нужное количество значений из индикаторных буферов в массивы
   res = CopyBuffer(tlHandle, 0, 0, 100, tlBuffer0);
   res = CopyBuffer(tlHandle, 1, 0, 100, tlBuffer1);
   
   // У разных индикаторов различное количество индикаторных буферов, 
   // числа из которых используются для построения линий, значков, цветовых меток на графике
   // Сколько их у данного индикатора и как используются их числа исследуйте самостоятельно
   
   // res = CopyBuffer(tlHandle, 2, 0, 100, tlBuffer2);
   
   // Пользуемся полученными значениями
   ArrayPrint(tlBuffer0);
   ArrayPrint(tlBuffer1);
}
Документация по MQL5: Технические индикаторы / iCustom
Документация по MQL5: Технические индикаторы / iCustom
  • www.mql5.com
iCustom - Технические индикаторы - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Hallo. Es gibt eine Enum.
enum ENUM_NAME
  {
   ENUM_1,
   ENUM_jsdf
   ....
   ENUM_FEF;   
  };
Wie kann man Speicher für das E_NAME[] Array zuweisen, so dass genügend Speicher für alle möglichen ENUM_NAME Werte (ohne Wiederholungen) vorhanden ist?
ENUM_NAME     E_NAME[];

Und E_NAME[] mit allen möglichen Werten initialisieren?

 

Hallo, @pivomoe

Wenn Sie die Zuweisung numerischer Werte zu den Aufzählungselementen nicht erzwingen wollen (nach dem Beispiel zu urteilen, werden Sie das nicht tun), können Sie es so machen:

// Объявляем перечисление
enum ENUM_NAME {
   ENAME_1,
   ENAME_JSDF,
   ENAME_ERT,
   ENAME_QWERTY,
   ENAME_FEF
};

// Обявляем константу, хранящую количество элементов перечисления
#define  ENUM_NAME_SIZE 5

// Массив для хранения элементов перечисления
ENUM_NAME     E_NAME[ENUM_NAME_SIZE];

int OnInit() {
   // Заполняем массив значениями, преобразуя к типу ENUM_NAME
   for(int i = 0; i < ENUM_NAME_SIZE; i++) {
      E_NAME[i] = (ENUM_NAME) i;
   }

   // Пользуемся массивом
   ArrayPrint(E_NAME);
   
   for(int i = 0; i < ENUM_NAME_SIZE; i++) {
      Print(EnumToString(E_NAME[i]));
   }
   
   return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) {}

In diesem Fall müssen Sie auch die Konstante ändern, die die Anzahl der Elemente speichert, wenn Sie Elemente zur Aufzählung hinzufügen.

Außerdem ist es besser, das Präfix ENUM_ nur für den Namen der Aufzählung selbst zu verwenden und ein anderes Präfix für ihre Elemente zu benutzen. Diese Konvention wird in allen Standard-MQL-Aufzählungen verwendet.

 
Yuriy Bykov #:

Hallo, @pivomoe

Wenn Sie die Zuweisung von numerischen Werten zu den Aufzählungselementen nicht erzwingen wollen (nach dem Beispiel zu urteilen, werden Sie das nicht tun), können Sie es so machen:

In diesem Fall müssen Sie auch die Konstante ändern, die die Anzahl der Elemente speichert, wenn Sie Elemente zur Aufzählung hinzufügen.

Außerdem ist es besser, das Präfix ENUM_ nur für den Namen der Aufzählung selbst zu verwenden und ein anderes Präfix für ihre Elemente zu benutzen. Diese Konvention wird in allen Standard-MQL-Aufzählungen verwendet.

Vielen Dank für Ihre Hilfe. Ich verwende ENUM seit so vielen Jahren, dass ich gar nicht auf die Idee gekommen bin, die Hilfe zu lesen.

Grund der Beschwerde: