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: 4978
Beiträge: 43265
Benutzer: 7.222
Aktive Benutzer: 72
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 31.03.11
Neues Mitglied
 
Registriert seit: Mar 2011
Beiträge: 3
xmich befindet sich auf einem aufstrebenden Ast
Standard Mehrere EAs auf gleichem Basiswert - Ordereröffnung auf bestimmte GMT limitieren

Hallo,

ich bin neu hier und auf der Suche nach Antworten auf die folgende Fragen.

1) Kann ich mehrere verschiedene EAs auf den gleichen Basiswert handeln. Wenn ja, welche Einstellungen muss ich beachten bzw. wo kann ich das machen. Oder wo kann ich hier mehr Infos dazu bekommen.

2) Ich habe ein selbst gebastelten EA und möchte, dass dieser nur zwischen 9-12 Uhr und 14-18 Orders eröffnet. In der Zeit dazwischen soll nur TP / SL / TS gemanagt werden. Auch hier wieder, wie kann ich das einstellen, bzw. wo gibt es hierzu genauere Infos.

3) Bin auch noch auf der Suche nach der Funktion, bei einem EMA System, dass auf Close (nicht Tick) Basis läuft, im gleichen Balken z. B. den long zu schließen und den short zu eröffnen. Bisher macht er mir die Eröffnung der Gegenposition nur im nächsten Balken.

Für jede Hilfe, Tipps oder Links wäre ich sehr dankbar.

schöne Grüße

Michael
  #2 (permalink)  
Alt 01.04.11
Elite Mitglied
 
Registriert seit: Jan 2010
Beiträge: 275
Bohne befindet sich auf einem aufstrebenden Ast
Standard

Gleich soviele fragen auf einmal. Poste das teil hier hoch. dann kan man immer noch wieter sehen. Ob close open oder was auch immer kannst du direkt in der hilfe nachschauen, da steht genau geschrieben. Im Editor rechts steht die hilfe dazu und ist auch alles beschrieben.
  #3 (permalink)  
Alt 03.04.11
Neues Mitglied
 
Registriert seit: Mar 2011
Beiträge: 3
xmich befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

erstmal Danke für Deine Antwort.

Siehe unten an einem ganz einfachen EMA crossover System. Wenn der 10er den 38er schneidet long oder short.

Wäre super, wenn mir hier jemand weiterhelfen kann, was ich hier in den Programmcode mit reinnehmen muss, so dass die ENTRY Signale nur zwischen 9-12 Uhr und 14-18 Uhr ausgeführt werden. In der Zeit dazwischen soll nur TP / SL / TS gemanagt werden.

Vielen Dank

Michael


//+------------------------------------------------------------------+
//| This MQL is generated by Expert Advisor Builder |
//| Expert Advisor Builder for MetaTrader 4 |
//| |
//| In no event will author be liable for any damages whatsoever. |
//| Use at your own risk. |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+

#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4

#property copyright "Expert Advisor Builder"
#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"

extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = False;
extern double Lots = 0.1;
extern int Slippage = 1;
extern bool UseStopLoss = True;
extern int StopLoss = 50;
extern bool UseTakeProfit = True;
extern int TakeProfit = 200;
extern bool UseTrailingStop = True;
extern int TrailingStop = 50;

int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;



if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;

//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+


double Buy1_1 = iMA(NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy1_2 = iMA(NULL, 0, 38, 0, MODE_EMA, PRICE_CLOSE, Current + 0);





//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+

//Check position
bool IsTrade = False;

for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}

//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+

if (Buy1_1 > Buy1_2) Order = SIGNAL_BUY;



//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+

//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

if (!EachTickMode) BarCount = Bars;

return(0);
}
//+------------------------------------------------------------------+
Angehängte Dateien
Dateityp: mq4 YourExpertAdvisor(2).mq4 (9,1 KB, 5x aufgerufen)
  #4 (permalink)  
Alt 03.04.11
Elite Mitglied
 
Registriert seit: Jan 2010
Beiträge: 275
Bohne befindet sich auf einem aufstrebenden Ast
Standard

Habs mir fast schon gedacht, du hast hier den Ea builder benutz.
zu 3)
der ea läuft nur bei jedem neuen Kerzen chart an. Das hast du mit der funktion
if (!EachTickMode) BarCount = Bars; gemacht, der müsste hier raus. Dann prüft er auch bei jedem tick anstatt bei jedem bar.
  #5 (permalink)  
Alt 03.04.11
Neues Mitglied
 
Registriert seit: Mar 2011
Beiträge: 3
xmich befindet sich auf einem aufstrebenden Ast
Standard

Da ich kein Programmierer bin, ist für mich der EA Builder im Augenblick die einzige Möglichkeit, etwas auszuprobieren und zu testen. Für ein kostenloses Tool finde ich es super. Klar das hier nicht das volle Komplettprogramm enthalten ist ....
Sollte jemand einen weiteren / umfangreicheren EA Builder kennen - Free oder zum Kauf, wäre ein Link natürlich super!
Das mit dem prüfen nur am Ende der jeweiligen Candle hatte ich bewusst so eingestellt bzw. das mit der Tick Einstellung ist mir klar.

Wie gesagt, das mit der Uhrzeit / GMT Limitierung kann ich in dem EA Builder nicht einstellen und bräuchte deshalb einen Tip / Hilfe, wie ich hier am Besten weiterkomme bzw. wie ich das in dem Code unterbringe...

ciao
  #6 (permalink)  
Alt 11.08.11
Neues Mitglied
 
Registriert seit: Mar 2011
Beiträge: 27
sunnyboy20 befindet sich auf einem aufstrebenden Ast
Standard

Also weiß nicht wieso aber der EA öffnet bei mir keine Shorts und macht nur Long.
Zur Info im Strategytester ist auf Long und Short gestellt ;-)
  #7 (permalink)  
Alt 11.08.11
Neues Mitglied
 
Registriert seit: Mar 2011
Beiträge: 27
sunnyboy20 befindet sich auf einem aufstrebenden Ast
Standard

sorry mein fehler war ja auch keine shortregel definiert
  #8 (permalink)  
Alt 16.08.11
Neues Mitglied
 
Registriert seit: Mar 2011
Beiträge: 27
sunnyboy20 befindet sich auf einem aufstrebenden Ast
Standard

kannst du denn originalen EA nochmal posten bevor du daran rum gebastelt hast ? weil glaube da liegt schon die lösung für eines deiner Probleme zumindest laut Code.
Weil zu CloseBuy und CloseSell fehlt das Gegenstück
Thema geschlossen

Lesezeichen

Stichworte
basiswert expert-advisor, gmt, mehrere ea, mehrere ea gleicher basiswert, mehrere expert-advisor

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 +2. Es ist jetzt 20:21 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.
-----------------------------------------------------------------------------------------------------------------------------