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

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

ins All abheben

die Haltestelle steht zuerst und fliegt dann sofort nach der Aufnahme ins All (und schließt den Auftrag unterwegs)

Darum geht es meines Erachtens nicht.

korrigieren Sie mich, wenn ich falsch liege: void OnTick()

wenn keine offenen Aufträge vorhanden sind und ein Signal vorliegt, dann vOrderOpenBuy() / vOrderOpenSell()

Dann kommt void vOrderModify(int iOTi) - d.h. sie setzen Stopps und takei und prüfen dann auf Fehler.

Das heißt, dass es nicht möglich ist, den Auftrag im Sinne des Trailing zu korrigieren, solange er nicht zum Stop oder Take geschlossen wird.

Sie benötigen ein (maximal zwei) Mehrfaches von "stop and take".

Wenn Sie den Trailing-Stop ändern und einen Gewinn mitnehmen möchten, sollten Sie dies manuell tun.

Ich überlege noch, wie ich es umsetzen kann.

Korrigiert

2021.12.24 21:31:12.245 2021.11.01 00:00:00  111 inputs: Lot=0.01; StopLoss=200; TakeProfit=400; Slippage=3; Magic=1; K_Martin1=2; K_Martin2=2; K_Martin3=2; OrdersClose=5; OrdersClose2=5; DigitsLot=2; PeriodMA=14; MovingShift=1; 
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: open #1  buy 0.01 EURUSD at 1.15583 ok
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15383 tp: 1.15983 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15403 tp: 1.16003 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15433 tp: 1.16013 ok
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:34:08.768 2021.11.01 20:12:05  Tester: take profit #1  at 1.16013 (1.16014 / 1.16019)
2021.12.24 21:34:14.632 2021.11.01 20:17:55  Tester: stop button pressed
Dateien:
111.mq4  25 kb
 
законопослушный гражданин #:

ins All abheben

die Haltestelle steht zuerst, dann fliegt sie sofort ins All, gefolgt von der Aufnahme (und schließt die Bestellung unterwegs)

Das liegt daran, dass Ihre Regeln nicht funktionieren:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Alle Fragen von Neulingen zu MQL4 und MQL5, Hilfe und Diskussion von Algorithmen und Codes

Mihail Matkovskij, 2021.12.23 22:01

Im Allgemeinen gelten die folgenden Regeln.

  • Der berechnete SL ist kleiner als der SL des Auftrags (weniger profitabel) - nichts tun.
  • Abrechnung SL ist gleich dem Auftrag - nichts tun
  • Der berechnete SL übersteigt den SL des Auftrags (profitabler) - ändern Sie ihn mit dem berechneten Wert
Diese Regeln für die Erstellung von Schleppnetzen eignen sich für die Erstellung fast aller Schleppnetze mit beliebigen SL-Berechnungsalgorithmen.

Dann wären sie schon längst fertig und hätten es geschafft. Aber nein...

Ich konnte nicht umhin, ein fertiges Beispiel zu finden:https://www.mql5.com/ru/code/30808

Und ein Artikel: https://www.mql5.com/ru/articles/134

Für Anfänger ist es zwar kompliziert, aber ich denke, Sie werden es schaffen, wenn Sie wirklich an dem Thema interessiert sind.

Простой трейлинг-стоп
Простой трейлинг-стоп
  • www.mql5.com
Очень простой советник для сопровождения сделок трейлинг-стопом.
 
Tretyakov Rostyslav #:

Korrigiert

Ich danke Ihnen!

Ich wusste nicht, dass man ein Double in eine void-Funktion einfügen kann

 
Mihail Matkovskij #:

Das liegt daran, dass Ihre Regeln nicht funktionieren:

Du hättest das schon längst tun sollen und einen Treffer landen. Aber nein...

Ich konnte es nicht ertragen und habe ein fertiges Beispiel für Sie gefunden:https://www.mql5.com/ru/code/30808

Und ein Artikel:https://www.mql5.com/ru/articles/134

Für Anfänger mag es kompliziert sein, aber ich denke, Sie werden es verstehen, wenn Sie wirklich an dem Thema interessiert sind.

Dankeschön

 

Guten Tag!!!

Können Sie mir bitte sagen, ob die Funktion Hour() die aktuelle Stunde der letzten bekannten Serverzeit in Greenwich oder die aktuelle Zeit, die auf dem Computer aufgerufen wird, zurückgibt?

 
EVGENII SHELIPOV die aktuelle Zeit, die auf dem Computer aufgerufen wird, zurückgibt?


 
Tretyakov Rostyslav #:


Wie lautet die Antwort auf diese Frage?

 
EVGENII SHELIPOV #:

Wie lautet die Antwort auf diese Frage?

Tut mir leid. Ich dachte, du kannst lesen.


 
EVGENII SHELIPOV aktuelle Zeit auf dem Computer aufgerufen zurückgibt?

Und wer hat Ihnen gesagt, dass die Serverzeit GMT sein muss?

 

Funktion für mt4 und mt5 - Start, Stop und .....

//+------------------------------------------------------------------+
//|                                                   time Start.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input datetime InpHoursFrom = D'1970.01.01 02:00'; // Start (Only time)
input datetime InpHoursTo   = D'1970.01.01 23:00'; // Stop (Only time)
input bool     InpClose     = true;                // Close Time
input datetime InpHoursTo1  = D'1970.01.01 23:00'; // Close (Only time)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(TimeStartStop(InpHoursFrom,InpHoursTo))
     {
      Print("Start time :",InpHoursFrom," || ","Stop time :",InpHoursTo);
     }
   if(TimeClose(InpHoursTo1))
     {
      if(InpClose)
         Print("close_time :",InpHoursTo1);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeStartStop(datetime HoursFrom,datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if((HoursFrom<HoursTo && hour0>=HoursFrom && hour0<HoursTo) ||
      (HoursFrom>HoursTo && (hour0<HoursTo || hour0>=HoursFrom)))
      return(true);
   return(false);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeClose(datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if(hour0<HoursTo)
      return(false);
   if(hour0>HoursTo+1*10)
      return(false);
   return(true);
  }
//+------------------------------------------------------------------+
Grund der Beschwerde: