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: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Thema geschlossen
 
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
  #2 (permalink)  
Alt 15.01.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
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.
  #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
  #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
  #5 (permalink)  
Alt 28.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
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.
  #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
Thema geschlossen

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 +1. Es ist jetzt 09:22 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.
-----------------------------------------------------------------------------------------------------------------------------