Hilfe beim Debuggen meines EA Ich finde, die Lösung ist zu einfach.
Ergebnis 1 bis 2 von 2

Thema: Hilfe beim Debuggen meines EA Ich finde, die Lösung ist zu einfach.

  1. #1
    Nachfolgend finden Sie eine Kopie des EA-Codes. Immer wenn ich es an ein Chart anhebe, steht es einfach da, öffnet oder schließt keine Trades. Es ist für den Live-Handel ohne manuelle Bestätigung eingestellt.

    Irgendwelche Gedanken?







    Zitat Zitat von ;
    #define SIGNAL_NONE 0
    #define SIGNAL_BUY 1
    #define SIGNAL_SELL 2
    #define SIGNAL_CLOSEBUY 3
    #define SIGNAL_CLOSESELL 4
    #Eigentum urheberrechtlich
    extern int MagicNumber = 0;
    extern bool SignalMail = False;
    extern bool EachTickMode = True;
    extern doppelte Lots = 5,0;
    extern int Slippage = 0;
    extern bool StopLossMode = False;
    extern int StopLoss = 0;
    extern bool TakeProfitMode = False;
    extern int TakeProfit = 0;
    extern bool TrailingStopMode = False;
    extern int TrailingStop = 0;
    int BarCount;
    int aktuell;
    bool TickCheck = False;
    // ------------------------------------------- -------------------
    //| Experteninitialisierungsfunktion |
    // ------------------------------------------- -------------------
    int init () {
    BarCount = Bars;
    if (EachTickMode) Current = 0; sonst Strom = 1;
    return (0);
    }
    // ------------------------------------------- -------------------
    //| Experten-Deinitialisierungsfunktion |
    // ------------------------------------------- -------------------
    int deinit () {
    return (0);
    }
    // ------------------------------------------- -------------------
    //| Expertenstartfunktion |
    // ------------------------------------------- -------------------
    int start () {
    int Order = SIGNAL_NONE;
    int Total, Ticket;
    doppeltes StopLossLevel, TakeProfitLevel;

    if (EachTickMode Bars! = BarCount) TickCheck = False;
    Gesamt = OrdersTotal ();
    Auftrag = SIGNAL_NONE;
    // ------------------------------------------- -------------------
    //| Variabler Anfang |
    // ------------------------------------------- -------------------
    double Var1 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 0);
    double Var2 = iMACD (NULL, 0, 8, 17, 9, PRICE CLOSE, MODE_MAIN, Current 0);
    double Var3 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, uell 1)
    double Var4 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 1);
    double Buy1_1 = Var1 lt; Var2;
    double Buy2_1 = Var3 gt; Var4;
    double Sell1_1 = Var1 gt; Var2;
    double Sell2_1 = Var3 lt; Var4;
    double CloseBuy1_1 = Var1 gt; Var2;
    double CloseBuy2_1 = Var3 lt; Var4;
    double CloseSell1_1 = Var1 lt; Var2;
    double CloseSell2_1 = Var3 gt; Var4;

    // ------------------------------------------- -------------------
    //| Variables Ende |
    // ------------------------------------------- -------------------
    //Position prüfen
    bool IsTrade = False;
    für (int i = 0; i lt; Total; i ) {
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {
    IsTrade = True;
    if (OrderType () == OP_BUY) {
    //Schließen
    // ------------------------------------------- -------------------
    //| Signal Anfang (Kauf beenden) |
    // ------------------------------------------- -------------------
    if (False False) Order = SIGNAL_CLOSEBUY;

    // ------------------------------------------- -------------------
    //| Signalende (Kauf beenden) |
    // ------------------------------------------- -------------------
    if (Order == SIGNAL_CLOSEBUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount))))
    OrderClose (OrderTicket (), OrderLots (), Gebot, Slippage, MediumSeaGreen);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Angebot, Digits) Close Buy);
    if (! EachTickMode) BarCount = Bars;
    IsTrade = False;
    fortsetzen;
    }
    //Schleppstopp
    if (TrailingStopMode TrailingStop gt; 0) {
    if (Gebot - OrderOpenPrice () gt; Punkt * TrailingStop) {
    if (OrderStopLoss () lt; Gebot - Punkt * TrailingStop) {
    OrderModify (OrderTicket (), OrderOpenPrice (), Gebot - Punkt * TrailingStop, OrderTakeProfit (), 0, MediumSeaGreen);
    if (! EachTickMode) BarCount = Bars;
    fortsetzen;
    }
    }
    }
    } else {
    //Schließen
    // ------------------------------------------- -------------------
    //| Signal Anfang (Verkauf beenden) |
    // ------------------------------------------- -------------------
    if (False False) Order = SIGNAL_CLOSESELL;

    // ------------------------------------------- -------------------
    //| Signalende (Verkauf beenden) |
    // ------------------------------------------- -------------------
    if (Order == SIGNAL_CLOSESELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
    OrderClose (OrderTicket (), OrderLots (), Ask, Slippage, DarkOrange);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Close Sell);
    if (! EachTickMode) BarCount = Bars;
    IsTrade = False;
    fortsetzen;
    }
    //Schleppstopp
    if (TrailingStopMode TrailingStop gt; 0) {
    if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop)) {
    if ((OrderStopLoss () gt; (Ask Point * TrailingStop)) || (OrderStopLoss () == 0)) {
    OrderModify (OrderTicket (), OrderOpenPrice (), Ask Point * TrailingStop, OrderTakeProfit (), 0, DarkOrange);
    if (! EachTickMode) BarCount = Bars;
    fortsetzen;
    }
    }
    }
    }
    }
    }
    // ------------------------------------------- -------------------
    //| Signal Anfang (Eingabe) |
    // ------------------------------------------- -------------------
    if (False False) Order = SIGNAL_BUY;
    if (False False) Order = SIGNAL_SELL;

    // ------------------------------------------- -------------------
    //| Signalende |
    // ------------------------------------------- -------------------
    //Kaufen
    if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
    if (! IsTrade) {
    //Überprüfen Sie den freien Rand
    if (AccountFreeMargin () lt; (1)) {
    Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
    return (0);
    }
    if (StopLossMode) StopLossLevel = Ask - StopLoss * Punkt; else StopLossLevel = 0,0;
    if (TakeProfitMode) TakeProfitLevel = Ask TakeProfit * Punkt; else TakeProfitLevel = 0.0;
    Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy (# MagicNumber ), MagicNumber, 0, DodgerBlue);
    if (Ticket gt; 0) {
    if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
    SetIndexStyle (3, DRAW_ARROW, LEER, 2, Grün);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Open Buy);
    } else {
    Print (Fehler beim Öffnen der BUY-Reihenfolge:, GetLastError ());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (! EachTickMode) BarCount = Bars;
    return (0);
    }
    }
    //Verkaufen
    if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
    if (! IsTrade) {
    //Überprüfen Sie den freien Rand
    if (AccountFreeMargin () lt; (1)) {
    Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
    return (0);
    }
    if (StopLossMode) StopLossLevel = Gebot StopLoss * Punkt; else StopLossLevel = 0,0;
    if (TakeProfitMode) TakeProfitLevel = Gebot - TakeProfit * Punkt; else TakeProfitLevel = 0.0;
    Ticket = OrderSend (Symbol (), OP_SELL, Lots, Gebot, Slippage, StopLossLevel, TakeProfitLevel, Sell (# MagicNumber ), MagicNumber, 0, DeepPink);
    if (Ticket gt; 0) {
    if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Print (SELL Bestellung geöffnet:, OrderOpenPrice ());
    SetIndexStyle (3, DRAW_ARROW, LEER, 2, Rot);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Geld, Digits) Verkauf verkaufen);
    } else {
    Print (Fehler beim Öffnen der SELL-Bestellung:, GetLastError ());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (! EachTickMode) BarCount = Bars;
    return (0);
    }
    }
    if (! EachTickMode) BarCount = Bars;
    return (0);
    }
    // ------------------------------------------- -------------------
    Zitat Zitat von ;
    #define SIGNAL_NONE 0
    #define SIGNAL_BUY 1
    #define SIGNAL_SELL 2
    #define SIGNAL_CLOSEBUY 3
    #define SIGNAL_CLOSESELL 4
    #Eigentum urheberrechtlich
    extern int MagicNumber = 0;
    extern bool SignalMail = False;
    extern bool EachTickMode = True;
    extern doppelte Lots = 5,0;
    extern int Slippage = 0;
    extern bool StopLossMode = False;
    extern int StopLoss = 0;
    extern bool TakeProfitMode = False;
    extern int TakeProfit = 0;
    extern bool TrailingStopMode = False;
    extern int TrailingStop = 0;
    int BarCount;
    int aktuell;
    bool TickCheck = False;
    // ------------------------------------------- -------------------
    //| Experteninitialisierungsfunktion |
    // ------------------------------------------- -------------------
    int init () {
    BarCount = Bars;
    if (EachTickMode) Current = 0; sonst Strom = 1;
    return (0);
    }
    // ------------------------------------------- -------------------
    //| Experten-Deinitialisierungsfunktion |
    // ------------------------------------------- -------------------
    int deinit () {
    return (0);
    }
    // ------------------------------------------- -------------------
    //| Expertenstartfunktion |
    // ------------------------------------------- -------------------
    int start () {
    int Order = SIGNAL_NONE;
    int Total, Ticket;
    doppeltes StopLossLevel, TakeProfitLevel;

    if (EachTickMode Bars! = BarCount) TickCheck = False;
    Gesamt = OrdersTotal ();
    Auftrag = SIGNAL_NONE;
    // ------------------------------------------- -------------------
    //| Variabler Anfang |
    // ------------------------------------------- -------------------
    double Var1 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 0);
    double Var2 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 0);
    double Var3 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, uell 1)
    double Var4 = iMACD (NULL, 0, 8, 17, 9, PRICE CLOSE, MODE_MAIN, Current 1);
    double Buy1_1 = Var1 lt; Var2;
    double Buy2_1 = Var3 gt; Var4;
    double Sell1_1 = Var1 gt; Var2;
    double Sell2_1 = Var3 lt; Var4;
    double CloseBuy1_1 = Var1 gt; Var2;
    double CloseBuy2_1 = Var3 lt; Var4;
    double CloseSell1_1 = Var1 lt; Var2;
    double CloseSell2_1 = Var3 gt; Var4;

    // ------------------------------------------- -------------------
    //| Variables Ende |
    // ------------------------------------------- -------------------
    //Position prüfen
    bool IsTrade = False;
    für (int i = 0; i lt; Total; i ) {
    OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
    if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {
    IsTrade = True;
    if (OrderType () == OP_BUY) {
    //Schließen
    // ------------------------------------------- -------------------
    //| Signal Anfang (Kauf beenden) |
    // ------------------------------------------- -------------------
    if (False False) Order = SIGNAL_CLOSEBUY;

    // ------------------------------------------- -------------------
    //| Signalende (Kauf beenden) |
    // ------------------------------------------- -------------------
    if (Order == SIGNAL_CLOSEBUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount))))
    OrderClose (OrderTicket (), OrderLots (), Gebot, Slippage, MediumSeaGreen);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Angebot, Digits) Close Buy);
    if (! EachTickMode) BarCount = Bars;
    IsTrade = False;
    fortsetzen;
    }
    //Schleppstopp
    if (TrailingStopMode TrailingStop gt; 0) {
    if (Gebot - OrderOpenPrice () gt; Punkt * TrailingStop) {
    if (OrderStopLoss () lt; Gebot - Punkt * TrailingStop) {
    OrderModify (OrderTicket (), OrderOpenPrice (), Gebot - Punkt * TrailingStop, OrderTakeProfit (), 0, MediumSeaGreen);
    if (! EachTickMode) BarCount = Bars;
    fortsetzen;
    }
    }
    }
    } else {
    //Schließen
    // ------------------------------------------- -------------------
    //| Signal Anfang (Verkauf beenden) |
    // ------------------------------------------- -------------------
    if (False False) Order = SIGNAL_CLOSESELL;

    // ------------------------------------------- -------------------
    //| Signalende (Verkauf beenden) |
    // ------------------------------------------- -------------------
    if (Order == SIGNAL_CLOSESELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
    OrderClose (OrderTicket (), OrderLots (), Ask, Slippage, DarkOrange);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Close Sell);
    if (! EachTickMode) BarCount = Bars;
    IsTrade = False;
    fortsetzen;
    }
    //Schleppstopp
    if (TrailingStopMode TrailingStop gt; 0) {
    if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop)) {
    if ((OrderStopLoss () gt; (Ask Point * TrailingStop)) || (OrderStopLoss () == 0)) {
    OrderModify (OrderTicket (), OrderOpenPrice (), Ask Point * TrailingStop, OrderTakeProfit (), 0, DarkOrange);
    if (! EachTickMode) BarCount = Bars;
    fortsetzen;
    }
    }
    }
    }
    }
    }
    // ------------------------------------------- -------------------
    //| Signal Anfang (Eingabe) |
    // ------------------------------------------- -------------------
    if (False False) Order = SIGNAL_BUY;
    if (False False) Order = SIGNAL_SELL;

    // ------------------------------------------- -------------------
    //| Signalende |
    // ------------------------------------------- -------------------
    //Kaufen
    if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
    if (! IsTrade) {
    //Überprüfen Sie den freien Rand
    if (AccountFreeMargin () lt; (1)) {
    Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
    return (0);
    }
    if (StopLossMode) StopLossLevel = Ask - StopLoss * Punkt; else StopLossLevel = 0,0;
    if (TakeProfitMode) TakeProfitLevel = Ask TakeProfit * Punkt; else TakeProfitLevel = 0.0;
    Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy (# MagicNumber ), MagicNumber, 0, DodgerBlue);
    if (Ticket gt; 0) {
    if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
    SetIndexStyle (3, DRAW_ARROW, LEER, 2, Grün);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Open Buy);
    } else {
    Print (Fehler beim Öffnen der BUY-Bestellung:, GetLastError ());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (! EachTickMode) BarCount = Bars;
    return (0);
    }
    }
    //Verkaufen
    if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))
    if (! IsTrade) {
    //Überprüfen Sie den freien Rand
    if (AccountFreeMargin () lt; (1)) {
    Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
    return (0);
    }
    if (StopLossMode) StopLossLevel = Gebot StopLoss * Punkt; else StopLossLevel = 0,0;
    if (TakeProfitMode) TakeProfitLevel = Gebot - TakeProfit * Punkt; else TakeProfitLevel = 0.0;
    Ticket = OrderSend (Symbol (), OP_SELL, Lots, Gebot, Slippage, StopLossLevel, TakeProfitLevel, Sell (# MagicNumber ), MagicNumber, 0, DeepPink);
    if (Ticket gt; 0) {
    if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Print (SELL Bestellung geöffnet:, OrderOpenPrice ());
    SetIndexStyle (3, DRAW_ARROW, LEER, 2, Rot);
    if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Geld, Digits) Verkauf verkaufen);
    } else {
    Print (Fehler beim Öffnen der SELL-Bestellung:, GetLastError ());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (! EachTickMode) BarCount = Bars;
    return (0);
    }
    }
    if (! EachTickMode) BarCount = Bars;
    return (0);
    }
    // ------------------------------------------- -------------------

  2. #2
    Was möchten Sie mit der if (False False) -Klausel sagen? Ich habe das bisher noch nicht gesehen.

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