Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

msado

Addict
  • Benutzer seit

  • Letzter Besuch

  1. msado antwortete auf msado's Thema in MQL Einsteiger
    Du hast völlig Recht mit dem was Du sagst, ohne Einschränkung... aber ich finde einfach keinen Zugang zu MQL4. Irgendetwas blockiert da bei mir obwohl ich eher der Rationale bin und auch mit Zahlen gut umgehen kann. Muss mal meinen Psychotherapeuten fragen woran das liegen könnte. Vielleicht wurden mir ja während der Schwangerschaft abstruse codes statt klassischer Musik vorgespielt. Es wundert mich, dass es keinen deutschsprachigen Lernthread gibt ! Oder stehe ich da alleine mit meinen Fragezeichen????
  2. msado antwortete auf msado's Thema in MQL Einsteiger
    Verstehe, also bei der Kompilierung im Metaeditor erhalte ich keine Fehlermeldung und mit "Nichtfunktionieren" meine ich: er öffnet keine order.
  3. msado antwortete auf msado's Thema in MQL Einsteiger
    Sorry, wollte nicht demotivieren! Der EA, den ich über den expertbuilder (Link zum Builder: http://sufx.core.t3-...lder/index.html ) erstellt habe, funktioniert nicht. Obwohl ich glaube, die Routine verstanden zu haben. Den code habe ich oben beigefügt verbunden mit der Frage, ob Euch Fehler auffallen. Strategie hierzu: Buy: cross 5 ema / 50 ema high Sell: VICE VERSA ema low Zur Frage am Ende meines Beitrages: Das cross soll gehandelt werden sobald cci einen bestimmten Wert erreicht hat. Muss ich diese Bedingung im expertbuilder ebenfalls in die "Buy strategy" stellen? Also ständen dort die Bedingungen MA cross shift 1 MA cross shift 0 CCI cross shift 1 CCI cross shift 0 ?? Vielleicht sind die Fragen ja banal oder ich habe sie falsch formuliert, sorry for that
  4. Hallo, habe über den expertbuilder einen EA auf Basis MA cross erstellt, der aber nicht läuft. Natürlich denke ich, dass ich alles richtig gemacht habe aber wer denkt das nicht. Vielen Dank für Eure Hilfe. #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.2; extern int Slippage = 3; extern bool UseStopLoss = True; extern int StopLoss = 15; extern bool UseTakeProfit = False; extern int TakeProfit = 60; extern bool UseTrailingStop = False; extern int TrailingStop = 30; 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, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Buy1_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_HIGH, Current + 1); double Buy2_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_HIGH, Current + 0); double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Sell1_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_LOW, Current + 1); double Sell2_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_LOW, Current + 0); double CloseBuy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double CloseBuy1_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_HIGH, Current + 1); double CloseBuy2_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double CloseBuy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_HIGH, Current + 0); double CloseSell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double CloseSell1_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_LOW, Current + 1); double CloseSell2_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double CloseSell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_LOW, 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) | //+------------------------------------------------------------------+ if (CloseBuy1_1 > CloseBuy1_2 && CloseBuy2_1 < CloseBuy2_2) Order = SIGNAL_CLOSEBUY; //+------------------------------------------------------------------+ //| 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) | //+------------------------------------------------------------------+ if (CloseSell1_1 < CloseSell1_2 && CloseSell2_1 > CloseSell2_2) Order = SIGNAL_CLOSESELL; //+------------------------------------------------------------------+ //| 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 && Buy2_1 > Buy2_2) Order = SIGNAL_BUY; if (Sell1_1 > Sell1_2 && Sell2_1 < Sell2_2) Order = SIGNAL_SELL; //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+ Eine weitere Frage hierzu: Wenn als zusätzliche Bedingung ein CCi gelten soll, füge ich diesen der Buy-/Sell-Strategie genauso hinzu wie den MA? Wichtig ist, dass die orders ausgeführt werden sobald beide Bedingungen (MA cross und CCI cross) eingetreten sind, auch wenn sie nicht gleichzeitig eintreten!
  5. msado antwortete auf msado's Thema in MQL Einsteiger
    Thanks a lot Tefex, habs gleich ausprobiert und klappt natürlich. Allerdings hatte ich vor Sell- und Buy-Positionen separat zu canceln. Aber dazu brauche ich wahrscheinlich nur einen ordertype herausnehmen. Die Frage, ob script oder EA stellst Du natürlich zu Recht. Das Gitter ist ein script und über einen seperaten EA steuere ich die weiteren Bedingungen. Ich habe mir den expertbuilder angesehen, finde hier aber keine Möglichkeit ein grid aufzubauen. Oder habe ich was übersehen? Die Idee ist, wenn mir der Kurs nach oben abhaut und meine buystops auslöst, dass gleichzeitig mein Sellstop-Gitter um einen Abstand x zum Preis eben am Kurs dranbleibt. Vielleicht ist das noch mißverständlich: ich löse nicht gleichzeitig buy und sellstops aus sondern eben nur buystops wenn der Kurs nach oben geht.
  6. msado antwortete auf msado's Thema in MQL Einsteiger
    Vielen Dank für die vielen guten Tipps und Servas nach Linz. Gerne erkläre ich was ich mache. Erfahrungen mit diesem System habe ich noch keine, läuft aber derzeit auf live-konto. Ich setze allmorgendlich ein Buystop/Sellstop-Grid auf den "Eröffnungskurs" (soweit es den gibt). Start variabel nach etwa 10-15 Punkten Gridabstand 10 TP 10 SL 10 Die Idee dahinter: Bei Bewegungen automatisch dabei zu sein. Verluste entstehen während eines Trends bei Rücksetzern über 10 P und/oder beim Beginn einer Seitwärtsphase. Das Problem derzeit: Ich muss das Grid natürlich den Marktbewegungen anpassen, d.h. wenn der Markt um 100P nach oben gegangen ist liegen meine Sellstop-Positionen weitab entfernt. (Vielleicht könnte man das gegenteilige Gitter um eine bestimmten Preis-Abstand mitwandern lassen?) Derzeit muss ich die Pendings noch einzeln schließen, da mein "Deleteallpendingorders" noch nicht funktioniert. Habt Ihr eine Idee woran es liegt? Beim Kompilieren erscheinen 15 Fehlermeldungen: unbalanced right parenthesis. int start() { bool result; int cmd,total; //---- total=OrdersTotal(); //---- for(int i=0; i<OrdersTotal; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { cmd=OrderType()==OP_SELLSTOP))){ OrderDelete(OrderTicket()); //---- pending orders only are considered if(cmd!=OP_SELL) { //---- print selected order OrderPrint(); //---- delete all sellstop pending orders result=OrderDelete(OrderTicket()); if(result!=TRUE) Print("LastError = ", GetLastError()); break; } } else { Print( "Error when order select ", GetLastError()); break; } } //---- return(0); }
  7. msado antwortete auf msado's Thema in MQL Einsteiger
    Ich kann den TrailingStop also schon per Script und/oder EA einstellen. Nur funktioniert der natürlich nur solange ich online bin (für den EA war mir das schon klar). Aber per script würde der TS auch nachgezogen, wenn ich online bin? Du merkst wahrscheinlich, wie sehr ich mich vor dem EA-schreiben drücken will. Aber ich habe mir schon einige codes angesehen und ich käme da selbst mit copy and paste nicht wirklich weit. Oder liegt es daran, dass man(n) einen code auch sehr kompliziert und komplex darstellen kann, was eigentlich auch einfach zu machen wäre?
  8. msado antwortete auf msado's Thema in MQL Einsteiger
    Danke für die schnelle Antwort. Der TS muss natürlich mit dem Kurs wandern aber nicht neu eingestellt werden. Also wenn ein Buy ausgelöst wird, dann zieht der TS solange mit bis TP oder SL greift oder eben TS. Und das geht wohl nicht, wenn ich DIch richtig verstanden habe!?
  9. Servus aus Tirol. Ich wollte wissen, ob ich einem Script auch Funktionen eines EA's zufügen kann? Konkret: Ich habe ein Buy/Sell-Grid-script und möchte einen trailingstop einstellen, der mit einem MA eingestellt wird. Geht das oder bin ich dann zwangsläufig bei einem EA? Das script ist eigentlich einfach und so möchte ich es auch beibehalten. Fettes Danke für Euer Wissen.

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.