[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 97

 

Hier: https://docs.mql4.com/ru/dateandtime/DayOfWeek

Ich habe dies gesehen, es gibt den Tag der Woche, aber ich muss wissen, welcher Tag der Woche ist der letzte Tag der nächsten Woche. Weil es Tage gibt, an denen der letzte Arbeitstag nicht der Freitag ist

 
Können Sie mir bitte sagen, ob Sie die Vorlage des Diagramms, das nach dem Testen geöffnet wird, ändern können? Um die Deal-Markierungen sichtbar zu machen, aber wenn ich meine eigene Vorlage anwende, sind alle Markierungen da...
 
alexhammer:


Ihre Codes funktionieren nicht.... :( Ich muss nur eine Order eröffnen, wenn der Stop..... ausgelöst wird. Keine Indikatoren... einfach durch Schließen des Loses.... Ich hätte nicht gedacht, dass das eine so schwierige Aufgabe ist!

HELFEN SIE MIR!!! Es ist dringend! :(

 
ScioMe:
Können Sie bitte das Chartmuster ändern, das nach dem Test geöffnet wird? Ich verwende meine eigene Vorlage und alle Markierungen sind vorhanden...

Starten Sie das Prüfgerät mit aktivierter "Visualisierung".

Wenn das Prüfgerät den Verlauf lädt und zu arbeiten beginnt, drücken Sie die Pausentaste und legen Sie Ihr Muster auf dem Diagramm fest,

Drücken Sie die Pausentaste, um das Prüfgerät fortzusetzen. Wenn Sie möchten, können Sie die Visualisierung überspringen (Schaltfläche Skip to).

Wenn der Tester fertig ist, sehen Sie alle Pfeile auf der Karte mit Ihrem Muster.

 
PariaH:


Ihre Codes passen nicht.... :( Ich muss nur eine Order eröffnen, wenn der Stop..... ausgelöst wird. Keine Indikatoren... einfach durch Schließen des Loses.... Ich hätte nicht gedacht, dass das eine so schwierige Aufgabe ist!

BITTE helfen!!! Es ist dringend!!! :(

Ich denke, dieses Problem kann gelöst werden, indem man die Anzahl der hängenden Lose verfolgt. Die Funktion CalculateOrders() im integrierten MovingAverage Expert Advisor.

Sie haben einen Auftrag erteilt->Berechnen Sie die Anzahl der aktiven Aufträge->Speichern Sie sie in einer Variablen->.

in der Funktion Start bei jeder Iteration prüfen, ob die Auftragsmenge gesunken ist-> falls ja, nach Bedarf reagieren.

 
PariaH:


Ihre Codes passen nicht.... :( Sie müssen nur eine Order eröffnen, wenn der Stop..... ausgelöst wird. Keine Indikatoren... einfach durch Schließen des Loses.... Ich hätte nicht gedacht, dass das so schwierig ist!

HELFEN SIE MIR!!! Es ist dringend! :(

Die F-Funktion gibt die Flagge zurück, um die letzte Position beim Stopp zu schließen:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    osl=NormalizeDouble(OrderStopLoss(), dg);
    if (ocp==osl) return(True);
  }
  return(False);
}

... auf die Hand:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по тейку.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if (ocp==otp) return(True);
  }
  return(False);
}

Schauen Sie hier selbst nach. Dann kannst du deine eigene schreiben...

 

Hallo.

Ich arbeite an einem Expert Advisor, ich kann nicht herausfinden, wie die folgende Zeile ausgeführt werden sollte:

if (profitbuy<=0)mtpb=tpb;

Die Bedingung ist klar, es ist nicht klar, bei welchem Ergebnis die Variable mtpb den Wert der Variablen tpb annimmt.

 
paibolit:

Hallo.

Ich arbeite an einem Expert Advisor, ich kann nicht verstehen, wie die folgende Zeile ausgeführt werden soll:

if (profitbuy<=0)mtpb=tpb;

Die Bedingung ist klar, es ist nicht klar, bei welchem Ergebnis die Variable mtpb den Wert der Variablen tpb annimmt.

Wenn der Gewinn der Buchtpositionen nicht mehr als Null beträgt, dann ist mtpb=tpb.
 
ZZZEROXXX:

Hier: https://docs.mql4.com/ru/dateandtime/DayOfWeek

Ich habe dies gesehen, es gibt den Tag der Woche, aber ich muss wissen, welcher Tag der Woche ist der letzte Tag der nächsten Woche. Es gibt nämlich Tage, an denen der letzte Tag der Woche nicht der Freitag ist.

Der Zweck heiligt nicht die Mittel.

Um das zu verdeutlichen, hier eine Frage: Was tun Sie selbst, wenn Sie herausfinden wollen, "welcher Wochentag der letzte in der nächsten Woche ist"? Richtig, Sie sehen im Kalender des laufenden Jahres nach, welche Feiertage speziell in Ihrem Land fallen, und finden heraus, ob das Wochenende von einem Tag auf einen anderen verlegt wurde (z. B. von Sonntag auf Donnerstag, wofür das Parlament, d. h. die Staatsduma, jedes Jahr ein gesondertes Dokument verabschiedet), usw. Glauben Sie, dass sich jemand die Mühe machen würde, zu diesem Zweck ein Programm in MQL zu erstellen? Für mich persönlich ist es einfacher, auf den Kalender zu schauen...

 

Guten Abend! Entschuldigung, ich möchte das Prinzip verstehen, was, eine solche Konstruktion ist nicht möglich?

int u; u=0-10; for( u;u<30;u++) {Alert("u",u); } Schreibt Fehler ';' - Zuweisung erwartet C:\Òãîðóì MF Trader 4\documents\experts\cycle.mq4 (33, 31)
Es zeigt ein Semikolon zwischen u; u Ich habe es einmal mit Hilfe überprüft, bitte erklären Sie es!

Grund der Beschwerde: