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

 
LazarevDenis:
Können Sie mir bitte sagen, ob es möglich ist, einen Text in mql4 in eine Datei zu schreiben, z.B. *.txt, und dann diese Daten für den Handel abzurufen. Die Idee ist, dass der EA lernen würde, selbst zu handeln, wenn sich der Preis um >100*Punkt pro paar Balken ändert, würde der EA sich diese Werte merken und dann versuchen, sie zu verwenden (Indikatorwert +/- n%, um eine Order zu öffnen). Dies könnte auch im EA implementiert werden, aber nach dem Schließen von MetaTrader scheinen alle Variablenwerte auf Null zurückgesetzt zu werden
Es könnenglobale Variablen verwendet werden.
 
Könnte jemand bitte meinen EA testen und mir seine Stärken und Schwächen mitteilen?
Dateien:
 

helfen Sie mir, eine Funktion zu schreiben, die eine bestimmte Aktion ausführt, wenn die letzten 10 Positionen im Minus geschlossen wurden

Vielen Dank im Voraus
 
Kreol:
Ja, ja, ich habe Sie verstanden ... Aber bevor ich mein hart verdientes Geld ausgebe, möchte ich sicherstellen, dass das Skript, das ich benötige, nicht in der Öffentlichkeit verfügbar ist
Die Skripte in der Datenbank sind so groß wie Hund und Katz. Sie stellen die falsche Frage. Das Universalskript, selbst wenn es für Sie angefertigt wird, wird unbequem sein, und Sie werden es wegwerfen.
Skripte sind in der Regel darauf ausgelegt, eine einfache, einheitliche Aktion durchzuführen. Am besten verwenden Sie eine Reihe von Skripten, von denen jedes an einen anderen Hotkey gebunden ist.
Zum Beispiel:

Drehbuch
Schlüssel
Skript "Kaufen" öffnenStrg+B
Skript zum Öffnen von SellStrg+S
Skript umkehrenStrg+R
Skript schließen
Strg+C

Und so weiter.
Sie können die entsprechenden fertigen Skripte in der Datenbank finden, indem Sie eine Suche durchführen, z.B. Google-Anfragen wie reverse script site:mql4.com

 
nuan:

Helfen Sie mir, eine Funktion zu schreiben, die eine bestimmte Aktion ausführt, wenn z.B. die letzten 10 Positionen im Minus geschlossen wurden

Vielen Dank im Voraus

Es ist nicht schwer, die Anzahl der letzten mit Verlust abgeschlossenen Aufträge in der Schleife zu berechnen. Aber wie können wir einen Code schreiben, der eine unklare Aktion ausführt?
 
Sie brauchen einen Code, der zählt
 
Hallo! Ich habe eine Frage... Ist es die Fülle an Eingabebedingungen und Hilfsfunktionen sowie externen Variablen wie extern double, die den Expert Advisor ausbremsen können? Es ist nur ein Geheimnis des Testers... Der erste Roboter, bei dem alles im Code versteckt ist, hat mehr Drawdowns als der Roboter, bei dem alles extern double ist... Obwohl beide die gleichen variablen Parameter haben. (sie sind auch identisch)
 
Shniperson:
Hallo! Ich habe eine Frage... Liegt es an der Fülle von Eingabebedingungen und Hilfsfunktionen sowie an externen Variablen wie extern double, dass der EA träge werden kann? Es ist nur ein Geheimnis des Testers... Der erste Roboter, bei dem alles im Code versteckt ist, hat mehr Drawdowns als der Roboter, bei dem alles extern double ist... Obwohl beide die gleichen variablen Parameter haben. (und sie sind auch die gleichen).


Überprüfen Sie noch einmal die Werte der Variablen - vielleicht sind sie unterschiedlich und funktionieren beim Kompilieren der ersten Version anders als die anderen.

Abgesehen davon, vergleichen Sie sie mit diesem Programm in der Suche - download - WinMergeU.exe.

 

Ich habe von https://www.mql5.com/ru/code/9274 heruntergeladen.

Ich habe von hier ein Skript heruntergeladen, um automatisch einen voreingestellten Take und Loss zu setzen, aber sie fangen an, nach dem Preis zu schwimmen, können Sie mir sagen, was das Problem ist und wie man es so einrichtet, dass sie statisch sind?

 
nuan:
Wir brauchen einen Code, der Folgendes berechnet


Das ist nicht schwer. Schreiben Sie ein Unterprogramm:

// этот код будет работать корректно только если в истории отсутствуют отложенные ордера.
int SchLossOrders(){
  string SMB=Symbol();
  int Sch=0;
  int i;
  for (i=OrdersHistoryTotal()-1;i>=0;i--){
    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { Print("Ошибка ",GetLastError()," при выборе ордера");}
    else {
      if(OrderProfit()<0 && (OrderType()==OP_BUY || OrderType()==OP_SELL)){
        Sch++;
      }
      else{
        return(Sch);
      }
    }
  }
 return(Sch);     
}

Am Anfang des EA schreiben wir:

if(SchLossOrders()>=10){
  // 10 последних сделок были убыточными - выполняем какое-то действие
}