Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 23 Stunden
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 237
Gesamt: 237
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.10.14
Neues Mitglied
 
Registriert seit: Oct 2014
Beiträge: 9
Striker befindet sich auf einem aufstrebenden Ast
Standard Error nach Anlauf des TP oder Sl

Hallo liebe Gemeinde,

ich habe vor etwa 4 Wochen mit dem Programmieren angefangen und bin nun auf ein Problem gestoßen bei dem ich einfach nicht weiter komme.

Mein EA arbeitet soweit wie erwartet nur nach Anlauf des TP oder SL bekomme ich die im Code programmierte Fehlermeldung. Habe sie als Kommentar ersichtlich gemacht.

------------------------------------------------------------------

offeneorders = 0;
anzahlorders = OrdersTotal();

for(zaehler=0;zaehler<anzahlorders;zaehler++)
{
OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol() == Symbol())
{
if(OrderMagicNumber()==MagicNumber)
{
offeneorders++;
}
}
}

if (Signal_R == "Long" && anzahlorders <= Buy_Orders_Max -1)

TicketOpen1 = OrderSend(Symbol(),OP_BUY,Lots,Ask,30,StopLossLeve l, TakeProfitLevel,"MagicNumber " + string(MagicNumber),Green);

if (TicketOpen1<0)
{
// !!!!!!!!!!!!!!!!!!!! EA lief auf TP oder SL und gibt bei jedem neuem Tick folgenden Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Alert ("Error!" + Symbol());
}
if (TicketOpen1 >= anzahlorders && anzahlorders <= Buy_Orders_Max -1)
{
Alert ("Order set # " + (string)MagicNumber + " " + Symbol());
}

------------------------------------------------------------------
Muss der zaehler nach ausgeführtem TP/SL --1 gesetzt werden?

Eine weitere Frage am Rande: Wie man sehen kann habe ich Buy_Orders_Max definiert um zukünftig mehrere Strategien (z.B. Durchbruch, Bewegung und Trend) verfolgen zu können. Da mein EA nun so langsam gestalt annimmt und sich meine Gedanken weiter auf folgende Schritte vertiefen vermute ich dass die Bearbeitung mehrerer Orders kompliziert im Quadrat ist. Daher die Frage ob ein Aufbau mehrer EA´s für den Anfang sinvoller ist?

Vielen Dank für Eure Hilfe!

Beste Grüße aus Hamburg



p.s. Ich sehe gerade das der Fehler auch nach manuellem schließen der Order aufkommt.

Wenn ich das eben richtig beobachtet habe (ist ja schon recht spät) dann kam die Meldung eben mehrere Ticks auf und anschließend wurde eine neue Order eingegangen. Ist das möglich aufgrund des Codes? Das Signal ist sicher zu 100% dauerhaft Long.

Geändert von Striker (30.10.14 um 02:08 Uhr)
  #2 (permalink)  
Alt 30.10.14
Neues Mitglied
 
Registriert seit: Oct 2014
Beiträge: 9
Striker befindet sich auf einem aufstrebenden Ast
Standard Hier ein kleiner Beweis

Anbei ein Screenshot auf welchem das Problem ersichtlich ist.

Unüblich ist das tatsächlich nach jedem Error, abgesehen von dem Block unten, jedes Mal eine neue Order eingegangen wurde. Das ist mittlerweile wieder anders hehe
Angehängte Grafiken
Dateityp: jpg Errornach SL oder TP.jpg (83,3 KB, 10x aufgerufen)
  #3 (permalink)  
Alt 30.10.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Striker Beitrag anzeigen
Anbei ein Screenshot auf welchem das Problem ersichtlich ist.

Unüblich ist das tatsächlich nach jedem Error, abgesehen von dem Block unten, jedes Mal eine neue Order eingegangen wurde. Das ist mittlerweile wieder anders hehe
Code:
offeneorders = 0;
anzahlorders = OrdersTotal();

for(zaehler=0;zaehler<anzahlorders;zaehler++)
{
    OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES);
    if(OrderSymbol() == Symbol())
      {
        if(OrderMagicNumber()==MagicNumber)
          {
            offeneorders++;
           }
      }
}

if (Signal_R == "Long" && anzahlorders <= Buy_Orders_Max -1)

TicketOpen1 = OrderSend(Symbol(),OP_BUY,Lots,Ask,30,StopLossLeve l, TakeProfitLevel,"MagicNumber " + string(MagicNumber),Green);

if (TicketOpen1<0)
{
// !!!!!!!!!!!!!!!!!!!! EA lief auf TP oder SL und gibt bei jedem neuem Tick folgenden Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Alert ("Error!" + Symbol(),"TicketOpen1 =",TicketOpen1);
}
if (TicketOpen1 >= anzahlorders && anzahlorders <= Buy_Orders_Max -1)
{
Alert ("Order set # " + (string)MagicNumber + " " + Symbol(),"TicketOpen1 =",TicketOpen1);
}
Ticket vergleichen
falsche Logik
  #4 (permalink)  
Alt 30.10.14
Neues Mitglied
 
Registriert seit: Oct 2014
Beiträge: 9
Striker befindet sich auf einem aufstrebenden Ast
Standard Oh und Danke

stelle auch gerade fest dass der EA wohl nur in dem Währungspaar von gestern funktioniert hat. heute klappt fast nichts. bekomme z.B. die Meldung das eine Order geöffnet wurde aber ätsch abgesehen von der Meldung nichts..

bin auch gerade am tüfteln und werde deine Info gleich mal einbauen.
  #5 (permalink)  
Alt 30.10.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Mal ein Tip für die Zukunft: Wenn Du willst, dass Dir schnell geholfen wird,
dann sollte die Fehlerbeschreibung kurz und eineindeutig beschrieben werden.
Richtig, wenn es geht mit Code oder dem wichtigsten Auszug daraus und v.a. Fehlermeldungen jede Art.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 30.10.14
Neues Mitglied
 
Registriert seit: Oct 2014
Beiträge: 9
Striker befindet sich auf einem aufstrebenden Ast
Standard Ticket im Alert vergleichen?

Danke für deinen Tipp aber welchen nutzen habe ich wenn ich das Ticket in den Alerts vergleiche?
  #7 (permalink)  
Alt 30.10.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Da wird nichts von der Logik her verglichen, sondern die Ticketnummer, die sich hinter der Variablen TicketOpen1 verbirgt in der Alertmeldung ausgegeben.

Ein Verleich müßte mit dem Operator == geschrieben werden.
D.h. @pako hat Dir das Codepuzzle an die Hand gegeben, eben diese Ticketnummer im Alert zu sehen.

Das ist eine wesentliche Methode der Fehlersuche, an bestimmten Stellen des Codes Alert(...) oder Print(...) einzubauen und damit dem Verlauf des Programms zu kontrollieren.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

Lesezeichen

Stichworte
error, error sl, error tp, fehler, fehler sl, fehler tp, sl / tp, stoploss, takeprofit, zähler

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 09:28 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------