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: 4204
Beiträge: 39115
Benutzer: 6.496
Aktive Benutzer: 235
Links: 80
Wir begrüßen unseren neuesten Benutzer: truongquochung54
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einem Tag
- truongquoc...
vor einem Tag
- victorfall
vor 2 Tagen
- jannes
vor 2 Tagen
- stoffel
vor 3 Tagen
- marioo

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 74
Gesamt: 76
Team: 0
Team:  
Benutzer:  AVT, rooky1273
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 14.01.19
Ado Ado ist offline
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 8
Ado befindet sich auf einem aufstrebenden Ast
Standard EA findet scheinbar die richtige Order nicht..

Hallo zusammen,

mein EA läuft auf mehreren Symbolen gleichzeitig.

Grundprinzip ist:

- öffnet Stop-Order bei Vorliegen der entsrechenden Voraussetzungen und trailt den OrderOpenPrice bei Bedarf nach

- bei Vorliegen einer Order (Buy oder Sell) trailt er den StopLoss im Gewinnbereich entsprechend mit

- geht die Order in die falsche Richtung setzt er bei einem bestimmten Abtsnad eine Hedge-Order in gleiche Richtung (Sell-Order => hedge-Order auch Sell mit 3-facher Lotgröße wie

Ursprungs-Order)

- falls Profit der Hedge-Order und Urspungs-Order im Gewinnbereich, schließt er beide

- der EA hat dabei auf jedem Symbol eine andere MagicNumber





Das Ganze funktioniert auch reibungslos, wenn nur eine Order offen ist (zB eine Buy-Order auf EURUSD).



Sind zwei Order offen (zB eine Buy-Order auf EURUSD und eine Sell-Order auf USDJPY) verweigert der EA das Trailing des StopLoss und das mögliche Setzen einer Hedge-Order.



Haber schon alles Mögliche ausprobiert, habe es aber leider nicht hinbekommen, dass der EA auch bei mehreren offenen Order auf unterschiedlichen Symbolen einwandfrei arbeitet und finde den Fehler nicht :-/



Das obene beschriebene Trailing im Gewinnbereich soll mit folgendem Ablauf erreicht werden, wobei die Expert_ID die vergebene Magic ist

Code:
 

 // START OF TRAILING *****************************************************************

    
 TrailingStop=0.00003;
                 
for(int i=OrdersTotal()-1;i>=0;i--)
  
   {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
     

       if(OrderMagicNumber()==Expert_Id && OrderSymbol()==Symbol()) //only primary Order
      {
        switch(OrderType())
         {
         //==========================================================
          
          case OP_BUY:
             //RefreshRates();
             
         
           // TRAILING OF PRIMARY BUY-ORDER *******************
          if(Trail==TRUE && CountOrders(OP_BUY,HedgeMagic,Symbol())<1).... d.h. es ist keine Hedge-Order geöffnet
          {
                                          
            if(TrailingStop>0)  
             {                                    
             if(ND(BidValue-OrderOpenPrice())>ND(TrailingStop+spread))
               {
                  if(OrderStopLoss()<BidValue-spread)
                  {
                  
                  //--- modify order
                   
                   mt=OrderModify(OrderTicket(),OrderOpenPrice(),ND(BidValue-spread),0,0,Green);
                  
                   
                  }
               }
            }
          }  
             OpenOrderCount++;
             CheckHedge(Expert_Id);
             //RefreshRates();
             break;

 

....  usw für Sell..
Hat jemand eine Idee, wo das Problem liegen könnte?....Vielen Dank
Mit Zitat antworten
  #2 (permalink)  
Alt 15.01.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.193
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Antwort: s. bereits in dem anderen Forum beschrieben.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 26.01.19
Ado Ado ist offline
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 8
Ado befindet sich auf einem aufstrebenden Ast
Standard Fehler besteht weiterhin

Hi...ich muss das oben beschriebene Trailing-Problem nochmals aufgreifen...vielleicht hat jemand ne zündende Idee, wo der Fehler liegen könnte.
Jedes Symbol hat seine eigene Magic und HedgeMagic
Ich habe zwischenzeitlich den Code wie folgt geändert, am Problem selbst hat sichg leider nix geändert.

Bemerkenswert ist, dass der EA seien Aufgabe erfüllt, wenn 2 Stop-Orders gleichezitig offen sind, d.h. bei beidne Stop-Orders zieht er jeweils bei Vorliegend der Voraussetzungen den OrdernOpenPrice nach, ohne Probleme. Nur bei offenen "normalen" Orders trailt er diese nur, wenn nur eine offen ist, bei mehreren trailt der EA gar nicht mehr oder eben falsch, d.h. ich habe festgestellt, dass er zB den Wert eines anderen Symbols trailt ???!

Das Trailen der "normalen" Orders soll wie folgt erfolgen:

Code:
for(int i=OrdersTotal()-1;i>=0;i--)
//for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
       {
      
        if(OrderSymbol()==Symbol()&& OrderMagicNumber()== Expert_Id)
        //only primary Order
        {
           
         switch(OrderType()) 
         {
           
         case OP_BUY:
           
         if(OrderMagicNumber()!=HedgeMagic &&  
            CountOrders(OP_BUY,HedgeMagic,Symbol())<1)
         {
               
            Line(OrderOpenPrice()+ND(TrailingStop+TrailDistance)); 
            if(Trail==TRUE && TrailingStop>0)
            {
              
                                                  
               if(ND(BidValue-OrderOpenPrice())>ND(TrailingStop+TrailDistance))
                 {
                    if(OrderStopLoss()<BidValue-TrailDistance)
                    {
                    
                    //--- modify order
                     RefreshRates();
                     mt=OrderModify(OrderTicket(),OrderOpenPrice(),ND(BidValue-TrailDistance),0,0,Green);
                     } 
                     if(mt==True)
                     Alert(Symbol()+"("+OrderMagicNumber()+")"  + " getrailt bei: " + BidValue+ " um "+TimeToStr(TimeCurrent()));                  
               }
              }
            }
             
             
      
               CheckHedge(Expert_Id);
               
               break;
Code geht dann weiter mit Sell

Der Code für das funktionierende Stop-Order-Trailing, der in derselben Schleife und auch unter Switch läuft lautet:

Code:
  case OP_BUYSTOP:
            RefreshRates();
              if(OrderMagicNumber()!=HedgeMagic)
              { 
               if(Mi_48==FALSE) 
                 {
                  orderprice= ND(AskValue+MinLevel+AddPriceGap);
                  order_SL = ND(orderprice - TrailDistance - StopLoss * Point - AddPriceGap);
                  order_TP = ND(orderprice + TakeProfit * Point + AddPriceGap);

                  if(orderprice<OrderOpenPrice() && OrderOpenPrice()-orderprice>TrailingStart) 
                    {
                     if(order_SL!=OrderStopLoss() && order_TP!=OrderTakeProfit()) 
                       {
                        RefreshRates();
                        starttime=GetTickCount();
                        mt=OrderModify(OrderTicket(),orderprice,order_SL,order_TP,0,Lime);
                       }
                    
                     }
                  OpenOrderCount++;
                 }
               else
                  f=OrderDelete(OrderTicket());
               }   
               break;
...usw für Sell-Stop

hat einer vielleicht ne Idee zur Fehlerquelle? Danke
Mit Zitat antworten
  #4 (permalink)  
Alt 28.01.19
Ado Ado ist offline
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 8
Ado befindet sich auf einem aufstrebenden Ast
Question Zusatz

...vielleicht "verrennen" sich meine Funktionen auch untereinander..

Kurz: ich habe heute zufällig beobachten können, dass er mehrere "normale" Order offen hatte und eine Symbol mit Hedge-Order, d.h.

1. Order USDJPY
2. Order EURUSD
3. Order GBPUSD
4. Order Hedge-Order zu GBPUSD

die order 1 + 2 liefen in den Gewinnbereich, OHNE zu trailen

erst als die beiden Orders 3+4 geschlossen waren, hat der EA die 1. und 2. Order getrailt und geschlossen...merkwürdig, dass er erst trailt, wenn die Hedge-Geschichte erledigt ist
Mit Zitat antworten
  #5 (permalink)  
Alt 28.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 731
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Seh nicht wirklich durch, aber was soll der break?

Hast Du für jede einzelne Order ne eigene MN? Wenn nicht, funktioniert OrderSelect vielleicht nicht.
Mit Zitat antworten
  #6 (permalink)  
Alt 29.01.19
Ado Ado ist offline
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 8
Ado befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Seh nicht wirklich durch, aber was soll der break?

Hast Du für jede einzelne Order ne eigene MN? Wenn nicht, funktioniert OrderSelect vielleicht nicht.
...Hi MA-EA

das break; komtm wegen der switch-Anweisung, innerhalb derer dann noch die Anweisung für Sell, sell-stop und buy-stop folgt.

ja, jede Order hat ihre eigene MN
Mit Zitat antworten
Antwort

Lesezeichen


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 16:03 Uhr.


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