Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 86

 
smart_man:

Wie kann man erreichen, dass die Daten aller globalen Variablen auch nach dem Schließen des Terminals im normalen und abnormalen Modus gespeichert werden?

Die Frage betrifft Variablen, die am Anfang des Codes wie folgt deklariert werden:

#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern double  VAR1 = 1;

double VAR2[1000];

Ich möchte nicht, dass die Werte von VAR1 und VAR2 verloren gehen (das Array wird während des Expert Advisor-Betriebs mit Daten gefüllt). Bisher besteht die einzige Idee darin, bei jedem Tick Daten in eine Datei (global.txt) zu schreiben und dann, wenn das Terminal gestartet wird, aus der Datei (global.txt) zu lesen und die Variablen neu zu erstellen und sie dann bei jedem Tick erneut zu schreiben. Welche anderen Möglichkeiten gibt es?

Entweder zum Global des Terminals oder zu einer Ressource.
 
Arseniy Barudkin:

Vielen Dank für die Hilfe! Ich habe es vorerst so gelassen, jetzt habe ich beschlossen, die Bedingungen, unter denen die Funktion aufgerufen wird, ein wenig zu ändern. Und ganz allgemein haben Sie mir sehr geholfen))

Sie haben Recht, wenn Sie keine Antwort erhalten. Man muss das Problem stellen, sonst kann man es nicht lösen.

Werfen wir einen Blick auf die ursprüngliche ToR:

"Arseniy Barudkin2017.05.23 19:56 RU

Seien Sie gegrüßt, meine Herren! Ich möchte es nicht für eine Überschwemmung halten, aber ich kann auf diese Funktion nicht verzichten. Also Leute, kann mir jemand mit einer Funktion helfen, die durch alle Aufträge geht und zwei Aufträge gleichzeitig entfernt, einen mit dem kleinsten Lot und negativem Gewinn aus dem Chart, und den zweiten mit dem größten Lot und positivem Gewinn ebenfalls aus dem Chart. "

Was sehen wir in dem Code, den Sie uns gezeigt haben?

1. Alle Aufträge wurden von Expert Advisor eröffnet und haben eine einzigartige Magic.

2. Der Gesamtgewinn der Aufträge, die wir suchen, ist positiv.

3. die Aufträge sind entgegengesetzt.

4. Die Losgröße mit einem positiven Gewinn ist grundsätzlich größer als die Losgröße mit einem negativen Gewinn.

Wo wird dies in den vorgelegten TOR erwähnt?

Außerdem können wir aus dem Code ersehen, dass Sie nicht wissen, wie man gegenläufige Aufträge schließt und dabei zumindest den Spread verliert.

 
fxtz:

Frage Kann ich ein Programm in Metatrader 4 schreiben, um 2 bis 250 Positionen meiner Wahl mit einem festgelegten Stoploss und einem festgelegten Gewinn mit einem Klick zu öffnen? So muss ich nicht jedes Mal ein neues Fenster manuell öffnen.

Wenn die Beschränkungen Ihres Brokers so hoch sind, ist die Programmiersprache darauf ausgelegt, automatisch Skripte zu schreiben.
 
Mislaid:

Sie haben Recht, wenn Sie keine Antwort erhalten. Man muss das Problem stellen, sonst kann man es nicht lösen.

Werfen wir einen Blick auf die ursprüngliche ToR:

"Arseniy Barudkin2017.05.23 19:56 RU

Seien Sie gegrüßt, meine Herren! Ich möchte es nicht für eine Überschwemmung halten, aber ich kann auf diese Funktion nicht verzichten. Kann mir jemand mit einer Funktion helfen, die alle Aufträge durchgeht und zwei Aufträge gleichzeitig entfernt, einen mit dem kleinsten Lot und negativem Gewinn aus dem Chart, und den zweiten mit dem größten Lot und positivem Gewinn ebenfalls aus dem Chart. "

Was sehen wir in dem Code, den Sie uns gezeigt haben?

1. Alle Aufträge wurden von Expert Advisor eröffnet und haben eine einzigartige Magic.

2. Der Gesamtgewinn der Aufträge, die wir suchen, ist positiv.

3. die Aufträge sind entgegengesetzt.

4. Die Losgröße mit einem positiven Gewinn ist grundsätzlich größer als die Losgröße mit einem negativen Gewinn.

Wo wird dies in den vorgelegten TOR erwähnt?

Außerdem: Der Code zeigt, dass Sie nicht wissen, wie Sie die Gegenaufträge schließen können, wobei Sie zumindest den Spread verlieren.


Ich behaupte nicht, dass es eine Menge Fehler gibt! Ich fange gerade erst an, mich mit dieser Art von Aktivitäten zu beschäftigen. Ich schreibe in diesen Thread, um Hilfe zu bekommen oder um auf die Fehler hinzuweisen! Ich denke, dafür ist es gedacht. Nun zum Code. 1) Vielleicht verstehe ich etwas nicht, aber was ist falsch an der Tatsache, dass alle Aufträge im Expert Advisor eine eindeutige Magic haben? 2) Diese Bedingung und generell die gesamte Funktion ist so konzipiert, dass im Falle einer starken Margin-Belastung mindestens zwei entgegengesetzte Aufträge geschlossen werden und nicht in den roten Bereich gehen, der 3. und 4. Und ich weiß wirklich nicht, wie man Gegenaufträge richtig abschließt.
 
Arseniy Barudkin:

Ich behaupte nicht, dass es eine Menge Fehler gibt! Ich fange gerade erst an, in diesem Bereich zu arbeiten. Und ich schreibe in diesen Thread, um Hilfe zu bekommen oder um auf Fehler hinzuweisen! Meiner Meinung nach ist das der Sinn der Sache. Nun zum Code. 1) Vielleicht verstehe ich etwas nicht, aber was ist falsch an der Tatsache, dass alle Aufträge im Expert Advisor eine eindeutige Magic haben? 2) Diese Bedingung und generell die gesamte Funktion ist so konzipiert, dass im Falle einer starken Margin-Belastung mindestens zwei entgegengesetzte Aufträge geschlossen werden und nicht in den roten Bereich gehen, der 3. und 4. Ich weiß nicht, wie ich gegenläufige Aufträge korrekt abschließen kann.
Wären Sie meine Schülerin oder mein Schüler, würde ich Ihnen für die Übermittlung des Codes ein "gut" geben. Und wenn Sie im Kommunikationsprozess zeigen konnten, dass Sie in der Lage sind, Ideen zu entwickeln, dann "ausgezeichnet" Aus Ihrer Antwort sehe ich, dass Sie richtig denken
 

Hallo ... EA geschrieben in MQL4, handelt mit Marktaufträgen Buy, Sell mitTrailing... Ich beschloss, ausstehende BuyStop- und SellStop-Käufe hinzuzufügen ... und bin auf ein unerwartetes Problem gestoßen = sobald eineschwebende Order im MT4-Fenster erscheint, funktioniertTrailing nicht mehr(SL wird nicht gesetzt,Modify ist nicht vorhanden)... Ich verstehe nicht, was das Problem ist,Trailing-Funktion ist Standard mit Backtracking aus der Bibliothek, zwei ausgewählte pp.... oder geht es nicht um die Funktion? Vielleicht ist jemandem so etwas schon einmal passiert?

int TralFunck(int Ticket)

 {   double TralPrice=0,Punkt=0;

   chk=OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);

for(Ticket=OrdersTotal()-1; Ticket>=0; Ticket--)  

  { if (OrderProfit()<=0)       continue;

    if (OrderType()==4)		 continue;

    if (OrderType()==5) 	 continue;

   if (OrderType()==0)  {   Punkt=(Bid-OrderOpenPrice())/Point;TralPrice=NormalizeDouble((Bid-Tral*D*Point),Digits);  }

   if (OrderType()==1)  {   Punkt=(OrderOpenPrice()-Ask)/Point;TralPrice=NormalizeDouble((Ask+Tral*D*Point),Digits);   }

   if (Punkt<MarketInfo(Symbol(),MODE_STOPLEVEL))       continue;

   if(Punkt<(Tral+TP)*D)        continue;

   if(OrderType()==0 && TralPrice<=NormalizeDouble(OrderStopLoss(),Digits))     continue;

   if(OrderType()==1 && TralPrice>=NormalizeDouble(OrderStopLoss(),Digits) && OrderStopLoss()!=0)       continue;

   ModifyOrder(OrderTicket(),OrderOpenPrice(),TralPrice,OrderTakeProfit());     continue;

   }   return(0);

 }


 
Yaroslav Nykula:

Hallo ... EA geschrieben in MQL4, handelt mit Marktaufträgen Buy, Sell mitTrailing... Beschlossen, ausstehenden BuyStop, SellStop hinzuzufügen ... und bin auf ein unerwartetes Problem gestoßen = sobald eineschwebende Order im MT4-Fenster erscheint, funktioniertTrailing nicht mehr(SL wird nicht gesetzt,Modify ist nicht da)... Ich verstehe nicht, was das Problem ist,Trailing-Funktion ist Standard mit Backtracking aus der Bibliothek, zwei ausgewählte pp.... oder geht es nicht um die Funktion? Vielleicht ist jemandem so etwas schon einmal passiert?



Ersetzen Sie return(0); durch continue;, um die Schleife nicht zu verlassen. Am Ende der Funktion lassen Sie es so, wie es ist.

Verwenden Sie die Schaltfläche SRC im Editor, um Code einzufügen

 
Victor Nikolaev:


Ersetzen Sie return(0); durch continue;, um die Schleife nicht zu verlassen. Am Ende der Funktion belassen Sie es so, wie es ist.

Verwenden Sie die Schaltfläche SRC im Editor, um den Code einzufügen


Danke ... repariert ... Ich werde die SRC-Schaltfläche im Editor berücksichtigen, sorry ... Das Problem bleibt jedoch dasselbe:Trailing undModify wollen nicht mitausstehende Aufträge.
 
Ich habe vor kurzem mit dem Handel auf mt4 begonnen. Ich habe mich entschlossen, meine Strategie zu testen, aber im Strategietester fehlt mir die Visualisierungsfunktion und die Pausentaste.
 
vsmutew7:
Ich habe vor kurzem mit dem Handel auf mt4 begonnen. Ich habe beschlossen, meine Strategie zu testen, aber mein Strategietester hat weder eine Visualisierungsfunktion noch eine Pausentaste.

Wahrscheinlich ist ein breiteres Fenster erforderlich, insbesondere das mit der Schaltfläche "Start".