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: 4973
Beiträge: 43267
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Stunde
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 325
Gesamt: 325
Team: 0
Team:  
Benutzer:  
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

http://www.expert-advisor.com/forum/...chliessen.html

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: 1.178
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: 362
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: 362
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: 1.178
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: 362
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.733
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: 362
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 +1. Es ist jetzt 00:01 Uhr.





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