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.

Mh47

Addict
  • Benutzer seit

  • Letzter Besuch

  1. So ich hab das nächste Problem mit einem anderen Trailingstop und möchte dafür nicht extra ein Thema aufmachen. Der Trailingstop soll alle offenen Order ob short oder long verwalten. Die Order möchte ich ähnlich wie oben selektieren und mit Hilfe einer while Schleife der Reihe nach durchgehen. Nun soll aber je nach Fall 2 Variablen pro Order gespeichert werden auf die in späteren Zugriffen wieder zugegriffen werden soll. Im Prinzip erfolgt sind hierfür ja die globalen Variablen gedacht, allerdings wird bei jeder neuen Order die bearbeitet wird die globale Variable die vorher gespeichert wurde wieder überschrieben? Wie löse ich das Problem? Vll. eine Art Datenbank anlegen? Wie geht das? Vielen Dank Mh47
  2. Ah okay, dankeschön. Ja das mit dem Demokonto hab ich auch des häufigeren schon probiert. Also bei Futures und in diesem Fall CFD's sind die Margins fix. Der eingestellte Hebel hat nur im Forexhandel Auswirkungen.
  3. Gut also könnte man sagen das bei einem Dax Stand von 7500 und einem Lot bei einem Punktwert von 25€ meine Position 187.500€ groß ist, da dies meinem Maximalverlust entspricht? ( 7500 * 25 * 1) Da die Margin immer gleich ist, ist ja der Hebel nur Abhänig vom Stand des Dax. Also müsste sich dann für den Hebel folgendes ergeben: Hebel= ( Zähler des Index * Punktwert* Anzahl der Lots)/ erforderliche Margin Wie groß mein Konto ist ist doch bei der Frage nach dem Hebel irrelevant weil man doch nur die Margin betrachten muss, da nur dieses Geld während des Trades nicht zur Verfügung steht. Ich hab jetzt zu Anfang in der MT4 Demo einfach mal einen Hebel von 1:5 eingetragen, dieser Hebel hat doch gar keinen Einfluss auf den eigentlichen Hebel oder? Es hieß das sei der maximale Hebel aber dann dürfte ich demnach ja noch nicht mal den Dax handeln da bei einem Zähler von über 7000 ein Hebel von ca. 1:100 auftritt? Mit freundlichen Grüßen Mh47
  4. Okay dankeschön, wird ab sofort so gemacht! :)
  5. Hallo, ich hab eine Frage bezüglich der Größe eines Lots bei Activtrades. Auf der Website CFD Margins führt Activetrades alle Margins und Punkt/Tickwerte der handelbaren CFD's auf. Wenn ich nun z.B. den Dax handel möchte und einen Lot kaufe so muss ich intraday eine Margin von 1800 Euro hinterlegen. Dadurch das die Wertigkeit pro Tick/Punkt schon festegelegt ist, ist doch auch der Hebel schon festgelegt? Da dürfte die Einstellung des Hebels im MT4 doch keinerlei auswirkungen haben? Außerdem möchte ich gerne wissen wieviel Kapital ich theoretisch damit bewege? Bei einem "normalen" CFD würde ich ja z.B. bei einer Margin von 1800 Euro und einem Hebel von 1:10 18000 Euro handeln. ( Auch wenn diese wahrscheinlich nie an einer echten Börse auftauchen werden) Das System mit den Lots ist bisher undurchsichtig für mich. Vielleicht liegt es auch daran das die CFD's auf Futurebasis gehandelt werden? Ich bitt um Aufklärung. Danke! Mit freundlichen Grüßen Mh47
  6. Okay gut wieder was gelernt. Die Klammern werden hinzugefügt! Was versteht ihr unter korrekten Einrückungen? Könnt ihr mir mal ein Beispiel geben?
  7. Nachdem ich das Return (0) mal entfernt hab funktionierts bisher :) Danke hierfür schonmal, den anderen Rat mit dem && OrderStopLoss() >0 hab ich auch befolgt. Es sieht jetzt fast so aus als ob alles funktionieren würde, aber ich lass das ganze lieber noch mal ne Weile testen bevor ich mich zu sicher fühle :D @conglom-o gilt die Volatility >0 Abfrage nicht für beides da immer von oben nach unten vorgegangen wird? Also dürfte da doch theoretisch weder die if long noch short Bedingung überprüft werden wenn Volatility < 0 ist? Was gibt es denn methodisch zu verbessern? ( ich bin mir sicher ne ganze Menge :D ) Bin für jeden Ratschlag/Tipp offen. Mit freundlichen Grüßen Mh47
  8. So jetzt einfach das nächste Problem, der EA aktualisiert beim EUR/USD bei einer Long Position trotz steigender Kurse den SL nicht. Anfangs funktionierte es, doch jetzt bleibt der Stop einfach 5 Ticks vor Einstiegskurs stehen. Ich hab zur Kontrolle einen 2. Trade aufgemacht um zu zeigen wo der Stop eigentlich stehen sollte. Ich vermute das der Einstiegskurs eine Art "magische Grenze" darstellt den der Stop nicht überschreiten will. Um mein 2. (oben beschriebenes) Problem zu ändern hab ich folgenden Code eingefügt: distance=MarketInfo(Symbol(),MODE_STOPLEVEL)* Point; Bei Long Positionen if (NewSL > Bid - distance) // Check if SL has minimum distance { NewSL= Bid - distance ; } Analog dazu bei Short Positionen if (NewSL < Ask+ distance) { NewSL= Ask+distance ; } Anderseits bleibt das Problem auch bestehen wenn ich die oben genannten Zeilen lösche. Ein Neustart des EA's von MT4 usw. hilft auch nicht weiter. Ich wette da ist wieder so ein dummer Fehler drin den ich nicht finde :D Mit freundlichen Grüßen Mh47
  9. Super :) Vielen Dank für die Hilfe das erste Problem war nicht an der Stelle die WOGO vermutet hatte aber war genau das beschriebene Problem. Ein paar Zeilen darüber musste ich nur das folgende einfügen. if (OrderStopLoss() > NewSL || OrderStopLoss()== 0) Die von euch zitierte Stelle ist nur als Sicherheit gedacht falls der gesetzte StopLoss aus irgendeinem Grund nicht greift, der StopLoss wird ja vorher schon gesetzt. Und das 2. Problem ließ sich vermutlich (Problem ist bisher nicht mehr aufgetreten :D ) mit MarketInfo(Symbol(),MODE_STOPLEVEL); lösen. Vielen Dank an alle nochmal :)
  10. Hallo :) Ich habe mir hier mal einen EA zusammengebastelt der nur die Order schließen soll, bzw. den Stop Loss nachziehen soll. Die Idee ist die Differenz des Hochs und Tiefs der vorherigen Bar mit 3 zu multiplizieren und den Stop Loss in diesem Abstand zum aktuellen Kurs nachzuziehen. (Idee ist von K. Tharp geklaut :P) Natürlich bewegt sich der Stop nur in meine Richtung und nicht entgegen meines Kontos. Die Ordereröffnung sowie die Positionsgrößenbestimmung soll manuell erfolgen. Im Strategietester des MT4 funktioniert dieser Stop sehr gut, (zufälliger Einstieg) allerdings stehe ich nun im "Livetest" ( Demokonto) vor 2 Problemen: 1. Wenn ich manuell eine Shortposition offen habe und den EA aktiviere so wird die Shortposition sofort geschlossen, der Stop bei einer Long Position funktioniert! 2. Ab und zu passiert es das der EA den Stop zu nah an den Markt legen will und ich bekomme eine Fehlermeldung. Gibt es eine Variable,Parameter oder ähnliches der mir den minimalen Abstand des Stops zum Markt anzeigt sodass ich diesen in meinen EA einbauen kann? Natürlich kann man für jeden Markt/ für jeden minimalen Abstand einen eigenen EA entwerfen aber eleganter wäre eine allgemeine Lösung. So und hier mal der Code: int start() { total = OrdersTotal(); if (total <0) { Print ("Fehler offene Order sind negativ"); return (-1); } while (total >= 0 )// Check for open Orders; Calculation Loop; Looks at every Order { double NewSL , Volatility ; if (OrderSelect(total, SELECT_BY_POS, MODE_TRADES) == true) //select order Volatility = High[1] - Low[1]; if (Volatility > 0) // Check if Volatility is positive and bigger than 0 //Long if (OrderType()== OP_BUY) // check if selected Order is long position { NewSL = Bid - (3*Volatility); // 3 times volatility stop if (NewSL > Bid ) Print("Check Stop Loss"); // Check if Stop Loss is lower than Bid price if ( NewSL < Bid ) { if (OrderStopLoss() < NewSL) //check if new StopLoss is closer to the market, just move Stop Loss if it's in the right direction { OrderModify(OrderTicket(),OrderOpenPrice(),NewSL,OrderTakeProfit(),0,Red); // Send New Stop Loss to Broker return (0); } } if (OrderStopLoss() >= Bid ) // If StopLoss didn't close the order { OrderClose(OrderTicket(),OrderLots(),Bid,20/*points of maximum slippage*/,Red);//Close Order } } //Short if (OrderType()==OP_SELL) // check if selected Order is short position { NewSL = Ask + (3*Volatility); if (NewSL < Ask) Print("Check Stop Loss"); // Check if Stop Loss is above Ask price if (NewSL > Ask) { if (OrderStopLoss() > NewSL) // only move Stop Loss downwards { OrderModify(OrderTicket(),OrderOpenPrice(),NewSL,OrderTakeProfit(),0,Red); // Send New Stop Loss to Broker return (0); } } if (OrderStopLoss() <= Ask) // If Stoploss didn't close the order { OrderClose(OrderTicket(),OrderLots(),Ask,20/*points of maximum slippage*/,Red);//Close Order } } total--; // decrease expression } // End of WhileLoop Ich kann mir leider nicht erklären wo der Fehler liegt, da es auch im Strategietester wunderbar läuft. Ich hoffe ihr könnt mir weiterhelfen. Mit freundlichen Grüßen Mh47
  11. Naja so wie ich das verstanden hab wird bei jedem Tick nur die letzte Bar neu berechnet, alle anderen nur beim 1. Aufruf des Programms int counted_bars=IndicatorCounted(); Die IndicatorCounted Funktion hält ja die Anzahl der bereits gezählten Bars, also beim ersten Durchlauf 0, später allerdings alle -1 ; bzw. alle wenn sich nur ein Tickwert verändert if (counted_bars>0) counted_bars--; Hierdurch wird die Zahl der bereits berechneten Bars um 1 verringert, was beim ändern eines Tickwertes zur Folge hat das die letzte Bar nochmal neu berechnet wird (s.unten) int pos=Bars-counted_bars Bars hält die Zahl aller Bars und pos gibt nun die Anzahl der Durchläufe der while Schleife an. Beim ersten Mal sind die bereits berechneten Bars gleich 0, somit läuft die while Schleife so häufig wie Bars auf dem Chart da sind. Verändert sich nun nur ein Tickwert so beträgt pos 1, da counted_bars gleich Bars ist, man counted_Bars aber bevor man die Differenz bildet noch um 1 reduziert. Somit berechnet der Indikator bei jedem Tick den Bar [1] und den aktuellen Bar [0]. Warum man den Bar [1] nochmal neu berechnet ist mir nicht ersichtlich, aber da Codersguru es so in seinem Tutorial gemacht hat habe ich es mal so übernommen. Berichtigt mich wenn ich falsch liege :P
  12. Ah super Danke :) nachdem ich die Bedingung if (dHigh != dLow) eingefügt habe funktionierts :) Und auch vielen Dank für die Tipps um die Übersicht zu behalten, sowas ist immer hilfreich :P
  13. Hallo liebe Forengemeinde, ich begebe mich gerade mithilfe des Tutorials von Codersguru an das Lernen von MQL4. Zur Zeit versuche ich meinen eigenen Indikator zu entwerfen indem ich mich grob an die Vorlage des von Codersguru angeführten Beispielindikator halte. ( Codergurus Tutorial // Lesson 12) Der Indikator funktioniert soweit auch wie gewünscht bis auf das er beim Aufruf die Vergangenheit / die vergangenen Bars nicht berechnet. Damit dies nicht passiert waren eigentlich folgende Zeilen vorgesehen ( nach dem Beispiel von Codersguru) int start() { int counted_bars=IndicatorCounted(); // counted_bars enthält nun eine Zahl der bereits gezählten Bars // last counted bar will be recounted if (counted_bars>0) counted_bars--; int pos=Bars-counted_bars ; // Bars ist die Anzahl aller Bars , pos die Anzahl der noch nicht gezählten Bars, also beim ersten Aufruf alle double dHigh , dLow , dOpen , dClose ,dResultA; // Calculation loop while (pos>=0) // gibt die Anzahl der Durchläufe an { dHigh = High[pos]; dLow = Low[pos]; dOpen = Open[pos]; dClose = Close[pos]; dResultA =(dClose-dOpen)/(dHigh-dLow); Datenbank[pos] = dResultA ; pos-- ; // Anzahl der kommenden Durchläufe wird um 1 verringert } Eigentlich müsste somit doch immer beim ersten Start die komplette Vergangenheit des Charts berechnet werden und dann bei erneuten Aufruf des int start { } der letzte Bar erneut. Anscheinend wird aber immer nur der letzte Bar berechnet. Wo liegt mein Fehler? Vielen Dank im Vorraus

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.