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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36908
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 8 Stunden
- Spitzmaus
vor 11 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor einem Tag
- Crossa
vor einem Tag
- snatshit

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

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.12.11
Mitglied
 
Registriert seit: Jul 2010
Beiträge: 47
forexAlexPH befindet sich auf einem aufstrebenden Ast
Question EA Feststellen ob eine offene Position zu dem Kurs bereits existiert?

Hallo,

Ich habe einen EA zusammen gebastelt. Bei einer bestimmten Konstellation öffnet der EA einen Trade. Nun sollte aber bevor der Trade geöffnet wird, überprüft werden, ob zu dem Kurs bereits ein Trade im Markt ist. Wenn ja, soll der gleiche Trade nicht noch einmal geöffnet werden.

Aktuell sieht der Codeblock wie folgt aus:

Code:
// Feststellen ob zum Preis schon eine offene Order existiert
for(int ij = 0; ij < OrdersTotal( ); ij++)
   if(OrderSelect(ij, SELECT_BY_POS, MODE_TRADES) == true) {
      if(OrderSymbol() == Symbol())
         if(OrderOpenPrice() == Ask)
            OrderinMarket = true;
    } else {
            OrderinMarket = false;
    }
// - End check order in market ----------------------

   if(Entertradebuy==1  && OrderinMarket==false)
   {
   double Ticket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, slip, 0, Ask+TP*Point, "Buy(#" + 1 + ")", 1, 0, DodgerBlue) ;         
   }

   if(Entertradesell==1  && OrderinMarket==false)
   {
   double Ticket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, slip, 0, Bid-TP*Point, "Sell(#" + 1 + ")", 1, 0, DeepPink) ;
   }
Aber irgend wo ist da der Hund begraben. Das funktioniert beim ersten Öffnen der Order Problemlos. Schließt dann die Order im Gewinn, der Kurs lauft zurück und sollte zum gleichen Kurs nochmals die gleiche Order absetzen geschieht nichts. Ich vermute mal es wird dann vom EA angenommen, dass bereits eine Order im Markt ist.

Hat da jemand eine Lösung für das Problem?
  #2 (permalink)  
Alt 23.12.11
Elite Mitglied
 
Registriert seit: Jan 2010
Beiträge: 275
Bohne befindet sich auf einem aufstrebenden Ast
Standard

was meinst du mit dem gleichem Trade. MEinst du damit das Urprungsignal, was die erst Oorder aufgemacht hat.
Ansosnten könntest du ja auch in Comments deine Signale-Strategy abrufen, und gezielt danach filtern.

ich hätte die erst passage auch ein wenig anders geschrieben. Ungefähr so.
Veruschs mal mit einer direkten und gezielten Rücksetzung der Variable wie unten.

OrderinMarket = false;
for(int ij = 0; ij < OrdersTotal( ); ij++)
{
if(OrderSelect(ij, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol())
if(OrderOpenPrice() == Ask) OrderinMarket = true;
}
}

// - End check order in market ----------------------

if(Entertradebuy!=0 && OrderinMarket!) usw...
  #3 (permalink)  
Alt 04.01.12
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Setzt du denn auch "OrderinMarket" wieder auf false
wenn eine Order im Gewinn geschlossen wurde?
Thema geschlossen

Lesezeichen

Stichworte
mql4, order send, order öffen, programmierung, trade öffnen


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 05:42 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 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.
-----------------------------------------------------------------------------------------------------------------------------