Hilfe! Warum funktioniert dieser einfache Breakout-EA nicht?
Ergebnis 1 bis 5 von 5

Thema: Hilfe! Warum funktioniert dieser einfache Breakout-EA nicht?

  1. #1
    Dies ist ein einfacher EA. nur ein 20-Tage-Breakout-System.

    Wenn der Preis 20 Tage neu zu brechen, kaufen. Ausfahrt, wenn der Preis 10 Tage niedrig ist

    Wenn der Preis 20 Tage neu niedrig ist, verkaufen. Ausfahrt, wenn der Preis 10 Tage hoch ist.

    Nach dem ersten offenen Ticket können 2 weitere Tickets hinzugefügt werden.


    aber wenn ich von 2006 bis jetzt auf EURUSD backtest, passierte kein Handel.

    Wer kann helfen herauszufinden, wo das Problem liegt?


    //---- Eingabeparameter
    extern Doppellots = 0,1;
    extern int n_enter_days = 20;
    extern int m_exit_days = 10;
    // ----------------------------------------------- -------------------
    //| Experteninitialisierungsfunktion |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //----

    //----
    Rückkehr (0);
    }
    // ----------------------------------------------- -------------------
    //| Experten Deinitialisierungsfunktion |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    //----

    //----
    Rückkehr (0);
    }

    // ----------------------------------------------- -------------------
    //| Expertenstartfunktion |
    // ----------------------------------------------- -------------------
    datetime letzte_zeit = 0;
    int start ()
    {
    int cnt, Ticket, gesamt;
    if (Barslt; 100)
    {
    Drucken (Balken weniger als 100);
    Rückkehr (0);
    }
    total = OrdersTotal ();
    if (Close [1] gt; Hoch [iHighest (Symbol (), Periode (), MODE_HIGH, n_enter_days, 1)]
    last_time! = Zeit [0]
    total; 3)
    {
    ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, 3,0,0, Mein EA, 12345,0, Rot);
    if (ticketgt; 0)
    {
    if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES))
    Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
    }
    sonst
    {
    Drucken (Fehler beim Öffnen der KAUF-Reihenfolge:, GetLastError ());
    Rückkehr (0);
    }

    last_time = Zeit [0];
    }

    if (Schließen [1] lt; Niedrig [iLowest (Symbol (), Periode (), MODE_LOW, n_enter_days, 1)]
    last_time! = Zeit [0]
    total; 3)
    {
    ticket = OrderSend (Symbol (), OP_SELL, Lots, Bid, 3,0,0, Mein EA, 12345,0, Grün);
    if (ticketgt; 0)
    {
    if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES))
    Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
    }
    sonst
    {
    Drucken (Fehler beim Öffnen der KAUF-Reihenfolge:, GetLastError ());
    Rückkehr (0);
    }

    last_time = Zeit [0];
    }

    für (cnt = 0; cntlt; gesamt; cnt )
    {
    OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
    if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ())
    {
    if (OrderType () == OP_BUY)/Lange Position wird geöffnet
    {
    if (Schließen [1] lt; Niedrig [iLowest (OrderSymbol (), Periode (), MODE_LOW, m_exit_days, 1)])
    OrderClose (OrderTicket (), OrderLots (), Bid, 3, Weiß);
    }
    }

    if (BestellTyp () == OP_SELL)
    {
    if (OrderType () == OP_BUY)/Lange Position wird geöffnet
    {
    if (Close [1] gt; Hoch [iHohtes (OrderSymbol (), Periode (), MODE_HIGH, m_exit_days, 1)])
    OrderClose (OrderTicket (), OrderLots (), Ask, 3, Weiß);
    }
    }
    }




    //----

    //----
    Rückkehr (0);
    }
    // ----------------------------------------------- -------------------

  2. #2
    hey virtuosity ..... versuche den Startbalken von 1 auf eine größere Zahl zu ändern, vielleicht 2 ...... an allen Stellen ..... h Code eingefügt wenn (Close # 91; 1 # 93; lt; Low # 91; iLowest (OrderSymbol (), Periode (), MODE_LOW, m_exit_days, 2) # 93/---/--- if (Schließen # 91; 1 # 93; gt; Hoch # 91; iHighest (OrderSymbol (), Periode (), MODE_HIGH, m_exit_days, 2) # 93/---/--- Niedrig # 91; iLowest (Symbol (), Periode (), MODE_LOW, n_enter_days, 2) # 93;/---/--- Hoch # 91; iHöchste (Symbol (), Periode (), MODE_HIGH, n_enter_days, 2) # 93;

  3. #3
    : warum sollte sich das ändern? Ich habe es geändert. aber während 3 Jahren passierte immer noch kein Handel. Gibt es einen logischen Fehler? Ich benutze Alpari Demo-Konto, um dies zu testen

  4. #4
    1 Attachment (s) hey virt ..... der Originalcode sagt, wenn der Schluss [1] größer ist als der höchste Hoch der letzten 20 Takte, kauf .... das kann nicht passieren ..... irgendwas muss geändert werden ... sobald eine solche Änderung wäre, sich [1] aus der Arrayspanne der Zeit zu entfernen .... daher existieren die 2 .... andere Möglichkeiten .... wie Verwenden von Ask anstelle von Schließen [1] ... und mehr .... es gibt mehrere Orte, an denen deine Wörter nicht wirklich im Code wiedergegeben werden .... das ist sehr üblich .... es ist alles Teil des Prozesses ..... mein Vorzug wäre gewesen, von Grund auf neu zu schreiben .... aber hier ist, was für mich arbeitete ..... h
    https://www.tradingintuitive.com/att...1186159852.mq4

  5. #5
    : Es ist sehr nett von dir. Sie sind eine große Hilfe. Ich werde mein System weiter verbessern. Vielen Dank.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr