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

Empfehlungen

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: 2.733
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: 2.733
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 18:28 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.
-----------------------------------------------------------------------------------------------------------------------------