Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43536
Benutzer: 7.223
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 6 Tagen
- Sundaytrad...
vor 6 Tagen
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 09.10.11
Elite Mitglied
 
Registriert seit: Aug 2011
Ort: NRW
Beiträge: 764
Mast83 befindet sich auf einem aufstrebenden Ast
Mast83 eine Nachricht über ICQ schicken Mast83 eine Nachricht über Skype™ schicken
Standard Tagestrader

HAllo Zusammen,

die Tage habe ich ein wenig mit den Daten aus MT gespielt und mir einfach mal was herunter geladen...Daily EUR/USD Daten im Zeitraum von 5 Jahren. Da habe ich festgestellt, dass in diesem Zeitraum der MIttwoch der beste Tradingtag war..gemessen am Open und Close (long Positions). Daraus wollte ich mir nun was zusammen bsateln...ein EA der um 0:00 kauft und23:59:59 verkauft...und das halt nur Mittwochs...
Nun habe ihch folgendes Zusammen gebaut, aber es scheint noch nicht so recht zu klappen. Vll hat jemand von euch eine Idee was falsch sein könnte?

extern double dLots=0.025;
extern int iStopLoss=250;
extern int iTakeProfit=250;
extern int iSlippage=30;
extern int iMaxTrades=1;
extern int iMagicNumber=28061983;
extern double MaximumRisk=0.02;
extern int DecreaseFactor=3;
extern double GMTOffset = 0;
extern bool Monday = true;
extern bool Tuesday = true;
extern bool Wednesday = true;
extern bool Thursday = true;
extern bool Friday = true;
int iTotalTrades;
int iOrderOpenStatus;
int iErrorNumber;

string strErrorMessage;

//+------------------------------------------------------------------+
//| Calculate optimal lot size |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=dLots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
//---- select lot size
lot=NormalizeDouble(AccountFreeMargin()*MaximumRis k/1000.0,1);
//---- calculate number of losses orders without a break
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==fals e) { Print("Error in history!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- return lot size
if(lot<0.025) lot=0.025;
return(lot);
}
void WeekdayFilter()
{
double GMT_Hour;
int servertime = TimeCurrent();
int GMT_time = servertime - 3600.0 * GMTOffset;

if (((Monday && DayOfWeek() == 1) || (Tuesday && DayOfWeek() == 2) || (Wednesday && DayOfWeek() == 3) ||
(Thursday && DayOfWeek() == 4) || (Friday && DayOfWeek() == 5)
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int res;
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Open ,0,Bid-iStopLoss*Point,Bid+iTakeProfit*Point,"KAUF",iMagi cNumber,0,Blue);
return;
}


Vielen Dank für eure Hilfe
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn...
  #2 (permalink)  
Alt 10.10.11
Gesperrter Benutzer
 
Registriert seit: Sep 2011
Ort: Kassel
Beiträge: 749
JoeDormann befindet sich auf einem aufstrebenden Ast
JoeDormann eine Nachricht über Skype™ schicken
Standard

Hallo,

hättest ja schreiben können was er macht. Dann wärest Du drauf gekommen, da der EA ja permanent kauft, das Du weder eine Funktion für den zeitlich korrekten Einkauf, noch für den Verkauf hast, bzw benutzt

Du mußt in start() den Tages und Zeitfilter für den Einkauf nutzen und davon abhängig ordersend() aufrufen.
Orderclose brauchst Du dann wenn eine Position offen ist um 23:59, um diese zu schliessen.

Gruß Joe
  #3 (permalink)  
Alt 10.10.11
Elite Mitglied
 
Registriert seit: Aug 2011
Ort: NRW
Beiträge: 764
Mast83 befindet sich auf einem aufstrebenden Ast
Mast83 eine Nachricht über ICQ schicken Mast83 eine Nachricht über Skype™ schicken
Standard

Also der EA soll nur kaufen und nicht verkaufen...wenn von 100 Trades 70 long sind, dann ist das Verhältnis kauf zu verkauf schon eindeutig ;-) Also soll der EA Mittwochs nur kaufen ;-)
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn...
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierng expert advisor, programmierung ea, programmierung metatrader


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 23:14 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.
-----------------------------------------------------------------------------------------------------------------------------