static datetime canTrade = 0; if (PosWurdeGeschlossen) canTrade = TimeCurrent() + 3600; // 60 Min mit 60 Sek. if (TimeCurrent() > canTrade && nOpnPos==0 ) { ... // trading }So in etwa.
Hallo Herr Schreiber,
erst einmal herzlichen Dank für das Beispiel.
Ich probiere das mal aus!
Danke noch einmal...!
Gruß Frank
So in etwa.
Hallo Herr Schreiber,
ich bin ihrem Vorschlag gefolgt... aber vielleicht doch ein zu großer Anfänger, ihren
Gedankengang zu Ende zu bringen.
Könnten sie vieleicht die einzelnen Schritte für mich konkretisieren?
Ich bin halt ein Börsanier... und weniger ein Programmierer.
Das wäre für mich das letzte und fehlende Puzzel in (m)einem großen Spiel!
Mit hoffnungsvollen Grüßen
Frank Neben
- Zeit feststellen, zu der eine Position geschlossen wurde,
- diesen Zeitpunkt +3600 einer static (im Editor Courser drauf stellen und F1 drücken) Variablen canTrade zusweisen,
- und erst dann, wenn TimeCurrent() > canTrade, nach der nächsten Gelegenheit zu handeln suchen.
Vielleicht mal hierr hineingucken:
Quickstart for newbies: https://www.mql5.com/de/articles/496
und: https://www.mql5.com/de/articles/100
Kochbücher: https://www.mql5.com/de/search#!keyword=kochbuch
- www.mql5.com
Hallo Leute,
ich beiß mir wirklich die Zähne aus...!
Ok... ich bin nur ein wießbegieriger Anfänger ohne viel Geduld... aber Vieles klappt schon.
Mir geht's nicht um eine tägliche Start- und Stopzeit zu programmieren, dass funktioniert einwandfrei in meinem EA!
Ich benötige eine Funktion, mit der ich nach jeder geschlossenen Position unmittelbar eine ca. 60 minütige (3600 Sek.)
Handelspause festlegen bzw. programmieren kann.
Hat jemand von euch eine Idee, wie das gehen könnte?
Vielen Dank im Voraus
Gruß Frank
Hallo,
es ist schon bisschen länger her, aber habe einen Beispiel für Sie.
#include <Trade/Trade.mqh> CTrade trade; #include <Trade/SymbolInfo.mqh> CPositionInfo m_position; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { // Handelsperiod Funktion // HandelsPeriod(); // HistorySelect(von_datum,zum_datum); HistorySelect(iTime(_Symbol,PERIOD_D1,0),iTime(_Symbol,PERIOD_D1,0)+60*60*24); uint total=HistoryDealsTotal(); ulong ticket=0; datetime localtime = TimeCurrent(); //--- for all deals for(uint i=0; i<total; i++) { //--- Sucht nach Tickets die grösser als Null sind if((ticket=HistoryDealGetTicket(i))>0) { long entry=HistoryDealGetInteger(ticket,DEAL_ENTRY); if(entry==DEAL_ENTRY_OUT) continue; string symbol = HistoryDealGetString(ticket,DEAL_SYMBOL); ulong deal_time = HistoryDealGetInteger(ticket,DEAL_TIME); //... processing of deal with some Symbol if(symbol==_Symbol) { if(localtime < ((datetime)deal_time + 3600)) { //--- // Kein Trading return; } } } } //--- int digits=(int)SymbolInfoInteger(_Symbol,SYMBOL_DIGITS); // number of decimal places double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID); // current buy price double price=bid; // unnormalized open price price=NormalizeDouble(price,digits); // normalizing open price double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK); double price2=ask; // unnormalized open price price2=NormalizeDouble(price2,digits); // normalizing open price if(PositionsTotal() < 4) { trade.Buy(0.10,_Symbol,price2,NULL,NULL,NULL); trade.Sell(0.10,_Symbol,price,NULL,NULL,NULL); Sleep(10000); for(int i=PositionsTotal()-1; i>=0; i--) // Gibt die Anzahl der offenen Positionen zurück if(m_position.SelectByIndex(i)) { //--- if(m_position.Symbol()== _Symbol) { trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol continue; } } } }
Wurde für Tester geschrieben.
Gruß Igor
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo Leute,
ich beiß mir wirklich die Zähne aus...!
Ok... ich bin nur ein wießbegieriger Anfänger ohne viel Geduld... aber Vieles klappt schon.
Mir geht's nicht um eine tägliche Start- und Stopzeit zu programmieren, dass funktioniert einwandfrei in meinem EA!
Ich benötige eine Funktion, mit der ich nach jeder geschlossenen Position unmittelbar eine ca. 60 minütige (3600 Sek.)
Handelspause festlegen bzw. programmieren kann.
Hat jemand von euch eine Idee, wie das gehen könnte?
Vielen Dank im Voraus
Gruß Frank