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: 4058
Beiträge: 38479
Benutzer: 6.364
Aktive Benutzer: 244
Links: 80
Wir begrüßen unseren neuesten Benutzer: UZander
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Stunden
- UZander
vor 13 Stunden
- harryb
vor einem Tag
- Blade-13
vor einem Tag
- Dumbinatio...
vor 2 Tagen
- Börnie

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Aug 2016
Beiträge: 70
ForexMax befindet sich auf einem aufstrebenden Ast
Standard Offene Postitionen automatisch zu bestimmter Zeit schliessen

Geschätzte Forengemeinde,

ich habe meinen EA nach dem Muster des Beitrages

Bestimmte Order automatisch schliessen

wie folgt erweitert:

Code:
//----------------------------------Close all at the End Of Day
extern bool ClosePosAllEndOfDay = false;
extern int  close_pos_hour =21;
extern int  close_pos_min = 56;

int zaehler;

int CurrentTime;
/////////////#################################### Close all Position at the End of Day
void closeAtStopTime()
 {
 

   int pAsk=0;
   int pBid=0;

  
   Print("Zeit ", Hour(), ":", Minute(), " = ", close_pos_hour, ":", close_pos_min);
if ((Hour()==close_pos_hour && Minute()>=close_pos_min) && (ClosePosAllEndOfDay=true) )
   {
      Comment("\nschliesse alle offenen Orders");
      for (int j=OrdersTotal()-1; j>=0; j--)
      {
         Comment("\nSchleifendurchlauf: " + j);
         if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
         {
           Comment("\nOrderSelect erfolgreich, pruefe magic:" + OrderMagicNumber() + " = " + magic + "?");
           if (OrderMagicNumber()==magic)
            {
             if (OrderType()==OP_BUY)
              {
               pBid=MarketInfo(OrderMagicNumber(), MODE_BID);
               OrderClose(OrderTicket(),OrderLots(),pBid,3,CLR_NONE);
             }
             if (OrderType()==OP_SELL) 
             {
               pAsk=MarketInfo(OrderMagicNumber(), MODE_ASK);
               OrderClose(OrderTicket(),OrderLots(),pAsk,3,CLR_NONE);
             }
           }
         }
      }
   }

}
Weshalb werden zur angegebene Zeit im Strategietester die offenen Positionen nicht geschlossen!!
Mir ist auch aufgefallen, daß im Journal beim Zeitabgleich nie die Zeit zum Vergleich zur Vorgegeben close_pos-hour aufscheint.

Danke im Voraus für eure Hilfe.
Max
Angehängte Grafiken
Dateityp: jpg CloseAtTime-0.JPG (12,6 KB, 3x aufgerufen)
Dateityp: jpg CloseAtTime.JPG (20,9 KB, 3x aufgerufen)
Dateityp: jpg CloseAtTime2.JPG (110,5 KB, 4x aufgerufen)
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 685
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Code:
extern bool ClosePosAllEndOfDay = false;
Den bool auch zuerst unten abfragen. Sonst checkt er die Uhrzeit umsonst.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 278
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Code:
pBid=MarketInfo(OrderMagicNumber(), MODE_BID);
Hier musst du statt OrderMagicNumber() Symbol() eintragen.

https://docs.mql4.com/marketinformation/marketinfo

---Leopold---
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Aug 2016
Beiträge: 70
ForexMax befindet sich auf einem aufstrebenden Ast
Standard

Danke für eure Tipps!

Code:
 MA-EA
extern bool ClosePosAllEndOfDay = false;

Den bool auch zuerst unten abfragen. Sonst checkt er die Uhrzeit umsonst.
Wie würde der Code Lauten?

Code:
 Leopold

Code:

pBid=MarketInfo(OrderMagicNumber(), MODE_BID);

Hier musst du statt OrderMagicNumber() Symbol() eintragen.
Habe ich versucht, funktioniert auch nicht!
Hab die deaktivierten zeilen auch durchprobiert.
Die offnenen Pos. werden nicht wie gewünscht geschlossen!
Code:
{  
   int pAsk=0;
   int pBid=0;
   
   
   Print("Zeit ", Hour(), ":", Minute(), " = ", close_pos_hour, ":", close_pos_min);
  
if ((Hour()==close_pos_hour && Minute()>=close_pos_min) && (ClosePosAllEndOfDay=true) )
   {
      Comment("\nschliesse alle offenen Orders");
      for (int j=OrdersTotal()-1; j>=0; j--)
      {
         Comment("\nSchleifendurchlauf: " + j);
         if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
         {
           Comment("\nOrderSelect erfolgreich, pruefe magic:" + OrderMagicNumber() + " = " + magic + "?");
 //          if ( OrderSymbol()==Symbol())
            if (OrderMagicNumber()==magic)
            {
             if (OrderType()==OP_BUY)
              {
 //              pBid=MarketInfo(OrderSymbol(), MODE_BID);
               pBid=MarketInfo(Symbol(), MODE_BID);
               OrderClose(OrderTicket(),OrderLots(),pBid,3,CLR_NONE);
             }
             if (OrderType()==OP_SELL) 
             {
//               pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
               pAsk=MarketInfo(Symbol(), MODE_ASK);
               OrderClose(OrderTicket(),OrderLots(),pAsk,3,CLR_NONE);
             }
           }
         }
      }
   }
   }
mfg Max
Angehängte Grafiken
Dateityp: jpg CloseAtTime#1.JPG (12,1 KB, 2x aufgerufen)
Dateityp: jpg CloseAtTime#2.JPG (70,7 KB, 3x aufgerufen)
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 278
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hättest du mal einen Auszug aus dem Journal?

---Leopold---
Mit Zitat antworten
  #6 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 685
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Code:
extern bool ClosePosAllEndOfDay = true;
Code:
if(ClosePosAllEndOfDay==true && Hour()>=close_pos_hour && Minute()>=close_pos_min){ ... }
Mit Zitat antworten
  #7 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 278
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Code:
extern bool ClosePosAllEndOfDay = true;
Code:
if(ClosePosAllEndOfDay==true && Hour()>=close_pos_hour && Minute()>=close_pos_min){ ... }
Bist du dir wirklich sicher, dass das einen unterschied macht?
Mit Zitat antworten
  #8 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.095
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Der @MA-EA ist immer wieder für Überraschungen gut.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #9 (permalink)  
Alt vor 3 Wochen
Neues Mitglied
 
Registriert seit: Aug 2018
Beiträge: 9
Xypa befindet sich auf einem aufstrebenden Ast
Standard

Wenn die Zeit vom Anfang an bekannt ist, dann kann man die Uhrzeit auch direkt in die Order schreiben (Expiration date)
Mit Zitat antworten
  #10 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 278
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Xypa Beitrag anzeigen
Wenn die Zeit vom Anfang an bekannt ist, dann kann man die Uhrzeit auch direkt in die Order schreiben (Expiration date)
Das gilt aber nur für Pending Orders!!

---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 19:36 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.
-----------------------------------------------------------------------------------------------------------------------------