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: 37409
Benutzer: 6.077
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Batangenyo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 3 Stunden
- Batangenyo
vor einem Tag
- Spitzmaus
vor einem Tag
- juleslesqu...
vor 2 Tagen
- hmf44
vor 2 Tagen
- Crossa

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 56
Gesamt: 57
Team: 0
Team:  
Benutzer:  fxnoob
Freunde anzeigen

Empfehlungen

Werbung

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 28.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard Verbiete Mehrfachtrades

Sooo... Nächster Anlauf. ^^ Habe mal auf fxdaytrader's Abfrage weitergebaut...

Code:
//+----------------------------------------------------------------+
//|  Befindet sich in der Nähe gerade ein bereits aktiver Trade?   |
//|  Wenn ja, ist kein weiterer Trade erlaubt!                     |
//+----------------------------------------------------------------+

// Zuerst für die Buy-Order
 
bool GetDenyBuy() {
    bool DenyTrade =false;
      for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
         if (!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) continue;
         if (OrderSymbol()!=Symbol()) continue;
         if (OrderMagicNumber()!=magic) continue;
         if (OrderOpenPrice()+noTradeRange>=Ask) continue;
         if (OrderOpenPrice()-noTradeRange<=Ask) continue;
            {
               DenyTrade =true;
             }
       }
         return(DenyTrade);
}


// Jetzt die Sell-Order
 
bool GetDenySell() {
    bool DenyTrade =false;
      for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
         if (!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) continue;
         if (OrderSymbol()!=Symbol()) continue;
         if (OrderMagicNumber()!=magic) continue;
         if (OrderOpenPrice()+noTradeRange>=Bid) continue;
         if (OrderOpenPrice()-noTradeRange<=Bid) continue;
            {
               DenyTrade =true;
             }
       }
         return(DenyTrade);
}

Ziel ist, den Bid und Ask immer mit den bereits getätigten Orders zzgl. einer konfigurierbaren Range zu vergleichen und dadurch eine allgemeine boolsche Trading-Erlaubnis für den EA zu erhalten...
  #12 (permalink)  
Alt 28.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Schluß für heute. Steig heute wohl nicht dahinter, warum das Ding nie true/1 wird.

Oben war noch ein Fehler, mit dem continue hab ich natürlich immer abgebrochen.

Code:
//+----------------------------------------------------------------+
//|  Befindet sich in der Nähe gerade ein bereits aktiver Trade?   |
//|  Wenn ja, ist kein weiterer Trade erlaubt!                     |
//+----------------------------------------------------------------+

// Zuerst für die Buy-Order
 
bool GetDenyBuy() {
    bool DenyTrade =false;
      for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
         if (!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) continue;
         if (OrderSymbol()!=Symbol()) continue;
         if (OrderMagicNumber()!=magic) continue;
         if ((NormalizeDouble(OrderOpenPrice()+noTradeRange,Digits)>=Ask)&& (NormalizeDouble(OrderOpenPrice()-noTradeRange,Digits)<=Ask)){
               DenyTrade =true;
         }
       }
         return(DenyTrade);
}
Jeglicher Input ist willkommen.

Gute Nacht!
  #13 (permalink)  
Alt 02.03.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Guten Tag! Ist zufällig jemand langweilig? Ich steig einfach nicht drüber.

Danke!
  #14 (permalink)  
Alt 02.03.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Also vorweg, Langeweile habe ich keine, aber Mitleid, wie Du Dich hier abquälst.

Die Variable DenyTrade fasse ich mal aus dem sinnvollen Kontext so auf, dass falls die true ist, dem Programm mitgeteilt werden soll, dass sich in der Nähe ein offener Trade befindet.
Sollte das die Interpretation dieser Variable sein, dann funktioniert das Prinzip evtl. nicht, weil bei

if ((NormalizeDouble(OrderOpenPrice()+noTradeRange,Di gits)>=Ask)&& (NormalizeDouble(OrderOpenPrice()-noTradeRange,Digits)<=Ask)){
DenyTrade =true;
}

die Variable noTradeRange einen falschen Wert hat.
Welchen hat sie denn z.B.?

traderdoc
  #15 (permalink)  
Alt 02.03.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für dein Mitleid, ich versuche mich wirklich selbst durch zu graben.

noTradRange will ich als Parameter von außen übergeben und soll zB 2 für 2 Pips enthalten. Würde eine Sperrzone von "Ask +/- 2Pip" ergeben.

So die Theorie?
  #16 (permalink)  
Alt 02.03.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, wenn auch tatsächlich die Zahl 2 für 2 Pips übergeben wird, dann wird das nicht gehen.

Denn die 2 Pips müssen in eine Dezimalzahl umgewandelt werden, indem

1. der Einfluß des Digits des Brokers eingeht und
2. die Umwandlung in eine Dezimalzahl realisiert wird.

Also z.B.

Multiplier = 1;
if(Digits == 3 || Digits == 5) Multiplier = 10;

noTradeRange *= Multiplier;
noTradeRangevalue = NormalizeDouble(noTradeRange * Point, Digits);

Das alles muß in der init() stehen. Vorher in den globalen Variablen noch noTradeRangevalue als double deklarieren und dann in Deinen schon geschriebenen Code statt noTradeRange schreiben.

traderdoc
Forexcrawler likes this.
  #17 (permalink)  
Alt 02.03.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Danke schön!!!

Dann werd ich mal probieren, ob ich das klar kriege.
  #18 (permalink)  
Alt 03.03.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Thumbs up Danke!

Vielen Dank, die Herren!

Es funktioniert wie es soll! Echt super, wie einem hier unter die Arme gegriffen wird!
Thema geschlossen

Lesezeichen

Stichworte
magic id, magicnumber, mehrfachorder, mehrfachorders, mql4, order, 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 20:53 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.
-----------------------------------------------------------------------------------------------------------------------------