Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Expert-Advisor 1 (http://www.expert-advisor.com/forum/forumdisplay.php?f=287)
-   -   Forums-EA :) (http://www.expert-advisor.com/forum/showthread.php?t=1794)

Alexk84 31.12.11 11:42

Zitat:

Zitat von rumpe (Beitrag 7381)
ahh ich denke ich habs, ich habe gedacht man sieht in im metaeditor, dabei ist es nicht so oder? man hat zwar ein expert advisor aber man sieht nicht wie er programmiert ist? genau so wie wenn man einen kauft?


So ist es.

Crashbulle 31.12.11 15:25

@rumpe

Hallo,
.ex4-Dateien sind lauffähige, die in den Expert kommen und der dann laufen kann. Geschrieben wird das Programm als .mq4-Datei. Das schreiben geht auch mit dem EDITOR von Windows unter Beachtung der MQ4-Vorgaben. Nur muß man vor dem Kompilieren zur .ex4 oder zum bearbeiten im MT4-Editor, die Endung .txt einfach in .mq4 manuell ändern! Achso, in "C" geht das schreiben auch.

Guten Rutsch

Craschbulle

P.S.:Zum überprüfen einfach eine .mq4-Datei nehmen, die Endung manuell in.txt änder und mit dem Windows-Editor öffnen und betrachten.

JoeDormann 01.01.12 04:39

Bedingungen für Einstiege und Targets
 
Hallo im neuen Jahr ;)

Hier die versprochenen Bedingungen für Einstiege und Targets.
Bsp:
Wenn Parameter für inMon=3 dann
eröffne einen Sell Trade bei L3 mit Target L4
oder
eröffne einen Buy Trade bei H3 mit Target H4

Jetzt könnt Ihr sehen, was hinter den Nummern 1..66 steckt.

z.B. ist 1 Trend und 11 ist Korrektur. Sehr vielfältig das Ganze.

Ich spiele nioch mit dem Gedanken für L und H z.B. mit S und R oder mit den M-Werten zusätzlich zu besetzen. Mal sehn.

Gruß Joe

Code:

void goIn(int inTag) {
  if(H6-L6>=minHub*Point) {
      if(anzTrades(OP_SELL)==0) {
        if(inTag==01 && Bid>=L5)doShort(L6);else
        if(inTag==02 && Bid>=L4)doShort(L5);else
        if(inTag==03 && Bid>=L3)doShort(L4);else
        if(inTag==04 && Bid>=L2)doShort(L3);else
        if(inTag==05 && Bid>=L1)doShort(L2);else
        if(inTag==06 && Bid>=H1)doShort(L1);else
        if(inTag==07 && Bid>=H2)doShort(H1);else
        if(inTag==08 && Bid>=H3)doShort(H2);else
        if(inTag==09 && Bid>=H4)doShort(H3);else
        if(inTag==10 && Bid>=H5)doShort(H4);else
        if(inTag==11 && Bid>=H6)doShort(H5);else

        if(inTag==12 && Bid>=L4)doShort(L6);else
        if(inTag==13 && Bid>=L3)doShort(L5);else
        if(inTag==14 && Bid>=L2)doShort(L4);else
        if(inTag==15 && Bid>=L1)doShort(L3);else
        if(inTag==16 && Bid>=H1)doShort(L2);else
        if(inTag==17 && Bid>=H2)doShort(L1);else
        if(inTag==18 && Bid>=H3)doShort(H1);else
        if(inTag==19 && Bid>=H4)doShort(H2);else
        if(inTag==20 && Bid>=H5)doShort(H3);else
        if(inTag==21 && Bid>=H6)doShort(H4);else

        if(inTag==22 && Bid>=L3)doShort(L6);else
        if(inTag==23 && Bid>=L2)doShort(L5);else
        if(inTag==24 && Bid>=L1)doShort(L4);else
        if(inTag==25 && Bid>=H1)doShort(L3);else
        if(inTag==26 && Bid>=H2)doShort(L2);else
        if(inTag==27 && Bid>=H3)doShort(L1);else
        if(inTag==28 && Bid>=H4)doShort(H1);else
        if(inTag==29 && Bid>=H5)doShort(H2);else
        if(inTag==30 && Bid>=H6)doShort(H3);else

        if(inTag==31 && Bid>=L2)doShort(L6);else
        if(inTag==32 && Bid>=L1)doShort(L5);else
        if(inTag==33 && Bid>=H1)doShort(L4);else
        if(inTag==34 && Bid>=H2)doShort(L3);else
        if(inTag==35 && Bid>=H3)doShort(L2);else
        if(inTag==36 && Bid>=H4)doShort(L1);else
        if(inTag==37 && Bid>=H5)doShort(H1);else
        if(inTag==38 && Bid>=H6)doShort(H2);else

        if(inTag==39 && Bid>=L1)doShort(L6);else
        if(inTag==40 && Bid>=H1)doShort(L5);else
        if(inTag==41 && Bid>=H2)doShort(L4);else
        if(inTag==42 && Bid>=H3)doShort(L3);else
        if(inTag==43 && Bid>=H4)doShort(L2);else
        if(inTag==44 && Bid>=H5)doShort(L1);else
        if(inTag==45 && Bid>=H6)doShort(H1);else

        if(inTag==46 && Bid>=H1)doShort(L6);else
        if(inTag==47 && Bid>=H2)doShort(L5);else
        if(inTag==48 && Bid>=H3)doShort(L4);else
        if(inTag==49 && Bid>=H4)doShort(L3);else
        if(inTag==50 && Bid>=H5)doShort(L2);else
        if(inTag==51 && Bid>=H6)doShort(L1);else

        if(inTag==52 && Bid>=H2)doShort(L6);else
        if(inTag==53 && Bid>=H3)doShort(L5);else
        if(inTag==54 && Bid>=H4)doShort(L4);else
        if(inTag==55 && Bid>=H5)doShort(L3);else
        if(inTag==56 && Bid>=H6)doShort(L2);else
       
        if(inTag==57 && Bid>=H3)doShort(L6);else
        if(inTag==58 && Bid>=H4)doShort(L5);else
        if(inTag==59 && Bid>=H5)doShort(L4);else
        if(inTag==60 && Bid>=H6)doShort(L3);else

        if(inTag==61 && Bid>=H4)doShort(L6);else
        if(inTag==62 && Bid>=H5)doShort(L5);else
        if(inTag==63 && Bid>=H6)doShort(L4);else
       
        if(inTag==64 && Bid>=H5)doShort(L6);else
        if(inTag==65 && Bid>=H6)doShort(L5);else

        if(inTag==66 && Bid>=H6)doShort(L6);
      }
      if(anzTrades(OP_BUY)==0) {
        if(inTag==01 && Bid<=H5)doLong(H6);else
        if(inTag==02 && Bid<=H4)doLong(H5);else
        if(inTag==03 && Bid<=H3)doLong(H4);else
        if(inTag==04 && Bid<=H2)doLong(H3);else
        if(inTag==05 && Bid<=H1)doLong(H2);else
        if(inTag==06 && Bid<=L1)doLong(H1);else
        if(inTag==07 && Bid<=L2)doLong(L1);else
        if(inTag==08 && Bid<=L3)doLong(L2);else
        if(inTag==09 && Bid<=L4)doLong(L3);else
        if(inTag==10 && Bid<=L5)doLong(L4);else
        if(inTag==11 && Bid<=L6)doLong(L5);else

        if(inTag==12 && Bid<=H4)doLong(H6);else
        if(inTag==13 && Bid<=H3)doLong(H5);else
        if(inTag==14 && Bid<=H2)doLong(H4);else
        if(inTag==15 && Bid<=H1)doLong(H3);else
        if(inTag==16 && Bid<=L1)doLong(H2);else
        if(inTag==17 && Bid<=L2)doLong(H1);else
        if(inTag==18 && Bid<=L3)doLong(L1);else
        if(inTag==19 && Bid<=L4)doLong(L2);else
        if(inTag==20 && Bid<=L5)doLong(L3);else
        if(inTag==21 && Bid<=L6)doLong(L4);else

        if(inTag==22 && Bid<=H3)doLong(H6);else
        if(inTag==23 && Bid<=H2)doLong(H5);else
        if(inTag==24 && Bid<=H1)doLong(H4);else
        if(inTag==25 && Bid<=L1)doLong(H3);else
        if(inTag==26 && Bid<=L2)doLong(H2);else
        if(inTag==27 && Bid<=L3)doLong(H1);else
        if(inTag==28 && Bid<=L4)doLong(L1);else
        if(inTag==29 && Bid<=L5)doLong(L2);else
        if(inTag==30 && Bid<=L6)doLong(L3);else

        if(inTag==31 && Bid<=H2)doLong(H6);else
        if(inTag==32 && Bid<=H1)doLong(H5);else
        if(inTag==33 && Bid<=L1)doLong(H4);else
        if(inTag==34 && Bid<=L2)doLong(H3);else
        if(inTag==35 && Bid<=L3)doLong(H2);else
        if(inTag==36 && Bid<=L4)doLong(H1);else
        if(inTag==37 && Bid<=L5)doLong(L1);else
        if(inTag==38 && Bid<=L6)doLong(L2);else

        if(inTag==39 && Bid<=H1)doLong(H6);else
        if(inTag==40 && Bid<=L1)doLong(H5);else
        if(inTag==41 && Bid<=L2)doLong(H4);else
        if(inTag==42 && Bid<=L3)doLong(H3);else
        if(inTag==43 && Bid<=L4)doLong(H2);else
        if(inTag==44 && Bid<=L5)doLong(H1);else
        if(inTag==45 && Bid<=L6)doLong(L1);else

        if(inTag==46 && Bid<=L1)doLong(H6);else
        if(inTag==47 && Bid<=L2)doLong(H5);else
        if(inTag==48 && Bid<=L3)doLong(H4);else
        if(inTag==49 && Bid<=L4)doLong(H3);else
        if(inTag==50 && Bid<=L5)doLong(H2);else
        if(inTag==51 && Bid<=L6)doLong(H1);else

        if(inTag==52 && Bid<=L2)doLong(H6);else
        if(inTag==53 && Bid<=L3)doLong(H5);else
        if(inTag==54 && Bid<=L4)doLong(H4);else
        if(inTag==55 && Bid<=L5)doLong(H3);else
        if(inTag==56 && Bid<=L6)doLong(H2);else

        if(inTag==57 && Bid<=L3)doLong(H6);else
        if(inTag==58 && Bid<=L4)doLong(H5);else
        if(inTag==59 && Bid<=L5)doLong(H4);else
        if(inTag==60 && Bid<=L6)doLong(H3);else

        if(inTag==61 && Bid<=L4)doLong(H6);else
        if(inTag==62 && Bid<=L5)doLong(H5);else
        if(inTag==63 && Bid<=L6)doLong(H4);else

        if(inTag==64 && Bid<=L5)doLong(H6);else
        if(inTag==65 && Bid<=L6)doLong(H5);else

        if(inTag==66 && Bid<=L6)doLong(H6);
      }
  }
}


BlueKingMuch 01.01.12 04:52

auch noch auf ;)

bin gerade am Backtesten,

da hat sich bei mir die Frage aufgestellt:
In welchem Perioden sollte man den EA Forwardtesten/Backtesten? Daily geht am schnellsten und ich bekomme witzigerweise beim Optimizing auf wahnwitzige Perfomancen...

Optimizing hab ich alles angehakt, nur folgendes hab ich Statisch:
GMTshift:0
multitrade:1
startlotsize:0,01
nkDiffPips:6
nkTradesLotSize:0.01
nkTradesLotErh:1

Zeitraum:2008.01.01 - Heute (ziemlich Miese Sauereien im Chart)

trotz dem und dem unglaublichem Startguthaben von 40 Euro
erhalte ich seltsame Werte von Gewinne 370000 mit Profit Faktor 676 und maximalen 5% Drawdown...

scheint mir ja ein Backtestingfail zu sein, aber nur um sicherzugehen, ists doch besser den Rechner auf M5 3 Tage durchlaufen zu lassen oder kann ich getrost mit den Settings schon nen Forwardtest machen?

LG Michael

JoeDormann 01.01.12 06:07

Hmm,

wenn man im Daily auf Open Basis testet, dann könnte evtl. ein Forewardtest nicht klappen.

Grund;
Im Forewardtest arbeitest Du auf Tickbasis.
Du nimmst also alles mit was kommt.

Da müßte ich im EA noch die Möglichkeit bietet, auf Openbasis arbeiten zu können. Das macht Sinn und kommt ins nächste Release mit rein.

Statistik:
Ich überlege, ob ich den Real-Statistik-Indikator gleich mit reinhaue in den EA, dann brauche ich wegen der Benutzung nicht hinterherzulaufen.
Was meint Ihr dazu ?

Gruß Joe

JuriCZ 01.01.12 20:30

Zitat:

Statistik:
Ich überlege, ob ich den Real-Statistik-Indikator gleich mit reinhaue in den EA, dann brauche ich wegen der Benutzung nicht hinterherzulaufen.
Was meint Ihr dazu ?
Schlecht ist das sicher nicht.

Ich lasse gerade den EA auf einer Demo laufen, die Zeit wird Zeigen ob gut oder schlecht :cool:

Freidenker 02.01.12 15:09

BT
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo allerseits

Ich habe mal meinen Rechner heisslaufen lassen und den EA mit einem Max. Drawdown von 30% backgetestet.
Mein Zeitraum ist vom Januar 2003 bis November 2006. Zeitrahmen H4
Es folgt noch ein Report im Zeitrahmen H1
Ich werde mal die die besten Einstellungen auf Tickbasis durchrechnen lassen und dann in einem Excel auflisten.
Nachdem ich 2-3 gute sets herausgefiltert habe werde ich einen Vorwärtstest mit den Daten von Dez.2006 bis Dez. 2010 vornehmen.

Im Anhang habe ich den Optimisations-Report hochgeladen. Was sofort auffällt ist die Menge der Trades und der geringe Gewinn bei einem gewünschten tiefen Drawdown.

Im Excel könnte dann jeder seine Ergebnisse aktualisieren so dass wir hoffentlich am Schluss eine Reihe von Sets erhalten die jedem individuellen "Risiko-Charakter" hier im Forum entsprechen ...

Grüsse Freidenker

JoeDormann 02.01.12 20:08

Hallo,

bitte keine zu großen Zeiträume(>1Jahr) testen, weils wenig Sinn macht.
Ich habe oben schon mal beschrieben wie ich vorgehe.

Tip:
Der Drawdown in Geld sollte nicht größer als 30% des Kontoanfangs, und der Drawdown in % auch nicht größer als 30% sein.

Mir ist schon klar, das der Gewinn nicht der Knaller ist, aber es geht ja darum das Konto nicht abzuschiessen und dennoch ein akzeptables Plus zu machen.

Generell erwarte ich für den Euro, in etwa den gleichen Verlauf bis zum Sommer.
D.h. jetzt etwas ansteigend, um dann später umso mehr nach unten zu schauen. Also aus meiner Sicht SHORT. Also teste ich erstmal einen Shortbereich, der auch Aussreisser nach oben hat, aber insgesamt eben Short ist.

So erhalte ich ein brauchbares Set unter den oben genannten Restriktionen.

Gruß Joe
Version ForumsEA 01.05 ist auf dem Weg.

charlie 02.01.12 21:52

Zitat:

Zitat von JoeDormann (Beitrag 7369)
Das kann man nur schlecht, bis garnicht backtesten oder optimieren.
Es sei denn Du würdest alle Newstimes eines kompletten Jahres in einer CSV-Datei für uns erfassen, und die zukünftigen auch immer.
Willst Du das?

Der EA soll ja auch nur dann traden, wenn es weitestgehend ungefährlich ist.
Also kann es schon sein, das er mitunter mal 1 Monat oder 2 nicht handelt.
Na und...? Willst Du verlieren oder gewinnen?

Das Gesamtergebnis ist maßgeblich und wenn man auf durchschnittlich 5..20%/Monat kommt, ist das doch super. Bei anderen Vorstellungen bist mit dem EA falsch beraten!
Es gibt keinen schnellen Reichtum ohne Risiko!

Gruß Joe

Im normal Daytrading bin ich meist ein Verfechter davon das News irrelevant sind, da sie ein Peak erzeugen der sich entweder nach 1-2 stunden wieder abgebaut hat oder den Ausbruch in Threadrichtung verstärken können. Doch meine ich das bei ein automatischen Trading eine News Funktion schon sehr nützlich sein kann um nicht sinnlos in die SL`s zu kommen.
Es gibt code dafür der News von 1. Jan 2006 an aufzeichnen in new Archive und für alle Währungspaare verfügbar sind und nach prioritär gestaffelt sind. Ich benutze sie auch um mich vor solchen News zu informieren/schützen.
FFcal - Plot News indicator @ Forex Factory
Evt. kannst du es dir ja mal anschauen Joe ist schon alles fertig zum integrieren ist für dich bestimmt ein leichtes, sonst melde dich mal ich kann ihn dir vorstellen.

lg,
chalie

JoeDormann 03.01.12 01:33

Zitat:

Zitat von charlie (Beitrag 7458)
Im normal Daytrading bin ich meist ein Verfechter davon das News irrelevant sind, da sie ein Peak erzeugen der sich entweder nach 1-2 stunden wieder abgebaut hat oder den Ausbruch in Threadrichtung verstärken können. Doch meine ich das bei ein automatischen Trading eine News Funktion schon sehr nützlich sein kann um nicht sinnlos in die SL`s zu kommen.
Es gibt code dafür der News von 1. Jan 2006 an aufzeichnen in new Archive und für alle Währungspaare verfügbar sind und nach prioritär gestaffelt sind. Ich benutze sie auch um mich vor solchen News zu informieren/schützen.
FFcal - Plot News indicator @ Forex Factory
Evt. kannst du es dir ja mal anschauen Joe ist schon alles fertig zum integrieren ist für dich bestimmt ein leichtes, sonst melde dich mal ich kann ihn dir vorstellen.

lg,
chalie

Nee,
das ist für mich auch nicht leicht. Macht echt Arbeit.
Da im EA aber kein SL verwendet wird, wird man auch nicht ausgestopt ;)
Wozu dann die Trades schliessen? Um sie danach wieder aufzumachen :confused:

SL ist gewöhnlich ein Arbeitsmittel der merkwürdigen Broker, die gelegentlich Stoplossfishing betreiben.
SL ist derzeit kein Teil der Strategie dieses EAs.
Insofern frage ich mich natürlich, inwieweit Du Dich mit dem EA bereits beschäftigt hast.

Der EA fängt nicht unter xx Hub an zu arbeiten. Hat er nun einen Spike erwischt, kann er je nach Einstellung eine kurze Korrektur traden. Kommt echt auf die Einstellungen an.

Der EA ist eher ein Weektrader ;)

Gruß Joe


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:33 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum