Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4008
Beiträge: 38194
Benutzer: 6.319
Aktive Benutzer: 323
Links: 80
Wir begrüßen unseren neuesten Benutzer: Abdelaliii
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Abdelaliii
vor 2 Tagen
- Cavalino
vor 4 Tagen
- Minz90
vor 5 Tagen
- Arudo
vor 5 Tagen
- Laotsele

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 75
Gesamt: 75
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 25.04.18
Mitglied
 
Registriert seit: Sep 2013
Beiträge: 35
dieter23 befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten
  #2 (permalink)  
Alt 25.04.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.066
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 25.04.18
Mitglied
 
Registriert seit: Sep 2013
Beiträge: 35
dieter23 befindet sich auf einem aufstrebenden Ast
Standard

hab das Problem vor ca. 2 Jahren schon mal gehabt. Die Befehle hatte ich von dir, habe nur vergessen, wo sie eingesetzt werden.
Mit Zitat antworten
  #4 (permalink)  
Alt 25.04.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.066
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 25.04.18
Mitglied
 
Registriert seit: Sep 2013
Beiträge: 35
dieter23 befindet sich auf einem aufstrebenden Ast
Standard

finde den threat nicht mehr, aber egal hast du eine Lösung für mein Problem?
Mit Zitat antworten
  #6 (permalink)  
Alt 25.04.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.066
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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

und direkt hinter

void OnTick() {

...
if (!EA_working) return;

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #7 (permalink)  
Alt 25.04.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dieter23 Beitrag anzeigen
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
__________________
heute schon gelacht?
Mit Zitat antworten
  #8 (permalink)  
Alt 26.04.18
Mitglied
 
Registriert seit: Sep 2013
Beiträge: 35
dieter23 befindet sich auf einem aufstrebenden Ast
Standard

wie müßte die Abfrage aussehen, ob der TakeProfit ausgelöst wurde.
Mit Zitat antworten
  #9 (permalink)  
Alt 26.04.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dieter23 Beitrag anzeigen
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
__________________
heute schon gelacht?
Mit Zitat antworten
  #10 (permalink)  
Alt 27.04.18
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 218
Leopold befindet sich auf einem aufstrebenden Ast
Standard

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---
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 12:15 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------