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.

EA generiert nur Long-Signale

Geschrieben

Hallo Freunde,

 

ich habe einen Fehler im Programmcode und finde diesen leider nicht. Beim Backtest generiert der EA nur Long-Signale.

Die Short-Signale nimmt er beim angegebenen Take Profit nicht mit und läßt diese ins Minus laufen, bis diese dann im Verlust ausgestoppt werden. Ich finde den Fehler einfach nicht, kann mir jemand helfen ?

Ich würde mich freuen, wenn mir jemand per Mail helfen könnte,

Danke,

 

trading-hunter

Bearbeitet von ronner
Emailadresse entfernt +Titel geändert

Featured Replies

Geschrieben

hi trading-hunter,

 

Hilfe wird hier per Mail nicht gegeben, daher habe ich Deine Emailadresse wieder gelöscht (schon aus Spamgründen).

 

Fragen werden nur im Board behandelt, damit alle etwas davon haben.

Geschrieben
Ich finde den Fehler einfach nicht, kann mir jemand helfen ?

 

So pauschal würde ich einfach mal sagen: ja ;)

 

Um wirklich helfen zu können musst du aber ein paar mehr Details verraten. Optimal wäre natürlich der Source, aber ich kann verstehen wenn du den nicht online stellen willst.

 

Wie öffnest du Orders (nach welcher Logik bzw. nach welchen Signalen)? Auf Closebasis?

 

Du sagst er macht nur Longpositionen aber gleichzeitig führt er bei Shortpositionen den TP nicht aus?!?

 

gibst du den TP bei OrderSend mit oder händisch?

 

Wie gesagt ohne Infos über das Problem, gibt es auch keine Lösungen...

Geschrieben
  • Autor
So pauschal würde ich einfach mal sagen: ja ;)

 

Um wirklich helfen zu können musst du aber ein paar mehr Details verraten. Optimal wäre natürlich der Source, aber ich kann verstehen wenn du den nicht online stellen willst.

 

Wie öffnest du Orders (nach welcher Logik bzw. nach welchen Signalen)? Auf Closebasis?

 

Du sagst er macht nur Longpositionen aber gleichzeitig führt er bei Shortpositionen den TP nicht aus?!?

 

gibst du den TP bei OrderSend mit oder händisch?

 

Wie gesagt ohne Infos über das Problem, gibt es auch keine Lösungen...

 

 

Alles klar, ich wollte erst mal anfragen, bevor ich den Code einstelle. Es ist ein rel. einfaches Programm, da ich noch am Anfang bin. Am besten, ich füge das komplette Programm ein (im Anhang) und bitte- wie bereits erwähnt- um Eure Hilfe bei der Fehlersuche,

 

Danke

fl_m_experiments.mq4

Geschrieben

Was mir beim durchsehen aufgefallen ist:

 

Dein checkForOpen ist in der Form definitiv nicht wie du es gedacht hast oder?

 

bzgl. dem Rest: könntest du genau beschreiben welches fehlerhafte Verhalten der EA produziert? ("TP wird nicht ausgelöst" ist ein bissl zu allgemein. Mit einem Screenshot wo man den Trade sieht etc. kann man schon viel mehr arbeiten ;)

 

Dein TP wird erst nach einer gewissen Zeitspanne "scharf geschalten", liegts möglicherweise daran?

 

Ne kleine Anmerkung allgemein zum Code: verschachtelte if's ohne Klammern mit leerzeilen zwischen if und CodeBlock etc machen den Code nicht unbedingt leicht lesbar. (Wenn man ständig diverse EAs auf Fehler überprüfen soll, tut man sich einfach leichter wenn der Code auch leicht lesbar ist ;)

Geschrieben

void CheckForOpen() 
 {
  //if (Hour()<=5 || Hour()>=19) {return;}
  int res;
  if(prevtime == Time[0]) return;
  
  //if (Hour()>=6 && Hour()<=18)
 
//*****HIER SOLLTE DOCH EIN	if (Entry_Long()) rein ODER********  
 
  {
   res=OrderSend(Symbol(),OP_BUY,lot,Ask,Slippage,
				 Bid-Point*Stopp,Ask+Point*Profit,"long",MagicNumber,0,White);
				 prevtime = Time[0]; return;
  }
//----
  //if (Hour()>=6 && Hour()<=18)
  
  if (Entry_Short())
  
  {
   res=OrderSend(Symbol(),OP_SELL,lot,Bid,Slippage,
				 Ask+Point*Stopp,Bid-Point*Profit,"short",MagicNumber,0,Red);
				 prevtime = Time[0]; return;  
  } 
  }

zu deinem ersten Problem nur Long posi.

Der geht immer Long wenn du keine posi offen hast.

Fehlt da nicht ein if (Entry_Long())?

Für ein ShortSignal fehlt mir glaub der Indikator "Signal-SAR"

Leider kann ich nicht überprüfen ob der EA mit dem if (Entry_Long()) was bringt da mir auch hier der Indi fehlt.

 

zu deinem zweiten Problem kann ich nichts sagen da mir der Indikator fehlt oder habe ich das was übersehen?

 

noch was..

was soll das hier?

if ((TimeCurrent()-OrderOpenTime())>(TimeClose))

TimeClose ist bei dir 0...

Wenn du etwas um x Minuten verzögert haben willst dann muss die Syntax anders lauten. So wie es ist mit TimeClose==0 ist der gesamtwert immer true d.h. ab dem nächsten durchlauf.

 

bool Entry_Short()
 {
  double ind1 = iCustom(NULL, 0, "Signal-SAR",1000,Step1,0,0); 
  double ind2 = iCustom(NULL, 0, "Signal-SAR",1000,Step1,0,1);  
  
  if (ind1 < 0)
  if (ind2 > 0)
  
  return(true); else return(false);
 }

 

   if (ind1 < 0)
  if (ind2 > 0)
	 return(true); 
  else 
	  return(false);

 

Was passiert mit der Funktion wenn ind1>0 ist? da ist kein return vorhanden. Solltest dies auch abfangen oder passiert das NIE?

Geschrieben
  • Autor
Was passiert mit der Funktion wenn ind1>0 ist? da ist kein return vorhanden. Solltest dies auch abfangen oder passiert das NIE?

 

Also, erst mal schönen Dank für die schnelle Antwort.

 

Es ist so, daß ich ein schon vorhandenes Rahmenprogramm für die Erstellung genommen habe. Vielleicht ist das der Grund, daß es nach und nach nicht gerade übersichtlicher geworden ist. Ich stelle mal den verwendeten "Custom Indikator" (ist eigentlich nichts anderes als der Parabolic Sar Indikator) ein und einen Screen-Shot der Ergebnisse (einen Auszug davon) nach einem Backtest. Ich nehme an, daß Du damit viel mehr anfangen kannst. Die Orders sollen nicht zeitverzögert eröffnet werden, das habe ich dann falsch geschrieben. Vielleicht kannst Du ja das Programm vollständig optimieren und ich werde mich dann so nach und nach reindenken, was alles falsch war...

 

Danke !!!

Signal_SAR.mq4

Backtest.xls

Bearbeitet von ronner
Zitat gekürzt

Geschrieben

Ok

hab jetzt alles korrigiert was ich auf die schnelle gefunden habe.

mit

//********************************* Markiert und im Code geschrieben was ich verändert habe.

RH und RL Funktionen werden nicht aufgerufen.

 

- Signal_SAR Indi ausgetauscht. Indi heisst Signal_SAR und NICHT Signal-SAR

- extern draus gemacht Profit und Stopp sonst bekommst du bei manchen Broker probleme mit den zu engen Stopps

- if (Entry_Long()) eingefügt sonst geht er immer long

- EnterLong und Short so geändert wie ich meine dass du es so gemeint hast

fl_m_experiments_V2.mq4

Geschrieben
Vielleicht kannst Du ja das Programm vollständig optimieren und ich werde mich dann so nach und nach reindenken, was alles falsch war...

 

Nur zur Info: Es geht hier nicht darum das Anfänger ihre zusammengeschusterten EAs online stellen, wir erraten was das Ding tun sollen und eine "perfekte" Variante liefern. Wenn du deine Idee programmiert haben willst ohne selber mitzuwirken, dann gibts dafür genug Services!

 

Hier geht es darum konkrete Fragen und Probleme zu behandeln. "Der EA tut nicht was er soll, bitte klär das für mich" ist kein konkretes Problem.

 

Es wurden schon ein paar Punkte genannt die du überprüfen kannst. Ich würd vorschlagen du fangst da an.

Geschrieben
  • Autor
Nur zur Info: Es geht hier nicht darum das Anfänger ihre zusammengeschusterten EAs online stellen, wir erraten was das Ding tun sollen und eine "perfekte" Variante liefern. Wenn du deine Idee programmiert haben willst ohne selber mitzuwirken, dann gibts dafür genug Services!

 

Hier geht es darum konkrete Fragen und Probleme zu behandeln. "Der EA tut nicht was er soll, bitte klär das für mich" ist kein konkretes Problem.

 

Es wurden schon ein paar Punkte genannt die du überprüfen kannst. Ich würd vorschlagen du fangst da an.

 

 

Dann erst mal vielen Dank für die Hilfe. Ich werde alles durcharbeiten, dann habe ich bestimmt weitere Fragen.

Ich werde dann zukünftig detailliert das fragen, was für mich selbst ein Problem ist und was sich in der Gemeinschaft schneller klären läßt,

 

bis bald !

Geschrieben
Nur zur Info: Es geht hier nicht darum das Anfänger ihre zusammengeschusterten EAs online stellen, wir erraten was das Ding tun sollen und eine "perfekte" Variante liefern. Wenn du deine Idee programmiert haben willst ohne selber mitzuwirken, dann gibts dafür genug Services!

 

muß ich an dieser Stelle mal nachdrücklich unterstützen :empathy2:

 

@trading-hunter,

 

nicht falsch verstehen, es ist ein enormer Zeitaufwand, überhaupt anderer Leute Code bzw. Fragen versuchen zu lösen. Wenn man dann noch das Skript quasi perfekt zum laufen bringen soll - dann kommt das nicht so gut an :wub:

Geschrieben
  • Autor
muß ich an dieser Stelle mal nachdrücklich unterstützen :empathy2:

 

@trading-hunter,

 

nicht falsch verstehen, es ist ein enormer Zeitaufwand, überhaupt anderer Leute Code bzw. Fragen versuchen zu lösen. Wenn man dann noch das Skript quasi perfekt zum laufen bringen soll - dann kommt das nicht so gut an :wub:

 

 

Alle klar Leute, ich sehe das ein was hier gesagt wird.

Erst mal noch einen Dank an siskop für die schnelle Hilfe. Ich werde also- wie schon erwähnt- detaillierte Fragen stellen um meine Kenntnisse zu erweitern und bedanke mich jetzt schon für Eure Hilfe.

Ich möchte gerne wissen: wofür stehen in einem Programm die Bezeichnungen RH und RL ? :

 

double RH(int a, int b)

{

double RH1 = High[iHighest(NULL,0,MODE_HIGH,a,b)];

return(RH1);

}

double RL(int a, int b)

{

double RL1 = Low[iLowest(NULL,0,MODE_LOW,a,b)];

return(RL1);

 

 

 

Weiterhin bei folgender Zeilen:

 

double ind1 = iCustom(NULL, 0, "Signal_SAR",1000,Step1,0,0);

double ind2 = iCustom(NULL, 0, "Signal_SAR",1000,Step1,0,1);

 

wofür stehen die Schritte ( Step 1,0, 0 und darunter Step 1,0,1 ) ?

 

 

Ich muß jetzt detailliert fragen, da ich nur ein vorgefertigtes Rahmenprogramm verwendet habe in der Hoffnung, dieses für meine Zwecke zum Laufen zu bringen. Aber ganz so einfach ist das eben doch nicht.

Das schaffe ich nur mit Eurer Unterstützung,

 

Danke

Geschrieben

Sorry wenn die Frage jetzt blöd klingt, aber aufgrund von deinen Fragen drängt sie sich bei mir auf:

 

Hast du eine grundlegende Ahnung von MQL oder C? Weißt du wie man eine Funktion definiert?

 

Weil wenn nein, würde ich empfehlen einen Schritt zurück zu gehen und bei den Grundlagen beginnen bevor du dich an das umschreiben eines bestehenden Programms machst.

Geschrieben
  • Autor
Sorry wenn die Frage jetzt blöd klingt, aber aufgrund von deinen Fragen drängt sie sich bei mir auf:

 

Hast du eine grundlegende Ahnung von MQL oder C? Weißt du wie man eine Funktion definiert?

 

Weil wenn nein, würde ich empfehlen einen Schritt zurück zu gehen und bei den Grundlagen beginnen bevor du dich an das umschreiben eines bestehenden Programms machst.

 

 

 

Und wie soll das in der Praxis aussehen, diesen "Schritt zurück" ?

Geschrieben
Und wie soll das in der Praxis aussehen, diesen "Schritt zurück" ?

 

Wenn du englisch kannst (was beim selbstständigen Lernen von Programmiersprachen sehr hilfreich ist) zB das

offizielle MQL Book. Dort sind die Grundlagen der Sprache MQL erklärt. Und sobald du die Frage, was das "RH" und "RL" in dem Programm von dir bedeutet, selbst beantworten kannst, macht es mMn Sinn sich selbst mit der Entwicklung von Programmen zu beschäftigen.

 

Wenn es dir jedoch nicht um das lernen von MQL geht, sondern nur darum eine Strategie zu implementieren, findest du möglicherweise hier auch User die dir dabei helfen.

 

Es ist nur schwer über die Details eines Programms zu diskutieren, Fehler aufzuzeigen und auszubessern, wenn du die Grundlagen nicht kennst.

(Das wäre wie wenn man versucht die Rally-Fahrtechnik zu verbessern, während man sich noch fragt was der Ganghebel und die komischen Pedale tun)

Geschrieben
  • Autor
Wenn du englisch kannst (was beim selbstständigen Lernen von Programmiersprachen sehr hilfreich ist) zB das

offizielle MQL Book. Dort sind die Grundlagen der Sprache MQL erklärt. Und sobald du die Frage, was das "RH" und "RL" in dem Programm von dir bedeutet, selbst beantworten kannst, macht es mMn Sinn sich selbst mit der Entwicklung von Programmen zu beschäftigen.

 

Wenn es dir jedoch nicht um das lernen von MQL geht, sondern nur darum eine Strategie zu implementieren, findest du möglicherweise hier auch User die dir dabei helfen.

 

Es ist nur schwer über die Details eines Programms zu diskutieren, Fehler aufzuzeigen und auszubessern, wenn du die Grundlagen nicht kennst.

(Das wäre wie wenn man versucht die Rally-Fahrtechnik zu verbessern, während man sich noch fragt was der Ganghebel und die komischen Pedale tun)

 

Die Englischkenntnisse sind ja eben das Problem. Da diese nicht so besonders sind, versuche ich meine Kenntnisse auf diese Weise zu erhalten.

 

Es wäre mir aber auch erst mal geholfen, wenn ich eine bestimmte Strategie implementieren könnte mit Unterstützung der anderen User...

Geschrieben
Die Englischkenntnisse sind ja eben das Problem. Da diese nicht so besonders sind, versuche ich meine Kenntnisse auf diese Weise zu erhalten.

möglicherweise hilft der Google-Translator.

 

Es wäre mir aber auch erst mal geholfen, wenn ich eine bestimmte Strategie implementieren könnte mit Unterstützung der anderen User...

Dann solltest du es aber umgekehrt angehen ;) Nicht einen unfertigen, zusammengewürfelten EA online stellen. Sondern eher mit der Frage "MQL learning by doing, wer kann mir helfen?" einen Thread eröffnen ;)

 

Zusätzlich wäre es einerseits eine nette Geste, andererseits für dich sicher sehr hilfreich wenn du mal das MQL-Einsteiger Forum hier ein bissl durchforstest. Da findest du zB gleich zu Beginn das hier

Geschrieben
  • Autor
möglicherweise hilft der Google-Translator.

 

 

Dann solltest du es aber umgekehrt angehen ;) Nicht einen unfertigen, zusammengewürfelten EA online stellen. Sondern eher mit der Frage "MQL learning by doing, wer kann mir helfen?" einen Thread eröffnen ;)

 

Zusätzlich wäre es einerseits eine nette Geste, andererseits für dich sicher sehr hilfreich wenn du mal das MQL-Einsteiger Forum hier ein bissl durchforstest. Da findest du zB gleich zu Beginn das hier

 

 

So weit bin ich schon, mit dem Metatrader kenne ich mich ebenfalls gut aus. Es wäre mir für den Anfang geholfen, wenn jemand meine Fragen, die ich oberhalb gestellt habe, beantworten könnte. Alles andere mach ich dann schon...

Geschrieben

Hast du wirklich den gesamten "Einstieg in die MQL-Programmierung" durchgearbeitet? Soweit ich mich erinnere wurden dort eigentlich alle deine Fragen bereits beantwortet.

 

Ich möchte gerne wissen: wofür stehen in einem Programm die Bezeichnungen RH und RL ? :

 

RH und RL sind weder built-in functions noch vordefinierte Konstante, von daher ist die Bedeutung abhängig vom Programm. In deinem Fall sind es Namen von Funktionen

 

double ind1 = iCustom(NULL, 0, "Signal_SAR",1000,Step1,0,0);

double ind2 = iCustom(NULL, 0, "Signal_SAR",1000,Step1,0,1);

 

wofür stehen die Schritte ( Step 1,0, 0 und darunter Step 1,0,1 ) ?

 

"Step 1" kommt hier nirgends vor. Es gibt "Step1" und das ist ein variablenname. Die Syntax von iCustom findest du in der MQL-Docu im MetaEditor:

double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

 

Jetzt mal ehrlich, hat dir diese Antwort geholfen?

Geschrieben
  • Autor
Jetzt mal ehrlich, hat dir diese Antwort geholfen?

 

Danke,

 

die Antwort hat mir wenigstens etwas geholfen. Ich muß mir erst nochmal alles in Zusammenhang mit dem Programm durchsehen und alles nochmal komplett durcharbeiten, bis ich Schritt für Schritt weiterkomme.

Mann müsste das mql- Book eben auf deutsch haben (das gibt es auch bei einem Anbieter- xtb broker oder so ähnlich). Aber man muß dort erst ein Lifekonto eröffnen...

 

naja, danke erst mal

Bearbeitet von ronner
Zitat gekürzt

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

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.