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: 43254
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: 1014
Gesamt: 1014
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #51 (permalink)  
Alt 26.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
@pako:MarketInfo(Symbol(),MODE_STOPLEVEL) geprüft?

Na das habe ich doch schon in Post #28 geschrieben!!!, wenn er seine "20" Pips nimmt und ohne Berücksichtigung des 5Digit das in Deine Funktion einsetzt.
Aber Du hast ja immer geschrieben 1 Pip = 1Pip, auch in Afrika.
Ist zwar formal, wie es da steht, richtig aber eben doch im Endeffekt falsch!
Und daran wird er scheitern, solange er nicht die 5Digit-Verhältnisse berücksichtigt.

traderdoc
Gut alles klar, ich habe soweit jetzt herausgefunden, wo genau der
Fehler ist. Also ich habe eine große Schleife indem sich zwei
Bedingungen befinden. Zum einen falls die letzte Order ein Profit oder
Null war und fallst die letzte Order ein Verlust war.
Das frunktioniert auch soweit (in der ersten Bedinung auch wieder nach
Long und short jeweils eine Bedinung).
Allerdings wenn ein Trade aus der ersten Bedinung mit Verlust schließt
und eine Order aus der zweiten Bedingung geöffnet wird, bleibt der EA in
dieser Schleife, unabhängig vom Profit und Verlust. Immer in bestimmten
Perioden öffnet er eine neue ORder. Ich möchte eigenltich folgendes
Szenario: Wenn eine Order aus der ersten Bedingung mit Verlust schließt,
soll er zur zweiten Bedinung übergehen und dann unabhängig davon ob
dieser Trade ein Gewinn oder Verlust war zur ersten Bedinung wieder
übergeht.
Wie kommt man aus dieser Bedinung wieder raus unabhängig vom Profit oder
Verlust?
  #52 (permalink)  
Alt 26.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Hier der Code bzw. die Schleife mit den Bedingungen:

Code:
if (closedProfit>=0)
{  //Print("6");
if (iOpen(NULL,0,0) > u && iClose(NULL,0,0) < u)
   {
        RefreshRates();                        // Refresh rates
       
         SL=Bid + main_sl;     // Calculating SL of opened
         TP=Bid - main_tp;   // Calculating TP of opened
         
        ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,"Sell St",123456); 
        if(ticket>0)
        {
        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
        }
        else Print("Error opening BUY order : ",GetLastError());
        return(0);
        }                           // Criterion for opening Sell 

if (iOpen(NULL,0,0) < o  && iClose(NULL,0,0) > o)
   {
        RefreshRates();                        // Refresh rates
             
         SL=Ask - main_sl;     // Calculating SL of opened
         TP=Ask + main_tp;
         
       ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,"Buy St",123456);  
       if(ticket>0)
        {
        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
        }
        else Print("Error opening SELL order : ",GetLastError());
        return(0);
        } 
        //Print("7");
 }       

                         // Criterion for opening Sell 

if (closedProfit < 0 && (lastcomment=="Buy St" || lastcomment=="Sell St")) 
    Print("8");
    double STOPLOSS = 200;
    double TAKEPROFIT = 200;
  //if(total < 1) 
  {          //was soll total sein???
      if (lastorder == 0) {
      Print("Gegenposi");
         ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, Bid + (STOPLOSS*Point), Bid - (TAKEPROFIT*Point), "abgesichert", mymagicnumber);
          if(ticket>0)
        {
        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
        }
        else Print("Error opening SELL order : ",GetLastError());
        return(0);       
      }
      if (lastorder == 1)
      {
      Print("Gegenposition Buy");
      ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,Ask - (STOPLOSS*Point), Ask + (TAKEPROFIT*Point), "abgescihert", mymagicnumber);
      if(ticket>0)
        {
        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
        }
        else Print("Error opening BUY order : ",GetLastError());
        return(0);
          
      } 

   } 

 
        
        

return(0);
      }
  #53 (permalink)  
Alt 26.06.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dann solltest Du beide Bedingungen einschließen in:

if (OrdersTotal() == 0) {
.
.
.
}

Das funktioniert aber nur solange, Du nur mit einem einzigen EA arbeitest und das auch nur auf einem einzigen TimFrame bei nur einem einzigen Handelsinstrument!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #54 (permalink)  
Alt 26.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Dann solltest Du beide Bedingungen einschließen in:

if (OrdersTotal() == 0) {
.
.
.
}

Das funktioniert aber nur solange, Du nur mit einem einzigen EA arbeitest und das auch nur auf einem einzigen TimFrame bei nur einem einzigen Handelsinstrument!

traderdoc
Das habe ich bereits gemacht mit dem folgenden Code:

Code:
total=OrdersTotal();
if(total<1)
{
[...]
}
Dort drin ist die Bedinungen eingeschlossen. Allerdings geht er nicht mehr, wie ich oben beschrieben habe, aus der Schleife raus.
Das Problem ist, ich möchte, dass er im Verlustfall in diese Schleife einmal geht und dann wieder raus zu der ersten, die mit den Ursprungsbedinungen. Das Bedeutet eigentlich nur, dass ich möchte, dass eine Gegenposition aufgebaut wird falls eine Order aus der oberen Bedingung mit Verlust schließt.
Gibt es da eine Möglichkeit?

Gruß
Aron
  #55 (permalink)  
Alt 03.07.15
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Für eine BuyOrder:

if(OrderClosePrice()<=OrderStopLoss())

für eine SellOrder:

if(OrderClosePrice()>=OrderStopLoss())

oder noch sicherer im OrderComment() der Order der Historie nach den Worten sl oder tp suchen.

traderdoc
wenn OrderStopLoss() =0 ???

Für eine BuyOrder: Close per TP
Code:
if(OrderTakeProfit()!=0)
  {
   if(OrderClosePrice()>=OrderTakeProfit())
     {
      Print("TP");
     }
  }
ticket 95679237 OrderClosePrice() !=OrderStopLoss() OrderComment()=="sl"
ticket 95692919 OrderClosePrice() ==OrderTakeProfit() OrderComment()==""
ECN Brocker
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (287,5 KB, 9x aufgerufen)

Geändert von pako (03.07.15 um 23:02 Uhr)
Thema geschlossen

Lesezeichen

Stichworte
mql4, oco, order, order öffnen, programmierung, programmierung metatrader

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 21:45 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.
-----------------------------------------------------------------------------------------------------------------------------