[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 106
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Leute, Hilfe: Ich habe eine Bedingung in meinem EA, die eine Kaufposition nur dann eröffnet, wenn das Tief der vorherigen Kerze unter allen Tiefs der vorherigen 40 Kerzen liegt. Die Frage: Wie kann man diese Aufzählung der Tiefststände der vorherigen Kerze implementieren und herausfinden, ob der Tiefststand der vorherigen Kerze unter dem Tiefststand der vorherigen Kerze lag? Ich danke Ihnen im Voraus.
Ai danke!)
Hmmm... Hier ist das Problem... Die Daten sollten mit jedem neuen Tick und nur für die letzten 30 Balken aktualisiert werden... Ich behalte die Daten aus irgendeinem Grund
Helfen Sie mir, einen Fehler zu finden!
Ich schreibe einen EA, der auf der Strategie "Black MACD" basiert:
Währungspaar: beliebig
Zeitrahmen: 15 und mehr.
Indikatoren: EMA(3) EMA(18), RSI(14), MACD(12,26,9)
Wir entfernen die Signallinie des MACD-Indikators, alle Indikatoren werden auf den Close-Preisindikator angewendet.
Kaufsignal: EMA(3) kreuzt EMA(18) von unten nach oben, warten, bis der MACD auf der positiven Seite erscheint. Wenn der RSI(14) über der 50er-Marke liegt, sollten Sie kaufen. Der Stop-Loss wird auf das letzte lokale Minimum gesetzt. Beenden Sie den Handel, indem Sie den EMA-Crossover umkehren, oder verwenden Sie Ihren eigenen Ansatz.
Verkaufssignal: Umgekehrte Situation: Überschreiten des EMA(3) EMA(18) nach unten, abwarten, bis der MACD negativ wird. Wenn der RSI(14) unter 50 liegt, wird gekauft, der Stop-Loss wird auf das letzte Hoch gesetzt.
Beim Kompilieren des Codes wird festgestellt, dass eine Klammer fehlt. Nach langem Suchen schien ich die Stelle gefunden zu haben, wo sie sein sollte, aber nachdem ich den Fehler behoben hatte, bekam ich weitere 20-30 neue Fehler. Bitte teilen Sie mir mit, wo ich es übersehen habe. ))) Der Code befindet sich in der beigefügten Datei.
BlackvMACD.mq4 (5.21 KB) löschen
Lesen: https://book.mql4.com/ru/variables/arrays . Es stellt sich heraus, dass ich ein zweidimensionales Feld für drei Paare organisieren kann: double Mas_d[3][2] = {1, 0, 2, 0, 3,0};
wobei zu beachten ist, dass:
der Wert von Mas_d[1][1] entspricht z. B. dem AUDCAD-Paar, und Mas_d[1][2] ist der Wert dieses Paares;
der Wert von Mas_d[2][1] entspricht z.B. dem Paar AUDCHF und Mas_d[2][2] ist der Wert dieses Paares;
Wert Mas_d[3][1] entspricht zum Beispiel AUDJPY, und Mas_d[3][2] ist der Wert dieses Paares,
die Array-Elemente behalten ihre Werte zwischen den Ticks bei. Und dann kann ich die Werte der Array-Elemente nach dem gewünschten Kriterium ändern. Habe ich richtig verstanden, was Sie meinen? :)
Ja. Der Ansatz mag nicht der beste sein, aber jeder wählt ihn selbst. Und dann, wenn nötig, modernisieren und optimieren! :))
Ich bin gerade dabei, meinen Ansatz zu modernisieren. Das ist in manchen Fällen nicht sehr praktisch! :D
Ja. Der Ansatz ist vielleicht nicht der beste, aber jeder wählt ihn für sich selbst. Und dann, wenn nötig, modernisieren und optimieren! :))
Ich bin gerade dabei, meinen Ansatz zu modernisieren. Das ist in manchen Fällen nicht sehr praktisch! :D
Ich bin ein Anfänger und ich habe versucht, einen Test Expert Advisor zu schreiben, aber ich habe einen Fehler beim Kompilieren " \end_of_program' - ending bracket '}' expected C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" Ich weiß, ich habe es falsch geschrieben, könnten Sie mir bitte sagen, wo ich Fehler gemacht habe?
//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#property link "http://www.metaquotes.net"
double StopLoss=30;
double TakeProfit=100;
double Lots=0.1;
zurück(0);
int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
zurück(0);
{
Ich bin ein Anfänger und ich habe versucht, einen Test Expert Advisor zu schreiben, aber wenn ich es kompiliere, erhalte ich die Fehlermeldung "\end_of_program' - ending bracket '}' expected C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" Ich weiß, ich habe es falsch geschrieben, könnten Sie mir bitte sagen, wo der Fehler ist?
//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#property link "http://www.metaquotes.net"
double StopLoss=30;
double TakeProfit=100;
double Lots=0.1;
zurück(0);
int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
zurück(0);
{
Der Fehler ist, dass Sie das Handbuch nicht von vorne bis hinten gelesen haben. Wenn Sie ihn überhaupt geöffnet haben.
Aber Sie haben offensichtlich diesen Abschnitt übersehen: Bedingter Operator if - else.
Es wäre besser, das Buch von vorne bis hinten zu lesen.
Danke, ich werde es im Hinterkopf behalten :). Können Sie mir bitte sagen, welcher Mindeststopp-Loss für ein bestimmtes Währungspaar gilt? Zum Beispiel EURAUD - Sie können nicht setzen Stop-Loss weniger als 100 Pips für EURAUD, und für die anderen?
https://book.mql4.com/ru/appendix/marketinfo
Wie bildet man eine binäre Zahl, z. B. mit 7 Ziffern? Und wie kann sie dann (der Einfachheit halber) in eine Dezimalzahl umgewandelt werden?