Jump to content
Tom Next - Daytrading Community

Recommended Posts

Posted (edited)

Hallo!

 

Ich stelle hier mal einen EA vor, über den ich durch Zufall gestolpert bin.

 

Er nennt sich AIS1 und ist von Ais.

 

Im Backtest bei 90 % macht er gute Ergebnisse:

Daten: Alpari, Zeitraum: 02.01.2008 bis 12.03.2009

 

 

Bei 1000 €

http://img142.imageshack.us/img142/6641/ais11000eur.th.gif

 

bei 3000 €

http://img142.imageshack.us/img142/448/ais13000eur.th.gif

 

bei 10.000 €

http://img142.imageshack.us/img142/8849/ais110000eur.th.gif

 

bei 100.000 €

http://img142.imageshack.us/img142/6164/ais1100000eur.th.gif

 

 

Im Anhang habe ich die entsprechenden Berichte als htms gespeichert.

 

Das Ding hat auf jeden Fall MM drinne. Auch muss eine gewisse Midnestkapitalgröße vorhanden sein.

Einstellen kann man den nur über den Editor, nicht über die Einstellungen direkt aus der EA-Funktion.

Auf welchem Chart man den laufen lässt, ist egal, er rechnet immer mit 1M (bestätigt durch die backtests)

 

Ich will den zukünftig mal auf einem Demokonto laufen lassen, unter activtrades.

 

Leider bin ich noch nicht dahintergestiegen, wo genau man die Einstellungen vornehmen muss bzw. welche was verändert (zB würde ich gerne minimale Lotgröße auf 0.01 setzten, das Ding geht scheinbar erst bei 0.1 los).

 

Man benötigt hierfür einen Indikator:

http://codebase.mql4.com/5337

 

und den EA:

http://codebase.mql4.com/5260

 

Da sind auch englische Anleitungen mit bei. Leider ist mein Englisch nicht umwerfend, ich werde mich da mal reinfummeln.

 

 

Kennt jemand von euch den EA?

 

Grüße

Henrik

AIS1_gesammelt.zip

Edited by Henrik
Posted
Leider bin ich noch nicht dahintergestiegen, wo genau man die Einstellungen vornehmen muss bzw. welche was verändert

 

Ja, ich stelle gerade fest, dass der 'Reiter' Input fehlt.

 

Beispiel: 1.jpg

 

Es könnte sein, dass dieser EA nur mit dem AIS1-Indikator arbeitet und von 'dort' seine Input-Werte erhält??? :sad:

:wub: ... hier gibts (junge) Freak's die lösen das bestimmt... :wub:

 

PS: Freak's [Der Begriff wird im Deutschen heute meist anerkennend,...]

Posted

Das Input muss man glaube ich in Metaeditor eintragen, in der englischen Anleituing steht etwas von "in Zeile 7...das und das..."

dann neu kompilieren, und dann weiter laufen lassen.

 

Ja, der brauch den AIS1-Indikator dazu. Der Link steht auch im 1. Beitrag.

Sorry, habe ich mich bei der Vorstellung des EAs wohl undeutlich ausgedrückt :wub:

Posted

mit EA oder mit dem Indikator?

 

 

der Indikator sieht bei mir auch so aus, nur ohne unten rechts der Zahlenblock mit den Pfeilen.

 

der EA zeigt bei mir nur ein Smilie oben rechts, sonst bleibt der Chart nackt - stimmt da was bei mir nicht? es kommt beim timeframewechsel auch immer "reload code 3, stop code 3" => hab ich was falsch gemacht? wie bist du bei der inbetriebnahme vorgegangen?

Posted
Ja, ich stelle gerade fest, dass der 'Reiter' Input fehlt.

Der fehlt, weil keine einzige Variable mit "extern" gekennzeichnet ist. Mindest vor einer muss "extern" stehen, damit dieser Reiter überhaupt angezeigt wird.

 

Schreibst Du bei den Variablen, die Du per Input-Dialog von außen ändern willst, dieses Zauberwort davor, sieht das so aus

mt1.PNG

mt2.PNG

Posted

So, ich hab mal nen Backtest laufen lassen M1, EURUSD, Alpari UK mit den voreingestellten Werten.

Zeitraum: 2.1.08 - 12.3.09

 

Die Kurve sieht schon mal recht gut aus.

backtest.PNG

 

 

Die Ergebnisse vom 2.1.05- 12.3.2008 sehen nicht ganz so doll aus.

backtest2.PNG

 

Hier müsste man mal nachforschen, was der EA tatsächlich macht, um rauszukriegen, wann man ihn besser vom Netz nimmt.

 

Startkapital ist immer 10k.

Posted
Leider bin ich noch nicht dahintergestiegen, wo genau man die Einstellungen vornehmen muss bzw. welche was verändert (zB würde ich gerne minimale Lotgröße auf 0.01 setzten, das Ding geht scheinbar erst bei 0.1 los).

 

Wenn der Broker das nicht zulässt, wirst Du da wenig Glück haben.

 

double ald.MinimumLots = MarketInfo ( acs.Symbol , MODE_MINLOT ) ; //

 

http://docs.mql4.com/constants/marketinfo

 

Im folgenden wird die Positionsgröße berechnet und per Variable ald.Size der Funktion OrderSend übergeben.

//< 7.7.3. Operation Size Control >                                                                            //<202>
    if   ( ald.SizeLimit     >= ald.MinimumLots )                                                             //<203>
           int ali.Steps      = MathFloor       ( ( ald.SizeLimit         - ald.MinimumLots  )                //<204>
                                                  / ald.LotStep                                           ) ; //<205>
    else                                                                                             return ; //<206>
                                                                                                              //<207>
    double ald.Size           = ald.MinimumLots   + ald.LotStep           * ali.Steps                       ; //<208>
                                                                                                              //<209>
    if   ( ald.Size           > ald.MaximumLots )                                                             //<210>
           ald.Size           = ald.MaximumLots                                                             ; //<211>
                                                                                                              //<212>
    if   ( AccountFreeMarginCheck (  acs.Symbol   , ali.Command           , ald.Size ) <= 0                   //<213>
        || GetLastError  ()  == 134                                                          )       return ; //<214>
                                                                                                              //<215>
//</7.7.3. Operation Size Control >                                                                            //<216>
                                                                                                              //<217>
//< 7.7.4. Order Send >                                                                                        //<218>
   [b] OrderSend ( acs.Symbol    , ali.Command       , ald.Size              , ald.Price   , 0  ,                //<219>
                                ald.Stop          , ald.Take         , "" , aci.OrderID , 0  , 0          ) ;[/b] //<220>

Posted

Danke für die Aufklärung. Activtrades lässt 0.01 Lots zu, das backtesten mach ich aber mit Alpari - wer weiß?

 

 

 

Stimmt, das mit den Trades übern längeren Zeitraum ist merkwürdig.

 

Ich werde den mal auf dem Demokonto laufen lassen (sobald ich meinen vServer habe)

Posted
Auf welchem Chart man den laufen lässt, ist egal, er rechnet immer mit 1M (bestätigt durch die backtests)

Hmm, nee, ich glaub, den "Timeframe" kann man steuern über die Werte aci.Index.1 und aci.Index.2. Als Basis dient dann immer der M1.

 

#define aci.Index.1 7 //

#define aci.Index.2 6 //

int aci.Timeframe [] = { 0 , 1 , 5 , 15 , 30 , 60 , 240 , 1440 , 10080 , 43200 } ; //

 

Hier werden als Perioden 240 und 1440 benutzt (Minuten, nehm ich mal an).

Über die Indizes aci.Index.1 und aci.Index.2 wird später auf die Werte in aci.Timeframe zugegriffen. Für kleinere Timeframes (hab das mal nur kurz laufen lassen), sah das weniger nett aus. Aber als Strategie ist ja auch "A System: EURUSD Daily Metrics" angegeben.

Posted
Mh, ich habe das dem entnommen:

 

 

 

http://codebase.mql4.com/5260 da ganz unten, die nr. 9

 

:wub:

 

Im Prinzip kannst Du - so würde ich das nach kurzem Drüberblicken interpretieren - auf jeden Chart ziehen, er wird dennoch immer auf EURUSD arbeiten (da es im Code festgetackert ist, s. acs.Symbol) und auf den Bid/Ask-Kursen arbeitet.

 

                                                                                                             //< 97>
int    ali.Period.1      = aci.Timeframe           [ aci.Index.1         ]                                   ; //< 98>
int    ali.Period.2      = aci.Timeframe           [ aci.Index.2         ]                                   ; //< 99>
                                                                                                              //<100>
double ald.Low.1         = iLow       ( acs.Symbol , ali.Period.1 , 1    )                                   ; //<101>
double ald.High.1        = iHigh      ( acs.Symbol , ali.Period.1 , 1    )                                   ; //<102>
double ald.Close.1       = iClose     ( acs.Symbol , ali.Period.1 , 1    )                                   ; //<103>
                                                                                                              //<104>
double ald.Low.2         = iLow       ( acs.Symbol , ali.Period.2 , 1    )                                   ; //<105>
double ald.High.2        = iHigh      ( acs.Symbol , ali.Period.2 , 1    )                                   ; //<106>
double ald.Close.2       = iClose     ( acs.Symbol , ali.Period.2 , 1    )                                   ; //<107>
                                                                                                              //<108>
double ald.Average.1     =            ( ald.High.1 + ald.Low.1           ) / 2                               ; //<109>
                                                                                     

 

 

                                                                                                      //<164>
if ( ald.Close.1  > ald.Average.1   )                                                                          //<165>
if ( ald.QuoteAsk > ald.High.1      )                                                                          //<166>
  { ali.Command  = OP_BUY                                                                                   ; //<167>
    ald.Price    = ald.QuoteAsk                                                                             ; //<168>
    ald.Stop     = NormalizeDouble ( ald.High.1   - ald.QuoteStop                            , ald.Digits ) ; //<169>
    ald.Take     = NormalizeDouble ( ald.QuoteAsk + ald.QuoteTake                            , ald.Digits ) ; //<170>
    ald.Risk     = ald.Price       - ald.Stop                                                             ; } //<171>
                                                                                                              //<172>
if ( ald.Close.1  < ald.Average.1   )                                                                          //<173>
if ( ald.QuoteBid < ald.Low.1       )                                                                          //<174>
  { ali.Command  = OP_SELL                                                                                  ; //<175>
    ald.Price    = ald.QuoteBid                                                                             ; //<176>
    ald.Stop     = NormalizeDouble ( ald.Low.1    + ald.QuoteStop                            , ald.Digits ) ; //<177>
    ald.Take     = NormalizeDouble ( ald.QuoteBid - ald.QuoteTake                            , ald.Digits ) ; //<178>
    ald.Risk     = ald.Stop        - ald.Price             

//

 

 

Sieht für mich nach nem Breakoutsystem aus auf nem größeren Timeframe aus, wo rasch der Trailingstop (auf Basis des untergeordneten TF bestimmt) nachgezogen wird.

Posted

Hey Leute,

 

klingt nach nem spannenden EA, hab ihn mir aber gerade erst runtergeladen und hab leider gerade nicht die Zeit ihn genauer durchzugehen, dennoch ist mir eine Idee zum Thema "was er tut" etc. in den Sinn gekommen:

 

Was haltet ihr davon, wenn wir den EA gemeinsam öffentlich "analysieren"? Da er OpenSource ist, gibts sicher keine Copyrightverletzungen oder? Und ich denke es lesen hier viele (inzwischen ja fast schon tausende ;) User mit, die sich über sowas freuen. Und für Jörg wär es ein schöner Anlass seine Programmierkenntnisse zu vertiefen ;)

 

Wer ist dabei?

Posted
Hey Leute,

 

klingt nach nem spannenden EA, hab ihn mir aber gerade erst runtergeladen und hab leider gerade nicht die Zeit ihn genauer durchzugehen, dennoch ist mir eine Idee zum Thema "was er tut" etc. in den Sinn gekommen:

 

Was haltet ihr davon, wenn wir den EA gemeinsam öffentlich "analysieren"? Da er OpenSource ist, gibts sicher keine Copyrightverletzungen oder? Und ich denke es lesen hier viele (inzwischen ja fast schon tausende ;) User mit, die sich über sowas freuen. Und für Jörg wär es ein schöner Anlass seine Programmierkenntnisse zu vertiefen ;)

 

Wer ist dabei?

Spannend ist er allemal, allerdings weicht die Programmierung doch stark von dem "herkömmlichen" EA-Aufbau ab, wobei ich sie sehr gelungen finde (nicht nur das Ergebnis). Ist halt ein anderer Weg nach Rom.

Posted
Was haltet ihr davon, wenn wir den EA gemeinsam öffentlich "analysieren"? Da er OpenSource ist, gibts sicher keine Copyrightverletzungen oder? Und ich denke es lesen hier viele (inzwischen ja fast schon tausende ;) User mit, die sich über sowas freuen. Und für Jörg wär es ein schöner Anlass seine Programmierkenntnisse zu vertiefen ;)

 

Wer ist dabei?

 

Nachdem Krümel die Keule im Sack gelassen hat, kann ich mich ja hinterm Busch hervortrauen und bekannt geben, dass ich diese Idee toll finde.

Wobei sich das "Programmierkenntnisse zu vertiefen" nicht an einer Einzelperson orientieren müsste. Vieles von dem, was wir heute machen, wird Tradern, Systemeentwicklern, Programmieren später mal helfen, sich schneller in die Materie einzuarbeiten. Ein Großteil sehe ich als Missionarsarbeit, um für Produkte und Lösungen einen Weg zu bereiten.

Posted
Hey Leute,

 

klingt nach nem spannenden EA, hab ihn mir aber gerade erst runtergeladen und hab leider gerade nicht die Zeit ihn genauer durchzugehen, dennoch ist mir eine Idee zum Thema "was er tut" etc. in den Sinn gekommen:

 

Was haltet ihr davon, wenn wir den EA gemeinsam öffentlich "analysieren"? Da er OpenSource ist, gibts sicher keine Copyrightverletzungen oder? Und ich denke es lesen hier viele (inzwischen ja fast schon tausende ;) User mit, die sich über sowas freuen. Und für Jörg wär es ein schöner Anlass seine Programmierkenntnisse zu vertiefen ;)

 

Wer ist dabei?

 

Gutes Stichwort, finde ich eine Klasse Idee. In diesem Zusammenhang kann man das ganze dann auch wirklich gut verstehen und so hinprogrammieren wie man möchte z.B. mit den Variablen. Sieht so aus als könnte man da auch "leichte" Verbesserungen mit einbauen oder?

 

Gruss Jörg

Posted
Nachdem Krümel die Keule im Sack gelassen hat, kann ich mich ja hinterm Busch hervortrauen und bekannt geben, dass ich diese Idee toll finde.

Ja, klar, super, Chef, peitsche mich hier noch nachträglich öffentlich dafür aus, dass ich Tom-Next den A... gerettet habe ! gallery_446_9_3055.gif

Wenn Du so weitermachst, bau ich meine Wuthöhle zu einem hübschen Bungalow aus und widme mein Leben der Malerei.

Posted (edited)

Ich werde mal das EURUSD in Zeile 16 durch andere Währungspaare ersetzen und mal schauen, was herauskommt.

 

Der EA ist auf jeden Fall sehr stark an das letzte Jahr angepasst. Die Jahre davor (auch einzeln betrachtet), liefern schlechte Ergebnisse. Ändert man jedoch die relevanten Einstellungen (danke an dieser Stelle an Krümel für den INPUT-Befehl) - kommt man in den Jahren davor durchaus auf respektable Ergebnisse (dann aber im letzten nicht mehr...)

 

edit:

das, was ich bisher an anderen (Haupt-)Währungspaaren probiert habe, bringt uns nicht weiter. Ganz mies alles.

Edited by Henrik
Posted
Der EA ist auf jeden Fall sehr stark an das letzte Jahr angepasst. Die Jahre davor (auch einzeln betrachtet), liefern schlechte Ergebnisse. Ändert man jedoch die relevanten Einstellungen (danke an dieser Stelle an Krümel für den INPUT-Befehl) - kommt man in den Jahren davor durchaus auf respektable Ergebnisse (dann aber im letzten nicht mehr...)

 

edit:

das, was ich bisher an anderen (Haupt-)Währungspaaren probiert habe, bringt uns nicht weiter. Ganz mies alles.

Tscha, das war leider auch zu erwarten. Mir ist bislang kein EA untergekommen, der durchgängig super lief.

Posted

Ich habe mir das ganze mal runtergeladen und in die entsprechende Verzeichnisse kopiert.

Den EURUSD - Chart aufgemacht, den Indikator draufgelegt und Zeit M1 eingestellt.

 

Allerdings bekomme ich folgende Fehlermeldung:

AIS102 Trading Robot: Reload code 5

 

Der Smilie lächelt aber

 

Weiß jemand wie ich das mit der Fehlermeldung wegbekomme?

 

Noch etwas:

- Wo stelle ich die Lotgröße ein?

- Muss ich irgendwo die Uhrzeit meines Brokers zur GMT einstellen?

- Gibt es die Möglichkeit die Uhrzeit des Handelns zu beschränken zum Beispiel nur von 17.00 Uhr - 20.00 Uhr oder ähnliches?

 

Gruss

Jörg

Posted

Soweit ich das überblicken und der Anleitung entnehmen kann,

kann man die Lotgröße nicht einstellen, nur die in der Anleitung beschriebenen Risikodaten.

 

Die Fehlermeldung habe ich auch, nur mit Reload Code 5 - keine Ahnung. Ich konnte in der Anleitung und im Metaeditor nichts dazu herauslesen.

 

Ich glaube, es ist egal, welche Zeit/Chart, da das Teil anscheinend intern so oder so auf EURUSD geht, mit der Serverzeit (wo wird der Befehl "timelocal" ausgelesen? Server oder örtlicher Rechner?) und das Ding dann mit allen Zeitframes rechnet.

 

Eine Beschränkung der Handelszeiten kann man nicht einstellen.

 

Ich hab auch den Smilie im Demoacccount und lass den einfach mal laufen. Die letzten 2 Handelstage ist noch nichts passiert (trotz Smilie und trotz Reload 5). Aber aus dem Backtest ergibt sich ja auch, dass durchaus nicht täglich gehandelt wird.

Posted

Also starten wir mal den Zerpflückungsvorgang oder?

Ich denke wir beschränken uns auf das posten von kniffligen Codeschnippseln und bearbeiten den Rest per Ref auf die Zeilennummer, schließlich kann sich jeder die Kopie runterladen, und sonst wird das ein Ansammeln von (teils sicher unnötigen) Codeschnipseln.

 

Wieder ein Frage-Antwort-Spiel wie schon mal gesehen?

 

@alle die kein "Coder" als zweiten Vornamen haben ;) :

Zeile 1- 44: was passiert hier im wesentlichen?

Bzw. Gibts zu dem Abschnitt Fragen, Kommentare?

 

Man sieht im Bereich Input (26-34) aufgrund der "sinnlosen" Einrückung schön das hier mal überall ein "extern" davor stand, wodurch die Bezeichnung "Input" dann wieder sinn macht ;)

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...