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 9 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: 1
Gäste: 457
Gesamt: 458
Team: 0
Team:  
Benutzer:  murkel
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 31.12.16
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard Long- Signal wenn MAlang<MAmittel<MAkurz

Hi, seit einer Woche bin ich auf den Geschmack des EA gekommen. Im Moment stoße ich mit meinem durch Youtube angeeigneten Wissen allerdings an meine Grenzen. Mein EA soll unter anderem ein Kauf Signal generieren, wenn der MA 100 unter dem MA 50 und dieser wiederum unter dem MA 20 liegt (Stundenbasis im Dax). Außerdem sollen alle drei MA's nach oben zeigen, also aufsteigen, bevor gekauft wird.
Der Code sieht im Moment so aus:

if(MAlang<MAmittel<MAkurz && MAlangVorperiode<MAlang && MAmittelVorperiode<MAmittel && MAkurzVorperiode<MAkurz)
{
LongSignal = true;
}
else LongSignal = false;

Wo ist der Fehler? Leider funktioniert die Abfrage nicht.

Geändert von TTFM2016 (31.12.16 um 02:17 Uhr)
  #2 (permalink)  
Alt 31.12.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Lad mal das ganze Teil hoch. Gibts wahrscheinlich eh haufenweise gratis im Web.

Was im Einzelnen funkt denn nicht?

Hatten wir nicht schon mal so ne Frage hier?

Edit: Und muss nicht nach jedem Vergleich von 2 MAs nen && rein?
  #3 (permalink)  
Alt 31.12.16
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Hi, das war schon der Tip den ich brauchte. Nach zwei MA Abfragen muss ein && und dann kommt die nächste Abfrage, das ganze in einer Klammer..

Vielen Dank schonmal

Werde in den nächsten Tagen mal den Code reinstellen, sind noch ein paar andere Baustellen, die noch nicht so funktionieren. Jetzt ist erstmal Sylvester, also einen guten Rutsch Euch allen!!
  #4 (permalink)  
Alt 02.01.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Hier die nächste Baustelle, es geht um die SL, TP bzw. OrderClose.

Ist die Order jünger als 1 Tag, soll die Order geschlossen werden, sobald der Kurs <=, bzw. >= (longorder,bzw.shortorder) des kurzen MA ist.

Ist die Order älter als 1 Tag und jünger als 3 Tage, soll die Order geschlossen werden, sobald der Kurs <=, bzw. >= (longorder,bzw.shortorder) des mittleren MA ist.

Ist die ORder älter als 3 Tage, soll die Order geschlossen werden, sobald der Kurs <=, bzw. >= (longorder,bzw.shortorder) des langen MA ist.

So wie ich es programmiert habe, funktioniert es auch, solange die Order nicht über das Wochenende gehalten wird. Wird z.B. eine Order am Freitag geöffnet, ist der SL/TP am Montag schon beim langen MA, da mehr als 3 Tage vergangen sind. Ich möchte es aber so programmieren, dass nur die Handelstage abgefragt werden. Ist das möglich? Hier der Code:

//SL/TP MA's
MAkurz_SL_TP = iMA (NULL,0,MA_kurz,0,MODE_SMA,0,1);
MAmittel_SL_TP = iMA (NULL,0,MA_mittel,0,MODE_SMA,0,1);
MAlang_SL_TP = iMA (NULL,0,MA_lang,0,MODE_EMA,0,1);

extern int Ab_x_Tage_MAmittel_als_SL_davor_MAkurz = 1;
extern int Ab_x_Tage_MAlang_als_SL_davor_MAmittel = 3;

//Berechnung SL/TP- Tage
int SL_TP_Tage_Makurz = Ab_x_Tage_MAmittel_als_SL_davor_MAkurz * 86400;
int SL_TP_Tage_Mamittel = Ab_x_Tage_MAlang_als_SL_davor_MAmittel * 86400;

//OrderClose Long Order setzen
if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) //OrderCloseTime 0 = Order ist noch aktiv
{
if(TimeLocal()-OrderOpenTime()<SL_TP_Tage_Makurz) //Order ist jünger als 1 Tag SL = MAkurz
{
if(MAkurz_SL_TP>=Bid)
{
OrderClose(OrderTicket(),TradeLots,Bid,5,Red);
}
}
if(TimeLocal()-OrderOpenTime()>=SL_TP_Tage_Makurz&&TimeLocal()-OrderOpenTime()<SL_TP_Tage_Mamittel) //Order ist älter als 1 Tag und jünger als 3 Tage SL = MAmittel
{
if(MAmittel_SL_TP>=Bid)
{
OrderClose(OrderTicket(),TradeLots,Bid,5,Red);
}
}
if(TimeLocal()-OrderOpenTime()>=SL_TP_Tage_Mamittel) //Order ist älter als 3 Tage SL = MAlang
{
if(MAlang_SL_TP>=Bid)
{
OrderClose(OrderTicket(),TradeLots,Bid,5,Red);
}
}
}
}

Gibt es eigentlich einen Nachteil dadurch, dass ich keinen TP, bzw. SL setze, sondern nur mit OrderClose arbeite?

Geändert von TTFM2016 (02.01.17 um 12:35 Uhr)
  #5 (permalink)  
Alt 03.01.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Hat keiner ne Idee? Die Abfrage müsste in etwa so aussehen: if Order älter als x Handelstage dann...
Wäre echt super, wenns da was geben würde. Hab in der MQL4 Dokumentation nichts gefunden.

Weil ich bis jetzt nicht weiß, wie ich lediglich die Handelstage abfrage, hab ich versucht es so zu programmieren, dass der Wechsel zwischen den MA's als OrderClose einfach 2 Tage nach hinten versetzt wird, sobald Sonntag ist. Aber es klappt so leider auch nicht..

extern int Ab_x_Tage_MAmittel_als_SL_davor_MAkurz = 1;
extern int Ab_x_Tage_MAlang_als_SL_davor_MAmittel = 3;

int SL_TP_Tage_Makurz,SL_TP_Tage_Mamittel,ZaehlerWoche nende;


int OnInit()
{
//---
ZaehlerWochenende=0;

//---
return(INIT_SUCCEEDED);
}

void OnTick()
{
if(DayOfWeek()==0&&ZaehlerWochenende==0&&(LongOrde r==true||ShortOrder==true))
{
SL_TP_Tage_Makurz = Ab_x_Tage_MAmittel_als_SL_davor_MAkurz * 86400 + (86400*2);
SL_TP_Tage_Mamittel = Ab_x_Tage_MAlang_als_SL_davor_MAmittel * 86400 + (86400*2);
ZaehlerWochenende + 1;
}

if(LongOrder==false&&ShortOrder==false)
{
SL_TP_Tage_Makurz = Ab_x_Tage_MAmittel_als_SL_davor_MAkurz * 86400;
SL_TP_Tage_Mamittel = Ab_x_Tage_MAlang_als_SL_davor_MAmittel * 86400;
ZaehlerWochenende = 0;
}
}
  #6 (permalink)  
Alt 03.01.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Vielleicht abfragen wann die Order geöffnet wurde. Dann aktuelle Zeit abfragen. Dann Letztere - Öffnungszeit. Oder so in der Art.
  #7 (permalink)  
Alt 03.01.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Hab das hier bei google gefunden:

int AlterLongOrder = iBarShift(Symbol(),60, OrderOpenTime());

und es funktioniert.

Es werden die Kerzen im Stundenchart ab OrderOpenTime gezählt und als int ausgegeben. Damit kann man ja dann rechnen
Thema geschlossen

Lesezeichen

Stichworte
ma, moving average, mql4, programmierung, programmierung metatrader, programmierung mql4

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 07:13 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.
-----------------------------------------------------------------------------------------------------------------------------