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.

Probleme mit Beispiel EA

Geschrieben

Hallo zusammen,

 

Ihr kennt doch sicher das Beispiel hier als Anlage.

 

Da soll sollen 2 MA Linien verglichen werden MA8 und MA13, wenn die 8er die 13er kreuzt soll einen buy Position eröffnet werden und wenn die 13er wieder die 8er kreuzt die buy geschlossen und eine short-Position eröffnet werden und immer wieder das gleiche.

 

Ich habe jetzt auch schon eine Weile damit rumprobiert aber irgendwie muss da ein Bug drin sein.

Könnte da mal Bitte jemand drüber schauen, woran das liegen kann dass die obengenannten Bedingungen nicht abgearbeitet werden?

 

Grüße

Jens

13_My_First_EA.mq4

Featured Replies

Geschrieben
Ich habe jetzt auch schon eine Weile damit rumprobiert aber irgendwie muss da ein Bug drin sein.

Könnte da mal Bitte jemand drüber schauen, woran das liegen kann dass die obengenannten Bedingungen nicht abgearbeitet werden?

 

Inwiefern nicht abgearbeitet? Wird nicht eingestiegen oder nicht ausgestiegen? Eine etwas genauere Anfrage würd die Chancen auf Hilfe und Antwort wesentlich erhöhen.

Geschrieben
  • Autor

Achso sorry :news:

 

Also er macht einen großen Trade öffnet am Anfang eine Postion und schliesst diese dann am letzten

Tag des Testlaufes wieder.

Also verfolgt nicht die beabsichtigte Strategie dass beim kreuzen der Linien die alte Position geschlossen

wird, und eine neue in die andere Richtung da wo der neue Trend hin geht geöffnet wird.

 

Ich hoffe mal dass die Beschreibung jetzt ein wenig besser ist :news:

Geschrieben
Also er macht einen großen Trade öffnet am Anfang eine Postion und schliesst diese dann am letzten

Tag des Testlaufes wieder.

Egal in welche Richtung der erste Trade war? oder wird immer nur ein zB Long eröffnet (auch wenn du "direkt" vor einem Shorteinstieg startest)?

Gibts irgendwelche Errors oder "verdächtige" Meldungen im Log oder Journal?

 

Auf die Schnelle wär mir jetzt nix aufgefallen warum er nicht schließen sollte. Was mir auffällt: Wenn eine Pos offen ist und es kreuzt, schließt er die Position vermutlich nur, würde aber keine neue aufmachen (also wenn er schließen würde ;)

 

 

Ich hoffe mal dass die Beschreibung jetzt ein wenig besser ist :news:

Schon um einiges besser, danke ;)

Geschrieben

Mir scheint Du bist da ein wenig durcheinander gekommen :news:

1)
//dürfte so nicht funzen...glaube ich
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)
//entweder
OrderSelect(ticket,SELECT_BY_TICKET)
//oder
OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES) // sofern ticket nicht das Ticket ist
//------------------------------------------------------------------------
2)
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
       {
        if(OrderType()==OP_BUY)
//wenn dann
OrderType()==OP_SELL
//oder
OrderType()!=OP_SELL
//------------------------------------------------------------------------
3)
isCrossed == 1 //buy
isCrossed == 2 //sell
//------
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // hier ist OrderType()==OP_SELL
       {
        if(OrderType()==OP_BUY)   //wieso ist OrderType() hier OP_BUY
          {
           //also bei einer offenen Order kann das nicht funzen, da er nie bis zu OrderClose durchkommt.
           //entweder wird er bei OP_BUY oder bei OP_SELL gebremst
          if(isCrossed == 2)//was soll diese if bezwecken?
               {
                OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                return(0); // exit
               }

Hoffe ich liege nicht falsch :news:

 

LG

Geschrieben

Hey NikkChade,

 

zu deinen Bedenken:

 

//dürfte so nicht funzen...glaube ich
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)

Doch "The pool parameter is ignored if the order is selected by the ticket number". Man müsste ihn nicht schreiben, aber es ist kein Fehler

 

zu

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
	{
	 if(OrderType()==OP_BUY)
...

 

Hier muss man bedenken das OP_SELL etc. nur vordefinierte Konstante, also Zahlen sind.

OP_BUY = 1, OP_SELL = 2 etc.

OrderType() <= OP_SELL
hat also den gleichen Effekt wie
(OrderType() == OP_BUY || OrderType() == OP_SELL)

insofern ist der Teil auch korrekt (soweit ich das sehe)

 

hth

Geschrieben
Hey NikkChade,

zu deinen Bedenken:

Doch "The pool parameter is ignored if the order is selected by the ticket number". Man müsste ihn nicht schreiben, aber es ist kein Fehler

 

Da beweist sich mal wieder die These:

Wer Lesen kann ist klar im Vorteil :news:

 

zu

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
	{
	 if(OrderType()==OP_BUY)
...

Hier muss man bedenken das OP_SELL etc. nur vordefinierte Konstante, also Zahlen sind.

OP_BUY = 1, OP_SELL = 2 etc.

OrderType() <= OP_SELL

hat also den gleichen Effekt wie

(OrderType() == OP_BUY || OrderType() == OP_SELL)

insofern ist der Teil auch korrekt (soweit ich das sehe)

Das wusste ich leider noch nicht dass es auch so laufen kann.

Habe es wahrscheinlich deswegen vermutet, weil ich bisher keine "Ziffernzuweisung" gefunden habe.

Aber ist schonmal gut zu wissen...

 

Mh, dann muss ich wohl weiter tüfteln :news:

Danke aber für die Verbesserung...

 

LG NC

Geschrieben
  • Autor

Ich dachte der Code sollte eigentlich funzen, weil dass das Beispiel aus dem MQL4

Programmierhandbuch ist.

 

Sollte ein ganz normaler Trendfolger sein.

 

Wenn ich wie in dem hogeladenen Beispiel den letzten Codeblock ausklammer macht er

einen Trade und schliesst erst beim letzten Tag im Strategitester.

 

Wenn ich den letzten Block drinlasse habe ich lauter kleine Verluste von -3Pips pro Trade.

Geschrieben
Wenn ich wie in dem hogeladenen Beispiel den letzten Codeblock ausklammer macht er

einen Trade und schliesst erst beim letzten Tag im Strategitester.

 

Lol, ja wer lesen kann... hab die Ausklammerung doch glatt überlesen. :news:

Wenn du den Teil wo Orders geschlossen werden wegnimmst is doch klar das er keine Orders schließt!

 

Wenn ich den letzten Block drinlasse habe ich lauter kleine Verluste von -3Pips pro Trade.

 

Das kann gut sein. Sind es immer exakt gleich große Verluste? Sind sie immer gleich "schnell", oder laufen manche Trades länger und manche kürzer?

 

Du nimmst die Werte des aktuellen Bars, die ändern sich aber ständig, da kann ich mir gut vorstellen das er nach dem cross schnell ein gegensignal kriegt und direkt wieder aussteigt.

Geschrieben
  • Autor

Ja stimmt, boahh das passiert wenn ich zu lange vorm PC sitze da seh ich den TFT vor laauter Pixel nimmer :-(

 

Ja genau er mach immer gleich große Verluste von ca. 3 Pips, also dem Spread denke ich.

 

Wie kann ich denn das ändern dass er zum Beispiel ein Bar davor nimmt wie beim iCustom, leider gibts so was beim OrderClose nicht?

Geschrieben

hallo,

 

ich lese gerade auch das tutorial und hab irgendwie das gleiche problem:

 

schaut man sich diesen EA im strategy tester an stellt man fest, dass er gar keine käufe tätigt.

ich bin noch kurz joggen danach versuchs ich auch nochmal nachzuollziehen.

Geschrieben
Wie kann ich denn das ändern dass er zum Beispiel ein Bar davor nimmt wie beim iCustom, leider gibts so was beim OrderClose nicht?

? Inwiefern willst du beim OrderClose den Bar davor nehmen? Du kannst eine Order nur zum aktuellen Zeitpunkt schließen, und nicht sagen "schließ die Order gestern...".

Aber du solltest vielleicht beim MA den Wert vom letzten Bar nehmen, da dieser der aktuellste Wert ist, der sich nicht mehr ändert (der aktuelle Wert ändert sich ja ständig).

Dann bleibt nur noch das Problem, das er beim raufkreuzen eröffnet, beim runterkreuzen schließt aber (da in dem Moment ja bereits eine Order offen war) nichts eröffnet und somit erst beim nächsten raufkreuzen wieder eine Long eröffnet.

 

 

schaut man sich diesen EA im strategy tester an stellt man fest, dass er gar keine käufe tätigt

 

dürfte nur daran liegen was die erste Kreuzung war oder? versuchs mal zu einem anderen Zeitpunkt starten, wo die MAs am Beginn anders rum stehen, dann solltens keine Verkäufe sein.

Geschrieben
  • Autor
:) hatte ausversehen 2 verschiedene EAs auf in unterschiedlichen Ordnern. Bei mir läuft zumindest im Test das Programm fehlerlos

 

Echt?

kanst Du mal mal Deinen Beispiel Code posten. Kann sein dass ich in meinem schön zu viel "rumgeschrieben" habe ;)

 

 

@Mythos

Mir ging es eigentlich eher darum dass der Code aus einem Turtorial eigentlich laufen müsste,

was die eigentlichen Funktionen genau machen, da bin ich gerade am "lernen" ... :-)

Geschrieben
Mir ging es eigentlich eher darum dass der Code aus einem Turtorial eigentlich laufen müsste,

 

Er läuft ja auch oder? Das Problem war ja, das du Teile auskommentiert hast, die eigentlich wichtig waren oder?

 

Oder gibts immer noch Probleme?

Geschrieben
  • Autor
Er läuft ja auch oder? Das Problem war ja, das du Teile auskommentiert hast, die eigentlich wichtig waren oder?

 

Oder gibts immer noch Probleme?

 

So hab jetzt mal den Originalcode verwendet. :-)

 

Probleme hmmmm... naja schaut euch mal das Ergebnis an, hab es mal angehängt,

was haltet ihr davon?

 

Da sieht man es jetzt schön mit den kleinen Verlusten.

StrategyTester.htm

post-1309-1268656741_thumb.png

Geschrieben

Ich habe mir den EA nicht angeschaut, aber so rein vom Gelesenen her würde ich vermuten, dass Du nicht den Candleclose abwartest. Das führt dann dazu, dass bei einem Kreuzen der MAs der Trade eingegangen wird und quasi eventuell sofort das Gegenkreuzen stattfindet. Trade wird dann sofort geschlossen und Du zahlst immer schön den Spread, was ja auch im Statement ersichtlich wird.

 

Nun gibt es mehrere Möglichkeiten:

1.) Du machst nicht sofort beim Kreuzen einen Trade sondern wartest, bis der schnelle GD eine gewissen Abstand über bzw. unter dem langsamen GD erreicht hat

2.) Du wartest auf Candleclose

3.) Du machst beides

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.