Alle Inhalte von titanfx
-
Hilfe bei Programmierung
Hallo karlos10 Der Verdacht hat sich also bestätigt. Der Fehler konnte ich nachtsellen und es liegt tatsächlich an den historischen Daten, die im Strategie gemischt sind. Also alles löschen und die Daten nur von dem Broker verwenden
-
Hilfe bei Programmierung
Wie schon Mythos sagte, der Fehler wird von einem fehlerhaften Preis in OrderSend-Funktion verursacht Wie es aussieht liegt das Problem in deinen historischen Daten: - dein Broker verwendet die 4-stellige Quottierung nach der Komma - in der OrderSend taucht eine 5-stellige Quottierung auf Ich kann nur daraf schliessen, dass historische Daten gemischt sind und es wird logischerweise der obengenannte Fehler verursacht. Du hast vermutlich die History von History-Center heruntergeladen und automatisch die Daten von Alpari bekommen, die 5-stellig quotieren. Also als Tip: alle Daten löschen und nur die von deinem Broker herunterladen, in dem du im aktiven Chart zurückscrollst
-
Hilfe bei Programmierung
@ karlos10 EA habe ich also radikal umgeschrieben, vereinfacht und korriegiert, die Signaldefinitionen habe ich aus deinem ersten Post übernommen. EA ist jetzt somit modular aufgebaut und kann jetzt auch als Schablone für die andere Strategien verwendet werden, es muss eigentlich nur eine Funktion, die für die Signaldefinition zuständig ist modifiziert werden. Dadurch werden auch die Berechnungen schneller, da der EA jetzt pro Zyklus nur einmal die Indikatoren und andere notwendige Daten aufbereitet. Jetzt also zum EA, die MA-einstellungen habe ich global ausgeführt, damit die auch optimiert werden können, Stoploss und TakeProfit Platzierung verändert (korriegiert, verbessert) als zusätzliche Parameter habe ich noch 2 weitere Parameter eingefügt TradeOnlyNewBar - lässt den EA nur zur Eröffnung des neuen Bars ( also zu den Schlusskursen ) handeln SignalShift - Verzögerung des Signals in Bars, bei 0 - wird Signal auf dem aktuellen Bar angewendet, was natürlich nicht ganz korrekt ist, da der Bar und somit die MA-Berechnung noch nicht abgeschlossen ist. Das wird aber trotzdem bei vielen bevorzugt, da man die übliche Verzögerung nicht abwarten möchte bei 1 - erfolgt die Berechnung ausschliesslich auf schon komplett abgeschlossenen Bars, diese Einstellung ist absolut technisch korrekt, bereitet aber vielen Tradern Kopfschmezen, da man in dem Fall "zu spät" in den Markt reinkommt karlosMA.mq4
-
Hilfe bei Programmierung
entweder damit oder sicherer ist es die Eröffnungszeit des letzten Bars zu überwachen. ich schreibe deinen EA etwas um, damit du die Verwendung der Funktion sehen kannst
-
Hilfe bei Programmierung
Hallo karlos, jetzt wissen wir, wie du es dir vorgestellt hast. Also die Berechnung soll in deinem Fall zu Eröffnung jedes neuen Bars erfolgen - sprich nur zu den Schlusskursen der vorigen Bars, dadurch entfällt die permanante Berechnung auf dem aktuellen Bar und die visuelle Seiteneffekte durch die "falsche" Signaltriggerung werden vermieden. Um diesen Effekt ohne Umprogrammierung im Strategietester zu erreichen, reicht es lediglich TestingMode auf only_open_prices einzustellen.
-
goso
Auch von mir herzlich willkommen, goso
-
Hilfe bei Programmierung
Hallo karlos, das Problem im Code ist, dass du immer Long bist. Sobald Long Trade durch den TP geschlossen ist ( und nicht wie du bschrieben hast durch Kreuezen ma1 und MA2) - öffnet er sofort wieder einen Long-Trade, da Bedienung wieder "wahr" ist, weil um TP auszulösen muss der Kurs selbstverständlich steigen und da zeigen alle MA´s nach oben, was auch den Eintritt in Long wieder auslöst Die Bedienung für Long ist somit immer da und dadurch, dass kein SL und TP bei Ordersend realisiert ist, wird die Position so lange gehalten, bis virtueler TP mitgenommen wird. Dadurch wird zwar erreicht, dass alle geschlossenen Trades profitabel sind, verursacht aber einen grösseren Drawdown bis die Position geschlossen ist. Der Drawdown ist somit nicht kontrollierbar und kann natürlich auch den MarginCall hervorrufen. Lösung: für Positionseröffnung ist eine Verriegelung einzubauen - dass nur ein kurzer Signaltrigger entsteht und nicht ein Dauerkaufsignal, wenn alle Linien übereinander liegen. Dafür brauchst du das Signal mit vorherigem Bar zu verknüpfen um nur bei einer MA-Kreuzung zu handeln so z.B bool Funktion_1_Long() { double ma1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,0); double ma2 = iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE,0); double ma1_1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,1); double ma2_1 = iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE,1); double ma3 = iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,0); if (ma1>ma2 && ma2 > ma3 && ma1_1<ma_2_1) // kurzfristiger gl.D. liegt u"ber dem mittelfristigen // und der mittefristige u"ber dem langfristigen return(true); else return(false); } Signal zur Positionsschliessung muss natürlich auch korrigiert werden
-
Pfeile im Chart
-
Pfeile im Chart
und so könnte man die Hotkeys anlegen Jetzt reicht es auf dem aktiven Chart beispielweise Alt+B zu drücken um eine Buy-Order zu platzieren
-
Pfeile im Chart
Die Scripts sind so kompiliert, dass die ohne Nachfrage blitzschnell ausgeführt werden, um allerdings die Eingangsparameter bei jedem Aufruf anzuzeigen, soll die Auskommentierung vor #property show_inputs wieder rückgängig gemacht werden also einfach // vor #property show_inputs entfernen und mit neukompillieren
-
Pfeile im Chart
Mit diesen Scripts könntest du die Positionen blitzschnell öffnen und schliessen und es werden die Einstigs- und Ausstiegspfeile auf dem Chart dargestellt. s_open_buy.mq4 s_open_sell.mq4 s_close_all.mq4
-
Pfeile im Chart
klar das geht, dafür muss du die position mit dem script öffnen und schliessen am besten noch ein hotkey auf beiden scripts legen, dann geht die positoneröffnung zig-mal schneller als auf die übliche weise per mausklick
-
Der Forex Millionaer
Die Kursdifferenz trat generell auf und hat sich in den historischen Kursen wiederspiegelt. Ich musste zum Vergleich ein Demokonto bei fxd24 eröffnen musste um diesen Vergleich durchzuführen. Hier sind noch mal alle 9 Charts in einem Gif-Frame zusammengelegt
-
Der Forex Millionaer
- Der Forex Millionaer
- Der Forex Millionaer
- Der Forex Millionaer
Möchte auch mal meine Resonanz dazu henterlassen. Ich habe bis jetzt das Projekt "forexmillionär" nicht verfolgt und habe mich dafür auch nicht interessiert. Allerdings, wie man sieht hat das Projekt ziemlich grosses Publikum angezogen und für reichlich Gesprächstoff gesorgt. Also aus reiner Neugier, wie der Mann es schafft so viel Wirbel um sich zu erzeugen, hatte ich mir Webinar auch angeschaut. Also er kennt sich mit dem MT4, was allgemeine Bedienung angeht, gut aus. Er handelt auf einem Real-Account von FXD24-Broker. Die Fragen hat er auch flüssig beantwortet, auch wenn die Antworten teilweise absolut daneben waren. Obwohl für 26 Jahre und laut seinem Profil: Hobbys: Poker, Poker, Poker, Traden, Squash, Party war das gar nicht mal so schlecht Der Wirrwarr auf dem Chart mit Unmengen von Support- und Widerstands-Linien hat mich umgehauen. Er versucht den Abprall von der Linien zu traden und es waren tatsächlich alles Gewinn-Trades, obwohl er nur 4-12 anvisierte, hat mich schwer gewundert, dass ihm der Markt immer zugespielt hat. Daraufhin hatte ich tatsächlich ein Paar MT4-Instanzen von anderen Brokern gestartet, um zu sehen, was hier gespielt wird. Sein Chart sah, wie selbst gemahlen aus. Die Quottierungen, die auf seinem Chart waren gab es nicht mal annähernd bei irgendeinem anderen Broker. Man kann natürlich in vieles glauben und einiges durchgehen lassen, aber wenn das Publikum auf solche Weise verspottet wird, weiss man mitllerweile - es tauchen immer neue dubiose Portale im Internet, die allesglaubende Neulinge, wie Fliegen anziehen. Es hat sich auf jedem gelohnt, Webinar anzugucken - Geheimniss ist geluftet, die Welt ist wieder in Ordnung Um es jetzt noch mit zusätzlichen Fakten zu belegen und breites Publikum zu veranlassen es selbst zu beurteilen, habe ich ein Paar Screenshots gemacht. Die Screenshots stellen EURUSD mit 15 Minuten-Chart dar und sind alle gleich zum besseren Vergleich masstabiert und skaliert. Das erste Bild stammt von dem Broker, mit dem Kay getradet hat - FXD24, die anderen 8 - von anderen bekannten Brokern. Wie man sieht sehen die 8 folgenden Charts ziemlich gleich aus, die könnte man sogar wie ein Template übereinanderlegen - so täuschend gleich sehen die aus, stammen aber alle von unterschiedlichen Brokern. Der Chart von FXD24 zeigt deutlich an, dass hier eindeutig nachgeholfen wurde, um die Gewinne von 1 bis 12 Pips zu erzielen.- Indikator in verschiedenen Zeitebenen
Im Aufruf des Indikators muss du einfach deine gewünschte Zeitperiode eintragen jeder Indikator hat seine eigene Aufrufparameter z.B: double iATR( string symbol, int timeframe, int period, int shift) dementsprechend timeframe wird geändert auf iATR(Symbol(), 60, 12, 0) - wo 60 an der Stelle der Zeitperiode steht 60m = 1h- MT4: OrderClose error 138 ???
Der Fehler tritt auch auf, wenn Bid und Ask bei einer Tradefunktion wie Ordersend, Orderclose, vertauscht sind- MQL4 Farb-Syntax
Ich nutze Notepad++ mit selbsterstellten Highlighting seit ca. 1 Jahr - es ist einfach genial. Metaeditor nehme ich nur zum Kompilieren. Was ich noch empfehlen würde ein Plugin namens Funktionsliste downloaden, der bei einer gewissen Anzahl von programmierter Funktionen nicht mehr wegzudenken ist. Zusätzlich kann man auch die Hotkeys festlegen, seitdem starte ich auf diese Weise aus dem Notepadd++ heraus sehr schnell Metaeditor oder Metatrader- Metatrader - Mathematisches Runden
Das "Problem" liegt im Vergleich von 2 Zahlen von Typ "double". Dieser Vergleich ist nicht korrekt, da die Zahlen im Programmspeicher in der binären Form und der Länge von 8 Byte abgelegt werden und eine Abweichung von z.B 0.00000000000001 das ganze Ergebnis "verfälschen könnte" , daher wird auch ein Vergleich auf GLEICH nie einen richtigen Ergebnis bringen. Richtig wäre in dem Fall Vergleich auf Differenz int Genauigkeit = 4; // z.B 4 Digits bool ist_gleich = false; double Zahl1 = 1.40000; double Zahl2 = 1.40001; if(NormalizeDouble(Zahl1 - Zahl2, Genauigkeit) == 0) { ist_gleich = true; Print(" die Zahlen sind gleich!"); } else Print(" die Zahlen sind ungleich!");- Metatrader - Mathematisches Runden
Jeder Preis in der Trade-Funktion (OrderSend, OrderModify o.ä) sollte normaliziert werden, deswegen brokerunabhängig würde ich es wie folgt die Preise aufbereiten: double o1 = NormalizeDouble(Open [1],Digits) ; Und um herauszufinden, warum nicht jeder Trade ausgeführt wird - würde ich jede Antwort vom Broker auf Fehler überpüfen und die mögliche Fehler mit der Funktion GetLastError() ausfindig machen und dementsprechend handeln- Anwenderbericht + Logik: EA WSS 9.5 (Winning Solution System; Indonesien)
Wenn genügend Trades pro Tag generiert werden, wäre ein Report aus Trade-History auch eine klasse Sache zur kompakten Darstellung der Trades und ihrer statistischen Auswertung- Datenübergabe Expertenmodus
Mit Expertenmodus, meinen Sie bestimmt Aufruf des Indikators aus einem Expert Advisor. Es können mehrer Gründe sein, warum keine Daten ausgegeben werden wie z.B: keine historische Daten, falscher Symbol, Fehler im Programmcode einfacher ist es durch das schritweise Debuggen mittels z.B Printfunktion Fehler auszufiltern, in dem man die Indikator-Daten in der Logdatei ausgibt- Hat jemand Erfahrung mit Broco
entweder ist der SL und TP zu nah zu dem Marktpreis oder SL und TP sind miteinander vertausht - Der Forex Millionaer
Navigation
Suche
Configure browser push notifications
Chrome (Android)
- Tap the lock icon next to the address bar.
- Tap Permissions → Notifications.
- Adjust your preference.
Chrome (Desktop)
- Click the padlock icon in the address bar.
- Select Site settings.
- Find Notifications and adjust your preference.
Safari (iOS 16.4+)
- Ensure the site is installed via Add to Home Screen.
- Open Settings App → Notifications.
- Find your app name and adjust your preference.
Safari (macOS)
- Go to Safari → Preferences.
- Click the Websites tab.
- Select Notifications in the sidebar.
- Find this website and adjust your preference.
Edge (Android)
- Tap the lock icon next to the address bar.
- Tap Permissions.
- Find Notifications and adjust your preference.
Edge (Desktop)
- Click the padlock icon in the address bar.
- Click Permissions for this site.
- Find Notifications and adjust your preference.
Firefox (Android)
- Go to Settings → Site permissions.
- Tap Notifications.
- Find this site in the list and adjust your preference.
Firefox (Desktop)
- Open Firefox Settings.
- Search for Notifications.
- Find this site in the list and adjust your preference.