Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   EA nach TakeProfit abschalten (http://www.expert-advisor.com/forum/showthread.php?t=6101)

dieter23 25.04.18 18:59

EA nach TakeProfit abschalten
 
Hallo,
möchte meinen EA nach dem Erreichen des TP abschalten, damit er keine weitere Positionen eröffnet.
verwende dafür den Befehl: keybd_event(17,0,0,0);
keybd_event(69,0,0,0);
nur weis ich jetzt nicht, wo dieser Befehl eingesetzt werden muß.

LG
Dieter

traderdoc 25.04.18 19:05

Wo hast Du denn diese Funktionen gesehen bzw. wo sind die her?
Das sind definitiv keine MQL-Funktionen.

traderdoc

dieter23 25.04.18 19:38

hab das Problem vor ca. 2 Jahren schon mal gehabt. Die Befehle hatte ich von dir, habe nur vergessen, wo sie eingesetzt werden.

traderdoc 25.04.18 19:46

Da kann ich mich nicht dran erinnern, aber von der Struktur des Funktionsnamens und der Anzahl der Parameter würde ich fast behaupten,
die sind definitiv nicht von mir.

traderdoc

dieter23 25.04.18 20:42

finde den threat nicht mehr, aber egal hast du eine Lösung für mein Problem?

traderdoc 25.04.18 22:01

z.B.
if (TP_erreicht) EA_working = false;

und direkt hinter

void OnTick() {

...
if (!EA_working) return;

traderdoc

AVT 25.04.18 22:12

Zitat:

Zitat von dieter23 (Beitrag 40957)
Hallo,
möchte meinen EA nach dem Erreichen des TP abschalten, damit er keine weitere Positionen eröffnet.
Dieter

Ich benutze eine bool Variable TradeAllowed. Im Head wird die auf =false gesetzt. Wenn DayOk && TimeOk wird sie auf =true gesetzt. Dann habe ich eine Bedingung drin, wenn DayLoss<=DayAllowedLoss oder DayProfit>=DayProfitWanted, dann wird sie auf =false gesetzt, damit wird im Tagesverlust/-gewinnfall jeder weitere Trade verboten, denn jede Einstiegsbedingung beginnt bei mir grundsätzlich mit if(TradeAllowed ...).
Zusätzlich habe ich noch eine Bedingung, wenn Traden verboten ist, den EA zu entfernen mit ExpertRemove() und in DeInit eine Sicherheitsabfrage, ob auch alles aufgeräumt ist, d.h. bei mir keine laufenden Orders (sollten sowieso nicht mehr sein) und alle pending Orders auch raus.
Das könntest Du mit einem Check machen, ob TP erreicht ist, wenn Du die Trade History prüfst.
AVT

dieter23 26.04.18 06:33

wie müßte die Abfrage aussehen, ob der TakeProfit ausgelöst wurde.

AVT 26.04.18 22:50

Zitat:

Zitat von dieter23 (Beitrag 40966)
wie müßte die Abfrage aussehen, ob der TakeProfit ausgelöst wurde.

Auf die Schnelle aus einem meiner EAs:
Code:

      int CurDay=TimeDayOfYear(TimeCurrent());
      EATrades=0;          // number of todays trades
      EABalance=0;          // amount of todays win/loss
      for(n=0; n<OrdersHistoryTotal(); n++)
      {
        if(  OrderSelect(n,SELECT_BY_POS,MODE_HISTORY)  // order history
            && TimeDayOfYear(OrderCloseTime())==CurDay )  // of today
        {
            if(  OrderComment()==EAName          // pos closed
              || OrderComment()==EAName+"[sl]"  // sl reached
              || OrderComment()==EAName+"[tp]"  // tp reached
              )
            { 
              EATrades++;                        // increase trade counter
              EABalance=EABalance+OrderProfit(); // in/decrease our balance
            }
        }
      }
      if    (EABalance<=DayLoss)  DayStop=true; // enough lost
      else if(EABalance>=DayProfit) DayStop=true; // enough won
      else                          DayStop=false;

Ich hoffe, Du kannst Dir da das passende raussuchen. AVT

Leopold 27.04.18 09:29

Hallo,

es wäre besser den String von OrderComment() einzulesen und in dem String dann "[tp" suchen, da es auch sein kann, dass [tp/gap] da drinn steht, oder sonstige abweichungen zu EAName+"[tp]" auftreten.

https://docs.mql4.com/strings/stringfind

---Leopold---


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum