Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1552

 
законопослушный гражданин:

Eulen sollten Geschäfte nach ihrem Algorithmus eröffnen

wenn Stop, dann der nächste Handel mit einem Martin, und so weiter, bis die Anzahl der Multiplikationen, die ich angegeben habe (Funktion -OrdersClose = .....;).

Wenn die Eule zusammen mit dem Terminal deaktiviert ist, drücken Sie einfach die Taste "Auto-Trading" mit einer anderen Eule, dann wird der nächste Handel mit dem Startlot beginnen, nicht mit dem letzten, der durch ein Martingal erhöht wurde.

Es wäre auch schön, einen Zeitplan damit zu verbinden, aber diese Idee ist mir erst jetzt gekommen.

Zum Beispiel: Am Montag wurde es um 10-00 Uhr mit dem Startlos aktiviert, dann wurde es im Laufe des Tages abgeschaltet, als ein bestimmtes Ergebnis erzielt wurde, und am Dienstagmorgen wurde es um 10-00 Uhr aktiviert und wieder mit dem Startlos gestartet.

alles.

Wie kann man dieses Problem bis zum Ende behandeln?

 
законопослушный гражданин:

Wie kann man dieser Frage auf den Grund gehen?

Sie antworten, Sie antworten,

aber Sie verschwinden, und dann bekommen Sie wieder die gleichen Fragen.

 
MakarFX:

Sie antworten, Sie antworten,

aber Sie verschwinden, und dann bekommen Sie wieder die gleichen Fragen.

Sie haben mir gezeigt, wie man eine globale Variable erstellt, ich habe es versucht, aber dann habe ich eine Frage

Ich bin nicht gut in diesem noch. Ich habe bereits eine datetime OpenTime; - sollte ich es miteinem datetimeStart oder zusätzlich ersetzen?

"und dann, wenn es später keine offenen/geschlossenen Aufträge gibt "Start "Lots=Lot;"- es ist überhaupt nicht klar, worauf man sich beziehen soll?

Dann baten Sie um eine kurze Beschreibung der Logik von owl, was ich damit erreichen will.

Ihre Frage, wie das Los beim Herunterfahren automatisch zurückgesetzt werden kann, wurde noch nicht beantwortet.

 
законопослушный гражданин:

Sie haben mir gezeigt, wie man eine globale Variable erstellt, ich habe es versucht, aber dann habe ich eine Frage

Ich bin noch nicht gut darin. Ich habe bereits datetime OpenTime; - sollte ich es mitdatetimeStart oder zusätzlich ersetzen?

"und dann, wenn es später keine offenen/geschlossenen Aufträge gibt "Start "Lots=Lot;"- es ist überhaupt nicht klar, worauf man sich beziehen soll?

Dann baten Sie um eine kurze Beschreibung der Logik der Eule, was ich von ihr will.

Auf meine Frage, wie man das automatische Zurücksetzen des Loses beim Herunterfahren erreichen kann, erhielt ich keine Antwort.

Als ich um eine Beschreibung der Logik des EA bat, meinte ich nicht das aufgetretene Problem, sondern die allgemeinen Aktionen

zum Beispiel:

wenn ein Signal vorliegt, wird ein Auftrag eröffnet

wenn der Auftrag mit Gewinn geschlossen wird, warten wir auf ein neues Signal

Wenn der Auftrag mit einem Verlust abgeschlossen wurde, erhöhen Sie die Menge und warten Sie auf ein neues Signal.


Ich brauche nicht Ihre Strategie, ich brauche nur zu verstehen, was der EA tun sollte.

 
законопослушный гражданин:

Sie haben mir gezeigt, wie man eine globale Variable erstellt, ich habe es versucht, aber dann habe ich eine Frage

Ich bin noch nicht gut darin. Ich habe bereits datetime OpenTime; - sollte ich es mitdatetimeStart oder zusätzlich ersetzen?

"und dann, wenn es später keine offenen/geschlossenen Aufträge gibt "Start "Lots=Lot;"- es ist überhaupt nicht klar, worauf man sich beziehen soll?

Dann haben Sie mich gebeten, kurz die Logik der Eule zu beschreiben, was ich von ihr will.

Ich habe keine Antwort auf meine Frage erhalten, wie man beim Herunterfahren eine automatische Rücksetzung des Loses vornimmt.

Hier ist die Funktion für den Anfang:

//+----------------------------------------------------------------------------+
//|  Размер лота/профита и время последней закрытой позиции                    |
//|  1 - возвращает размер лота                                                |
//|  2 - возвращает размер профита с учетом комиссии и свопа                   |
//|  3 - возвращает время закрытия ордера                                      |
//+----------------------------------------------------------------------------+
double GetInfoLastPos(int a=1)
  {
   datetime t=0;
   double result=0,l=0,p=0;
   int i=OrdersHistoryTotal();

   for(int pos=0; pos<i; pos++)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if((OrderSymbol()==_Symbol)&&(OrderMagicNumber()==Magic))
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();}
              }
           }
        }
     }
   if(a==1) {result=l;} else
   if(a==2) {result=p;} else
   if(a==3) {result=(double)t;}
   else     {result=0;}
   return(result);
  }

wenn ein Auftrag im Verlust ist

   if(GetInfoLastPos(2)<0)
     {Lots=NormalizeDouble(GetInfoLastPos(1)*K_Martin,DigitsLot);}
   else 
     {Lots=NormalizeDouble(Lot,DigitsLot);}
 

Betreffend

datetime Start;

int OnInit()
{
   Start=TimeCurrent();
.....................
}
void OnTick()
{
   if (!IsTradeAllowed()) 
   {
      DrawLABEL("Торговля",0,0,0,Red,"Торговля запрещена");
      Start=TimeCurrent();
      return;
   } 
.....................
}

wenn der Zeitpunkt des letzten abgeschlossenen Auftrags kleiner ist als die Startzeit des Beraters

   if(GetInfoLastPos(3)<Start)
     {Lots=NormalizeDouble(Lot,DigitsLot);}
 
MakarFX:

Als ich um eine Beschreibung der Logik des EA bat, bezog ich mich nicht auf das aufgetretene Problem, sondern auf allgemeine Aktionen

zum Beispiel:

wenn ein Signal vorliegt, wird ein Auftrag eröffnet

wenn der Auftrag mit Gewinn geschlossen wird, warten wir auf ein neues Signal

Wenn der Auftrag mit einem Verlust abgeschlossen wurde, erhöhen Sie die Menge und warten Sie auf ein neues Signal.


Ich brauche nicht Ihre Strategie, ich brauche nur zu verstehen, was der EA tun sollte.

wenn es ein Signal gibt, wird ein Auftrag mit dem ersten Lot eröffnet

wenn der Auftrag mit Gewinn geschlossen wurde, warten wir auf ein neues Signal

Wenn der Auftrag mit einem Verlust abgeschlossen wurde, erhöhen Sie die Menge und warten Sie auf ein neues Signal.

Wenn der Gewinn xxxx (in der Einzahlungswährung) erreicht, schließt der Berater alle Geschäfte und setzt das Lot auf den Anfangswert zurück

wenn der Verlust yuu (in der Währung der Einlage) erreicht hat, schließt der Berater alle Geschäfte und setzt das Lot auf den Startwert zurück

wenn der Berater aus- und wieder eingeschaltet wurde - wenn ein Signal vorliegt, wird ein Auftrag mit dem Startlos eröffnet

oder?

 
законопослушный гражданин:

Wenn ein Signal vorliegt, wird ein Auftrag mit einem Startlot eröffnet.

wenn der Auftrag mit Gewinn geschlossen wurde, warten wir auf ein neues Signal

Wenn der Auftrag mit einem Verlust abgeschlossen wurde, erhöhen Sie die Menge und warten Sie auf ein neues Signal.

Wenn der Gewinn xxxx (in der Einzahlungswährung) erreicht, schließt der Berater alle Geschäfte und setzt das Lot auf den Anfangswert zurück

wenn der Verlust yuu (in der Währung der Einlage) erreicht hat, schließt der Berater alle Geschäfte und setzt das Lot auf den Startwert zurück

wenn der Berater aus- und wieder eingeschaltet wurde - wenn ein Signal vorliegt, wird ein Auftrag mit dem Startlos eröffnet

wie hier?

Ja, genau so.

Was ist, wenn der EA deaktiviert und dann wieder aktiviert wurde und eine offene Bestellung vorliegt?

 
MakarFX:

Ja, das ist sie.

Was passiert, wenn der EA ausgeschaltet und dann wieder eingeschaltet wird und ein offener Auftrag vorhanden ist?

Wenn der EA ausgeschaltet wird, schließt er vor dem Ausschalten alle offenen Aufträge, unabhängig davon, ob sie sich im Gewinn oder Verlust befinden,

Wenn die Eule wieder eingeschaltet wird, wird das "leere Feld", die Startpartie, geschlossen.

Indikator, der ein Signal gibt zu öffnen, in dem Beispiel war RSI, aber ich nehme an, drei verschiedene Eulen auf verschiedenen Indikatoren zu testen.

Wenn ich also einen Beispielcode für die obige Logik habe, hoffe ich, dass ich in der Lage sein werde, die Codes anderer EAs selbst zu überarbeiten, sie sind Open Source und kostenlos verfügbar.

 
законопослушный гражданин:

Wenn die Eulen ausgeschaltet sind, schließen sie vor dem Ausschalten alle offenen Aufträge, unabhängig davon, ob sie sich im Gewinn oder im Verlust befinden,

Der Indikator, der die Signale zum Öffnen gibt, war RSI, aber ich nehme an, dass er gelöscht wurde.

Indikator, der ein Signal gibt zu öffnen, in dem Beispiel war RSI, aber ich nehme an, drei verschiedene Eulen auf verschiedenen Indikatoren zu testen.

Wenn ich also einen Beispielcode für die obige Logik habe, hoffe ich, dass ich in der Lage sein werde, die Codes anderer EAs selbst zu überarbeiten, ich hoffe, dass sie quelloffen und kostenlos verfügbar sind.

und owl.turns off when you change timeframe, Kommunikationsprobleme, und 100500 und ein weiterer Grund...

der EA lädt nach, das ist seine natürliche Eigenschaft

Grund der Beschwerde: