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: 4224
Beiträge: 39186
Benutzer: 6.522
Aktive Benutzer: 248
Links: 80
Wir begrüßen unseren neuesten Benutzer: alansol
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- alansol
vor einem Tag
- chicken763
vor einem Tag
- w695277
vor 4 Tagen
- SilentBen
vor 4 Tagen
- tachart

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 84
Gesamt: 85
Team: 0
Team:  
Benutzer:  fxnoob
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.09.18
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, 4x aufgerufen)
Dateityp: jpg CloseAtTime.JPG (20,9 KB, 3x aufgerufen)
Dateityp: jpg CloseAtTime2.JPG (110,5 KB, 4x aufgerufen)
  #2 (permalink)  
Alt 23.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 731
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.
  #3 (permalink)  
Alt 23.09.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 306
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---
  #4 (permalink)  
Alt 24.09.18
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)
  #5 (permalink)  
Alt 25.09.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 306
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hättest du mal einen Auszug aus dem Journal?

---Leopold---
  #6 (permalink)  
Alt 25.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 731
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){ ... }
  #7 (permalink)  
Alt 25.09.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 306
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?
  #8 (permalink)  
Alt 25.09.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.201
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.
  #9 (permalink)  
Alt 26.09.18
Neues Mitglied
 
Registriert seit: Aug 2018
Beiträge: 10
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)
  #10 (permalink)  
Alt 26.09.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 306
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---
Thema geschlossen

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 21:06 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 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.
-----------------------------------------------------------------------------------------------------------------------------