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: 43252
Benutzer: 7.220
Aktive Benutzer: 81
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 11 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 09.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Thumbs up Problem gelöst

Es lag schlussendlich an den Digits, d.h. der DAX wird mit einer Nachkommastelle angegeben und DOW nicht.
Somit hab ich mit 10 Pips SL den Mindestabstand des Brokers im DAX unterschritten und die Order konnte ich entgegengenommen werden.
Ergibt SL in Pips mit Nachkommastelle: 100 und dann läuft's auch.

Jetzt hab ich also zwei EA's für zwei Indizes mit ihren jeweiligen Settings.

Meinen allerherzlichsten Dank nochmal an alle Unterstützer.

Grüße und ein schönes Wochenende.

Dan
  #12 (permalink)  
Alt 10.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard neue Herausforderung

Eine Bitte hätte ich noch:

Im Forum hab ich dieses Script gefunden:

Zitat:
//handel 14:40-21:55, nach serverzeit 15:40-22:55
int h=TimeHour(TimeCurrent());
int m=TimeMinute(TimeCurrent());

Alert("zeit: "+h+":"+m);
int startzeit=14*60+40;
int endzeit=21*60+55;
int aktuellezeit=h*60+m;

if(aktuellezeit<startzeit || aktuellezeit>endzeit){
Alert("Ausserhalb der handelszeit");
return(0);
}
Es limitiert die Handelszeiten des EA und genau diese Funktion würde ich gerne in meinen EA integrieren.
Für den DAX dann z.Bsp. 9-12 und 14-17:30 Uhr.

Wie und an welcher Stelle muss ich diese Abfrage einfädeln?

Besten Dank vorab,

Dan
  #13 (permalink)  
Alt 10.03.13
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

das kannst du so gar nicht verwenden !
Die Alert Funktion muss raus.

Verwendbar wäre das ganze so:
Code:
int startzeit=14*60+40;
int endzeit=21*60+55;

void Start()
{
 int h=TimeHour(TimeCurrent());
 int m=TimeMinute(TimeCurrent());
 int aktuellezeit=h*60+m;
 if(aktuellezeit<startzeit || aktuellezeit>endzeit) return(0);
 //EA Code
 //...
}
Das wäre allerdings nur eine Krücke.
Eine Tradingzeit über 0:00 Uhr ist damit nicht möglich.
Außerdem kannst du Zeit nicht extern eingeben (warum eigentlich 14*60+40)???
Besser wäre das hier:
Code:
extern string Start = "09:00";    
extern string End = "13:00";       
datetime StartTime, EndTime, CurrentTime;

void init()
{
 StartTime = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+Start); 
 EndTime = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+End);  
}

bool TradingTime()
{
 CurrentTime = StrToTime(TimeToStr(TimeCurrent(),   TIME_DATE|TIME_MINUTES));      
 if (StartTime < EndTime)
    {
     if ((CurrentTime < StartTime) || (CurrentTime >= EndTime)) return(false);
    }      
 if (StartTime > EndTime)
    {
     if ((CurrentTime < StartTime) && (CurrentTime >= EndTime)) return(false);
    }
 return(true);
}

int start() 
{
 if (TradingTime() == false) return(0);
 //EA Code...
 //...
}
Gruß
naranjoe
  #14 (permalink)  
Alt 10.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

Unglaublich...
Vielen herzlichen Dank.

Ich werd's gleich morgen früh testen. :-)))

Grüße,
Dan
  #15 (permalink)  
Alt 11.03.13
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Ähm,

da ist mir ein kleiner Fehler unterlaufen.
so ists richtig:
Code:
extern string Start = "09:00";    
extern string End = "13:00";       
datetime StartTime, EndTime, CurrentTime;

bool TradingTime()
{
 StartTime = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+Start); 
 EndTime = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+End);  
 CurrentTime = StrToTime(TimeToStr(TimeCurrent(),   TIME_DATE|TIME_MINUTES));      
 if (StartTime < EndTime)
    {
     if ((CurrentTime < StartTime) || (CurrentTime >= EndTime)) return(false);
    }      
 if (StartTime > EndTime)
    {
     if ((CurrentTime < StartTime) && (CurrentTime >= EndTime)) return(false);
    }
 return(true);
}

int start() 
{
 if (TradingTime() == false) return(0);
 //EA Code...
 //...
}
Gruß
naranjoe
  #16 (permalink)  
Alt 11.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard perfekt

Es funktioniert wunderbar und damit sehen die Backtestergebnisse auch gleich sehr viel besser aus.
Ist CurrentTime eigentlich = BrokerTime oder lokale Systemzeit?

Jetzt hab ich noch eine letzte Herausforderung zu meistern und ich hoffe das du vielleicht eine Idee hast wie ich .

Anbei ein ADX Indikator, den ich gerne verwende weil er die Signallinie einfärbt wenn ein Trend beginnt (grün) und wenn er endet (rot).
Soweit ich sehen konnte schreibt er die Rechenergebnisse in verschiedene Buffer und diesen Buffern ist wiederum der Farbcode zugeteilt.

Die Buffer selbst kann ich mit iCustom einfach nicht auslesen und in den Comments steht immer eine 0.

Ziel ist folgendes:
Buy wenn Signallinie grün und > 35 und < 65.
CloseBuy wenn Signallinie rot.

Hast du eine Idee wie ich das umsetzen kann?

Grüße,
Dan
Angehängte Dateien
Dateityp: mq4 LEA_ADX_1.mq4 (2,3 KB, 8x aufgerufen)
  #17 (permalink)  
Alt 11.03.13
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Zitat:
Ist CurrentTime eigentlich = BrokerTime oder lokale Systemzeit?
Das ist Broker Zeit. Lokale Zeit bekommst du, wenn du TimeCurrent() durch TimeLocal() ersetzt.

Zitat:
Ziel ist folgendes:
Buy wenn Signallinie grün und > 35 und < 65.
CloseBuy wenn Signallinie rot.

Hast du eine Idee wie ich das umsetzen kann?
Der Wert den du brauchst ist Buffer 0.
Den liest du einmal auf Shift0 und einmal auf Shift1.

Ist der Wert von Shift1 < Shift0 steigt der Kurs (Grün)
Ist der Wert von Shift1 > Shift0 fällt der Kurs (Rot)

Gruß
naranjoe
  #18 (permalink)  
Alt 11.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

Klingt irgendwie logisch.
Ich war mir nicht sicher weil die fallenden Werte zuerst gelb eingefärbt werden.
Es scheint als müsse ein gewisser Neigungswinkel, bzw. eine entsprechend große Differenz zwischen Shift0 und Shift1 auftreten um die Linie rot zu färben.

Ich hab's jetzt mal eingebaut und werd mir morgen die Ergebnisse im Backtest anschauen.

Grüße
Dan
  #19 (permalink)  
Alt 13.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard Lotsize kalkulieren

Guten Morgen liebe EA Profis,

an dieser Stelle mal ein herzliches Dankeschön für eure Unterstützung mit der ich meinen EA schneller weiterentwickeln konnte als ich selbst erwartet hätte.

Die ersten Testergebnisse sehen wirklich traumhaft aus und nun steht noch Feinabstimmung und ein Langzeittest an.

In Punkto Feinabstimmung würde ich gern meine Lotsize variabel kalkulieren lassen. Da ich den StopLoss fest eintrage sollte das ja möglich sein.
Also z.B. 10 Pips. SL, SL=max 2% der Equity.
Bei 10.000 € Equity ist der SL gleich 200 € und diesen geteilt durch 10 Pips ergibt 20 Lots.
Habt ihr vielleicht eine passende Formel hierfür?

Bei den Backtests stehen mir momentan nur 6 Wochen an Daten zur Verfügung und da mein EA auf Indizes basiert hilft mir Dukascopy leider auch nicht weiter.

Hat jemand MT4 verwertbare Tickdaten für den DAX oder weiß wo ich diese beziehen kann?

LG,
Dan
  #20 (permalink)  
Alt 13.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von feelfree Beitrag anzeigen
Guten Morgen liebe EA Profis,

an dieser Stelle mal ein herzliches Dankeschön für eure Unterstützung mit der ich meinen EA schneller weiterentwickeln konnte als ich selbst erwartet hätte.

Die ersten Testergebnisse sehen wirklich traumhaft aus und nun steht noch Feinabstimmung und ein Langzeittest an.

In Punkto Feinabstimmung würde ich gern meine Lotsize variabel kalkulieren lassen. Da ich den StopLoss fest eintrage sollte das ja möglich sein.
Also z.B. 10 Pips. SL, SL=max 2% der Equity.
Bei 10.000 € Equity ist der SL gleich 200 € und diesen geteilt durch 10 Pips ergibt 20 Lots.
Habt ihr vielleicht eine passende Formel hierfür?

Bei den Backtests stehen mir momentan nur 6 Wochen an Daten zur Verfügung und da mein EA auf Indizes basiert hilft mir Dukascopy leider auch nicht weiter.

Hat jemand MT4 verwertbare Tickdaten für den DAX oder weiß wo ich diese beziehen kann?

LG,
Dan
Die erste Herausforderung ist teilweise erledigt.
Die dafür passende Formel lautet: Lots = MathFloor(Equity * MaximumRisk) / (StopLoss / 10);
Allerdings kommen natürlich auch Rechenergebnisse mit Nachkommastellen bei dieser Kalkulation raus und die wiederum nimmt mein Broker nicht entgegen.
Wie kann ich hier auf- bzw. abrunden?
z.B. Lots=19,8 aufrunden auf 20
z.B. Lots=17,3 abrunden auf 17

Grüße,
Dan
Thema geschlossen

Lesezeichen

Stichworte
ea, expert-advisor, programmierung, programmierung metatrader

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 09:17 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.
-----------------------------------------------------------------------------------------------------------------------------